diff options
author | dec05eba <dec05eba@protonmail.com> | 2017-12-26 17:29:28 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-11-18 15:21:48 +0100 |
commit | ffe9dac56488ebfc9f5c37c4e400f4f5469a8a46 (patch) | |
tree | 5958b66f16d217e31215d2f6ec56bb341ec06a76 /src/RenderBackend/OpenGL/ShaderVec.cpp | |
parent | b5f06b6c4cd07f3073897af32626b9b21a4d2ef8 (diff) |
Add device memory, device frame. Rendering works
Diffstat (limited to 'src/RenderBackend/OpenGL/ShaderVec.cpp')
-rw-r--r-- | src/RenderBackend/OpenGL/ShaderVec.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/RenderBackend/OpenGL/ShaderVec.cpp b/src/RenderBackend/OpenGL/ShaderVec.cpp index 6411650..3bbe0be 100644 --- a/src/RenderBackend/OpenGL/ShaderVec.cpp +++ b/src/RenderBackend/OpenGL/ShaderVec.cpp @@ -2,16 +2,47 @@ #include "../../../include/RenderBackend/OpenGL/VertexShader.hpp" #include "../../../include/RenderBackend/OpenGL/PixelShader.hpp" #include "../../../include/RenderBackend/OpenGL/ShaderProgram.hpp" +#include "../../../include/RenderBackend/OpenGL/opengl.hpp" +#include <cstring> +#include <cassert> using namespace std; namespace amalgine { + AttributeType getAttributeTypeByName(const char *attributeName) + { + if(strncmp(attributeName, "vec2", 4) == 0) + { + return AttributeType::VEC2; + } + + return AttributeType::NONE; + } + const string& ShaderInputVec2::getName() const { return vertexShader->getInputAttributeName(attributeIndex); } + void ShaderInputVec2::setData(const DeviceMemory &data) + { + data.use(); + AttributeType attributeType = vertexShader->getInputAttributeType(attributeIndex); + switch(attributeType) + { + case AttributeType::VEC2: + { + glVertexAttribPointer(attributeIndex, 2, GL_FLOAT, GL_FALSE, 0, 0); + break; + } + default: + assert(false); + break; + } + glEnableVertexAttribArray(attributeIndex); + } + const string& ShaderOutputVec4::getName() const { return pixelShader->getOutputAttributeName(attributeIndex); |