summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/renderer/renderer.cpp
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2019-04-03 21:20:53 +0100
committerMike Krus <mike.krus@kdab.com>2019-05-25 09:28:33 +0100
commit861a73b5328334ebf076d3dd6b2ad6c17bdc0700 (patch)
treeeecd01b77c76c4376813b59da63484bd866af813 /src/render/renderers/opengl/renderer/renderer.cpp
parentd108987a6ce9087908a14396ac90c8d9bb0860cb (diff)
Iterate on child handles
Resolving list of handles as list of node pointers introduces extra heap memory allocation (via QVector) which can cause locking with high number of threads. Added Entity::traverse() methods to apply a functor to all entitied in a sub-tree. Change-Id: I239ab30ac8ac53ba83666a147015d58465d76eb2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/renderers/opengl/renderer/renderer.cpp')
-rw-r--r--src/render/renderers/opengl/renderer/renderer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/render/renderers/opengl/renderer/renderer.cpp b/src/render/renderers/opengl/renderer/renderer.cpp
index e7fa4615c..1f5288d41 100644
--- a/src/render/renderers/opengl/renderer/renderer.cpp
+++ b/src/render/renderers/opengl/renderer/renderer.cpp
@@ -296,6 +296,8 @@ void Renderer::setNodeManagers(NodeManagers *managers)
m_updateShaderDataTransformJob->setManagers(m_nodesManager);
m_cleanupJob->setManagers(m_nodesManager);
m_calculateBoundingVolumeJob->setManagers(m_nodesManager);
+ m_expandBoundingVolumeJob->setManagers(m_nodesManager);
+ m_worldTransformJob->setManagers(m_nodesManager);
m_pickBoundingVolumeJob->setManagers(m_nodesManager);
m_rayCastingJob->setManagers(m_nodesManager);
m_updateWorldBoundingVolumeJob->setManager(m_nodesManager->renderNodesManager());
@@ -305,6 +307,7 @@ void Renderer::setNodeManagers(NodeManagers *managers)
m_updateMeshTriangleListJob->setManagers(m_nodesManager);
m_filterCompatibleTechniqueJob->setManager(m_nodesManager->techniqueManager());
m_updateEntityLayersJob->setManager(m_nodesManager);
+ m_updateTreeEnabledJob->setManagers(m_nodesManager);
m_updateEntityHierarchyJob->setManager(m_nodesManager);
}