Example/GLSL Separate Program Basics: Difference between revisions
< Example
Example from separate shader compilation. |
m formatting. |
||
Line 1: | Line 1: | ||
Creating two separable programs, one with a vertex shader and one with a fragment shader. | Creating two separable programs, one with a vertex shader and one with a fragment shader. | ||
<source lang="cpp"> | <source lang="cpp"> | ||
//Create two separable program objects from a | //Create two separable program objects from a | ||
//single source string respectively (vertSrc and fragSrc) | //single source string respectively (vertSrc and fragSrc) |
Revision as of 02:23, 27 April 2013
Creating two separable programs, one with a vertex shader and one with a fragment shader.
//Create two separable program objects from a
//single source string respectively (vertSrc and fragSrc)
GLuint vertProg = glCreateShaderProgramv(GL_VERTEX_SHADER , 1, &vertSrc);
GLuint fragProg = glCreateShaderProgramv(GL_FRAGMENT_SHADER, 1, &fragSrc);
//CHECK FOR ERRORS HERE!.
//Generate a program pipeline and bind the programs to their respective stages
glGenProgramPipelines(1, &pipeline);
glUseProgramStages(pipeline, GL_VERTEX_SHADER_BIT , vertProg);
glUseProgramStages(pipeline, GL_FRAGMENT_SHADER_BIT, fragProg);
//Query and set any uniforms
GLint colorLoc = glGetUniformLocation(fragProg, "Color");
glProgramUniform4f(fragProg, colorLoc, 1.f, 0.f, 0.f, 1.f);