diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2018-03-08 11:23:42 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2018-03-20 06:28:20 +0000 |
commit | e6423c0ad0b867ecd156145a946c3a74aa26ab22 (patch) | |
tree | 44b94c4672df4606262e76c6164ed0735c55721d | |
parent | cde4f0367392eb98e49155b72af75fecd13cd766 (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.cpp | 17 |
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); |