summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2016-02-29 10:29:11 +0100
committerMarc Mutz <marc.mutz@kdab.com>2016-03-01 19:26:36 +0000
commit8b934a94087e13c4a6989bdf17a75e4c5c09718f (patch)
treedda6fb491ad0729c55689eb1881f5092dbf21e0e /src/render/materialsystem
parent5a2c1a2e611ab0eee3fa966007a851914bb650d6 (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.cpp4
-rw-r--r--src/render/materialsystem/effect_p.h6
-rw-r--r--src/render/materialsystem/material.cpp2
-rw-r--r--src/render/materialsystem/material_p.h2
-rw-r--r--src/render/materialsystem/renderpass.cpp4
-rw-r--r--src/render/materialsystem/renderpass_p.h6
-rw-r--r--src/render/materialsystem/shaderdata.cpp4
-rw-r--r--src/render/materialsystem/shaderdata_p.h2
-rw-r--r--src/render/materialsystem/technique.cpp6
-rw-r--r--src/render/materialsystem/technique_p.h10
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