diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-03-22 14:52:09 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-03-24 07:28:05 +0000 |
commit | 03d74d15a7b5643f9910554ac369718a7e64733f (patch) | |
tree | a339458738c86b304db96e168e1a062df2692f8f | |
parent | d3d0215d3ece7bbddd27460311591426368626ca (diff) |
QGeometryRenderer creates creation changes
Change-Id: I9591dff5d0a73d0f9e2c1689fc01a261c19ebeac
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r-- | src/render/geometry/qgeometryrenderer.cpp | 18 | ||||
-rw-r--r-- | src/render/geometry/qgeometryrenderer.h | 1 | ||||
-rw-r--r-- | src/render/geometry/qgeometryrenderer_p.h | 14 |
3 files changed, 32 insertions, 1 deletions
diff --git a/src/render/geometry/qgeometryrenderer.cpp b/src/render/geometry/qgeometryrenderer.cpp index bff87c70e..3176c647d 100644 --- a/src/render/geometry/qgeometryrenderer.cpp +++ b/src/render/geometry/qgeometryrenderer.cpp @@ -443,7 +443,23 @@ void QGeometryRenderer::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) } } - +Qt3DCore::QNodeCreatedChangeBasePtr QGeometryRenderer::createNodeCreationChange() const +{ + auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QGeometryRendererData>::create(this); + auto &data = creationChange->data; + Q_D(const QGeometryRenderer); + data.instanceCount = d->m_instanceCount; + data.vertexCount = d->m_vertexCount; + data.indexOffset = d->m_indexOffset; + data.firstInstance = d->m_firstInstance; + data.restartIndexValue = d->m_restartIndexValue; + data.verticesPerPatch = d->m_verticesPerPatch; + data.primitiveRestart = d->m_primitiveRestart; + data.geometryId = qIdForNode(d->m_geometry); + data.primitiveType = d->m_primitiveType; + data.geometryFactory = d->m_geometryFactory; + return creationChange; +} } // namespace Qt3DRender diff --git a/src/render/geometry/qgeometryrenderer.h b/src/render/geometry/qgeometryrenderer.h index 8644ff661..2b348b952 100644 --- a/src/render/geometry/qgeometryrenderer.h +++ b/src/render/geometry/qgeometryrenderer.h @@ -132,6 +132,7 @@ protected: private: Q_DECLARE_PRIVATE(QGeometryRenderer) QT3D_CLONEABLE(QGeometryRenderer) + Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE; }; } // namespace Qt3DRender diff --git a/src/render/geometry/qgeometryrenderer_p.h b/src/render/geometry/qgeometryrenderer_p.h index 6acf9ef79..d3ef46c4c 100644 --- a/src/render/geometry/qgeometryrenderer_p.h +++ b/src/render/geometry/qgeometryrenderer_p.h @@ -77,6 +77,20 @@ public: QGeometryFactoryPtr m_geometryFactory; }; +struct QGeometryRendererData +{ + int instanceCount; + int vertexCount; + int indexOffset; + int firstInstance; + int restartIndexValue; + int verticesPerPatch; + bool primitiveRestart; + Qt3DCore::QNodeId geometryId; + QGeometryRenderer::PrimitiveType primitiveType; + QGeometryFactoryPtr geometryFactory; +}; + } // namespace Qt3DRender QT_END_NAMESPACE |