summaryrefslogtreecommitdiff
path: root/Runtime/Graphics/CustomVertexLayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/Graphics/CustomVertexLayout.cpp')
-rw-r--r--Runtime/Graphics/CustomVertexLayout.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/Runtime/Graphics/CustomVertexLayout.cpp b/Runtime/Graphics/CustomVertexLayout.cpp
index e69de29..aa6be9b 100644
--- a/Runtime/Graphics/CustomVertexLayout.cpp
+++ b/Runtime/Graphics/CustomVertexLayout.cpp
@@ -0,0 +1,23 @@
+#include "CustomVertexLayout.h"
+
+namespace VertexLayout
+{
+
+ void SetupCustomVertexLayout(CustomVertexLayout& info)
+ {
+ glBindBuffer(GL_ARRAY_BUFFER, info.buffer);
+ for (int i = 0; i < info.attributes.size(); ++i)
+ {
+ VertexAttributeDescriptor& attr = info.attributes[i];
+ glEnableVertexAttribArray(i);
+ int numCompo = attr.componentNum;
+ GLenum compoType = VertexAttribute::ConvertAttrFormatToGLFormat(attr.componentFormat);
+ bool normalized = attr.normalize;
+ uint stride = attr.stride;
+ const void* pointer = attr.pointer;
+
+ glVertexAttribPointer(i, numCompo, compoType, normalized ? GL_TRUE : GL_FALSE, stride, pointer);
+ }
+ }
+
+}