diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2015-11-06 10:01:52 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2015-11-16 11:17:41 +0000 |
commit | 680eeef20c993227a880efc0212414154d047b13 (patch) | |
tree | 6fb1109466ba0b20067090cf78319ef72ca001f1 | |
parent | 9ac41de755762e45c16c5517d0566975d44e1150 (diff) |
Use the FrameCleanupJob to update the QBoundingVolumesDebug
Change-Id: Ib3419e78abd4b1848cfabf05efb8871c2ff87560
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/jobs/framecleanupjob.cpp | 22 | ||||
-rw-r--r-- | src/render/jobs/framecleanupjob_p.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/render/jobs/framecleanupjob.cpp b/src/render/jobs/framecleanupjob.cpp index 7fdbb1290..34ded2f81 100644 --- a/src/render/jobs/framecleanupjob.cpp +++ b/src/render/jobs/framecleanupjob.cpp @@ -40,6 +40,7 @@ #include <private/shaderdata_p.h> #include <private/managers_p.h> #include <private/texturedatamanager_p.h> +#include <private/sphere_p.h> QT_BEGIN_NAMESPACE @@ -68,6 +69,27 @@ void FrameCleanupJob::run() // Cleanup texture handles TextureDataManager *textureDataManager = m_renderer->textureDataManager(); textureDataManager->cleanup(); + + // Debug bounding volume debug + updateBoundingVolumesDebug(m_renderer->renderSceneRoot()); +} + +void FrameCleanupJob::updateBoundingVolumesDebug(Entity *node) +{ + BoundingVolumeDebug *debugBV = node->renderComponent<BoundingVolumeDebug>(); + if (debugBV) { + Qt3DRender::Render::Sphere s; + if (!debugBV->isRecursive()) { + s = *node->worldBoundingVolume(); + } else { + s = *node->worldBoundingVolumeWithChildren(); + } + debugBV->setRadius(s.radius()); + debugBV->setCenter(s.center()); + } + + Q_FOREACH (Entity *c, node->children()) + updateBoundingVolumesDebug(c); } } // namespace Render diff --git a/src/render/jobs/framecleanupjob_p.h b/src/render/jobs/framecleanupjob_p.h index 247ee30cf..6e8581d76 100644 --- a/src/render/jobs/framecleanupjob_p.h +++ b/src/render/jobs/framecleanupjob_p.h @@ -71,6 +71,7 @@ protected: private: Renderer *m_renderer; + void updateBoundingVolumesDebug(Entity *node); }; typedef QSharedPointer<FrameCleanupJob> FrameCleanupJobPtr; |