summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/geometry/qgeometryrenderer.cpp18
-rw-r--r--src/render/geometry/qgeometryrenderer.h1
-rw-r--r--src/render/geometry/qgeometryrenderer_p.h14
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