diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-24 09:37:45 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-27 11:19:52 +0000 |
commit | c620bbc80513fac7f7fcf354c49c1197bde5f1c2 (patch) | |
tree | 25fd07348971530f8f36c2db54fa1e5540b9805e /src/render/geometry/geometryrenderer.cpp | |
parent | 64fd989313baaa6dc10185af3d298869a0794670 (diff) |
GeometryRenderer use new added/removed change types
I think it may be possible to avoid this for single value QNode*
properties and just rely upon the automatic notifications done by
QNodePrivate. Needs investigating and testing.
Change-Id: Id978e8501dc229ba4eb73a5be3b3480b967562b0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/geometryrenderer.cpp')
-rw-r--r-- | src/render/geometry/geometryrenderer.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/render/geometry/geometryrenderer.cpp b/src/render/geometry/geometryrenderer.cpp index 7a07102eb..e396cdf6e 100644 --- a/src/render/geometry/geometryrenderer.cpp +++ b/src/render/geometry/geometryrenderer.cpp @@ -38,12 +38,14 @@ ****************************************************************************/ #include "geometryrenderer_p.h" -#include <Qt3DCore/private/qnode_p.h> -#include <Qt3DCore/qnodepropertychange.h> #include <Qt3DRender/private/geometryrenderermanager_p.h> -#include <Qt3DCore/qbackendnodepropertychange.h> #include <Qt3DRender/private/qboundingvolume_p.h> #include <Qt3DRender/private/qgeometryrenderer_p.h> +#include <Qt3DCore/qbackendnodepropertychange.h> +#include <Qt3DCore/qnodepropertychange.h> +#include <Qt3DCore/qnodeaddedpropertychange.h> +#include <Qt3DCore/qnoderemovedpropertychange.h> +#include <Qt3DCore/private/qnode_p.h> QT_BEGIN_NAMESPACE @@ -178,21 +180,17 @@ void GeometryRenderer::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) } case NodeAdded: { - QNodePropertyChangePtr propertyChange = qSharedPointerCast<QNodePropertyChange>(e); - QByteArray propertyName = propertyChange->propertyName(); - - if (propertyName == QByteArrayLiteral("geometry")) { - m_geometryId = propertyChange->value().value<QNodeId>(); + const auto change = qSharedPointerCast<QNodeAddedPropertyChange>(e); + if (change->propertyName() == QByteArrayLiteral("geometry")) { + m_geometryId = change->addedNodeId(); m_dirty = true; } break; } case NodeRemoved: { - QNodePropertyChangePtr propertyChange = qSharedPointerCast<QNodePropertyChange>(e); - QByteArray propertyName = propertyChange->propertyName(); - - if (propertyName == QByteArrayLiteral("geometry")) { + const auto change = qSharedPointerCast<QNodeAddedPropertyChange>(e); + if (change->propertyName() == QByteArrayLiteral("geometry")) { m_geometryId = QNodeId(); m_dirty = true; } |