diff options
-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 |