summaryrefslogtreecommitdiffstats
path: root/src/render/backend/rendergeometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/backend/rendergeometry.cpp')
-rw-r--r--src/render/backend/rendergeometry.cpp12
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;
}