diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-09-20 08:33:44 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-10-12 07:54:37 +0000 |
commit | 8aef6b775855e623af46802806dbf86d76926913 (patch) | |
tree | cc93c42812c101e8de4a15b20ed6f2ba1700b59d /src/render/framegraph/framegraphnode.cpp | |
parent | 1739b90d6120e24065b0c85a8d293234c5d51787 (diff) |
Make backend FG node use FrameGraphDirty instead of AllDirty
So as to later on allow finer grained job launching and not force
every job to be rerun when we know only the FG has changed.
Change-Id: I09f935f8a1793722159ba645acc2ad4b00983041
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/framegraph/framegraphnode.cpp')
-rw-r--r-- | src/render/framegraph/framegraphnode.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/render/framegraph/framegraphnode.cpp b/src/render/framegraph/framegraphnode.cpp index f2ce1a50a..562548e46 100644 --- a/src/render/framegraph/framegraphnode.cpp +++ b/src/render/framegraph/framegraphnode.cpp @@ -157,23 +157,32 @@ void FrameGraphNode::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) case Qt3DCore::PropertyValueAdded: { Qt3DCore::QPropertyNodeAddedChangePtr change = qSharedPointerCast<Qt3DCore::QPropertyNodeAddedChange>(e); - if (change->metaObject()->inherits(&QFrameGraphNode::staticMetaObject)) + if (change->metaObject()->inherits(&QFrameGraphNode::staticMetaObject)) { appendChildId(change->addedNodeId()); + markDirty(AbstractRenderer::FrameGraphDirty); + } break; } case Qt3DCore::PropertyValueRemoved: { Qt3DCore::QPropertyNodeRemovedChangePtr change = qSharedPointerCast<Qt3DCore::QPropertyNodeRemovedChange>(e); - if (change->metaObject()->inherits(&QFrameGraphNode::staticMetaObject)) + if (change->metaObject()->inherits(&QFrameGraphNode::staticMetaObject)) { removeChildId(change->removedNodeId()); + markDirty(AbstractRenderer::FrameGraphDirty); + } + break; + } + case Qt3DCore::PropertyUpdated: { + Qt3DCore::QPropertyUpdatedChangePtr propertyChange = qSharedPointerCast<Qt3DCore::QPropertyUpdatedChange>(e); + if (propertyChange->propertyName() == QByteArrayLiteral("enabled")) { + d_func()->m_enabled = propertyChange->value().toBool(); + markDirty(AbstractRenderer::FrameGraphDirty); + } break; } default: break; } - - markDirty(AbstractRenderer::AllDirty); - BackendNode::sceneChangeEvent(e); } } // namespace Render |