From 4891db44ded301d4473732a406abd16bea1bf24e Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Fri, 13 May 2011 15:28:24 -0400 Subject: [PATCH] add guGetUniformLocations() --- glslUtil/glslUtil.c | 9 +++++++++ glslUtil/glslUtil.h | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/glslUtil/glslUtil.c b/glslUtil/glslUtil.c index 8c925f5..15885b8 100644 --- a/glslUtil/glslUtil.c +++ b/glslUtil/glslUtil.c @@ -338,3 +338,12 @@ GLuint guMakeProgram(GLuint v_shader_id, GLuint f_shader_id, return program; } + +void guGetUniformLocations(GLuint program, guUniformLocation *locs) +{ + int i; + for (i = 0; locs[i].name != NULL; i++) + { + *locs[i].loc = glGetUniformLocation(program, locs[i].name); + } +} diff --git a/glslUtil/glslUtil.h b/glslUtil/glslUtil.h index a1d2b21..ff652aa 100644 --- a/glslUtil/glslUtil.h +++ b/glslUtil/glslUtil.h @@ -14,6 +14,10 @@ typedef struct { GLuint index; const char *name; } guAttribBinding; +typedef struct { + GLint *loc; + const char *name; +} guUniformLocation; #ifdef __cplusplus extern "C" { @@ -49,6 +53,8 @@ GLuint guMakeProgramFromFiles(const char *v_shader, const char *f_shader, GLuint guMakeProgram(GLuint v_shader_id, GLuint f_shader_id, const guAttribBinding *bindings); +void guGetUniformLocations(GLuint program, guUniformLocation *locs); + GLuint guMakeBuffer(GLenum target, GLenum usage, const void *ptr, size_t sz); #ifdef __cplusplus