X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrfileman;a=blobdiff_plain;f=src%2Fsdr.c;h=5ccf7fe2dc9d28b77f54079a1584e7e74cc72e66;hp=7103fb0642c95c19f6cf04d5ff2dfb97e40f765e;hb=f19edacadfd124dae0d6666a86fb1b6ca4df8969;hpb=818d6e49d86bc91748396a8c408cd84d17e10994 diff --git a/src/sdr.c b/src/sdr.c index 7103fb0..5ccf7fe 100644 --- 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 {