aboutsummaryrefslogtreecommitdiff
path: root/src/shader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader.c')
-rw-r--r--src/shader.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/shader.c b/src/shader.c
index ae2f08e..a82c25d 100644
--- a/src/shader.c
+++ b/src/shader.c
@@ -101,14 +101,30 @@ shaderCreateProgram(const char *vertexShaderPath, const char *fragmentShaderPath
}
void
-shaderSetUniformMatrix4fv(unsigned int program, char *uniformVariable, float *data)
+shaderSetfv(
+ unsigned int program,
+ char *uniformVariable,
+ float *data,
+ void (*uniform_callback)(int, int, const float *))
{
unsigned int varLoc = glGetUniformLocation(program, uniformVariable);
- glUniformMatrix4fv(varLoc, 1, GL_TRUE, data);
+ uniform_callback(varLoc, 1, data);
+}
+
+
+void
+shaderSetMatrixfv(
+ unsigned int program,
+ char *uniformVariable,
+ float *data,
+ void (*uniform_callback)(int, int, unsigned char, const float *))
+{
+ unsigned int varLoc = glGetUniformLocation(program, uniformVariable);
+ uniform_callback(varLoc, 1, GL_TRUE, data);
}
void
-shaderSetUniform1f(unsigned int program, char *uniformVariable, float data)
+shaderSet1f(unsigned int program, char *uniformVariable, float data)
{
unsigned int varLoc = glGetUniformLocation(program, uniformVariable);
glUniform1f(varLoc, data);
Feel free to download, copy and edit any repo