pulsing grid
[vrfileman] / src / sdr.c
index 7103fb0..5ccf7fe 100644 (file)
--- a/src/sdr.c
+++ b/src/sdr.c
@@ -302,6 +302,20 @@ int bind_program(unsigned int prog)
        } \
        return loc == -1 ? -1 : 0
 
+int get_uniform_loc(unsigned int prog, const char *name)
+{
+       int loc, curr_prog;
+       glGetIntegerv(GL_CURRENT_PROGRAM, &curr_prog);
+       if((unsigned int)curr_prog != prog && bind_program(prog) == -1) {
+               return -1;
+       }
+       loc = glGetUniformLocation(prog, name);
+       if((unsigned int)curr_prog != prog) {
+               bind_program(curr_prog);
+       }
+       return loc;
+}
+
 int set_uniform_int(unsigned int prog, const char *name, int val)
 {
        BEGIN_UNIFORM_CODE {