summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/cameraselectornode.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-09-17 10:06:54 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-09-19 22:04:10 +0200
commite2f793ebeb628a244325e55d1b9d0ad511e5cce0 (patch)
treeceac90cf3d5c82d21b9887ef7aadbeb8ed745d49 /src/render/framegraph/cameraselectornode.cpp
parent0ae1f63069f524d75f814000410ffa8e8f1890b4 (diff)
Update QCameraSelector to use direct sync
Change-Id: Ibd073a56a66d7c30d3c9f4097630769e4f46f651 Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/framegraph/cameraselectornode.cpp')
-rw-r--r--src/render/framegraph/cameraselectornode.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/render/framegraph/cameraselectornode.cpp b/src/render/framegraph/cameraselectornode.cpp
index 357611c7c..482429b00 100644
--- a/src/render/framegraph/cameraselectornode.cpp
+++ b/src/render/framegraph/cameraselectornode.cpp
@@ -57,25 +57,19 @@ CameraSelector::CameraSelector()
{
}
-void CameraSelector::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change)
+void CameraSelector::syncFromFrontEnd(const QNode *frontEnd, bool firstTime)
{
- FrameGraphNode::initializeFromPeer(change);
- const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QCameraSelectorData>>(change);
- const auto &data = typedChange->data;
- m_cameraUuid = data.cameraId;
-}
+ const QCameraSelector *node = qobject_cast<const QCameraSelector *>(frontEnd);
+ if (!node)
+ return;
-void CameraSelector::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
-{
- qCDebug(Render::Framegraph) << Q_FUNC_INFO;
- if (e->type() == PropertyUpdated) {
- QPropertyUpdatedChangePtr propertyChange = qSharedPointerCast<QPropertyUpdatedChange>(e);
- if (propertyChange->propertyName() == QByteArrayLiteral("camera")) {
- m_cameraUuid = propertyChange->value().value<QNodeId>();
- markDirty(AbstractRenderer::FrameGraphDirty);
- }
+ FrameGraphNode::syncFromFrontEnd(frontEnd, firstTime);
+
+ const QNodeId cameraId = qIdForNode(node->camera());
+ if (m_cameraUuid != cameraId) {
+ m_cameraUuid = cameraId;
+ markDirty(AbstractRenderer::FrameGraphDirty);
}
- FrameGraphNode::sceneChangeEvent(e);
}
QNodeId CameraSelector::cameraUuid() const