summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp6
-rw-r--r--src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp
index 1dd26b847..66f62eda4 100644
--- a/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp
+++ b/src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp
@@ -143,7 +143,11 @@ void MaterialParameterGathererJob::run()
for (RenderPass *renderPass : passes) {
ParameterInfoList globalParameters = parameters;
parametersFromParametersProvider(&globalParameters, m_manager->parameterManager(), renderPass);
- m_parameters[material->peerId()].push_back({renderPass, globalParameters});
+ auto it = m_parameters.find(material->peerId());
+ if (it != m_parameters.end())
+ it->push_back({renderPass, globalParameters});
+ else
+ m_parameters.insert(material->peerId(), {{renderPass, globalParameters}});
}
}
}
diff --git a/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h
index bc5bfd8aa..bd745e7a3 100644
--- a/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h
+++ b/src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h
@@ -127,7 +127,7 @@ struct RenderPassParameterData
};
QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, OpenGL, RenderPassParameterData, Q_MOVABLE_TYPE)
-using MaterialParameterGathererData = QHash<Qt3DCore::QNodeId, QVector<RenderPassParameterData>>;
+using MaterialParameterGathererData = QMultiHash<Qt3DCore::QNodeId, QVector<RenderPassParameterData>>;
Q_AUTOTEST_EXPORT void parametersFromMaterialEffectTechnique(ParameterInfoList *infoList,
ParameterManager *manager,