From 041bba7bc054f0281da74a85ae7542d8dff3f149 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Tue, 15 Jun 2021 12:21:24 -0700 Subject: [PATCH] Add support for mat3/4 shader uniforms --- src/raylib.h | 4 +++- src/rlgl.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 5b27fc4ec..197fe7907 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -776,7 +776,9 @@ typedef enum { SHADER_UNIFORM_IVEC2, SHADER_UNIFORM_IVEC3, SHADER_UNIFORM_IVEC4, - SHADER_UNIFORM_SAMPLER2D + SHADER_UNIFORM_SAMPLER2D, + SHADER_UNIFORM_MAT3, + SHADER_UNIFORM_MAT4 } ShaderUniformDataType; // Pixel formats diff --git a/src/rlgl.h b/src/rlgl.h index 5130e5b31..5549c3fd1 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3405,6 +3405,9 @@ void rlSetUniform(int locIndex, const void *value, int uniformType, int count) case SHADER_UNIFORM_IVEC3: glUniform3iv(locIndex, count, (int *)value); break; case SHADER_UNIFORM_IVEC4: glUniform4iv(locIndex, count, (int *)value); break; case SHADER_UNIFORM_SAMPLER2D: glUniform1iv(locIndex, count, (int *)value); break; + case SHADER_UNIFORM_MAT3: glUniformMatrix3fv(locIndex, count, GL_FALSE, (float*)value); break; + case SHADER_UNIFORM_MAT4: glUniformMatrix4fv(locIndex, count, GL_FALSE, (float*)value); break; + default: TRACELOG(LOG_WARNING, "SHADER: Failed to set uniform value, data type not recognized"); } #endif