diff options
-rw-r--r-- | src/plugins/renderers/opengl/jobs/materialparametergathererjob.cpp | 6 | ||||
-rw-r--r-- | src/plugins/renderers/opengl/jobs/renderviewjobutils_p.h | 2 |
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, |