From 6339c2c48f0d75977bdbf844c9ffcfad606dcec7 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Mon, 23 Nov 2015 17:25:31 -0600 Subject: [PATCH 1/4] fix for unnecessary model URL updating --- libraries/entities-renderer/src/RenderableModelEntityItem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index f1be8611e1..0aef6d0af3 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -219,7 +219,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) { if (hasModel()) { if (_model) { - if (getModelURL() != _model->getURL().toString()) { + if (getModelURL() != _model->getURL().toEncoded()) { qDebug() << "Updating model URL: " << getModelURL(); _model->setURL(getModelURL()); } From 0e19e50047cdeb0ceaf327669d02e5b6ad7bd8a2 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 24 Nov 2015 11:17:46 -0600 Subject: [PATCH 2/4] cleaner handling for QString/QUrl conversion/comparison --- .../src/RenderableModelEntityItem.cpp | 10 +++++++--- .../entities-renderer/src/RenderableModelEntityItem.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 0aef6d0af3..1d00db22d5 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -219,9 +219,13 @@ void RenderableModelEntityItem::render(RenderArgs* args) { if (hasModel()) { if (_model) { - if (getModelURL() != _model->getURL().toEncoded()) { - qDebug() << "Updating model URL: " << getModelURL(); - _model->setURL(getModelURL()); + // convert the QString from getModelURL to a URL + _url = getModelURL(); + + // check if the URL has changed + if (_url != _model->getURL()) { + qDebug() << "Updating model URL: " << _url; + _model->setURL(_url); } render::ScenePointer scene = AbstractViewStateInterface::instance()->getMain3DScene(); diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.h b/libraries/entities-renderer/src/RenderableModelEntityItem.h index c4e36c240a..3fdad50c9e 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.h +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.h @@ -79,6 +79,7 @@ private: bool _originalTexturesRead = false; QVector> _points; bool _dimensionsInitialized = true; + QUrl _url; render::ItemID _myMetaItem; From 0d6b9194486d8bd50adb5f9f18bf032cee02e515 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 24 Nov 2015 11:22:30 -0600 Subject: [PATCH 3/4] cleanup printing of updated model URL --- libraries/entities-renderer/src/RenderableModelEntityItem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 1d00db22d5..08de327fa7 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -224,7 +224,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) { // check if the URL has changed if (_url != _model->getURL()) { - qDebug() << "Updating model URL: " << _url; + qDebug().noquote() << "Updating model URL: " << _url.toDisplayString(); _model->setURL(_url); } From 5a7b0dd1adc8b673029f93c0dbcc43891ed53d85 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 24 Nov 2015 11:46:51 -0600 Subject: [PATCH 4/4] put the parsed model URL in ModelEntityItem --- .../src/RenderableModelEntityItem.cpp | 10 ++++------ .../entities-renderer/src/RenderableModelEntityItem.h | 1 - libraries/entities/src/ModelEntityItem.h | 4 +++- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index 08de327fa7..782458894d 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -219,13 +219,11 @@ void RenderableModelEntityItem::render(RenderArgs* args) { if (hasModel()) { if (_model) { - // convert the QString from getModelURL to a URL - _url = getModelURL(); - // check if the URL has changed - if (_url != _model->getURL()) { - qDebug().noquote() << "Updating model URL: " << _url.toDisplayString(); - _model->setURL(_url); + auto& currentURL = getParsedModelURL(); + if (currentURL != _model->getURL()) { + qDebug().noquote() << "Updating model URL: " << currentURL.toDisplayString(); + _model->setURL(currentURL); } render::ScenePointer scene = AbstractViewStateInterface::instance()->getMain3DScene(); diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.h b/libraries/entities-renderer/src/RenderableModelEntityItem.h index 3fdad50c9e..c4e36c240a 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.h +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.h @@ -79,7 +79,6 @@ private: bool _originalTexturesRead = false; QVector> _points; bool _dimensionsInitialized = true; - QUrl _url; render::ItemID _myMetaItem; diff --git a/libraries/entities/src/ModelEntityItem.h b/libraries/entities/src/ModelEntityItem.h index e8ffcab3e7..fb41ac4b77 100644 --- a/libraries/entities/src/ModelEntityItem.h +++ b/libraries/entities/src/ModelEntityItem.h @@ -63,6 +63,7 @@ public: static const QString DEFAULT_MODEL_URL; const QString& getModelURL() const { return _modelURL; } + const QUrl& getParsedModelURL() const { return _parsedModelURL; } static const QString DEFAULT_COMPOUND_SHAPE_URL; const QString& getCompoundShapeURL() const { return _compoundShapeURL; } @@ -75,7 +76,7 @@ public: } // model related properties - void setModelURL(const QString& url) { _modelURL = url; } + void setModelURL(const QString& url) { _modelURL = url; _parsedModelURL = QUrl(url); } virtual void setCompoundShapeURL(const QString& url); @@ -134,6 +135,7 @@ protected: rgbColor _color; QString _modelURL; + QUrl _parsedModelURL; QString _compoundShapeURL; AnimationPropertyGroup _animationProperties;