From 7ba8baf2d37501f86d161c06685de9ec7f8a0275 Mon Sep 17 00:00:00 2001 From: Tuomas Virtanen Date: Tue, 2 May 2023 18:01:46 +0300 Subject: [PATCH] Check return values on glGetUniformBlockIndex and glGetUniformLocation --- src/video/opengl/shaders.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/video/opengl/shaders.c b/src/video/opengl/shaders.c index 0bcea18a..39859e3f 100644 --- a/src/video/opengl/shaders.c +++ b/src/video/opengl/shaders.c @@ -124,12 +124,20 @@ bool create_program(GLuint *program_id, const char *vertex_shader, const char *f } void bind_uniform_4fv(GLuint program_id, const char *name, GLfloat *data) { - GLuint ref = glGetUniformLocation(program_id, name); + GLint ref = glGetUniformLocation(program_id, name); + if(ref == -1) { + PERROR("Unable to find uniform; glGetUniformLocation() returned -1"); + return; + } glUniformMatrix4fv(ref, 1, GL_FALSE, data); } void bind_uniform_block(GLuint program_id, const char *name, GLuint binding) { GLuint ref = glGetUniformBlockIndex(program_id, name); + if(ref == GL_INVALID_INDEX) { + PERROR("Unable to find ubo; glGetUniformBlockIndex() returned GL_INVALID_INDEX"); + return; + } glUniformBlockBinding(program_id, 0, ref); glBindBufferBase(GL_UNIFORM_BUFFER, 0, binding); }