From 382cbd0a73f34803e0451f37c260d8dd0af0f030 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Fri, 26 Aug 2016 14:16:37 -0700 Subject: [PATCH 01/27] start --- scripts/system/html/css/marketplaces.css | 25 ++++++++++++++ scripts/system/html/js/marketplaces.js | 3 ++ scripts/system/html/marketplaces.html | 44 ++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 scripts/system/html/css/marketplaces.css create mode 100644 scripts/system/html/js/marketplaces.js create mode 100644 scripts/system/html/marketplaces.html diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css new file mode 100644 index 0000000000..c38b4185f4 --- /dev/null +++ b/scripts/system/html/css/marketplaces.css @@ -0,0 +1,25 @@ +/* +// +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +*/ + +.marketplaces-container { + width: 100%; +} +.marketplace-tile { + float: left; + width: 50%; +} +.marketplace-tile-title { + width: 100%; + height: 10%; +} +.marketplace-tile-image-container { +} +.marketplace-tile-image { +} +.marketplace-tile-description { +} \ No newline at end of file diff --git a/scripts/system/html/js/marketplaces.js b/scripts/system/html/js/marketplaces.js new file mode 100644 index 0000000000..06cc05c6b9 --- /dev/null +++ b/scripts/system/html/js/marketplaces.js @@ -0,0 +1,3 @@ +function loaded(){ + +} \ No newline at end of file diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html new file mode 100644 index 0000000000..88a3ee2f00 --- /dev/null +++ b/scripts/system/html/marketplaces.html @@ -0,0 +1,44 @@ + + + + Marketplaces + + + + + + + + +
+
+
Hifi Marketplace
+
+ + + +
+
This is the Hifi Marketplace
+
+
+
+
Clara
+
+ + + +
+
This is the Clara Marketplace
+
+
+
+ + + \ No newline at end of file From 264176dac65bb71379ab19a71e654fcdd7d34566 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Fri, 26 Aug 2016 14:21:32 -0700 Subject: [PATCH 02/27] css --- scripts/system/html/marketplaces.html | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index 88a3ee2f00..27c6d34876 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -11,6 +11,7 @@ Marketplaces + From 95c627aa711878ae60eb597dcf99e5bd33738da0 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Mon, 29 Aug 2016 14:24:36 -0700 Subject: [PATCH 03/27] dev --- scripts/system/html/css/marketplaces.css | 55 ++++++++++++++++++- scripts/system/html/img/marketplaceClara.png | Bin 0 -> 6699 bytes scripts/system/html/img/marketplaceHifi.png | Bin 0 -> 9720 bytes scripts/system/html/js/marketplaces.js | 36 +++++++++++- scripts/system/html/marketplaces.html | 49 +++++++++++------ scripts/system/html/test.jpg | Bin 0 -> 150383 bytes 6 files changed, 119 insertions(+), 21 deletions(-) create mode 100644 scripts/system/html/img/marketplaceClara.png create mode 100644 scripts/system/html/img/marketplaceHifi.png create mode 100644 scripts/system/html/test.jpg diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css index c38b4185f4..9f86c5fb06 100644 --- a/scripts/system/html/css/marketplaces.css +++ b/scripts/system/html/css/marketplaces.css @@ -5,21 +5,70 @@ // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html */ - .marketplaces-container { width: 100%; } .marketplace-tile { + text-align: center; float: left; - width: 50%; + width: 25%; + margin: 10%; } .marketplace-tile-title { width: 100%; - height: 10%; + white-space: nowrap; + font-size: 2em; + margin-bottom: 2%; } .marketplace-tile-image-container { } .marketplace-tile-image { + height: auto; + max-width: 100%; } .marketplace-tile-description { + margin-top: 2%; + font-size: 1.2em; + margin-bottom: 5%; +} +@media only screen and (max-width:768px) { + .marketplace-tile { + text-align: center; + float: left; + width: 100%; + margin: 0 0 0 0%; + } +} +/*.clara-image { + cursor: pointer; +} +*/ + +.claraHowTo { + background-color: rgba(0,0,0,0.7); + width:94%; + height:auto; + margin-top:6%; + margin-left:3%; + clear: both; +} + + +.clara-title-slug{ + padding-top:20px; + text-align: center +} + +.clara-list{ + margin:20px 0 20px 7.5%; +} + +.clara-list > li{ + margin-bottom: 10px; +} + +#goToClara{ + width:94%; + margin-left:3%; + margin-bottom:20px; } \ No newline at end of file diff --git a/scripts/system/html/img/marketplaceClara.png b/scripts/system/html/img/marketplaceClara.png new file mode 100644 index 0000000000000000000000000000000000000000..e69623702300047f09828232a9fdc22cc9a17ac6 GIT binary patch literal 6699 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 JXGN>f{{jL_`~v_0 literal 0 HcmV?d00001 diff --git a/scripts/system/html/js/marketplaces.js b/scripts/system/html/js/marketplaces.js index 06cc05c6b9..f902e3e4fc 100644 --- a/scripts/system/html/js/marketplaces.js +++ b/scripts/system/html/js/marketplaces.js @@ -1,3 +1,35 @@ -function loaded(){ - +function loaded() { + bindClaraImage(); + bindClaraButton(); +} + +function hideList() { + $('.marketplace-tile').hide(); +} + +function showList() { + $('.marketplace-tile').show(); +} + +function showClaraHowTo() { + $('.claraHowTo').show(); +} + +function hideClaraHowTo() { + $('.claraHowTo').hide(); +} + +var claraVisible = false; + +function bindClaraImage() { + $('.clara-image').on('click', function() { + showClaraHowTo(); + // hideList(); + }) +} + +function bindClaraButton() { + $('#goToClara').on('click', function() { + window.location = "http://www.clara.io" + }) } \ No newline at end of file diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index 27c6d34876..aa8ca2fd98 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -19,27 +19,44 @@
-
-
Hifi Marketplace
-
- - - -
-
This is the Hifi Marketplace
+
+ +
+
+

+ You can bring content into High Fidelity forom anywhere you want. Here are a few places that support direct import of content right now. If you'd like to suggest a Market to include here, let us know. +

-
-
Clara
-
- - - +
+ + +
+

This is the default High Fidelity marketplace. Viewing and downloading content from here is fully supported in Interface.

+
-
This is the Clara Marketplace
+
+
+
+
+ + +
+

Clara.io has thousands of models available for importing into High Fidelity. Follow these steps for the best experience:

+
    +
  1. Create an account here or log in as an existing user.
  2. +
  3. Choose a model from the list and click Download -> Autodesk FBX.
  4. +
  5. After the file processes, click download.
  6. +
  7. Add the model to your asset server, then find it from the list and choose Add To World
  8. +
+
+
- + + +
+ \ No newline at end of file diff --git a/scripts/system/html/test.jpg b/scripts/system/html/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..397105ad7ca5d113ff3731099faa9fadfeae09c7 GIT binary patch literal 150383 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ⅇJLMH&geN;EM0#o>?^3isngXW*~zj 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�#9yK>11)QgqVI;ZiKoxqRD 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 literal 0 HcmV?d00001 From 2a12f2feaee846a0b8f6048f83cfbec31441cf30 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Mon, 29 Aug 2016 17:27:39 -0700 Subject: [PATCH 04/27] marketplaces html --- scripts/system/html/css/marketplaces.css | 113 ++++++++++-------- scripts/system/html/img/clara-tile.png | Bin 0 -> 8124 bytes .../system/html/img/hifi-marketplace-tile.png | Bin 0 -> 6844 bytes scripts/system/html/img/marketplaceClara.png | Bin 6699 -> 0 bytes scripts/system/html/img/marketplaceHifi.png | Bin 9720 -> 0 bytes scripts/system/html/js/marketplaces.js | 35 +----- scripts/system/html/marketplaces.html | 26 ++-- scripts/system/html/test.jpg | Bin 150383 -> 0 bytes 8 files changed, 80 insertions(+), 94 deletions(-) create mode 100644 scripts/system/html/img/clara-tile.png create mode 100644 scripts/system/html/img/hifi-marketplace-tile.png delete mode 100644 scripts/system/html/img/marketplaceClara.png delete mode 100644 scripts/system/html/img/marketplaceHifi.png delete mode 100644 scripts/system/html/test.jpg diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css index 9f86c5fb06..9bfdd8cb81 100644 --- a/scripts/system/html/css/marketplaces.css +++ b/scripts/system/html/css/marketplaces.css @@ -5,70 +5,79 @@ // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html */ +body { + background: white; + padding: 0 0 0 0; +} .marketplaces-container { - width: 100%; + color: black; + width: 94%; + margin-left: 3%; + height: 100%; +} +.marketplaces-title { + margin-top: 45px; + margin-bottom: 20px; +} +.marketplaces-intro-text { + margin-bottom: 60px; } .marketplace-tile { + width: 100%; +} +.marketplace-tile-first-column { text-align: center; float: left; - width: 25%; - margin: 10%; + width: 34%; } -.marketplace-tile-title { - width: 100%; - white-space: nowrap; - font-size: 2em; - margin-bottom: 2%; +.marketplace-tile-second-column { + float: left; + width: 66%; } -.marketplace-tile-image-container { +.exploreButton { + width: 200px !important; + height: 45px !important; + margin-top: 20px; + margin-bottom: 30px; } -.marketplace-tile-image { - height: auto; - max-width: 100%; +.tile-divider { + width: 90%; + margin-left: 5%; + display: block; + height: 1px; + border: 0; + border-top: 1px solid lightgrey; + margin: 1em 0; + padding: 0; + margin-bottom: 30px; } .marketplace-tile-description { - margin-top: 2%; - font-size: 1.2em; - margin-bottom: 5%; + margin-top: 15px; + margin-bottom: 50px; } -@media only screen and (max-width:768px) { - .marketplace-tile { - text-align: center; +.marketplace-tile-image { + max-width: 256px; + height: 128px; + -webkit-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); + -moz-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); + box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); +} +.marketplace-clara-steps { + padding-left: 15px; +} +.marketplace-clara-steps > li { + margin-top: 5px; +} +@media (max-width:768px) { + .marketplace-tile-first-column { float: left; width: 100%; - margin: 0 0 0 0%; } -} -/*.clara-image { - cursor: pointer; -} -*/ - -.claraHowTo { - background-color: rgba(0,0,0,0.7); - width:94%; - height:auto; - margin-top:6%; - margin-left:3%; - clear: both; -} - - -.clara-title-slug{ - padding-top:20px; - text-align: center -} - -.clara-list{ - margin:20px 0 20px 7.5%; -} - -.clara-list > li{ - margin-bottom: 10px; -} - -#goToClara{ - width:94%; - margin-left:3%; - margin-bottom:20px; + .marketplace-tile-second-column { + float: left; + width: 100%; + } + .exploreButton { + margin-left: 25%; + } } \ No newline at end of file diff --git a/scripts/system/html/img/clara-tile.png b/scripts/system/html/img/clara-tile.png new file mode 100644 index 0000000000000000000000000000000000000000..ae431dd51093ed60595194a654adad21ea8af296 GIT binary patch literal 8124 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 literal 0 HcmV?d00001 diff --git a/scripts/system/html/img/marketplaceClara.png b/scripts/system/html/img/marketplaceClara.png deleted file mode 100644 index e69623702300047f09828232a9fdc22cc9a17ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6699 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 JXGN>f{{jL_`~v_0 diff --git a/scripts/system/html/js/marketplaces.js b/scripts/system/html/js/marketplaces.js index f902e3e4fc..32235cd95f 100644 --- a/scripts/system/html/js/marketplaces.js +++ b/scripts/system/html/js/marketplaces.js @@ -1,35 +1,12 @@ function loaded() { - bindClaraImage(); - bindClaraButton(); +bindExploreButtons(); } -function hideList() { - $('.marketplace-tile').hide(); -} - -function showList() { - $('.marketplace-tile').show(); -} - -function showClaraHowTo() { - $('.claraHowTo').show(); -} - -function hideClaraHowTo() { - $('.claraHowTo').hide(); -} - -var claraVisible = false; - -function bindClaraImage() { - $('.clara-image').on('click', function() { - showClaraHowTo(); - // hideList(); - }) -} - -function bindClaraButton() { - $('#goToClara').on('click', function() { +function bindExploreButtons() { + $('#exploreClaraMarketplace').on('click', function() { window.location = "http://www.clara.io" }) + $('#exploreHifiMarketplace').on('click', function() { + window.location = "http://www.highfidelity.com/marketplace" + }) } \ No newline at end of file diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index aa8ca2fd98..346baff194 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -19,9 +19,9 @@
-
- -
+

+ Marketplaces +

You can bring content into High Fidelity forom anywhere you want. Here are a few places that support direct import of content right now. If you'd like to suggest a Market to include here, let us know. @@ -29,29 +29,29 @@

- - + +

This is the default High Fidelity marketplace. Viewing and downloading content from here is fully supported in Interface.

- +
-
+
- - + +

Clara.io has thousands of models available for importing into High Fidelity. Follow these steps for the best experience:

-
    +
    1. Create an account here or log in as an existing user.
    2. Choose a model from the list and click Download -> Autodesk FBX.
    3. After the file processes, click download.
    4. -
    5. Add the model to your asset server, then find it from the list and choose Add To World
    6. +
    7. Add the model to your asset server, then find it from the list and choose Add To World.
    - +
-
+
diff --git a/scripts/system/html/test.jpg b/scripts/system/html/test.jpg deleted file mode 100644 index 397105ad7ca5d113ff3731099faa9fadfeae09c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150383 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ⅇJLMH&geN;EM0#o>?^3isngXW*~zj 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�#9yK>11)QgqVI;ZiKoxqRD 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 From d3aad53e0eaf56d87e281e25df050b9f27613b62 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Mon, 29 Aug 2016 17:43:32 -0700 Subject: [PATCH 05/27] cleanup --- scripts/system/html/css/marketplaces.css | 27 ++++++++---- scripts/system/html/js/marketplaces.js | 2 +- scripts/system/html/marketplaces.html | 53 +++++++++++++----------- 3 files changed, 49 insertions(+), 33 deletions(-) diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css index 9bfdd8cb81..e516715c03 100644 --- a/scripts/system/html/css/marketplaces.css +++ b/scripts/system/html/css/marketplaces.css @@ -10,6 +10,7 @@ body { padding: 0 0 0 0; } .marketplaces-container { + display: inline-block; color: black; width: 94%; margin-left: 3%; @@ -23,16 +24,18 @@ body { margin-bottom: 60px; } .marketplace-tile { + float:left; width: 100%; } .marketplace-tile-first-column { text-align: center; float: left; - width: 34%; + width: 33%; } .marketplace-tile-second-column { float: left; - width: 66%; + margin-left:4%; + width: 62%; } .exploreButton { width: 200px !important; @@ -41,8 +44,8 @@ body { margin-bottom: 30px; } .tile-divider { - width: 90%; - margin-left: 5%; + width: 100%; + margin-left: 0%; display: block; height: 1px; border: 0; @@ -53,11 +56,13 @@ body { } .marketplace-tile-description { margin-top: 15px; - margin-bottom: 50px; + margin-bottom: 30px; } .marketplace-tile-image { + margin-top:15px; max-width: 256px; height: 128px; + margin-bottom:60px; -webkit-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); -moz-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); @@ -77,7 +82,15 @@ body { float: left; width: 100%; } - .exploreButton { - margin-left: 25%; + .exploreButton-holder { + width:100%; + text-align:center; } + .tile-divider { + width: 100%; + margin-left: 0%; +} +.marketplace-tile-image{ + margin-bottom:15px; +} } \ No newline at end of file diff --git a/scripts/system/html/js/marketplaces.js b/scripts/system/html/js/marketplaces.js index 32235cd95f..a1b3847b3c 100644 --- a/scripts/system/html/js/marketplaces.js +++ b/scripts/system/html/js/marketplaces.js @@ -4,7 +4,7 @@ bindExploreButtons(); function bindExploreButtons() { $('#exploreClaraMarketplace').on('click', function() { - window.location = "http://www.clara.io" + window.location = "https://clara.io/library?public=true" }) $('#exploreHifiMarketplace').on('click', function() { window.location = "http://www.highfidelity.com/marketplace" diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index 346baff194..40c2be9407 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -20,7 +20,7 @@

- Marketplaces + Marketplaces

@@ -29,34 +29,37 @@

- +

This is the default High Fidelity marketplace. Viewing and downloading content from here is fully supported in Interface.

- +
+
+
+
+
+
+
+ +
+
+

Clara.io has thousands of models available for importing into High Fidelity. Follow these steps for the best experience:

+
    +
  1. Create an account here or log in as an existing user.
  2. +
  3. Choose a model from the list and click Download -> Autodesk FBX.
  4. +
  5. After the file processes, click download.
  6. +
  7. Add the model to your asset server, then find it from the list and choose Add To World.
  8. +
+
+ +
+
+
-
-
-
-
- -
-
-

Clara.io has thousands of models available for importing into High Fidelity. Follow these steps for the best experience:

-
    -
  1. Create an account here or log in as an existing user.
  2. -
  3. Choose a model from the list and click Download -> Autodesk FBX.
  4. -
  5. After the file processes, click download.
  6. -
  7. Add the model to your asset server, then find it from the list and choose Add To World.
  8. -
- -
-
+ + +
- - - -
- + \ No newline at end of file From 2b2b2ecbacbd731e303ffe077e5de1abd94b238a Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Mon, 29 Aug 2016 17:44:33 -0700 Subject: [PATCH 06/27] caps --- scripts/system/html/marketplaces.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index 40c2be9407..19257ed5da 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -47,7 +47,7 @@
  1. Create an account here or log in as an existing user.
  2. Choose a model from the list and click Download -> Autodesk FBX.
  3. -
  4. After the file processes, click download.
  5. +
  6. After the file processes, click Download.
  7. Add the model to your asset server, then find it from the list and choose Add To World.
From f2e61aa50468ed6f548af0943e9db4a7736d2ee6 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Mon, 29 Aug 2016 18:43:32 -0700 Subject: [PATCH 07/27] added status bar to marketplace --- .../resources/qml/MarketplaceComboBox.qml | 103 ------------------ .../resources/qml/controls-uit/WebView.qml | 8 ++ scripts/defaultScripts.js | 3 +- scripts/system/html/css/marketplaces.css | 89 +++++++++++++-- scripts/system/html/js/marketplaces.js | 13 ++- scripts/system/html/marketplaces.html | 91 ++++++++++------ scripts/system/marketplaces/clara.js | 2 +- 7 files changed, 158 insertions(+), 151 deletions(-) delete mode 100644 interface/resources/qml/MarketplaceComboBox.qml diff --git a/interface/resources/qml/MarketplaceComboBox.qml b/interface/resources/qml/MarketplaceComboBox.qml deleted file mode 100644 index f7f224485b..0000000000 --- a/interface/resources/qml/MarketplaceComboBox.qml +++ /dev/null @@ -1,103 +0,0 @@ -// -// MarketplaceComboBox.qml -// -// Created by Elisa Lupin-Jimenez on 3 Aug 2016 -// Copyright 2016 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -import QtQuick 2.5 -import QtQuick.Controls 1.4 -import QtWebChannel 1.0 -import QtWebEngine 1.1 -import QtWebSockets 1.0 -import "qrc:///qtwebchannel/qwebchannel.js" as WebChannel - -import "controls" -import "controls-uit" as Controls -import "styles" -import "styles-uit" - - -Rectangle { - HifiConstants { id: hifi } - id: marketplaceComboBox - anchors.fill: parent - color: hifi.colors.baseGrayShadow - property var currentUrl: "https://metaverse.highfidelity.com/marketplace" - - Controls.WebView { - id: webview - url: currentUrl - anchors.top: switchMarketView.bottom - width: parent.width - height: parent.height - 40 - focus: true - - Timer { - id: zipTimer - running: false - repeat: false - interval: 1500 - property var handler; - onTriggered: handler(); - } - - property var autoCancel: 'var element = $("a.btn.cancel"); - element.click();' - - onNewViewRequested: { - var component = Qt.createComponent("Browser.qml"); - var newWindow = component.createObject(desktop); - request.openIn(newWindow.webView); - if (File.isZippedFbx(desktop.currentUrl)) { - zipTimer.handler = function() { - newWindow.destroy(); - runJavaScript(autoCancel); - } - zipTimer.start(); - } - } - - property var simpleDownload: 'var element = $("a.download-file"); - element.removeClass("download-file"); - element.removeAttr("download");' - - onLinkHovered: { - desktop.currentUrl = hoveredUrl; - // add an error message for non-fbx files - if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(simpleDownload, function(){console.log("ran the JS");}); - } - - } - - } - - Controls.ComboBox { - id: switchMarketView - anchors.top: parent.top - anchors.right: parent.right - colorScheme: hifi.colorSchemes.dark - width: 200 - height: 40 - visible: true - model: ["Marketplace", "Clara.io"] - onCurrentIndexChanged: { - if (currentIndex === 0) { webview.url = "https://metaverse.highfidelity.com/marketplace"; } - if (currentIndex === 1) { webview.url = "https://clara.io/library"; } - } - - } - - Controls.Label { - id: switchMarketLabel - anchors.verticalCenter: switchMarketView.verticalCenter - anchors.right: switchMarketView.left - color: hifi.colors.white - text: "Explore interesting content from: " - } - -} \ No newline at end of file diff --git a/interface/resources/qml/controls-uit/WebView.qml b/interface/resources/qml/controls-uit/WebView.qml index faf7f746a2..20b1fad247 100644 --- a/interface/resources/qml/controls-uit/WebView.qml +++ b/interface/resources/qml/controls-uit/WebView.qml @@ -61,6 +61,14 @@ WebEngineView { } } + property var newWindowHook: function (component, newWindow, request) { }; // override if you need to + onNewViewRequested:{ + var component = Qt.createComponent("../Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView) + newWindowHook(component, newWindow, request); + } + // This breaks the webchannel used for passing messages. Fixed in Qt 5.6 // See https://bugreports.qt.io/browse/QTBUG-49521 diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 98825c594d..2b97125ed2 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -18,7 +18,8 @@ var DEFAULT_SCRIPTS = [ "system/mute.js", "system/goto.js", "system/hmd.js", - "system/marketplaces/marketplace.js", + //"system/marketplaces/marketplace.js", + "system/marketplaces/clara.js", "system/edit.js", "system/mod.js", "system/selectAudioDevice.js", diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css index c38b4185f4..e516715c03 100644 --- a/scripts/system/html/css/marketplaces.css +++ b/scripts/system/html/css/marketplaces.css @@ -5,21 +5,92 @@ // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html */ - +body { + background: white; + padding: 0 0 0 0; +} .marketplaces-container { - width: 100%; + display: inline-block; + color: black; + width: 94%; + margin-left: 3%; + height: 100%; +} +.marketplaces-title { + margin-top: 45px; + margin-bottom: 20px; +} +.marketplaces-intro-text { + margin-bottom: 60px; } .marketplace-tile { - float: left; - width: 50%; -} -.marketplace-tile-title { + float:left; width: 100%; - height: 10%; } -.marketplace-tile-image-container { +.marketplace-tile-first-column { + text-align: center; + float: left; + width: 33%; } -.marketplace-tile-image { +.marketplace-tile-second-column { + float: left; + margin-left:4%; + width: 62%; +} +.exploreButton { + width: 200px !important; + height: 45px !important; + margin-top: 20px; + margin-bottom: 30px; +} +.tile-divider { + width: 100%; + margin-left: 0%; + display: block; + height: 1px; + border: 0; + border-top: 1px solid lightgrey; + margin: 1em 0; + padding: 0; + margin-bottom: 30px; } .marketplace-tile-description { + margin-top: 15px; + margin-bottom: 30px; +} +.marketplace-tile-image { + margin-top:15px; + max-width: 256px; + height: 128px; + margin-bottom:60px; + -webkit-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); + -moz-box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); + box-shadow: -1px 4px 16px 0px rgba(0, 0, 0, 0.48); +} +.marketplace-clara-steps { + padding-left: 15px; +} +.marketplace-clara-steps > li { + margin-top: 5px; +} +@media (max-width:768px) { + .marketplace-tile-first-column { + float: left; + width: 100%; + } + .marketplace-tile-second-column { + float: left; + width: 100%; + } + .exploreButton-holder { + width:100%; + text-align:center; + } + .tile-divider { + width: 100%; + margin-left: 0%; +} +.marketplace-tile-image{ + margin-bottom:15px; +} } \ No newline at end of file diff --git a/scripts/system/html/js/marketplaces.js b/scripts/system/html/js/marketplaces.js index 06cc05c6b9..5f309aca00 100644 --- a/scripts/system/html/js/marketplaces.js +++ b/scripts/system/html/js/marketplaces.js @@ -1,3 +1,12 @@ -function loaded(){ - +function loaded() { + bindExploreButtons(); +} + +function bindExploreButtons() { + $('#exploreClaraMarketplace').on('click', function () { + window.location = "https://clara.io/library?public=true" + }) + $('#exploreHifiMarketplace').on('click', function () { + window.location = "http://www.highfidelity.com/marketplace" + }) } \ No newline at end of file diff --git a/scripts/system/html/marketplaces.html b/scripts/system/html/marketplaces.html index 27c6d34876..dc7c57761f 100644 --- a/scripts/system/html/marketplaces.html +++ b/scripts/system/html/marketplaces.html @@ -1,4 +1,4 @@ - - - Marketplaces - - - - - - - - - -
-
-
Hifi Marketplace
-
- - - -
-
This is the Hifi Marketplace
-
-
-
-
Clara
-
- - - -
-
This is the Clara Marketplace
-
-
+ + Marketplaces + + + + + + + + + +
+

+ Marketplaces +

+
+

+ You can bring content into High Fidelity forom anywhere you want. Here are a few places that support direct import of content right now. If you'd like to suggest a Market to include here, let us know. +

- - +
+
+ +
+
+

This is the default High Fidelity marketplace. Viewing and downloading content from here is fully supported in Interface.

+
+ +
+
+
+
+
+
+ +
+
+

Clara.io has thousands of models available for importing into High Fidelity. Follow these steps for the best experience:

+
    +
  1. Create an account here or log in as an existing user.
  2. +
  3. Choose a model from the list and click Download -> Autodesk FBX.
  4. +
  5. After the file processes, click Download.
  6. +
  7. Add the model to your asset server, then find it from the list and choose Add To World.
  8. +
+
+ +
+
+
+
+
+ + + +
+ \ No newline at end of file diff --git a/scripts/system/marketplaces/clara.js b/scripts/system/marketplaces/clara.js index 67c2d5503c..b6e79f04e2 100644 --- a/scripts/system/marketplaces/clara.js +++ b/scripts/system/marketplaces/clara.js @@ -14,7 +14,7 @@ (function() { // BEGIN LOCAL_SCOPE var toolIconUrl = Script.resolvePath("../assets/images/tools/"); -var qml = Script.resolvePath("../../../resources/qml/MarketplaceComboBox.qml") +var qml = Script.resolvePath("../../../resources/qml/Marketplaces.qml") var MARKETPLACE_URL = "https://metaverse.highfidelity.com/marketplace"; From 6bd41d0dd5c0d3dee2830a07cc9970484a5cf06b Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Mon, 29 Aug 2016 18:43:52 -0700 Subject: [PATCH 08/27] added status bar to marketplace --- interface/resources/qml/Marketplaces.qml | 115 +++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 interface/resources/qml/Marketplaces.qml diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml new file mode 100644 index 0000000000..2e24e81a24 --- /dev/null +++ b/interface/resources/qml/Marketplaces.qml @@ -0,0 +1,115 @@ +// +// Marketplaces.qml +// +// Created by Elisa Lupin-Jimenez on 3 Aug 2016 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +import QtQuick 2.5 +import QtQuick.Controls 1.4 +import QtWebChannel 1.0 +import QtWebEngine 1.1 +import QtWebSockets 1.0 +import "qrc:///qtwebchannel/qwebchannel.js" as WebChannel + +import "controls" +import "controls-uit" as Controls +import "styles" +import "styles-uit" + + +Rectangle { + HifiConstants { id: hifi } + id: marketplace + anchors.fill: parent + property var currentUrl: "https://metaverse.highfidelity.com/marketplace" + property int statusBarHeight: 50 + property int statusMargin: 50 + + Controls.WebView { + id: webview + url: currentUrl + anchors.top: marketplace.top + width: parent.width + height: parent.height - statusBarHeight + focus: true + newWindowHook: function (component, newWindow) { + if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(autoCancel); + zipTimer.handler = function() { + console.log("timer started", newWindow) + newWindow.destroy(); + } + zipTimer.start(); + } + } + + Timer { + id: zipTimer + running: false + repeat: false + interval: 1500 + property var handler; + onTriggered: handler(); + } + + property var autoCancel: 'var element = $("a.btn.cancel"); + element.click();' + + property var simpleDownload: 'var element = $("a.download-file"); + element.removeClass("download-file"); + element.removeAttr("download");' + + onLinkHovered: { + desktop.currentUrl = hoveredUrl; + // add an error message for non-fbx files + if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(simpleDownload, function(){console.log("ran the JS");}); + } + + } + + } + + Rectangle { + id: statusBar + anchors.top: webview.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + color: hifi.colors.blueHighlight + + Controls.Button { + id: switchMarketView + anchors.right: parent.right + anchors.rightMargin: statusMargin + anchors.verticalCenter: parent.verticalCenter + width: 150 + text: "See all markets" + onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" + } + + Controls.Label { + id: statusLabel + anchors.verticalCenter: switchMarketView.verticalCenter + anchors.left: parent.left + anchors.leftMargin: statusMargin + color: hifi.colors.white + text: "Check out other marketplaces" + } + + HiFiGlyphs { + id: statusIcon + anchors.right: statusLabel.left + anchors.verticalCenter: statusLabel.verticalCenter + text: hifi.glyphs.info + color: hifi.colors.white + size: hifi.fontSizes.tableHeadingIcon + } + + } + +} \ No newline at end of file From 8b62c0e71209263369f5056ea27f5a8a58d6f838 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Tue, 30 Aug 2016 11:49:49 -0700 Subject: [PATCH 09/27] switching over to a fork --- interface/resources/qml/Marketplaces.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 2e24e81a24..0422733063 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -89,7 +89,8 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter width: 150 text: "See all markets" - onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" + //onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" + onClicked: webview.url = "../../../scripts/system/html/marketplaces.html" } Controls.Label { From b18c0d5325feb2e24fd3a200344e4f79736795b5 Mon Sep 17 00:00:00 2001 From: samcake Date: Tue, 30 Aug 2016 12:44:35 -0700 Subject: [PATCH 10/27] Revert enabling sRGB for GLcontext pixel format --- libraries/gl/src/gl/Context.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/gl/src/gl/Context.cpp b/libraries/gl/src/gl/Context.cpp index f8712872ee..27e1e67560 100644 --- a/libraries/gl/src/gl/Context.cpp +++ b/libraries/gl/src/gl/Context.cpp @@ -205,8 +205,10 @@ void Context::create() { formatAttribs.push_back(24); formatAttribs.push_back(WGL_STENCIL_BITS_ARB); formatAttribs.push_back(8); - formatAttribs.push_back(WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB); - formatAttribs.push_back(GL_TRUE); +#ifdef NATIVE_SRGB_FRAMEBUFFER + // formatAttribs.push_back(WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB); + // formatAttribs.push_back(GL_TRUE); +#endif // terminate the list formatAttribs.push_back(0); UINT numFormats; From 074f9e0688b3b1dfa7f79b20922b74100d904270 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Tue, 30 Aug 2016 14:15:27 -0700 Subject: [PATCH 11/27] test to merge to status_bar branch --- interface/resources/qml/Marketplaces.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 0422733063..db20002409 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -90,6 +90,7 @@ Rectangle { width: 150 text: "See all markets" //onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" + //hello onClicked: webview.url = "../../../scripts/system/html/marketplaces.html" } From bbb80f4a55fad6a0d39a1b8b8111139510cbec02 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Tue, 30 Aug 2016 14:24:00 -0700 Subject: [PATCH 12/27] hello again --- interface/resources/qml/Marketplaces.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index db20002409..9d1b68653c 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -90,7 +90,7 @@ Rectangle { width: 150 text: "See all markets" //onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" - //hello + //hello again onClicked: webview.url = "../../../scripts/system/html/marketplaces.html" } From 488f49fc406998b26305e032f5c478b97692f5f0 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 31 Aug 2016 11:37:05 -0700 Subject: [PATCH 13/27] rm AudioRingBuffer random access mode --- libraries/audio/src/AudioRingBuffer.cpp | 18 +----------------- libraries/audio/src/AudioRingBuffer.h | 3 +-- libraries/audio/src/InboundAudioStream.cpp | 2 +- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index 96f1bbb9dd..9d3895353c 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -25,12 +25,11 @@ static const QString RING_BUFFER_OVERFLOW_DEBUG { "AudioRingBuffer::writeData has overflown the buffer. Overwriting old data." }; -AudioRingBuffer::AudioRingBuffer(int numFrameSamples, bool randomAccessMode, int numFramesCapacity) : +AudioRingBuffer::AudioRingBuffer(int numFrameSamples, int numFramesCapacity) : _frameCapacity(numFramesCapacity), _sampleCapacity(numFrameSamples * numFramesCapacity), _bufferLength(numFrameSamples * (numFramesCapacity + 1)), _numFrameSamples(numFrameSamples), - _randomAccessMode(randomAccessMode), _overflowCount(0) { if (numFrameSamples) { @@ -63,9 +62,6 @@ void AudioRingBuffer::resizeForFrameSize(int numFrameSamples) { _numFrameSamples = numFrameSamples; _buffer = new int16_t[_bufferLength]; memset(_buffer, 0, _bufferLength * sizeof(int16_t)); - if (_randomAccessMode) { - memset(_buffer, 0, _bufferLength * sizeof(int16_t)); - } reset(); } @@ -86,9 +82,6 @@ int AudioRingBuffer::readData(char *data, int maxSize) { // If we're in random access mode, then we consider our number of available read samples slightly // differently. Namely, if anything has been written, we say we have as many samples as they ask for // otherwise we say we have nothing available - if (_randomAccessMode) { - numReadSamples = _endOfLastWrite ? (maxSize / sizeof(int16_t)) : 0; - } if (_nextOutput + numReadSamples > _buffer + _bufferLength) { // we're going to need to do two reads to get this data, it wraps around the edge @@ -96,21 +89,12 @@ int AudioRingBuffer::readData(char *data, int maxSize) { // read to the end of the buffer int numSamplesToEnd = (_buffer + _bufferLength) - _nextOutput; memcpy(data, _nextOutput, numSamplesToEnd * sizeof(int16_t)); - if (_randomAccessMode) { - memset(_nextOutput, 0, numSamplesToEnd * sizeof(int16_t)); // clear it - } // read the rest from the beginning of the buffer memcpy(data + (numSamplesToEnd * sizeof(int16_t)), _buffer, (numReadSamples - numSamplesToEnd) * sizeof(int16_t)); - if (_randomAccessMode) { - memset(_buffer, 0, (numReadSamples - numSamplesToEnd) * sizeof(int16_t)); // clear it - } } else { // read the data memcpy(data, _nextOutput, numReadSamples * sizeof(int16_t)); - if (_randomAccessMode) { - memset(_nextOutput, 0, numReadSamples * sizeof(int16_t)); // clear it - } } // push the position of _nextOutput by the number of samples read diff --git a/libraries/audio/src/AudioRingBuffer.h b/libraries/audio/src/AudioRingBuffer.h index 2b25b1044b..86f32e183e 100644 --- a/libraries/audio/src/AudioRingBuffer.h +++ b/libraries/audio/src/AudioRingBuffer.h @@ -23,7 +23,7 @@ const int DEFAULT_RING_BUFFER_FRAME_CAPACITY = 10; class AudioRingBuffer { public: - AudioRingBuffer(int numFrameSamples, bool randomAccessMode = false, int numFramesCapacity = DEFAULT_RING_BUFFER_FRAME_CAPACITY); + AudioRingBuffer(int numFrameSamples, int numFramesCapacity = DEFAULT_RING_BUFFER_FRAME_CAPACITY); ~AudioRingBuffer(); void reset(); @@ -73,7 +73,6 @@ protected: int16_t* _nextOutput; int16_t* _endOfLastWrite; int16_t* _buffer; - bool _randomAccessMode; /// will this ringbuffer be used for random access? if so, do some special processing int _overflowCount; /// how many times has the ring buffer has overwritten old data diff --git a/libraries/audio/src/InboundAudioStream.cpp b/libraries/audio/src/InboundAudioStream.cpp index b908f57439..6b79879bb7 100644 --- a/libraries/audio/src/InboundAudioStream.cpp +++ b/libraries/audio/src/InboundAudioStream.cpp @@ -20,7 +20,7 @@ const int STARVE_HISTORY_CAPACITY = 50; InboundAudioStream::InboundAudioStream(int numFrameSamples, int numFramesCapacity, const Settings& settings) : - _ringBuffer(numFrameSamples, false, numFramesCapacity), + _ringBuffer(numFrameSamples, numFramesCapacity), _lastPopSucceeded(false), _lastPopOutput(), _dynamicJitterBuffers(settings._dynamicJitterBuffers), From b740b9802a1a4084e6f7b4b2b2289bd21400e3c9 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 31 Aug 2016 13:14:34 -0700 Subject: [PATCH 14/27] clean up AudioRingBuffer --- libraries/audio/src/AudioRingBuffer.cpp | 133 ++++++----- libraries/audio/src/AudioRingBuffer.h | 285 ++++++++++++++---------- 2 files changed, 229 insertions(+), 189 deletions(-) diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index 9d3895353c..7ded6f8106 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -24,32 +24,34 @@ #include "AudioRingBuffer.h" static const QString RING_BUFFER_OVERFLOW_DEBUG { "AudioRingBuffer::writeData has overflown the buffer. Overwriting old data." }; +static const QString DROPPED_SILENT_DEBUG { "AudioRingBuffer::addSilentSamples dropping silent samples to prevent overflow." }; AudioRingBuffer::AudioRingBuffer(int numFrameSamples, int numFramesCapacity) : + _numFrameSamples(numFrameSamples), _frameCapacity(numFramesCapacity), _sampleCapacity(numFrameSamples * numFramesCapacity), - _bufferLength(numFrameSamples * (numFramesCapacity + 1)), - _numFrameSamples(numFrameSamples), - _overflowCount(0) + _bufferLength(numFrameSamples * (numFramesCapacity + 1)) { if (numFrameSamples) { _buffer = new int16_t[_bufferLength]; memset(_buffer, 0, _bufferLength * sizeof(int16_t)); _nextOutput = _buffer; _endOfLastWrite = _buffer; - } else { - _buffer = NULL; - _nextOutput = NULL; - _endOfLastWrite = NULL; } - static QString repeatedMessage = LogHandler::getInstance().addRepeatedMessageRegex(RING_BUFFER_OVERFLOW_DEBUG); + static QString repeatedOverflowMessage = LogHandler::getInstance().addRepeatedMessageRegex(RING_BUFFER_OVERFLOW_DEBUG); + static QString repeatedDroppedMessage = LogHandler::getInstance().addRepeatedMessageRegex(DROPPED_SILENT_DEBUG); }; AudioRingBuffer::~AudioRingBuffer() { delete[] _buffer; } +void AudioRingBuffer::clear() { + _endOfLastWrite = _buffer; + _nextOutput = _buffer; +} + void AudioRingBuffer::reset() { clear(); _overflowCount = 0; @@ -57,93 +59,93 @@ void AudioRingBuffer::reset() { void AudioRingBuffer::resizeForFrameSize(int numFrameSamples) { delete[] _buffer; + _numFrameSamples = numFrameSamples; _sampleCapacity = numFrameSamples * _frameCapacity; _bufferLength = numFrameSamples * (_frameCapacity + 1); - _numFrameSamples = numFrameSamples; - _buffer = new int16_t[_bufferLength]; - memset(_buffer, 0, _bufferLength * sizeof(int16_t)); - reset(); -} -void AudioRingBuffer::clear() { - _endOfLastWrite = _buffer; - _nextOutput = _buffer; + if (numFrameSamples) { + _buffer = new int16_t[_bufferLength]; + memset(_buffer, 0, _bufferLength * sizeof(int16_t)); + } else { + _buffer = nullptr; + } + + reset(); } int AudioRingBuffer::readSamples(int16_t* destination, int maxSamples) { return readData((char*)destination, maxSamples * sizeof(int16_t)) / sizeof(int16_t); } +int AudioRingBuffer::writeSamples(const int16_t* source, int maxSamples) { + return writeData((char*)source, maxSamples * sizeof(int16_t)) / sizeof(int16_t); +} + int AudioRingBuffer::readData(char *data, int maxSize) { - // only copy up to the number of samples we have available - int numReadSamples = std::min((int)(maxSize / sizeof(int16_t)), samplesAvailable()); - - // If we're in random access mode, then we consider our number of available read samples slightly - // differently. Namely, if anything has been written, we say we have as many samples as they ask for - // otherwise we say we have nothing available + int maxSamples = maxSize / sizeof(int16_t); + int numReadSamples = std::min(maxSamples, samplesAvailable()); if (_nextOutput + numReadSamples > _buffer + _bufferLength) { // we're going to need to do two reads to get this data, it wraps around the edge + int numSamplesToEnd = (_buffer + _bufferLength) - _nextOutput; // read to the end of the buffer - int numSamplesToEnd = (_buffer + _bufferLength) - _nextOutput; memcpy(data, _nextOutput, numSamplesToEnd * sizeof(int16_t)); // read the rest from the beginning of the buffer memcpy(data + (numSamplesToEnd * sizeof(int16_t)), _buffer, (numReadSamples - numSamplesToEnd) * sizeof(int16_t)); } else { - // read the data memcpy(data, _nextOutput, numReadSamples * sizeof(int16_t)); } - // push the position of _nextOutput by the number of samples read - _nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, numReadSamples); + shiftReadPosition(numReadSamples); return numReadSamples * sizeof(int16_t); } -int AudioRingBuffer::writeSamples(const int16_t* source, int maxSamples) { - return writeData((const char*)source, maxSamples * sizeof(int16_t)) / sizeof(int16_t); -} - int AudioRingBuffer::writeData(const char* data, int maxSize) { - // make sure we have enough bytes left for this to be the right amount of audio - // otherwise we should not copy that data, and leave the buffer pointers where they are - int samplesToCopy = std::min((int)(maxSize / sizeof(int16_t)), _sampleCapacity); - + // only copy up to the number of samples we have capacity for + int maxSamples = maxSize / sizeof(int16_t); + int numWriteSamples = std::min(maxSamples, _sampleCapacity); int samplesRoomFor = _sampleCapacity - samplesAvailable(); - if (samplesToCopy > samplesRoomFor) { - // there's not enough room for this write. erase old data to make room for this new data - int samplesToDelete = samplesToCopy - samplesRoomFor; + + if (numWriteSamples > samplesRoomFor) { + // there's not enough room for this write. erase old data to make room for this new data + int samplesToDelete = numWriteSamples - samplesRoomFor; _nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, samplesToDelete); _overflowCount++; qCDebug(audio) << qPrintable(RING_BUFFER_OVERFLOW_DEBUG); } - if (_endOfLastWrite + samplesToCopy <= _buffer + _bufferLength) { - memcpy(_endOfLastWrite, data, samplesToCopy * sizeof(int16_t)); - } else { + if (_endOfLastWrite + numWriteSamples > _buffer + _bufferLength) { + // we're going to need to do two writes to set this data, it wraps around the edge int numSamplesToEnd = (_buffer + _bufferLength) - _endOfLastWrite; + + // write to the end of the buffer memcpy(_endOfLastWrite, data, numSamplesToEnd * sizeof(int16_t)); - memcpy(_buffer, data + (numSamplesToEnd * sizeof(int16_t)), (samplesToCopy - numSamplesToEnd) * sizeof(int16_t)); + + // write the rest to the beginning of the buffer + memcpy(_buffer, data + (numSamplesToEnd * sizeof(int16_t)), (numWriteSamples - numSamplesToEnd) * sizeof(int16_t)); + } else { + memcpy(_endOfLastWrite, data, numWriteSamples * sizeof(int16_t)); } - _endOfLastWrite = shiftedPositionAccomodatingWrap(_endOfLastWrite, samplesToCopy); + _endOfLastWrite = shiftedPositionAccomodatingWrap(_endOfLastWrite, numWriteSamples); - return samplesToCopy * sizeof(int16_t); + return numWriteSamples * sizeof(int16_t); } -int16_t& AudioRingBuffer::operator[](const int index) { +inline int16_t& AudioRingBuffer::operator[](const int index) { return *shiftedPositionAccomodatingWrap(_nextOutput, index); } -const int16_t& AudioRingBuffer::operator[] (const int index) const { +inline const int16_t& AudioRingBuffer::operator[] (const int index) const { return *shiftedPositionAccomodatingWrap(_nextOutput, index); } -void AudioRingBuffer::shiftReadPosition(unsigned int numSamples) { +inline void AudioRingBuffer::shiftReadPosition(unsigned int numSamples) { _nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, numSamples); } @@ -160,35 +162,31 @@ int AudioRingBuffer::samplesAvailable() const { } int AudioRingBuffer::addSilentSamples(int silentSamples) { - + // NOTE: This implementation is nearly identical to writeData save for s/memcpy/memset, refer to comments there + int numWriteSamples = std::min(silentSamples, _sampleCapacity); int samplesRoomFor = _sampleCapacity - samplesAvailable(); - if (silentSamples > samplesRoomFor) { - // there's not enough room for this write. write as many silent samples as we have room for - silentSamples = samplesRoomFor; - static const QString DROPPED_SILENT_DEBUG { - "AudioRingBuffer::addSilentSamples dropping silent samples to prevent overflow." - }; - static QString repeatedMessage = LogHandler::getInstance().addRepeatedMessageRegex(DROPPED_SILENT_DEBUG); + if (numWriteSamples > samplesRoomFor) { + numWriteSamples = samplesRoomFor; + qCDebug(audio) << qPrintable(DROPPED_SILENT_DEBUG); } - // memset zeroes into the buffer, accomodate a wrap around the end - // push the _endOfLastWrite to the correct spot - if (_endOfLastWrite + silentSamples <= _buffer + _bufferLength) { - memset(_endOfLastWrite, 0, silentSamples * sizeof(int16_t)); - } else { + if (_endOfLastWrite + numWriteSamples > _buffer + _bufferLength) { int numSamplesToEnd = (_buffer + _bufferLength) - _endOfLastWrite; memset(_endOfLastWrite, 0, numSamplesToEnd * sizeof(int16_t)); - memset(_buffer, 0, (silentSamples - numSamplesToEnd) * sizeof(int16_t)); + memset(_buffer, 0, (numWriteSamples - numSamplesToEnd) * sizeof(int16_t)); + } else { + memset(_endOfLastWrite, 0, numWriteSamples * sizeof(int16_t)); } - _endOfLastWrite = shiftedPositionAccomodatingWrap(_endOfLastWrite, silentSamples); - return silentSamples; + _endOfLastWrite = shiftedPositionAccomodatingWrap(_endOfLastWrite, numWriteSamples); + + return numWriteSamples; } int16_t* AudioRingBuffer::shiftedPositionAccomodatingWrap(int16_t* position, int numSamplesShift) const { - + // NOTE: It is possible to shift out-of-bounds if (|numSamplesShift| > 2 * _bufferLength), but this should not occur if (numSamplesShift > 0 && position + numSamplesShift >= _buffer + _bufferLength) { // this shift will wrap the position around to the beginning of the ring return position + numSamplesShift - _bufferLength; @@ -203,11 +201,12 @@ int16_t* AudioRingBuffer::shiftedPositionAccomodatingWrap(int16_t* position, int float AudioRingBuffer::getFrameLoudness(const int16_t* frameStart) const { float loudness = 0.0f; const int16_t* sampleAt = frameStart; - const int16_t* _bufferLastAt = _buffer + _bufferLength - 1; + const int16_t* bufferLastAt = _buffer + _bufferLength - 1; for (int i = 0; i < _numFrameSamples; ++i) { loudness += (float) std::abs(*sampleAt); - sampleAt = sampleAt == _bufferLastAt ? _buffer : sampleAt + 1; + // wrap if necessary + sampleAt = sampleAt == bufferLastAt ? _buffer : sampleAt + 1; } loudness /= _numFrameSamples; loudness /= AudioConstants::MAX_SAMPLE_VALUE; @@ -222,10 +221,6 @@ float AudioRingBuffer::getFrameLoudness(ConstIterator frameStart) const { return getFrameLoudness(&(*frameStart)); } -float AudioRingBuffer::getNextOutputFrameLoudness() const { - return getFrameLoudness(_nextOutput); -} - int AudioRingBuffer::writeSamples(ConstIterator source, int maxSamples) { int samplesToCopy = std::min(maxSamples, _sampleCapacity); int samplesRoomFor = _sampleCapacity - samplesAvailable(); diff --git a/libraries/audio/src/AudioRingBuffer.h b/libraries/audio/src/AudioRingBuffer.h index 86f32e183e..00d80c7f32 100644 --- a/libraries/audio/src/AudioRingBuffer.h +++ b/libraries/audio/src/AudioRingBuffer.h @@ -26,69 +26,66 @@ public: AudioRingBuffer(int numFrameSamples, int numFramesCapacity = DEFAULT_RING_BUFFER_FRAME_CAPACITY); ~AudioRingBuffer(); - void reset(); - void resizeForFrameSize(int numFrameSamples); + // disallow copying + AudioRingBuffer(const AudioRingBuffer&) = delete; + AudioRingBuffer(AudioRingBuffer&&) = delete; + AudioRingBuffer& operator=(const AudioRingBuffer&) = delete; + /// Invalidate any data in the buffer void clear(); - int getSampleCapacity() const { return _sampleCapacity; } - int getFrameCapacity() const { return _frameCapacity; } + /// Clear and reset the overflow count + void reset(); + /// Resize frame size (causes a reset()) + // FIXME: discards any data in the buffer + void resizeForFrameSize(int numFrameSamples); + + /// Read up to maxSamples into destination (will only read up to samplesAvailable()) + /// Returns number of read samples int readSamples(int16_t* destination, int maxSamples); + + /// Write up to maxSamples from source (will only write up to sample capacity) + /// Returns number of written samples int writeSamples(const int16_t* source, int maxSamples); - int readData(char* data, int maxSize); - int writeData(const char* data, int maxSize); + /// Write up to maxSamples silent samples (will only write until other data exists in the buffer) + /// This method will not overwrite existing data in the buffer, instead dropping silent samples that would overflow + /// Returns number of written silent samples + int addSilentSamples(int maxSamples); + /// Read up to maxSize into destination + /// Returns number of read bytes + int readData(char* destination, int maxSize); + + /// Write up to maxSize from source + /// Returns number of written bytes + int writeData(const char* source, int maxSize); + + /// Returns a reference to the index-th sample offset from the current read sample int16_t& operator[](const int index); const int16_t& operator[] (const int index) const; + /// Essentially discards the next numSamples from the ring buffer + /// NOTE: This is not checked - it is possible to shift past written data + /// Use samplesAvailable() to see the distance a valid shift can go void shiftReadPosition(unsigned int numSamples); - float getNextOutputFrameLoudness() const; - int samplesAvailable() const; int framesAvailable() const { return (_numFrameSamples == 0) ? 0 : samplesAvailable() / _numFrameSamples; } + float getNextOutputFrameLoudness() const { return getFrameLoudness(_nextOutput); } + int getNumFrameSamples() const { return _numFrameSamples; } + int getFrameCapacity() const { return _frameCapacity; } + int getSampleCapacity() const { return _sampleCapacity; } + /// Return times the ring buffer has overwritten old data + int getOverflowCount() const { return _overflowCount; } - int getOverflowCount() const { return _overflowCount; } /// how many times has the ring buffer has overwritten old data - - int addSilentSamples(int samples); - -private: - float getFrameLoudness(const int16_t* frameStart) const; - -protected: - // disallow copying of AudioRingBuffer objects - AudioRingBuffer(const AudioRingBuffer&); - AudioRingBuffer& operator= (const AudioRingBuffer&); - - int16_t* shiftedPositionAccomodatingWrap(int16_t* position, int numSamplesShift) const; - - int _frameCapacity; - int _sampleCapacity; - int _bufferLength; // actual length of _buffer: will be one frame larger than _sampleCapacity - int _numFrameSamples; - int16_t* _nextOutput; - int16_t* _endOfLastWrite; - int16_t* _buffer; - - int _overflowCount; /// how many times has the ring buffer has overwritten old data - -public: - class ConstIterator { //public std::iterator < std::forward_iterator_tag, int16_t > { + class ConstIterator { public: - ConstIterator() - : _bufferLength(0), - _bufferFirst(NULL), - _bufferLast(NULL), - _at(NULL) {} - ConstIterator(int16_t* bufferFirst, int capacity, int16_t* at) - : _bufferLength(capacity), - _bufferFirst(bufferFirst), - _bufferLast(bufferFirst + capacity - 1), - _at(at) {} + ConstIterator(); + ConstIterator(int16_t* bufferFirst, int capacity, int16_t* at); ConstIterator(const ConstIterator& rhs) = default; bool isNull() const { return _at == NULL; } @@ -97,95 +94,143 @@ public: bool operator!=(const ConstIterator& rhs) { return _at != rhs._at; } const int16_t& operator*() { return *_at; } - ConstIterator& operator=(const ConstIterator& rhs) { - _bufferLength = rhs._bufferLength; - _bufferFirst = rhs._bufferFirst; - _bufferLast = rhs._bufferLast; - _at = rhs._at; - return *this; - } + ConstIterator& operator=(const ConstIterator& rhs); + ConstIterator& operator++(); + ConstIterator operator++(int); + ConstIterator& operator--(); + ConstIterator operator--(int); + const int16_t& operator[] (int i); + ConstIterator operator+(int i); + ConstIterator operator-(int i); - ConstIterator& operator++() { - _at = (_at == _bufferLast) ? _bufferFirst : _at + 1; - return *this; - } - - ConstIterator operator++(int) { - ConstIterator tmp(*this); - ++(*this); - return tmp; - } - - ConstIterator& operator--() { - _at = (_at == _bufferFirst) ? _bufferLast : _at - 1; - return *this; - } - - ConstIterator operator--(int) { - ConstIterator tmp(*this); - --(*this); - return tmp; - } - - const int16_t& operator[] (int i) { - return *atShiftedBy(i); - } - - ConstIterator operator+(int i) { - return ConstIterator(_bufferFirst, _bufferLength, atShiftedBy(i)); - } - - ConstIterator operator-(int i) { - return ConstIterator(_bufferFirst, _bufferLength, atShiftedBy(-i)); - } - - void readSamples(int16_t* dest, int numSamples) { - auto samplesToEnd = _bufferLast - _at + 1; - - if (samplesToEnd >= numSamples) { - memcpy(dest, _at, numSamples * sizeof(int16_t)); - _at += numSamples; - } else { - auto samplesFromStart = numSamples - samplesToEnd; - memcpy(dest, _at, samplesToEnd * sizeof(int16_t)); - memcpy(dest + samplesToEnd, _bufferFirst, samplesFromStart * sizeof(int16_t)); - - _at = _bufferFirst + samplesFromStart; - } - } - - void readSamplesWithFade(int16_t* dest, int numSamples, float fade) { - int16_t* at = _at; - for (int i = 0; i < numSamples; i++) { - *dest = (float)*at * fade; - ++dest; - at = (at == _bufferLast) ? _bufferFirst : at + 1; - } - } + void readSamples(int16_t* dest, int numSamples); + void readSamplesWithFade(int16_t* dest, int numSamples, float fade); private: - int16_t* atShiftedBy(int i) { - i = (_at - _bufferFirst + i) % _bufferLength; - if (i < 0) { - i += _bufferLength; - } - return _bufferFirst + i; - } + int16_t* atShiftedBy(int i); - private: int _bufferLength; int16_t* _bufferFirst; int16_t* _bufferLast; int16_t* _at; }; - ConstIterator nextOutput() const { return ConstIterator(_buffer, _bufferLength, _nextOutput); } - ConstIterator lastFrameWritten() const { return ConstIterator(_buffer, _bufferLength, _endOfLastWrite) - _numFrameSamples; } - - float getFrameLoudness(ConstIterator frameStart) const; + ConstIterator nextOutput() const; + ConstIterator lastFrameWritten() const; int writeSamples(ConstIterator source, int maxSamples); int writeSamplesWithFade(ConstIterator source, int maxSamples, float fade); + + float getFrameLoudness(ConstIterator frameStart) const; + +protected: + int16_t* shiftedPositionAccomodatingWrap(int16_t* position, int numSamplesShift) const; + float getFrameLoudness(const int16_t* frameStart) const; + + int _numFrameSamples; + int _frameCapacity; + int _sampleCapacity; + int _bufferLength; // actual _buffer length (_sampleCapacity + 1) + int _overflowCount{ 0 }; // times the ring buffer has overwritten data + + int16_t* _nextOutput{ nullptr }; + int16_t* _endOfLastWrite{ nullptr }; + int16_t* _buffer{ nullptr }; }; +// inline the iterator: +inline AudioRingBuffer::ConstIterator::ConstIterator() : + _bufferLength(0), + _bufferFirst(NULL), + _bufferLast(NULL), + _at(NULL) {} + +inline AudioRingBuffer::ConstIterator::ConstIterator(int16_t* bufferFirst, int capacity, int16_t* at) : + _bufferLength(capacity), + _bufferFirst(bufferFirst), + _bufferLast(bufferFirst + capacity - 1), + _at(at) {} + +inline AudioRingBuffer::ConstIterator& AudioRingBuffer::ConstIterator::operator=(const ConstIterator& rhs) { + _bufferLength = rhs._bufferLength; + _bufferFirst = rhs._bufferFirst; + _bufferLast = rhs._bufferLast; + _at = rhs._at; + return *this; +} + +inline AudioRingBuffer::ConstIterator& AudioRingBuffer::ConstIterator::operator++() { + _at = (_at == _bufferLast) ? _bufferFirst : _at + 1; + return *this; +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::ConstIterator::operator++(int) { + ConstIterator tmp(*this); + ++(*this); + return tmp; +} + +inline AudioRingBuffer::ConstIterator& AudioRingBuffer::ConstIterator::operator--() { + _at = (_at == _bufferFirst) ? _bufferLast : _at - 1; + return *this; +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::ConstIterator::operator--(int) { + ConstIterator tmp(*this); + --(*this); + return tmp; +} + +inline const int16_t& AudioRingBuffer::ConstIterator::operator[] (int i) { + return *atShiftedBy(i); +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::ConstIterator::operator+(int i) { + return ConstIterator(_bufferFirst, _bufferLength, atShiftedBy(i)); +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::ConstIterator::operator-(int i) { + return ConstIterator(_bufferFirst, _bufferLength, atShiftedBy(-i)); +} + +inline int16_t* AudioRingBuffer::ConstIterator::atShiftedBy(int i) { + i = (_at - _bufferFirst + i) % _bufferLength; + if (i < 0) { + i += _bufferLength; + } + return _bufferFirst + i; +} + +inline void AudioRingBuffer::ConstIterator::readSamples(int16_t* dest, int numSamples) { + auto samplesToEnd = _bufferLast - _at + 1; + + if (samplesToEnd >= numSamples) { + memcpy(dest, _at, numSamples * sizeof(int16_t)); + _at += numSamples; + } else { + auto samplesFromStart = numSamples - samplesToEnd; + memcpy(dest, _at, samplesToEnd * sizeof(int16_t)); + memcpy(dest + samplesToEnd, _bufferFirst, samplesFromStart * sizeof(int16_t)); + + _at = _bufferFirst + samplesFromStart; + } +} + +inline void AudioRingBuffer::ConstIterator::readSamplesWithFade(int16_t* dest, int numSamples, float fade) { + int16_t* at = _at; + for (int i = 0; i < numSamples; i++) { + *dest = (float)*at * fade; + ++dest; + at = (at == _bufferLast) ? _bufferFirst : at + 1; + } +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::nextOutput() const { + return ConstIterator(_buffer, _bufferLength, _nextOutput); +} + +inline AudioRingBuffer::ConstIterator AudioRingBuffer::lastFrameWritten() const { + return ConstIterator(_buffer, _bufferLength, _endOfLastWrite) - _numFrameSamples; +} + #endif // hifi_AudioRingBuffer_h From b131338dd0cce16e3067fc72766323e10361c157 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Wed, 31 Aug 2016 14:13:26 -0700 Subject: [PATCH 15/27] Injected script to remove other file types from download options --- interface/resources/qml/Marketplaces.qml | 43 +++++++++++-------- .../src/FileScriptingInterface.cpp | 5 +++ .../src/FileScriptingInterface.h | 1 + 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 90d12d4633..91e65acb8e 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -25,27 +25,19 @@ Rectangle { HifiConstants { id: hifi } id: marketplace anchors.fill: parent - property var currentUrl: "https://metaverse.highfidelity.com/marketplace" + property var marketplacesUrl: "../../scripts/system/html/marketplaces.html" property int statusBarHeight: 50 property int statusMargin: 50 + property string standardMessage: "Check out other marketplaces" + property string claraMessage: "Choose a model from the list and click Download -> Autodesk FBX" Controls.BaseWebView { id: webview - url: currentUrl + url: marketplacesUrl anchors.top: marketplace.top width: parent.width height: parent.height - statusBarHeight focus: true - newWindowHook: function (component, newWindow) { - if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(autoCancel); - zipTimer.handler = function() { - console.log("timer started", newWindow) - newWindow.destroy(); - } - zipTimer.start(); - } - } Timer { id: zipTimer @@ -63,13 +55,24 @@ Rectangle { element.removeClass("download-file"); element.removeAttr("download");' + property var checkFileType: "$('[data-extension]:not([data-extension=\"fbx\"])').parent().remove()" + onLinkHovered: { desktop.currentUrl = hoveredUrl; - // add an error message for non-fbx files - if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(simpleDownload, function(){console.log("ran the JS");}); - } + if (File.isClaraLink(desktop.currentUrl)) { + //runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); + if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); + } + } + } + onLoadingChanged: { + if (File.isClaraLink(webview.url)) { + statusLabel.text = claraMessage; + } else { + statusLabel.text = standardMessage; + } } } @@ -89,8 +92,10 @@ Rectangle { anchors.verticalCenter: parent.verticalCenter width: 150 text: "See all markets" - //onClicked: webview.url = "file:///E:/GitHub/hifi/scripts/system/html/marketplaces.html" - onClicked: webview.url = "../../scripts/system/html/marketplaces.html" + onClicked: { + webview.url = "../../scripts/system/html/marketplaces.html"; + statusLabel.text = standardMessage; + } } Controls.Label { @@ -99,7 +104,7 @@ Rectangle { anchors.left: parent.left anchors.leftMargin: statusMargin color: hifi.colors.white - text: "Check out other marketplaces" + text: standardMessage } HiFiGlyphs { diff --git a/libraries/script-engine/src/FileScriptingInterface.cpp b/libraries/script-engine/src/FileScriptingInterface.cpp index fa38e46d31..46bcd66ede 100644 --- a/libraries/script-engine/src/FileScriptingInterface.cpp +++ b/libraries/script-engine/src/FileScriptingInterface.cpp @@ -69,6 +69,11 @@ bool FileScriptingInterface::isTempDir(QString tempDir) { return false; } +bool FileScriptingInterface::isClaraLink(QUrl url) { + if (url.toString().contains("clara") && !url.toString().contains("clara.io/signup")) return true; + return false; +} + bool FileScriptingInterface::isZippedFbx(QUrl url) { if (url.toString().contains(".zip") && url.toString().contains("fbx")) return true; return false; diff --git a/libraries/script-engine/src/FileScriptingInterface.h b/libraries/script-engine/src/FileScriptingInterface.h index dd6ca3225b..976a9a0097 100644 --- a/libraries/script-engine/src/FileScriptingInterface.h +++ b/libraries/script-engine/src/FileScriptingInterface.h @@ -25,6 +25,7 @@ public: public slots: bool isZippedFbx(QUrl url); + bool isClaraLink(QUrl url); QString convertUrlToPath(QUrl url); void runUnzip(QString path, QUrl url); QString getTempDir(); From ba96ab25dce8ffe307033964f46e326d8e893213 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 31 Aug 2016 14:43:44 -0700 Subject: [PATCH 16/27] inline some AudioRingBuffer definitions --- libraries/audio/src/AudioRingBuffer.cpp | 12 ------------ libraries/audio/src/AudioRingBuffer.h | 6 +++--- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index 7ded6f8106..b088e94871 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -137,18 +137,6 @@ int AudioRingBuffer::writeData(const char* data, int maxSize) { return numWriteSamples * sizeof(int16_t); } -inline int16_t& AudioRingBuffer::operator[](const int index) { - return *shiftedPositionAccomodatingWrap(_nextOutput, index); -} - -inline const int16_t& AudioRingBuffer::operator[] (const int index) const { - return *shiftedPositionAccomodatingWrap(_nextOutput, index); -} - -inline void AudioRingBuffer::shiftReadPosition(unsigned int numSamples) { - _nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, numSamples); -} - int AudioRingBuffer::samplesAvailable() const { if (!_endOfLastWrite) { return 0; diff --git a/libraries/audio/src/AudioRingBuffer.h b/libraries/audio/src/AudioRingBuffer.h index 00d80c7f32..7ccb32ce10 100644 --- a/libraries/audio/src/AudioRingBuffer.h +++ b/libraries/audio/src/AudioRingBuffer.h @@ -63,13 +63,13 @@ public: int writeData(const char* source, int maxSize); /// Returns a reference to the index-th sample offset from the current read sample - int16_t& operator[](const int index); - const int16_t& operator[] (const int index) const; + int16_t& operator[](const int index) { return *shiftedPositionAccomodatingWrap(_nextOutput, index); } + const int16_t& operator[] (const int index) const { return *shiftedPositionAccomodatingWrap(_nextOutput, index); } /// Essentially discards the next numSamples from the ring buffer /// NOTE: This is not checked - it is possible to shift past written data /// Use samplesAvailable() to see the distance a valid shift can go - void shiftReadPosition(unsigned int numSamples); + void shiftReadPosition(unsigned int numSamples) { _nextOutput = shiftedPositionAccomodatingWrap(_nextOutput, numSamples); } int samplesAvailable() const; int framesAvailable() const { return (_numFrameSamples == 0) ? 0 : samplesAvailable() / _numFrameSamples; } From 4d4a68d706e1ea760f7f5cfd03e30019fd512505 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 31 Aug 2016 14:44:45 -0700 Subject: [PATCH 17/27] add FIXME about loudness in AudioRingBuffer --- libraries/audio/src/AudioRingBuffer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index b088e94871..260c682cde 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -187,6 +187,7 @@ int16_t* AudioRingBuffer::shiftedPositionAccomodatingWrap(int16_t* position, int } float AudioRingBuffer::getFrameLoudness(const int16_t* frameStart) const { + // FIXME: This is a bad measure of loudness - normal estimation uses sqrt(sum(x*x)) float loudness = 0.0f; const int16_t* sampleAt = frameStart; const int16_t* bufferLastAt = _buffer + _bufferLength - 1; From 9748a17abee7b3c97e8dd015f7d341ce739e0e50 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Wed, 31 Aug 2016 15:22:28 -0700 Subject: [PATCH 18/27] checking out to try new branch --- interface/resources/qml/Marketplaces.qml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 91e65acb8e..aa6b0c90eb 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -59,12 +59,10 @@ Rectangle { onLinkHovered: { desktop.currentUrl = hoveredUrl; - if (File.isClaraLink(desktop.currentUrl)) { - //runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); - if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); - } - } + runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); + if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); + } } onLoadingChanged: { From 5c40e9a8f54bd8e548834d97d68bfef1a2da0ad2 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Wed, 31 Aug 2016 15:39:29 -0700 Subject: [PATCH 19/27] Restored download ability and removed extra file types from download options --- interface/resources/qml/Marketplaces.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index aa6b0c90eb..3acd90d6a1 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -73,6 +73,19 @@ Rectangle { } } + onNewViewRequested: { + var component = Qt.createComponent("Browser.qml"); + var newWindow = component.createObject(desktop); + request.openIn(newWindow.webView); + if (File.isZippedFbx(desktop.currentUrl)) { + zipTimer.handler = function() { + newWindow.destroy(); + runJavaScript(autoCancel); + } + zipTimer.start(); + } + } + } Rectangle { From bebf9c5890a03522abda62306e96f3203d8e1518 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Wed, 31 Aug 2016 17:46:35 -0700 Subject: [PATCH 20/27] Added error feature when user tries to download a non fbx file --- interface/resources/qml/Marketplaces.qml | 44 ++++++++++++++++--- .../src/FileScriptingInterface.cpp | 7 +++ .../src/FileScriptingInterface.h | 1 + scripts/system/html/css/marketplaces.css | 2 + scripts/system/marketplaces/clara.js | 4 +- 5 files changed, 51 insertions(+), 7 deletions(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 3acd90d6a1..8e6fe51245 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -28,8 +28,9 @@ Rectangle { property var marketplacesUrl: "../../scripts/system/html/marketplaces.html" property int statusBarHeight: 50 property int statusMargin: 50 - property string standardMessage: "Check out other marketplaces" - property string claraMessage: "Choose a model from the list and click Download -> Autodesk FBX" + property string standardMessage: "Check out other marketplaces." + property string claraMessage: "Choose a model and click Download -> Autodesk FBX." + property string claraError: "High Fidelity only supports Autodesk FBX models." Controls.BaseWebView { id: webview @@ -48,18 +49,48 @@ Rectangle { onTriggered: handler(); } + Timer { + id: alertTimer + running: false + repeat: false + interval: 9000 + property var handler; + onTriggered: handler(); + } + property var autoCancel: 'var element = $("a.btn.cancel"); element.click();' property var simpleDownload: 'var element = $("a.download-file"); element.removeClass("download-file"); element.removeAttr("download");' + + function displayErrorStatus() { + alertTimer.handler = function() { + statusLabel.text = claraMessage; + statusBar.color = hifi.colors.blueHighlight; + statusIcon.text = hifi.glyphs.info; + } + alertTimer.start(); + } - property var checkFileType: "$('[data-extension]:not([data-extension=\"fbx\"])').parent().remove()" + property var notFbxHandler: 'var element = $("a.btn.btn-primary.viewer-button.download-file") + element.click();' + + // this code is for removing other file types from Clara.io's download options + //property var checkFileType: "$('[data-extension]:not([data-extension=\"fbx\"])').parent().remove()" onLinkHovered: { desktop.currentUrl = hoveredUrl; - runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); + //runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); + + if (File.isNotFbx(desktop.currentUrl)) { + statusLabel.text = claraError; + statusBar.color = hifi.colors.redHighlight; + statusIcon.text = hifi.glyphs.alert; + runJavaScript(notFbxHandler, displayErrorStatus()); + } + if (File.isZippedFbx(desktop.currentUrl)) { runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); } @@ -71,6 +102,8 @@ Rectangle { } else { statusLabel.text = standardMessage; } + statusBar.color = hifi.colors.blueHighlight; + statusIcon.text = hifi.glyphs.info; } onNewViewRequested: { @@ -78,9 +111,9 @@ Rectangle { var newWindow = component.createObject(desktop); request.openIn(newWindow.webView); if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(autoCancel); zipTimer.handler = function() { newWindow.destroy(); - runJavaScript(autoCancel); } zipTimer.start(); } @@ -116,6 +149,7 @@ Rectangle { anchors.leftMargin: statusMargin color: hifi.colors.white text: standardMessage + size: 18 } HiFiGlyphs { diff --git a/libraries/script-engine/src/FileScriptingInterface.cpp b/libraries/script-engine/src/FileScriptingInterface.cpp index 46bcd66ede..88d6f348aa 100644 --- a/libraries/script-engine/src/FileScriptingInterface.cpp +++ b/libraries/script-engine/src/FileScriptingInterface.cpp @@ -69,11 +69,18 @@ bool FileScriptingInterface::isTempDir(QString tempDir) { return false; } +// checks whether the webview is displaying a Clara.io page for Marketplaces.qml bool FileScriptingInterface::isClaraLink(QUrl url) { if (url.toString().contains("clara") && !url.toString().contains("clara.io/signup")) return true; return false; } +// checks whether a user tries to download a file that is not in .fbx format +bool FileScriptingInterface::isNotFbx(QUrl url) { + if (url.toString().contains(".zip") && !(url.toString().contains("fbx") )) return true; + return false; +} + bool FileScriptingInterface::isZippedFbx(QUrl url) { if (url.toString().contains(".zip") && url.toString().contains("fbx")) return true; return false; diff --git a/libraries/script-engine/src/FileScriptingInterface.h b/libraries/script-engine/src/FileScriptingInterface.h index 976a9a0097..ffb10d7ada 100644 --- a/libraries/script-engine/src/FileScriptingInterface.h +++ b/libraries/script-engine/src/FileScriptingInterface.h @@ -24,6 +24,7 @@ public: public slots: + bool isNotFbx(QUrl url); bool isZippedFbx(QUrl url); bool isClaraLink(QUrl url); QString convertUrlToPath(QUrl url); diff --git a/scripts/system/html/css/marketplaces.css b/scripts/system/html/css/marketplaces.css index e516715c03..734501f3fc 100644 --- a/scripts/system/html/css/marketplaces.css +++ b/scripts/system/html/css/marketplaces.css @@ -8,6 +8,7 @@ body { background: white; padding: 0 0 0 0; + font-family:Raleway-SemiBold; } .marketplaces-container { display: inline-block; @@ -38,6 +39,7 @@ body { width: 62%; } .exploreButton { + font-size: 16px !important; width: 200px !important; height: 45px !important; margin-top: 20px; diff --git a/scripts/system/marketplaces/clara.js b/scripts/system/marketplaces/clara.js index b6e79f04e2..a04400497f 100644 --- a/scripts/system/marketplaces/clara.js +++ b/scripts/system/marketplaces/clara.js @@ -21,8 +21,8 @@ var MARKETPLACE_URL = "https://metaverse.highfidelity.com/marketplace"; var marketplaceWindow = new OverlayWindow({ title: "Marketplace", source: qml, - width: 900, - height: 700, + width: 1000, + height: 900, toolWindow: false, visible: false, }); From 288ba967953e94c4461c006e6fad6cef2724147c Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Wed, 31 Aug 2016 17:47:16 -0700 Subject: [PATCH 21/27] reverted default scripts to load marketplace.js --- scripts/defaultScripts.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 2b97125ed2..98825c594d 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -18,8 +18,7 @@ var DEFAULT_SCRIPTS = [ "system/mute.js", "system/goto.js", "system/hmd.js", - //"system/marketplaces/marketplace.js", - "system/marketplaces/clara.js", + "system/marketplaces/marketplace.js", "system/edit.js", "system/mod.js", "system/selectAudioDevice.js", From 18700d6397671ad4c42b1ea56dbb5e38af4083ea Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Fri, 2 Sep 2016 15:18:13 -0700 Subject: [PATCH 22/27] narrowed filters for Clara website check --- libraries/script-engine/src/FileScriptingInterface.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/script-engine/src/FileScriptingInterface.cpp b/libraries/script-engine/src/FileScriptingInterface.cpp index 88d6f348aa..4dacf95062 100644 --- a/libraries/script-engine/src/FileScriptingInterface.cpp +++ b/libraries/script-engine/src/FileScriptingInterface.cpp @@ -71,18 +71,18 @@ bool FileScriptingInterface::isTempDir(QString tempDir) { // checks whether the webview is displaying a Clara.io page for Marketplaces.qml bool FileScriptingInterface::isClaraLink(QUrl url) { - if (url.toString().contains("clara") && !url.toString().contains("clara.io/signup")) return true; + if (url.toString().contains("clara.io") && !url.toString().contains("clara.io/signup")) return true; return false; } // checks whether a user tries to download a file that is not in .fbx format bool FileScriptingInterface::isNotFbx(QUrl url) { - if (url.toString().contains(".zip") && !(url.toString().contains("fbx") )) return true; + if (url.toString().endsWith(".zip") && !(url.toString().contains("fbx") )) return true; return false; } bool FileScriptingInterface::isZippedFbx(QUrl url) { - if (url.toString().contains(".zip") && url.toString().contains("fbx")) return true; + if (url.toString().endsWith("fbx.zip")) return true; return false; } From 94210d2e69ba10f22d1530c6b1e780867c5bfac0 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 31 Aug 2016 14:58:53 -0700 Subject: [PATCH 23/27] Use dynamic count for global thread pool --- interface/src/Application.cpp | 21 ++++++++++++++++--- interface/src/Application.h | 1 + .../src/display-plugins/OpenGLDisplayPlugin.h | 2 ++ libraries/plugins/src/plugins/DisplayPlugin.h | 1 + plugins/openvr/src/OpenVrDisplayPlugin.h | 3 +++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index d846a5c6d1..45feed1088 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -176,8 +176,6 @@ static const int MAX_CONCURRENT_RESOURCE_DOWNLOADS = 16; // For processing on QThreadPool, target 2 less than the ideal number of threads, leaving // 2 logical cores available for time sensitive tasks. static const int MIN_PROCESSING_THREAD_POOL_SIZE = 2; -static const int PROCESSING_THREAD_POOL_SIZE = std::max(MIN_PROCESSING_THREAD_POOL_SIZE, - QThread::idealThreadCount() - 2); static const QString SNAPSHOT_EXTENSION = ".jpg"; static const QString SVO_EXTENSION = ".svo"; @@ -537,7 +535,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : PluginContainer* pluginContainer = dynamic_cast(this); // set the container for any plugins that care PluginManager::getInstance()->setContainer(pluginContainer); - QThreadPool::globalInstance()->setMaxThreadCount(PROCESSING_THREAD_POOL_SIZE); + QThreadPool::globalInstance()->setMaxThreadCount(MIN_PROCESSING_THREAD_POOL_SIZE); thread()->setPriority(QThread::HighPriority); thread()->setObjectName("Main Thread"); @@ -707,6 +705,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : connect(addressManager.data(), &AddressManager::hostChanged, this, &Application::updateWindowTitle); connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress); + connect(this, &Application::activeDisplayPluginChanged, this, &Application::updateThreadPoolCount); + // Save avatar location immediately after a teleport. connect(getMyAvatar(), &MyAvatar::positionGoneTo, DependencyManager::get().data(), &AddressManager::storeCurrentAddress); @@ -5727,3 +5727,18 @@ void Application::sendHoverLeaveEntity(QUuid id, PointerEvent event) { EntityItemID entityItemID(id); emit getEntities()->hoverLeaveEntity(entityItemID, event); } + +// FIXME? perhaps two, one for the main thread and one for the offscreen UI rendering thread? +static const int UI_RESERVED_THREADS = 1; +// Windows won't let you have all the cores +static const int OS_RESERVED_THREADS = 1; + +void Application::updateThreadPoolCount() const { + auto reservedThreads = UI_RESERVED_THREADS + OS_RESERVED_THREADS + _displayPlugin->getRequiredThreadCount(); + auto availableThreads = QThread::idealThreadCount() - reservedThreads; + auto threadPoolSize = std::max(MIN_PROCESSING_THREAD_POOL_SIZE, availableThreads); + qDebug() << "Ideal Thread Count " << QThread::idealThreadCount(); + qDebug() << "Reserved threads " << reservedThreads; + qDebug() << "Setting thread pool size to " << threadPoolSize; + QThreadPool::globalInstance()->setMaxThreadCount(threadPoolSize); +} \ No newline at end of file diff --git a/interface/src/Application.h b/interface/src/Application.h index a0c67a9e73..8bfae51179 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -286,6 +286,7 @@ public slots: bool exportEntities(const QString& filename, const QVector& entityIDs, const glm::vec3* givenOffset = nullptr); bool exportEntities(const QString& filename, float x, float y, float z, float scale); bool importEntities(const QString& url); + void updateThreadPoolCount() const; static void setLowVelocityFilter(bool lowVelocityFilter); Q_INVOKABLE void loadDialog(); diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h index afd8f7d45b..ef15861843 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h @@ -69,6 +69,8 @@ public: virtual bool wantVsync() const { return true; } void setVsyncEnabled(bool vsyncEnabled) { _vsyncEnabled = vsyncEnabled; } bool isVsyncEnabled() const { return _vsyncEnabled; } + // Three threads, one for rendering, one for texture transfers, one reserved for the GL driver + int getRequiredThreadCount() const override { return 3; } protected: friend class PresentThread; diff --git a/libraries/plugins/src/plugins/DisplayPlugin.h b/libraries/plugins/src/plugins/DisplayPlugin.h index 5111bda95f..eac08716a1 100644 --- a/libraries/plugins/src/plugins/DisplayPlugin.h +++ b/libraries/plugins/src/plugins/DisplayPlugin.h @@ -128,6 +128,7 @@ public: Present = QEvent::User + 1 }; + virtual int getRequiredThreadCount() const { return 0; } virtual bool isHmd() const { return false; } virtual int getHmdScreen() const { return -1; } /// By default, all HMDs are stereo diff --git a/plugins/openvr/src/OpenVrDisplayPlugin.h b/plugins/openvr/src/OpenVrDisplayPlugin.h index 75f8c51b0e..025f879d84 100644 --- a/plugins/openvr/src/OpenVrDisplayPlugin.h +++ b/plugins/openvr/src/OpenVrDisplayPlugin.h @@ -58,6 +58,9 @@ public: void unsuppressKeyboard() override; bool isKeyboardVisible() override; + // Needs an additional thread for VR submission + int getRequiredThreadCount() const override { return Parent::getRequiredThreadCount() + 1; } + protected: bool internalActivate() override; void internalDeactivate() override; From 6721cc8dfba783e2acec810f48551a1d5926d0b9 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Fri, 2 Sep 2016 15:48:47 -0700 Subject: [PATCH 24/27] fixed return statement formatting --- .../script-engine/src/FileScriptingInterface.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libraries/script-engine/src/FileScriptingInterface.cpp b/libraries/script-engine/src/FileScriptingInterface.cpp index 4dacf95062..0ad9aadd8d 100644 --- a/libraries/script-engine/src/FileScriptingInterface.cpp +++ b/libraries/script-engine/src/FileScriptingInterface.cpp @@ -65,25 +65,21 @@ bool FileScriptingInterface::isTempDir(QString tempDir) { folderName = "/" + testDir.section("/", -1); QString testContainer = testDir; testContainer.remove(folderName); - if (testContainer == tempContainer) return true; - return false; + return (testContainer == tempContainer); } // checks whether the webview is displaying a Clara.io page for Marketplaces.qml bool FileScriptingInterface::isClaraLink(QUrl url) { - if (url.toString().contains("clara.io") && !url.toString().contains("clara.io/signup")) return true; - return false; + return (url.toString().contains("clara.io") && !url.toString().contains("clara.io/signup")); } // checks whether a user tries to download a file that is not in .fbx format bool FileScriptingInterface::isNotFbx(QUrl url) { - if (url.toString().endsWith(".zip") && !(url.toString().contains("fbx") )) return true; - return false; + return (url.toString().endsWith(".zip") && !(url.toString().contains("fbx") )); } bool FileScriptingInterface::isZippedFbx(QUrl url) { - if (url.toString().endsWith("fbx.zip")) return true; - return false; + return (url.toString().endsWith("fbx.zip")); } // this function is not in use From b7da72cc46ad15bae16e524267411942bf455699 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Fri, 2 Sep 2016 16:06:51 -0700 Subject: [PATCH 25/27] try again on fix for ACs seeing other avatars --- assignment-client/src/avatars/AvatarMixer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 65989b389e..d87a5f1cc9 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -413,6 +413,9 @@ void AvatarMixer::handleAvatarDataPacket(QSharedPointer message } void AvatarMixer::handleAvatarIdentityPacket(QSharedPointer message, SharedNodePointer senderNode) { + auto nodeList = DependencyManager::get(); + nodeList->getOrCreateLinkedData(senderNode); + if (senderNode->getLinkedData()) { AvatarMixerClientData* nodeData = dynamic_cast(senderNode->getLinkedData()); if (nodeData != nullptr) { From 2f07ba87aff726e98aa42b70b8fb4c1f69db9305 Mon Sep 17 00:00:00 2001 From: elisa-lj11 Date: Fri, 2 Sep 2016 16:48:55 -0700 Subject: [PATCH 26/27] Renamed isZipped for more clarity on checking for non-fbx files --- interface/resources/qml/Marketplaces.qml | 11 ++++++----- .../script-engine/src/FileScriptingInterface.cpp | 10 +++++----- libraries/script-engine/src/FileScriptingInterface.h | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/interface/resources/qml/Marketplaces.qml b/interface/resources/qml/Marketplaces.qml index 8e6fe51245..70a20286d3 100644 --- a/interface/resources/qml/Marketplaces.qml +++ b/interface/resources/qml/Marketplaces.qml @@ -83,17 +83,18 @@ Rectangle { onLinkHovered: { desktop.currentUrl = hoveredUrl; //runJavaScript(checkFileType, function(){console.log("Remove filetypes JS injection");}); + if (File.isZippedFbx(desktop.currentUrl)) { + runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); + return; + } - if (File.isNotFbx(desktop.currentUrl)) { + if (File.isZipped(desktop.currentUrl)) { statusLabel.text = claraError; statusBar.color = hifi.colors.redHighlight; statusIcon.text = hifi.glyphs.alert; runJavaScript(notFbxHandler, displayErrorStatus()); } - - if (File.isZippedFbx(desktop.currentUrl)) { - runJavaScript(simpleDownload, function(){console.log("Download JS injection");}); - } + } onLoadingChanged: { diff --git a/libraries/script-engine/src/FileScriptingInterface.cpp b/libraries/script-engine/src/FileScriptingInterface.cpp index 0ad9aadd8d..ad6a3cdf6f 100644 --- a/libraries/script-engine/src/FileScriptingInterface.cpp +++ b/libraries/script-engine/src/FileScriptingInterface.cpp @@ -73,15 +73,15 @@ bool FileScriptingInterface::isClaraLink(QUrl url) { return (url.toString().contains("clara.io") && !url.toString().contains("clara.io/signup")); } -// checks whether a user tries to download a file that is not in .fbx format -bool FileScriptingInterface::isNotFbx(QUrl url) { - return (url.toString().endsWith(".zip") && !(url.toString().contains("fbx") )); -} - bool FileScriptingInterface::isZippedFbx(QUrl url) { return (url.toString().endsWith("fbx.zip")); } +// checks whether a user tries to download a file that is not in .fbx format +bool FileScriptingInterface::isZipped(QUrl url) { + return (url.toString().endsWith(".zip")); +} + // this function is not in use QString FileScriptingInterface::getTempDir() { QTemporaryDir dir; diff --git a/libraries/script-engine/src/FileScriptingInterface.h b/libraries/script-engine/src/FileScriptingInterface.h index ffb10d7ada..d9a100b293 100644 --- a/libraries/script-engine/src/FileScriptingInterface.h +++ b/libraries/script-engine/src/FileScriptingInterface.h @@ -24,8 +24,8 @@ public: public slots: - bool isNotFbx(QUrl url); bool isZippedFbx(QUrl url); + bool isZipped(QUrl url); bool isClaraLink(QUrl url); QString convertUrlToPath(QUrl url); void runUnzip(QString path, QUrl url); From 13a467170514e5af605e9af951adfbf0726fe7d5 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Fri, 2 Sep 2016 17:45:26 -0700 Subject: [PATCH 27/27] Texture load profiling test --- tests/render-texture-load/CMakeLists.txt | 28 ++ tests/render-texture-load/src/main.cpp | 585 +++++++++++++++++++++++ 2 files changed, 613 insertions(+) create mode 100644 tests/render-texture-load/CMakeLists.txt create mode 100644 tests/render-texture-load/src/main.cpp diff --git a/tests/render-texture-load/CMakeLists.txt b/tests/render-texture-load/CMakeLists.txt new file mode 100644 index 0000000000..ecf910f434 --- /dev/null +++ b/tests/render-texture-load/CMakeLists.txt @@ -0,0 +1,28 @@ + +set(TARGET_NAME render-texture-load) + +if (WIN32) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /ignore:4049 /ignore:4217") +endif() + +# This is not a testcase -- just set it up as a regular hifi project +setup_hifi_project(Quick Gui OpenGL) +set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "Tests/manual-tests/") + +# link in the shared libraries +link_hifi_libraries(shared octree gl gpu gpu-gl render model model-networking networking render-utils fbx entities entities-renderer animation audio avatars script-engine physics) + +package_libraries_for_deployment() + +target_zlib() +add_dependency_external_projects(quazip) +find_package(QuaZip REQUIRED) +target_include_directories(${TARGET_NAME} SYSTEM PUBLIC ${QUAZIP_INCLUDE_DIRS}) +target_link_libraries(${TARGET_NAME} ${QUAZIP_LIBRARIES}) + +if (WIN32) +add_paths_to_fixup_libs(${QUAZIP_DLL_PATH}) +endif () + + +target_bullet() diff --git a/tests/render-texture-load/src/main.cpp b/tests/render-texture-load/src/main.cpp new file mode 100644 index 0000000000..fd6885c381 --- /dev/null +++ b/tests/render-texture-load/src/main.cpp @@ -0,0 +1,585 @@ +// +// Created by Bradley Austin Davis on 2016/07/01 +// Copyright 2014 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +extern QThread* RENDER_THREAD; + +static const QString DATA_SET = "https://hifi-content.s3.amazonaws.com/austin/textures.zip"; +static const QTemporaryDir DATA_DIR; + + +class FileDownloader : public QObject { + Q_OBJECT +public: + using Handler = std::function; + + FileDownloader(QUrl url, const Handler& handler, QObject *parent = 0) : QObject(parent), _handler(handler) { + connect(&_accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(fileDownloaded(QNetworkReply*))); + _accessManager.get(QNetworkRequest(url)); + } + + void waitForDownload() { + while (!_complete) { + QCoreApplication::processEvents(); + } + } + +private slots: + void fileDownloaded(QNetworkReply* pReply) { + _handler(pReply->readAll()); + pReply->deleteLater(); + _complete = true; + } + +private: + QNetworkAccessManager _accessManager; + Handler _handler; + bool _complete { false }; +}; + +class RenderThread : public GenericThread { + using Parent = GenericThread; +public: + gl::Context _context; + gpu::PipelinePointer _presentPipeline; + gpu::ContextPointer _gpuContext; // initialized during window creation + std::atomic _presentCount; + QElapsedTimer _elapsed; + std::atomic _fps{ 1 }; + RateCounter<200> _fpsCounter; + std::mutex _mutex; + std::shared_ptr _backend; + std::vector _frameTimes; + size_t _frameIndex; + std::mutex _frameLock; + std::queue _pendingFrames; + gpu::FramePointer _activeFrame; + QSize _size; + static const size_t FRAME_TIME_BUFFER_SIZE{ 1024 }; + + void submitFrame(const gpu::FramePointer& frame) { + std::unique_lock lock(_frameLock); + _pendingFrames.push(frame); + } + + + void initialize(QWindow* window, gl::Context& initContext) { + setObjectName("RenderThread"); + _context.setWindow(window); + _context.create(); + _context.makeCurrent(); + window->setSurfaceType(QSurface::OpenGLSurface); + _context.makeCurrent(_context.qglContext(), window); + // GPU library init + gpu::Context::init(); + _gpuContext = std::make_shared(); + _backend = _gpuContext->getBackend(); + _context.makeCurrent(); + DependencyManager::get()->init(); + _context.makeCurrent(); + initContext.create(); + _context.doneCurrent(); + std::unique_lock lock(_mutex); + Parent::initialize(); + _context.moveToThread(_thread); + } + + void setup() override { + RENDER_THREAD = QThread::currentThread(); + + // Wait until the context has been moved to this thread + { + std::unique_lock lock(_mutex); + } + + _context.makeCurrent(); + glewExperimental = true; + glewInit(); + glGetError(); + + //wglSwapIntervalEXT(0); + _frameTimes.resize(FRAME_TIME_BUFFER_SIZE, 0); + { + auto vs = gpu::StandardShaderLib::getDrawUnitQuadTexcoordVS(); + auto ps = gpu::StandardShaderLib::getDrawTexturePS(); + gpu::ShaderPointer program = gpu::Shader::createProgram(vs, ps); + gpu::Shader::BindingSet slotBindings; + gpu::Shader::makeProgram(*program, slotBindings); + gpu::StatePointer state = gpu::StatePointer(new gpu::State()); + _presentPipeline = gpu::Pipeline::create(program, state); + } + + //_textOverlay = new TextOverlay(glm::uvec2(800, 600)); + glViewport(0, 0, 800, 600); + (void)CHECK_GL_ERROR(); + _elapsed.start(); + } + + void shutdown() override { + _activeFrame.reset(); + while (!_pendingFrames.empty()) { + _gpuContext->consumeFrameUpdates(_pendingFrames.front()); + _pendingFrames.pop(); + } + _presentPipeline.reset(); + _gpuContext.reset(); + } + + void renderFrame(gpu::FramePointer& frame) { + ++_presentCount; + _context.makeCurrent(); + _backend->recycle(); + _backend->syncCache(); + if (frame && !frame->batches.empty()) { + _gpuContext->executeFrame(frame); + + { + + auto geometryCache = DependencyManager::get(); + gpu::Batch presentBatch; + presentBatch.setViewportTransform({ 0, 0, _size.width(), _size.height() }); + presentBatch.enableStereo(false); + presentBatch.resetViewTransform(); + presentBatch.setFramebuffer(gpu::FramebufferPointer()); + presentBatch.setResourceTexture(0, frame->framebuffer->getRenderBuffer(0)); + presentBatch.setPipeline(_presentPipeline); + presentBatch.draw(gpu::TRIANGLE_STRIP, 4); + _gpuContext->executeBatch(presentBatch); + } + (void)CHECK_GL_ERROR(); + } + _context.makeCurrent(); + _context.swapBuffers(); + _fpsCounter.increment(); + static size_t _frameCount{ 0 }; + ++_frameCount; + if (_elapsed.elapsed() >= 500) { + _fps = _fpsCounter.rate(); + _frameCount = 0; + _elapsed.restart(); + } + (void)CHECK_GL_ERROR(); + _context.doneCurrent(); + } + + void report() { + uint64_t total = 0; + for (const auto& t : _frameTimes) { + total += t; + } + auto averageFrameTime = total / FRAME_TIME_BUFFER_SIZE; + qDebug() << "Average frame " << averageFrameTime; + + std::list> sortedHighFrames; + for (size_t i = 0; i < _frameTimes.size(); ++i) { + const auto& t = _frameTimes[i]; + if (t > averageFrameTime * 6) { + sortedHighFrames.push_back({ t, i } ); + } + } + + sortedHighFrames.sort(); + for (const auto& p : sortedHighFrames) { + qDebug() << "Long frame " << p.first << " " << p.second; + } + } + + + bool process() override { + std::queue pendingFrames; + { + std::unique_lock lock(_frameLock); + pendingFrames.swap(_pendingFrames); + } + + while (!pendingFrames.empty()) { + _activeFrame = pendingFrames.front(); + if (_activeFrame) { + _gpuContext->consumeFrameUpdates(_activeFrame); + } + pendingFrames.pop(); + } + + if (!_activeFrame) { + QThread::msleep(1); + return true; + } + + { + auto start = usecTimestampNow(); + renderFrame(_activeFrame); + auto duration = usecTimestampNow() - start; + auto frameBufferIndex = _frameIndex % FRAME_TIME_BUFFER_SIZE; + _frameTimes[frameBufferIndex] = duration; + ++_frameIndex; + if (0 == _frameIndex % FRAME_TIME_BUFFER_SIZE) { + report(); + } + } + return true; + } +}; + +QString fileForPath(const QString& name) { + QCryptographicHash hash(QCryptographicHash::Md5); + hash.addData(name.toLocal8Bit().data(), name.length()); + QString hashStr = QString(hash.result().toHex()); + auto dot = name.lastIndexOf('.'); + QString extension = name.right(name.length() - dot); + QString result = DATA_DIR.path() + "/" + hashStr + extension; + return result; +} + +// Create a simple OpenGL window that renders text in various ways +class QTestWindow : public QWindow { +public: + //"/-17.2049,-8.08629,-19.4153/0,0.881994,0,-0.47126" + static void setup() { + DependencyManager::registerInheritance(); + //DependencyManager::registerInheritance(); + DependencyManager::set(); + DependencyManager::set(NodeType::Agent, 0); + DependencyManager::set(); + DependencyManager::set(); + DependencyManager::set(); + DependencyManager::set(); + DependencyManager::set(); + DependencyManager::set(); + DependencyManager::set(); + } + + struct TextureLoad { + uint32_t time; + QString file; + QString src; + }; + + QTestWindow() { + + _currentTexture = _textures.end(); + { + QStringList stringList; + QFile textFile("h:/textures/loads.txt"); + textFile.open(QFile::ReadOnly); + //... (open the file for reading, etc.) + QTextStream textStream(&textFile); + while (true) { + QString line = textStream.readLine(); + if (line.isNull()) + break; + else + stringList.append(line); + } + + for (QString s : stringList) { + auto index = s.indexOf(" "); + QString timeStr = s.left(index); + auto time = timeStr.toUInt(); + QString path = s.right(s.length() - index).trimmed(); + path = fileForPath(path); + qDebug() << "Path " << path; + if (!QFileInfo(path).exists()) { + continue; + } + _textureLoads.push({ time, path, s }); + } + } + + installEventFilter(this); + QThreadPool::globalInstance()->setMaxThreadCount(2); + QThread::currentThread()->setPriority(QThread::HighestPriority); + ResourceManager::init(); + setFlags(Qt::MSWindowsOwnDC | Qt::Window | Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint); + _size = QSize(800, 600); + _renderThread._size = _size; + setGeometry(QRect(QPoint(), _size)); + create(); + show(); + QCoreApplication::processEvents(); + // Create the initial context + _renderThread.initialize(this, _initContext); + _initContext.makeCurrent(); + // FIXME use a wait condition + QThread::msleep(1000); + _renderThread.submitFrame(gpu::FramePointer()); + _initContext.makeCurrent(); + { + auto vs = gpu::StandardShaderLib::getDrawUnitQuadTexcoordVS(); + auto ps = gpu::StandardShaderLib::getDrawTexturePS(); + gpu::ShaderPointer program = gpu::Shader::createProgram(vs, ps); + gpu::Shader::makeProgram(*program); + gpu::StatePointer state = gpu::StatePointer(new gpu::State()); + state->setDepthTest(gpu::State::DepthTest(false)); + state->setScissorEnable(true); + _simplePipeline = gpu::Pipeline::create(program, state); + } + + QTimer* timer = new QTimer(this); + timer->setInterval(0); + connect(timer, &QTimer::timeout, this, [this] { + draw(); + }); + timer->start(); + _ready = true; + } + + virtual ~QTestWindow() { + DependencyManager::destroy(); + DependencyManager::destroy(); + DependencyManager::destroy(); + DependencyManager::destroy(); + ResourceManager::cleanup(); + } + +protected: + + bool eventFilter(QObject *obj, QEvent *event) override { + if (event->type() == QEvent::Close) { + _renderThread.terminate(); + } + + return QWindow::eventFilter(obj, event); + } + + void keyPressEvent(QKeyEvent* event) override { + } + + void keyReleaseEvent(QKeyEvent* event) override { + } + + void mouseMoveEvent(QMouseEvent* event) override { + } + + void resizeEvent(QResizeEvent* ev) override { + resizeWindow(ev->size()); + } + +private: + std::queue _textureLoads; + std::list _textures; + std::list::iterator _currentTexture; + + uint16_t _fps; + gpu::PipelinePointer _simplePipeline; + + void draw() { + if (!_ready) { + return; + } + if (!isVisible()) { + return; + } + if (_renderCount.load() != 0 && _renderCount.load() >= _renderThread._presentCount.load()) { + QThread::usleep(1); + return; + } + _renderCount = _renderThread._presentCount.load(); + update(); + + QSize windowSize = _size; + auto framebufferCache = DependencyManager::get(); + framebufferCache->setFrameBufferSize(windowSize); + + // Final framebuffer that will be handled to the display-plugin + render(); + + if (_fps != _renderThread._fps) { + _fps = _renderThread._fps; + updateText(); + } + } + + void updateText() { + setTitle(QString("FPS %1").arg(_fps)); + } + + void update() { + auto now = usecTimestampNow(); + static auto last = now; + auto delta = (now - last) / USECS_PER_MSEC; + if (!_textureLoads.empty()) { + const auto& front = _textureLoads.front(); + if (delta >= front.time) { + QFileInfo fileInfo(front.file); + if (!fileInfo.exists()) { + qDebug() << "Missing file " << front.file; + } else { + qDebug() << "Loading " << front.src; + _textures.push_back(DependencyManager::get()->getImageTexture(front.file)); + _currentTexture = _textures.begin(); + } + _textureLoads.pop(); + if (_textureLoads.empty()) { + qDebug() << "Done"; + } + } + } + } + + void render() { + auto& gpuContext = _renderThread._gpuContext; + gpuContext->beginFrame(); + gpu::doInBatch(gpuContext, [&](gpu::Batch& batch) { + batch.resetStages(); + }); + PROFILE_RANGE(__FUNCTION__); + auto framebuffer = DependencyManager::get()->getFramebuffer(); + + gpu::doInBatch(gpuContext, [&](gpu::Batch& batch) { + batch.enableStereo(false); + batch.setFramebuffer(framebuffer); + batch.clearColorFramebuffer(gpu::Framebuffer::BUFFER_COLOR0, vec4(1, 0, 0, 1)); + auto vpsize = framebuffer->getSize(); + auto vppos = ivec2(0); + batch.setViewportTransform(ivec4(vppos, vpsize)); + if (_currentTexture != _textures.end()) { + ++_currentTexture; + } + if (_currentTexture == _textures.end()) { + _currentTexture = _textures.begin(); + } + + if (_currentTexture != _textures.end()) { + batch.setResourceTexture(0, *_currentTexture); + } + batch.setPipeline(_simplePipeline); + batch.draw(gpu::TRIANGLE_STRIP, 4); + }); + + auto frame = gpuContext->endFrame(); + frame->framebuffer = framebuffer; + frame->framebufferRecycler = [](const gpu::FramebufferPointer& framebuffer){ + DependencyManager::get()->releaseFramebuffer(framebuffer); + }; + _renderThread.submitFrame(frame); + if (!_renderThread.isThreaded()) { + _renderThread.process(); + } + } + + void resizeWindow(const QSize& size) { + _size = size; + if (!_ready) { + return; + } + _renderThread._size = size; + } + +private: + QSize _size; + std::atomic _renderCount; + gl::OffscreenContext _initContext; + RenderThread _renderThread; + ViewFrustum _viewFrustum; // current state of view frustum, perspective, orientation, etc. + bool _ready { false }; +}; + +void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& message) { + if (!message.isEmpty()) { +#ifdef Q_OS_WIN + OutputDebugStringA(message.toLocal8Bit().constData()); + OutputDebugStringA("\n"); +#endif + std::cout << message.toLocal8Bit().constData() << std::endl; + } +} + +const char * LOG_FILTER_RULES = R"V0G0N( +hifi.gpu=true +)V0G0N"; + +void unzipTestData(const QByteArray& zipData) { + QTemporaryFile zipFile; + if (zipFile.open()) { + zipFile.write(zipData); + zipFile.close(); + } + qDebug() << zipFile.fileName(); + if (!DATA_DIR.isValid()) { + qFatal("Unable to create temp dir"); + } + + //auto files = JlCompress::getFileList(zipData); + auto files = JlCompress::extractDir(zipFile.fileName(), DATA_DIR.path()); + qDebug() << DATA_DIR.path(); + +} + +int main(int argc, char** argv) { + QApplication app(argc, argv); + QCoreApplication::setApplicationName("RenderPerf"); + QCoreApplication::setOrganizationName("High Fidelity"); + QCoreApplication::setOrganizationDomain("highfidelity.com"); + qInstallMessageHandler(messageHandler); + QLoggingCategory::setFilterRules(LOG_FILTER_RULES); + + + FileDownloader(DATA_SET, [&](const QByteArray& data) { + qDebug() << "Fetched size " << data.size(); + unzipTestData(data); + }).waitForDownload(); + + QTestWindow::setup(); + QTestWindow window; + app.exec(); + return 0; +} + +#include "main.moc"