From 15661987be71f732859a39cdb91a4c4bd55a02f2 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 27 Apr 2017 10:16:08 -0700 Subject: [PATCH] load tablet overlay models with higher priority --- interface/src/ui/overlays/ModelOverlay.cpp | 11 ++++++++++- interface/src/ui/overlays/ModelOverlay.h | 3 +++ scripts/system/controllers/handControllerGrab.js | 1 + scripts/system/libraries/WebTablet.js | 1 + scripts/system/tablet-ui/tabletUI.js | 1 + 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/interface/src/ui/overlays/ModelOverlay.cpp b/interface/src/ui/overlays/ModelOverlay.cpp index ccaa1d4fbc..07fc2a2b9d 100644 --- a/interface/src/ui/overlays/ModelOverlay.cpp +++ b/interface/src/ui/overlays/ModelOverlay.cpp @@ -22,6 +22,7 @@ ModelOverlay::ModelOverlay() _modelTextures(QVariantMap()) { _model->init(); + _model->setLoadingPriority(_loadPriority); _isLoaded = false; } @@ -30,9 +31,11 @@ ModelOverlay::ModelOverlay(const ModelOverlay* modelOverlay) : _model(std::make_shared(std::make_shared(), nullptr, this)), _modelTextures(QVariantMap()), _url(modelOverlay->_url), - _updateModel(false) + _updateModel(false), + _loadPriority(modelOverlay->getLoadPriority()) { _model->init(); + _model->setLoadingPriority(_loadPriority); if (_url.isValid()) { _updateModel = true; _isLoaded = false; @@ -113,6 +116,12 @@ void ModelOverlay::setProperties(const QVariantMap& properties) { _updateModel = true; } + auto loadPriorityProperty = properties["loadPriority"]; + if (loadPriorityProperty.isValid()) { + _loadPriority = loadPriorityProperty.toFloat(); + _model->setLoadingPriority(_loadPriority); + } + auto urlValue = properties["url"]; if (urlValue.isValid() && urlValue.canConvert()) { _url = urlValue.toString(); diff --git a/interface/src/ui/overlays/ModelOverlay.h b/interface/src/ui/overlays/ModelOverlay.h index a3ddeed480..e389181879 100644 --- a/interface/src/ui/overlays/ModelOverlay.h +++ b/interface/src/ui/overlays/ModelOverlay.h @@ -41,6 +41,8 @@ public: void locationChanged(bool tellPhysics) override; + float getLoadPriority() const { return _loadPriority; } + private: ModelPointer _model; @@ -49,6 +51,7 @@ private: QUrl _url; bool _updateModel = { false }; bool _scaleToFit = { false }; + float _loadPriority { 0.0f }; }; #endif // hifi_ModelOverlay_h diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js index 8a1ee8dff4..992c20ef72 100644 --- a/scripts/system/controllers/handControllerGrab.js +++ b/scripts/system/controllers/handControllerGrab.js @@ -1336,6 +1336,7 @@ function MyController(hand) { var stylusProperties = { name: "stylus", url: Script.resourcesPath() + "meshes/tablet-stylus-fat.fbx", + loadPriority: 10.0, localPosition: Vec3.sum({ x: 0.0, y: WEB_TOUCH_Y_OFFSET, z: 0.0 }, diff --git a/scripts/system/libraries/WebTablet.js b/scripts/system/libraries/WebTablet.js index e71aefc51e..6aa3c4de8a 100644 --- a/scripts/system/libraries/WebTablet.js +++ b/scripts/system/libraries/WebTablet.js @@ -120,6 +120,7 @@ WebTablet = function (url, width, dpi, hand, clientOnly, location) { modelURL: modelURL, url: modelURL, // for overlay grabbable: true, // for overlay + loadPriority: 10.0, // for overlay userData: JSON.stringify({ "grabbableKey": {"grabbable": true} }), diff --git a/scripts/system/tablet-ui/tabletUI.js b/scripts/system/tablet-ui/tabletUI.js index cacd9663ab..8a7d0a2ec4 100644 --- a/scripts/system/tablet-ui/tabletUI.js +++ b/scripts/system/tablet-ui/tabletUI.js @@ -219,6 +219,7 @@ var tmpStylusID = Overlays.addOverlay("model", { name: "stylus", url: Script.resourcesPath() + "meshes/tablet-stylus-fat.fbx", + loadPriority: 10.0, position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, {x: 0, y: 0.1, z: -2})), dimensions: { x: 0.01, y: 0.01, z: 0.2 }, solid: true,