Difference between revisions of "Example/GLSL Separate Program Basics"

From OpenGL.org
Jump to: navigation, search
m (formatting.)
(Proper nomenclature)
 
Line 9: Line 9:
 
//CHECK FOR ERRORS HERE!.
 
//CHECK FOR ERRORS HERE!.
  
//Generate a program pipeline and bind the programs to their respective stages
+
//Generate a program pipeline and attach the programs to their respective stages
 
glGenProgramPipelines(1, &pipeline);
 
glGenProgramPipelines(1, &pipeline);
 
glUseProgramStages(pipeline, GL_VERTEX_SHADER_BIT  , vertProg);
 
glUseProgramStages(pipeline, GL_VERTEX_SHADER_BIT  , vertProg);

Latest revision as of 22:31, 26 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 attach 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);