diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2021-05-03 14:39:18 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2021-07-09 11:16:17 +0000 |
commit | d29f3b277d0f949f2fa0b0e0214e38ec3e790c40 (patch) | |
tree | 0df413fda95eb512ebe1b09ec2ed000123fd781a /src/render/frontend | |
parent | 0f854b4a07da60eb0b282f27a5ac06e17bb6e924 (diff) |
Rerun bounding volume update jobs when entity enabled property changes
Otherwise, this results in the bounding volume being out of sync with
entities (an entity initially disabled that gets enabled would have an
empty bounding volume) until some other events in the scene triggers a
rebuild.
Pick-to: 6.2 6.1 5.15
Task-number: QTBUG-93035
Change-Id: Ia21eec0eb5601169e1789321080803a5aed12e82
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/frontend')
-rw-r--r-- | src/render/frontend/qrenderaspect.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/render/frontend/qrenderaspect.cpp b/src/render/frontend/qrenderaspect.cpp index 13587fda6..609ba433a 100644 --- a/src/render/frontend/qrenderaspect.cpp +++ b/src/render/frontend/qrenderaspect.cpp @@ -724,17 +724,20 @@ std::vector<Qt3DCore::QAspectJobPtr> QRenderAspect::jobsToExecute(qint64 time) if (entitiesEnabledDirty) jobs.push_back(d->m_updateTreeEnabledJob); - if (dirtyBitsForFrame & AbstractRenderer::TransformDirty) { + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::TransformDirty) { jobs.push_back(d->m_worldTransformJob); jobs.push_back(d->m_updateWorldBoundingVolumeJob); } - if (dirtyBitsForFrame & AbstractRenderer::GeometryDirty || + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::GeometryDirty || dirtyBitsForFrame & AbstractRenderer::BuffersDirty) { jobs.push_back(d->m_calculateBoundingVolumeJob); } - if (dirtyBitsForFrame & AbstractRenderer::GeometryDirty || + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::GeometryDirty || dirtyBitsForFrame & AbstractRenderer::TransformDirty) { jobs.push_back(d->m_expandBoundingVolumeJob); } |