diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-09-17 10:06:54 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-09-19 22:04:10 +0200 |
commit | e2f793ebeb628a244325e55d1b9d0ad511e5cce0 (patch) | |
tree | ceac90cf3d5c82d21b9887ef7aadbeb8ed745d49 /src/render/framegraph | |
parent | 0ae1f63069f524d75f814000410ffa8e8f1890b4 (diff) |
Update QCameraSelector to use direct sync
Change-Id: Ibd073a56a66d7c30d3c9f4097630769e4f46f651
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src/render/framegraph')
-rw-r--r-- | src/render/framegraph/cameraselectornode.cpp | 26 | ||||
-rw-r--r-- | src/render/framegraph/cameraselectornode_p.h | 5 |
2 files changed, 12 insertions, 19 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 diff --git a/src/render/framegraph/cameraselectornode_p.h b/src/render/framegraph/cameraselectornode_p.h index 0e532d68f..dd7e050d0 100644 --- a/src/render/framegraph/cameraselectornode_p.h +++ b/src/render/framegraph/cameraselectornode_p.h @@ -69,12 +69,11 @@ class CameraSelector : public FrameGraphNode public: CameraSelector(); - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) override; Qt3DCore::QNodeId cameraUuid() const; -private: - void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) final; + void syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTime) override; +private: Qt3DCore::QNodeId m_cameraUuid; }; |