aboutsummaryrefslogtreecommitdiff
path: root/src/RenderBackend/OpenGL/ShaderVec.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2017-12-26 17:29:28 +0100
committerdec05eba <dec05eba@protonmail.com>2021-11-18 15:21:48 +0100
commitffe9dac56488ebfc9f5c37c4e400f4f5469a8a46 (patch)
tree5958b66f16d217e31215d2f6ec56bb341ec06a76 /src/RenderBackend/OpenGL/ShaderVec.cpp
parentb5f06b6c4cd07f3073897af32626b9b21a4d2ef8 (diff)
Add device memory, device frame. Rendering works
Diffstat (limited to 'src/RenderBackend/OpenGL/ShaderVec.cpp')
-rw-r--r--src/RenderBackend/OpenGL/ShaderVec.cpp31
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);