Skip to content

Instantly share code, notes, and snippets.

@OneSadCookie
Created January 4, 2014 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OneSadCookie/8258995 to your computer and use it in GitHub Desktop.
Save OneSadCookie/8258995 to your computer and use it in GitHub Desktop.
static typed uniforms
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "m"), 1, GL_TRUE, (GLfloat const *)&m);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "mv"), 1, GL_TRUE, (GLfloat const *)&mv);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "v"), 1, GL_TRUE, (GLfloat const *)&v);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "mvp"), 1, GL_TRUE, (GLfloat const *)&mvp);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "shadow_mvp"), 1, GL_TRUE, (GLfloat const *)&shadow_mvp);
- glProgramUniform4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "worldspace_light_pos"), 1, (GLfloat const *)&worldspace_light_pos);
-
- glProgramUniform1i(_shaders->program(_fs_spotlight), glGetUniformLocation(_shaders->program(_fs_spotlight), "shadow_sampler"), 0);
- glProgramUniform3fv(_shaders->program(_fs_spotlight), glGetUniformLocation(_shaders->program(_fs_spotlight), "light_color"), 1, (GLfloat const *)&light.color);
- glProgramUniform4fv(_shaders->program(_fs_spotlight), glGetUniformLocation(_shaders->program(_fs_spotlight), "worldspace_light_pos"), 1, (GLfloat const *)&worldspace_light_pos);
+ _vs_spotlight.bind([&](vsh::spotlight::uniforms &u){
+ u.m(m);
+ u.mv(mv);
+ u.v(v);
+ u.mvp(mvp);
+ u.shadow_mvp(shadow_mvp);
+ u.worldspace_light_pos(worldspace_light_pos);
+ });
+ _fs_spotlight.bind([&](fsh::spotlight::uniforms &u){
+ u.shadow_sampler(0);
+ u.light_color(light.color);
+ u.worldspace_light_pos(worldspace_light_pos);
+ });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment