summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qgeometryrenderer.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire350@gmail.com>2015-08-06 19:34:16 +0200
committerPaul Lemire <paul.lemire@kdab.com>2015-08-07 19:43:21 +0000
commit1f51eb03d8b4ee5d61f0dfdc1af0cc79b2bb878b (patch)
tree2fe1e02557dec5f4f57e6ac6a96bb65cebd6076a /src/render/frontend/qgeometryrenderer.cpp
parent0e8b923ec0f9ab07ba542b86b284234df91486e4 (diff)
QGeometryRenderer: handle backend notifications to set QGeometry
Change-Id: I120e9909d1f657d20e944ef96ca019cfc84b3777 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qgeometryrenderer.cpp')
-rw-r--r--src/render/frontend/qgeometryrenderer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/render/frontend/qgeometryrenderer.cpp b/src/render/frontend/qgeometryrenderer.cpp
index 16ff01fe2..a74fcc579 100644
--- a/src/render/frontend/qgeometryrenderer.cpp
+++ b/src/render/frontend/qgeometryrenderer.cpp
@@ -254,6 +254,21 @@ void QGeometryRenderer::copy(const QNode *ref)
d_func()->m_functor = other->d_func()->m_functor;
}
+void QGeometryRenderer::sceneChangeEvent(const QSceneChangePtr &e)
+{
+ Q_D(QGeometryRenderer);
+ QScenePropertyChangePtr change = qSharedPointerCast<QScenePropertyChange>(e);
+ if (change->type() == NodeUpdated && change->propertyName() == QByteArrayLiteral("geometry")) {
+ QGeometry *backendGeometry = change->value().value<QGeometry *>();
+ QGeometry *frontendGeometry = static_cast<QGeometry *>(QNode::clone(backendGeometry));
+ if (frontendGeometry != Q_NULLPTR)
+ d->insertTree(frontendGeometry);
+ setGeometry(frontendGeometry);
+ }
+}
+
+
+
} // Qt3D
QT_END_NAMESPACE