aboutsummaryrefslogtreecommitdiff
path: root/src/RenderBackend/OpenGL/VertexShader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/RenderBackend/OpenGL/VertexShader.cpp')
-rw-r--r--src/RenderBackend/OpenGL/VertexShader.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/RenderBackend/OpenGL/VertexShader.cpp b/src/RenderBackend/OpenGL/VertexShader.cpp
index 1505ff4..ac9a159 100644
--- a/src/RenderBackend/OpenGL/VertexShader.cpp
+++ b/src/RenderBackend/OpenGL/VertexShader.cpp
@@ -1,5 +1,4 @@
#include "../../../include/RenderBackend/OpenGL/VertexShader.hpp"
-#include "../../../include/RenderBackend/OpenGL/CommonShader.hpp"
#include "../../../include/RenderBackend/OpenGL/opengl.hpp"
#include "../../../include/RenderBackend/OpenGL/CompiledShader.hpp"
@@ -37,10 +36,16 @@ namespace amalgine
writeHeader("#version 330 core\n\n");
}
- const string& VertexShader::getInputAttributeName(i32 attributeIndex)
+ const string& VertexShader::getInputAttributeName(i32 attributeIndex) const
{
assert(attributeIndex < vertexAttributeNames.size());
- return vertexAttributeNames[attributeIndex];
+ return vertexAttributeNames[attributeIndex].name;
+ }
+
+ AttributeType VertexShader::getInputAttributeType(i32 attributeIndex) const
+ {
+ assert(attributeIndex < vertexAttributeNames.size());
+ return getAttributeTypeByName(vertexAttributeNames[attributeIndex].typeName);
}
ShaderInputVec2 VertexShader::defineInputVec2(const std::string &name)
@@ -75,7 +80,10 @@ namespace amalgine
i32 attributeIndex = locationCounter;
vertexAttributes[variableName] = locationCounter;
- vertexAttributeNames.push_back(variableName);
+ ShaderAttribute shaderAttribute;
+ shaderAttribute.name = variableName;
+ shaderAttribute.typeName = typeName;
+ vertexAttributeNames.push_back(shaderAttribute);
writeHeader("layout(location = ");
writeHeader(to_string(locationCounter));