summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/framegraphnode.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-09-20 08:33:44 +0200
committerPaul Lemire <paul.lemire@kdab.com>2018-10-12 07:54:37 +0000
commit8aef6b775855e623af46802806dbf86d76926913 (patch)
treecc93c42812c101e8de4a15b20ed6f2ba1700b59d /src/render/framegraph/framegraphnode.cpp
parent1739b90d6120e24065b0c85a8d293234c5d51787 (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.cpp19
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