summaryrefslogtreecommitdiff
path: root/gfx/gl/shader.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-12-12 16:00:54 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-12-12 16:00:54 +0000
commit4e1e30a5e5edfe36410e3da095ad98e181a29ce9 (patch)
tree62eb60b33fd4ffe713cb624fd77f7ae68145e82e /gfx/gl/shader.cpp
parentMove GL shared source into it's own class/file (diff)
downloadilt-4e1e30a5e5edfe36410e3da095ad98e181a29ce9.tar.bz2
ilt-4e1e30a5e5edfe36410e3da095ad98e181a29ce9.tar.xz
ilt-4e1e30a5e5edfe36410e3da095ad98e181a29ce9.zip
Split 3D specifics of programs out of a base class
Diffstat (limited to 'gfx/gl/shader.cpp')
-rw-r--r--gfx/gl/shader.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/gfx/gl/shader.cpp b/gfx/gl/shader.cpp
index 06edc5c..12ab510 100644
--- a/gfx/gl/shader.cpp
+++ b/gfx/gl/shader.cpp
@@ -16,20 +16,23 @@
#include <stdexcept>
#include <string>
-Shader::ProgramHandle::ProgramHandle(GLuint vs, GLuint fs) : viewProjection_uniform {}, model_uniform {}
+ProgramHandleBase::ProgramHandleBase(GLuint vs, GLuint fs) : viewProjection_uniform {}, model_uniform {}
{
glAttachShader(m_program, vs);
glAttachShader(m_program, fs);
- glBindAttribLocation(m_program, 0, "position");
- glBindAttribLocation(m_program, 1, "texCoord");
- glBindAttribLocation(m_program, 2, "normal");
-
glLinkProgram(m_program);
GLsource::CheckShaderError(m_program, GL_LINK_STATUS, true, "Error linking shader program");
glValidateProgram(m_program);
GLsource::CheckShaderError(m_program, GL_VALIDATE_STATUS, true, "Invalid shader program");
+}
+
+Shader::ProgramHandle::ProgramHandle(GLuint vs, GLuint fs) : ProgramHandleBase {vs, fs}
+{
+ glBindAttribLocation(m_program, 0, "position");
+ glBindAttribLocation(m_program, 1, "texCoord");
+ glBindAttribLocation(m_program, 2, "normal");
viewProjection_uniform = glGetUniformLocation(m_program, "viewProjection");
model_uniform = glGetUniformLocation(m_program, "model");