diff options
Diffstat (limited to 'src/render/backend/rendergeometry.cpp')
-rw-r--r-- | src/render/backend/rendergeometry.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/render/backend/rendergeometry.cpp b/src/render/backend/rendergeometry.cpp index 5ca72a10f..026a8146e 100644 --- a/src/render/backend/rendergeometry.cpp +++ b/src/render/backend/rendergeometry.cpp @@ -47,6 +47,7 @@ namespace Render { RenderGeometry::RenderGeometry() : QBackendNode(ReadOnly) + , m_verticesPerPatch(0) , m_geometryDirty(false) { } @@ -57,6 +58,7 @@ RenderGeometry::~RenderGeometry() void RenderGeometry::cleanup() { + m_verticesPerPatch = 0; m_attributes.clear(); m_geometryDirty = false; } @@ -68,6 +70,7 @@ void RenderGeometry::updateFromPeer(QNode *peer) m_attributes.reserve(geometry->attributes().size()); Q_FOREACH (QAbstractAttribute *attribute, geometry->attributes()) m_attributes.push_back(attribute->id()); + m_verticesPerPatch = geometry->verticesPerPatch(); m_geometryDirty = true; } } @@ -94,6 +97,15 @@ void RenderGeometry::sceneChangeEvent(const QSceneChangePtr &e) break; } + case NodeUpdated: + if (propertyName == QByteArrayLiteral("verticesPerPatch")) { + m_verticesPerPatch = propertyChange->value().value<int>(); + break; + + // Note: doesn't set dirtyness as this parameter changing doesn't need + // a new VAO update. + } + default: break; } |