diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-02-29 10:29:11 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-03-01 19:26:36 +0000 |
commit | 8b934a94087e13c4a6989bdf17a75e4c5c09718f (patch) | |
tree | dda6fb491ad0729c55689eb1881f5092dbf21e0e /src/render/materialsystem | |
parent | 5a2c1a2e611ab0eee3fa966007a851914bb650d6 (diff) |
Fix uses of inefficient QList<QNodeId>
QNodeId is a 64-bit type, so holding it in QList on
32-bit platforms is horribly inefficient.
Fix by porting to QVector instead.
[ChangeLog][Important Behavior Changes] QNodeIds are
now passed and accepted in QVectors, not QLists.
Change-Id: I3cbe35d639eb2ddf9d106294f542f65b431dc4a4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/materialsystem')
-rw-r--r-- | src/render/materialsystem/effect.cpp | 4 | ||||
-rw-r--r-- | src/render/materialsystem/effect_p.h | 6 | ||||
-rw-r--r-- | src/render/materialsystem/material.cpp | 2 | ||||
-rw-r--r-- | src/render/materialsystem/material_p.h | 2 | ||||
-rw-r--r-- | src/render/materialsystem/renderpass.cpp | 4 | ||||
-rw-r--r-- | src/render/materialsystem/renderpass_p.h | 6 | ||||
-rw-r--r-- | src/render/materialsystem/shaderdata.cpp | 4 | ||||
-rw-r--r-- | src/render/materialsystem/shaderdata_p.h | 2 | ||||
-rw-r--r-- | src/render/materialsystem/technique.cpp | 6 | ||||
-rw-r--r-- | src/render/materialsystem/technique_p.h | 10 |
10 files changed, 23 insertions, 23 deletions
diff --git a/src/render/materialsystem/effect.cpp b/src/render/materialsystem/effect.cpp index 2e3ad3e02..184766422 100644 --- a/src/render/materialsystem/effect.cpp +++ b/src/render/materialsystem/effect.cpp @@ -114,12 +114,12 @@ void Effect::appendRenderTechnique(Qt3DCore::QNodeId technique) m_techniques.append(technique); } -QList<Qt3DCore::QNodeId> Effect::techniques() const +QVector<Qt3DCore::QNodeId> Effect::techniques() const { return m_techniques; } -QList<Qt3DCore::QNodeId> Effect::parameters() const +QVector<Qt3DCore::QNodeId> Effect::parameters() const { return m_parameterPack.parameters(); } diff --git a/src/render/materialsystem/effect_p.h b/src/render/materialsystem/effect_p.h index 1593a83c9..a0da793ff 100644 --- a/src/render/materialsystem/effect_p.h +++ b/src/render/materialsystem/effect_p.h @@ -75,11 +75,11 @@ public: void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; void appendRenderTechnique(Qt3DCore::QNodeId t); - QList<Qt3DCore::QNodeId> techniques() const; - QList<Qt3DCore::QNodeId> parameters() const; + QVector<Qt3DCore::QNodeId> techniques() const; + QVector<Qt3DCore::QNodeId> parameters() const; private: - QList<Qt3DCore::QNodeId> m_techniques; + QVector<Qt3DCore::QNodeId> m_techniques; ParameterPack m_parameterPack; }; diff --git a/src/render/materialsystem/material.cpp b/src/render/materialsystem/material.cpp index ca111e012..66dc373a3 100644 --- a/src/render/materialsystem/material.cpp +++ b/src/render/materialsystem/material.cpp @@ -116,7 +116,7 @@ void Material::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) markDirty(AbstractRenderer::AllDirty); } -QList<Qt3DCore::QNodeId> Material::parameters() const +QVector<Qt3DCore::QNodeId> Material::parameters() const { return m_parameterPack.parameters(); } diff --git a/src/render/materialsystem/material_p.h b/src/render/materialsystem/material_p.h index 08736ef23..0b91db7b0 100644 --- a/src/render/materialsystem/material_p.h +++ b/src/render/materialsystem/material_p.h @@ -83,7 +83,7 @@ public: void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; inline bool isEnabled() const { return m_enabled; } - QList<Qt3DCore::QNodeId> parameters() const; + QVector<Qt3DCore::QNodeId> parameters() const; Qt3DCore::QNodeId effect() const; private: diff --git a/src/render/materialsystem/renderpass.cpp b/src/render/materialsystem/renderpass.cpp index ae3022a1c..4a585f2cc 100644 --- a/src/render/materialsystem/renderpass.cpp +++ b/src/render/materialsystem/renderpass.cpp @@ -130,12 +130,12 @@ Qt3DCore::QNodeId RenderPass::shaderProgram() const return m_shaderUuid; } -QList<Qt3DCore::QNodeId> RenderPass::annotations() const +QVector<Qt3DCore::QNodeId> RenderPass::annotations() const { return m_annotationList; } -QList<Qt3DCore::QNodeId> RenderPass::parameters() const +QVector<Qt3DCore::QNodeId> RenderPass::parameters() const { return m_parameterPack.parameters(); } diff --git a/src/render/materialsystem/renderpass_p.h b/src/render/materialsystem/renderpass_p.h index bdd3ab6a4..001bc744f 100644 --- a/src/render/materialsystem/renderpass_p.h +++ b/src/render/materialsystem/renderpass_p.h @@ -85,15 +85,15 @@ public: void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; Qt3DCore::QNodeId shaderProgram() const; - QList<Qt3DCore::QNodeId> annotations() const; - QList<Qt3DCore::QNodeId> parameters() const; + QVector<Qt3DCore::QNodeId> annotations() const; + QVector<Qt3DCore::QNodeId> parameters() const; private: void appendAnnotation(Qt3DCore::QNodeId criterionId); void removeAnnotation(Qt3DCore::QNodeId criterionId); Qt3DCore::QNodeId m_shaderUuid; - QList<Qt3DCore::QNodeId> m_annotationList; + QVector<Qt3DCore::QNodeId> m_annotationList; ParameterPack m_parameterPack; }; diff --git a/src/render/materialsystem/shaderdata.cpp b/src/render/materialsystem/shaderdata.cpp index 5c6a50156..1af45b81d 100644 --- a/src/render/materialsystem/shaderdata.cpp +++ b/src/render/materialsystem/shaderdata.cpp @@ -63,7 +63,7 @@ const int qNodeIdTypeId = qMetaTypeId<Qt3DCore::QNodeId>(); } -QList<Qt3DCore::QNodeId> ShaderData::m_updatedShaderData; +QVector<Qt3DCore::QNodeId> ShaderData::m_updatedShaderData; ShaderData::ShaderData() : m_managers(Q_NULLPTR) @@ -253,7 +253,7 @@ void ShaderData::readPeerProperties(QShaderData *shaderData) m_properties.insert(propertyName, propertyValue); m_originalProperties.insert(propertyName, propertyValue); - // We check if the property is a QNodeId or QList<QNodeId> so that we can + // We check if the property is a QNodeId or QVector<QNodeId> so that we can // check nested QShaderData for update if (propertyValue.userType() == qNodeIdTypeId) { m_nestedShaderDataProperties.insert(propertyName, propertyValue); diff --git a/src/render/materialsystem/shaderdata_p.h b/src/render/materialsystem/shaderdata_p.h index aff28fc2c..d0f19d40d 100644 --- a/src/render/materialsystem/shaderdata_p.h +++ b/src/render/materialsystem/shaderdata_p.h @@ -104,7 +104,7 @@ protected: QHash<QString, QVariant> m_nestedShaderDataProperties; QHash<QString, QShaderData::TransformType> m_transformedProperties; QMutex m_mutex; - static QList<Qt3DCore::QNodeId> m_updatedShaderData; + static QVector<Qt3DCore::QNodeId> m_updatedShaderData; QMatrix4x4 m_worldMatrix; QMatrix4x4 m_viewMatrix; NodeManagers *m_managers; diff --git a/src/render/materialsystem/technique.cpp b/src/render/materialsystem/technique.cpp index 895175752..2ee0f6274 100644 --- a/src/render/materialsystem/technique.cpp +++ b/src/render/materialsystem/technique.cpp @@ -152,7 +152,7 @@ void Technique::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) markDirty(AbstractRenderer::AllDirty); } -QList<Qt3DCore::QNodeId> Technique::parameters() const +QVector<Qt3DCore::QNodeId> Technique::parameters() const { return m_parameterPack.parameters(); } @@ -168,12 +168,12 @@ void Technique::removeRenderPass(Qt3DCore::QNodeId renderPassId) m_renderPasses.removeOne(renderPassId); } -QList<Qt3DCore::QNodeId> Technique::annotations() const +QVector<Qt3DCore::QNodeId> Technique::annotations() const { return m_annotationList; } -QList<Qt3DCore::QNodeId> Technique::renderPasses() const +QVector<Qt3DCore::QNodeId> Technique::renderPasses() const { return m_renderPasses; } diff --git a/src/render/materialsystem/technique_p.h b/src/render/materialsystem/technique_p.h index 277dbdf7b..f0c09711a 100644 --- a/src/render/materialsystem/technique_p.h +++ b/src/render/materialsystem/technique_p.h @@ -82,7 +82,7 @@ public: void updateFromPeer(Qt3DCore::QNode *peer) Q_DECL_OVERRIDE; void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; - QList<Qt3DCore::QNodeId> parameters() const; + QVector<Qt3DCore::QNodeId> parameters() const; void appendRenderPass(Qt3DCore::QNodeId renderPassId); void removeRenderPass(Qt3DCore::QNodeId renderPassId); @@ -90,16 +90,16 @@ public: void appendAnnotation(Qt3DCore::QNodeId criterionId); void removeAnnotation(Qt3DCore::QNodeId criterionId); - QList<Qt3DCore::QNodeId> annotations() const; - QList<Qt3DCore::QNodeId> renderPasses() const; + QVector<Qt3DCore::QNodeId> annotations() const; + QVector<Qt3DCore::QNodeId> renderPasses() const; QGraphicsApiFilter *graphicsApiFilter() const; private: QGraphicsApiFilter *m_graphicsApiFilter; ParameterPack m_parameterPack; - QList<Qt3DCore::QNodeId> m_annotationList; - QList<Qt3DCore::QNodeId> m_renderPasses; + QVector<Qt3DCore::QNodeId> m_annotationList; + QVector<Qt3DCore::QNodeId> m_renderPasses; }; } // namespace Render |