diff options
author | dec05eba <dec05eba@protonmail.com> | 2019-10-27 01:30:34 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-11-18 15:21:48 +0100 |
commit | fbd2e5d9a802db4fb5e056705ec599ac423e09be (patch) | |
tree | ebe71975909a0767b5de045c28fc28d09292bca3 /src/RenderBackend/OpenGL/ShaderVec.cpp | |
parent | 24934c7823457767855bd0abb249a55b8a8c077d (diff) |
Create Shader class as a base for vertex and pixel shader
Diffstat (limited to 'src/RenderBackend/OpenGL/ShaderVec.cpp')
-rw-r--r-- | src/RenderBackend/OpenGL/ShaderVec.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/RenderBackend/OpenGL/ShaderVec.cpp b/src/RenderBackend/OpenGL/ShaderVec.cpp index dd3bbe5..8897b84 100644 --- a/src/RenderBackend/OpenGL/ShaderVec.cpp +++ b/src/RenderBackend/OpenGL/ShaderVec.cpp @@ -1,6 +1,5 @@ #include "../../../include/RenderBackend/OpenGL/ShaderVec.hpp" -#include "../../../include/RenderBackend/OpenGL/VertexShader.hpp" -#include "../../../include/RenderBackend/OpenGL/PixelShader.hpp" +#include "../../../include/RenderBackend/OpenGL/Shader.hpp" #include "../../../include/RenderBackend/OpenGL/ShaderProgram.hpp" #include "../../../include/RenderBackend/OpenGL/opengl.hpp" #include <cstring> @@ -16,7 +15,16 @@ namespace amalgine { return AttributeType::VEC2; } + else if(strncmp(attributeName, "vec3", 4) == 0) + { + return AttributeType::VEC3; + } + else if(strncmp(attributeName, "vec4", 4) == 0) + { + return AttributeType::VEC4; + } + assert(false); return AttributeType::NONE; } @@ -28,13 +36,13 @@ namespace amalgine const string& ShaderInputVec2::getName() const { - return vertexShader->getInputAttributeName(attributeIndex); + return shader->getInputAttributeName(attributeIndex); } void ShaderInputVec2::setData(const DeviceMemory &data) { data.use(); - AttributeType attributeType = vertexShader->getInputAttributeType(attributeIndex); + AttributeType attributeType = shader->getInputAttributeType(attributeIndex); switch(attributeType) { case AttributeType::VEC2: @@ -51,11 +59,11 @@ namespace amalgine const string& ShaderOutputVec4::getName() const { - return pixelShader->getOutputAttributeName(attributeIndex); + return shader->getOutputAttributeName(attributeIndex); } void ShaderOutputVec4::operator=(const ShaderVec4 &shaderVec4) { - pixelShader->assign(*this, shaderVec4); + shader->assign(*this, shaderVec4); } } |