diff options
Diffstat (limited to 'chisel/backends/opengl/shader.cpp')
| -rw-r--r-- | chisel/backends/opengl/shader.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/chisel/backends/opengl/shader.cpp b/chisel/backends/opengl/shader.cpp new file mode 100644 index 0000000..34979a1 --- /dev/null +++ b/chisel/backends/opengl/shader.cpp @@ -0,0 +1,26 @@ +#include "shader.h" + +namespace gfx { + Shader::Shader(const std::string& text, int type) { + _shader_id = glCreateShader(type); + + int len = text.length(); + const char* txt = text.c_str(); + glShaderSource(_shader_id, 1, &txt, &len); + glCompileShader(_shader_id); + } + Shader::Shader(Shader&& other) : _shader_id(other._shader_id) { + other._shader_id = 0; + } + Shader::~Shader() { + if (!_shader_id) + return; + + // Delete the shader + glDeleteShader(_shader_id); + } + + GLuint Shader::shader_id() { + return _shader_id; + } +}
\ No newline at end of file |
