summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire350@gmail.com>2015-08-10 14:30:40 +0200
committerSean Harmer <sean.harmer@kdab.com>2015-08-11 17:29:03 +0000
commitcaf63547ffa5cdc86dd7c71208bb030443c01a24 (patch)
tree1172673b0575bc85907db7307106f810a635856c /src/render
parent2a491e627162ed10ac0d64b8b48ce7195d5c828f (diff)
RenderGeometry: verticesPerPatch property added
Change-Id: I03a926e88299dae9b8e8b94d5daaaf87ce232320 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r--src/render/backend/rendergeometry.cpp12
-rw-r--r--src/render/backend/rendergeometry_p.h2
2 files changed, 14 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;
}
diff --git a/src/render/backend/rendergeometry_p.h b/src/render/backend/rendergeometry_p.h
index 636cba773..01381dc01 100644
--- a/src/render/backend/rendergeometry_p.h
+++ b/src/render/backend/rendergeometry_p.h
@@ -59,10 +59,12 @@ public:
inline QVector<QNodeId> attributes() const { return m_attributes; }
inline bool isDirty() const { return m_geometryDirty; }
+ inline int verticesPerPatch() const { return m_verticesPerPatch; }
void unsetDirty();
private:
QVector<QNodeId> m_attributes;
+ int m_verticesPerPatch;
bool m_geometryDirty;
};