summaryrefslogtreecommitdiffstats
path: root/src/render/geometry
diff options
context:
space:
mode:
authorKevin Ottens <kevin.ottens@kdab.com>2016-07-20 13:45:43 +0200
committerKevin Ottens <kevin.ottens@kdab.com>2016-07-20 11:47:06 +0000
commit8c1e1df4be02de8d64807d7abeccedc6becd3076 (patch)
tree69e3c0d994ceedaf42a8b2dd80787a7998fec04b /src/render/geometry
parent6254f25982e1138e7cf6d835d6d3467e7e597d3a (diff)
Add support for mat3 and mat4 attributes
Attributes don't support a vertexSize larger than 4, but it can come in handy to have bigger attributes when you want to push full matrices. mat2 already fits, so adding special handling for vertexSize == 9 (mat3) and vertexSize == 16 (mat4). Change-Id: Ic5376b1c7a87fc4225afdf756d65c924fde54996 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/geometry')
-rw-r--r--src/render/geometry/qattribute.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/render/geometry/qattribute.cpp b/src/render/geometry/qattribute.cpp
index fd1ceee60..fac4dbd7c 100644
--- a/src/render/geometry/qattribute.cpp
+++ b/src/render/geometry/qattribute.cpp
@@ -178,7 +178,8 @@ QString QAttribute::name() const
/*!
* \property QAttribute::vertexSize
*
- * Holds the data size.
+ * Holds the data size, it can only be 1 to 4 units (scalars and vectors),
+ * 9 units (3x3 matrices) or 16 units (4x4 matrices).
*/
uint QAttribute::vertexSize() const
{
@@ -303,7 +304,7 @@ void QAttribute::setDataSize(uint size)
Q_D(QAttribute);
if (d->m_dataSize == size)
return;
- Q_ASSERT(size >= 1 && size <= 4);
+ Q_ASSERT((size >= 1 && size <= 4) || (size == 9) || (size == 16));
d->m_dataSize = size;
emit dataSizeChanged(size);
}