summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2018-03-08 11:23:42 +0100
committerPaul Lemire <paul.lemire@kdab.com>2018-03-20 06:28:20 +0000
commite6423c0ad0b867ecd156145a946c3a74aa26ab22 (patch)
tree44b94c4672df4606262e76c6164ed0735c55721d
parentcde4f0367392eb98e49155b72af75fecd13cd766 (diff)
SubmissionContext: improve specifyAttribute
By reusing existing VAOVertexAttribute instance Change-Id: I78554a5849f76a01e901371e4dcb363779906f86 Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r--src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
index 2279aeacb..a8aabe16e 100644
--- a/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
+++ b/src/render/renderers/opengl/graphicshelpers/submissioncontext.cpp
@@ -1347,17 +1347,18 @@ void SubmissionContext::specifyAttribute(const Attribute *attribute,
Q_UNREACHABLE();
}
+ VAOVertexAttribute attr;
+ attr.bufferHandle = glBufferHandle;
+ attr.attributeType = attributeType;
+ attr.dataType = attributeDataType;
+ attr.divisor = attribute->divisor();
+ attr.vertexSize = attribute->vertexSize() / attrCount;
+ attr.byteStride = (attribute->byteStride() != 0) ? attribute->byteStride() : (attrCount * attrCount * typeSize);
+ attr.shaderDataType = attributeDescription->m_type;
+
for (int i = 0; i < attrCount; i++) {
- VAOVertexAttribute attr;
- attr.bufferHandle = glBufferHandle;
- attr.attributeType = attributeType;
attr.location = location + i;
- attr.dataType = attributeDataType;
attr.byteOffset = attribute->byteOffset() + (i * attrCount * typeSize);
- attr.vertexSize = attribute->vertexSize() / attrCount;
- attr.byteStride = (attribute->byteStride() != 0) ? attribute->byteStride() : (attrCount * attrCount * typeSize);
- attr.divisor = attribute->divisor();
- attr.shaderDataType = attributeDescription->m_type;
enableAttribute(attr);