From 1717e8c938abc52c5144fceb2cb584af86417490 Mon Sep 17 00:00:00 2001 From: Logan McNaughton Date: Thu, 20 Oct 2016 20:17:56 -0600 Subject: [PATCH] Fix for zarch menu --- gfx/drivers_shader/shader_glsl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gfx/drivers_shader/shader_glsl.c b/gfx/drivers_shader/shader_glsl.c index b06ef392b0..abc228e2c7 100644 --- a/gfx/drivers_shader/shader_glsl.c +++ b/gfx/drivers_shader/shader_glsl.c @@ -149,6 +149,7 @@ typedef struct glsl_shader_data static bool glsl_core; static unsigned glsl_major; static unsigned glsl_minor; +static float* current_mat_data_pointer[GFX_MAX_SHADERS]; static float current_mat_data[GFX_MAX_SHADERS]; static unsigned current_idx; @@ -1269,9 +1270,10 @@ static bool gl_glsl_set_mvp(void *data, void *shader_data, const math_matrix_4x4 loc = glsl->uniforms[glsl->active_idx].mvp; if (loc >= 0) { - if (current_idx != glsl->active_idx || *mat->data != current_mat_data[glsl->active_idx]) { + if (current_idx != glsl->active_idx || mat->data != current_mat_data_pointer[glsl->active_idx] || *mat->data != current_mat_data[glsl->active_idx]) { glUniformMatrix4fv(loc, 1, GL_FALSE, mat->data); current_idx = glsl->active_idx; + current_mat_data_pointer[glsl->active_idx] = (float*)mat->data; current_mat_data[glsl->active_idx] = *mat->data; } }