diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-17 15:07:41 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2016-07-04 06:09:50 +0000 |
commit | 18f0b45c23adc5bee4c784a8d81c697aeb831c93 (patch) | |
tree | 0ed82a149d4e1556f730e899a4776387c3cbb975 /src/render/geometry/geometryrenderer.cpp | |
parent | 23c499a0390c1ba3ad33597f86e8915ef4ed94da (diff) |
QGeometryRenderer: fix notification of geometry changing
Change-Id: Ic0fc25a9aacf47863d0ac058d3be687415b2cbdd
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/geometryrenderer.cpp')
-rw-r--r-- | src/render/geometry/geometryrenderer.cpp | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/src/render/geometry/geometryrenderer.cpp b/src/render/geometry/geometryrenderer.cpp index 25cf43642..70266ac52 100644 --- a/src/render/geometry/geometryrenderer.cpp +++ b/src/render/geometry/geometryrenderer.cpp @@ -164,23 +164,8 @@ void GeometryRenderer::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) m_geometryFactory = newFunctor; if (m_geometryFactory && m_manager != nullptr) m_manager->addDirtyGeometryRenderer(peerId()); - } - break; - } - - case PropertyValueAdded: { - const auto change = qSharedPointerCast<QPropertyNodeAddedChange>(e); - if (change->propertyName() == QByteArrayLiteral("geometry")) { - m_geometryId = change->addedNodeId(); - m_dirty = true; - } - break; - } - - case PropertyValueRemoved: { - const auto change = qSharedPointerCast<QPropertyNodeAddedChange>(e); - if (change->propertyName() == QByteArrayLiteral("geometry")) { - m_geometryId = QNodeId(); + } else if (propertyName == QByteArrayLiteral("geometry")) { + m_geometryId = propertyChange->value().value<Qt3DCore::QNodeId>(); m_dirty = true; } break; @@ -210,7 +195,7 @@ void GeometryRenderer::executeFunctor() geometry->moveToThread(appThread); auto e = QGeometryChangePtr::create(peerId()); - e->setDeliveryFlags(Qt3DCore::QSceneChange::DeliverToAll); + e->setDeliveryFlags(Qt3DCore::QSceneChange::Nodes); e->setPropertyName("geometry"); e->data = std::move(geometry); notifyObservers(e); |