diff options
Diffstat (limited to 'src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp')
-rw-r--r-- | src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp b/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp index 6455d2e10..72c27de1d 100644 --- a/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp +++ b/src/plugins/renderers/rhi/renderer/renderviewbuilder.cpp @@ -466,9 +466,13 @@ public: m_renderer->cache()->leafNodeCache[m_leafNode]; dataCacheForLeaf.materialParameterGatherer.clear(); - for (const auto &materialGatherer : qAsConst(m_materialParameterGathererJobs)) - dataCacheForLeaf.materialParameterGatherer.unite( - materialGatherer->materialToPassAndParameter()); + for (const auto &materialGatherer : qAsConst(m_materialParameterGathererJobs)) { + const MaterialParameterGathererData &source = materialGatherer->materialToPassAndParameter(); + for (auto it = std::begin(source); it != std::end(source); ++it) { + Q_ASSERT(!dataCacheForLeaf.materialParameterGatherer.contains(it.key())); + dataCacheForLeaf.materialParameterGatherer.insert(it.key(), it.value()); + } + } } private: |