GLSL Tutorial – Setup Example
| Prev: Creating a Program | Next: Troubleshooting: the Infolog |
The following source code contains all the steps described previously considering a program with three types of shaders: vertex, geometry, and fragment. The variable p, is assumed to be declared globally as GLuint.
void setShaders() {
GLuint v, g, f;
char *vs,*gs, *fs;
// Create shader handlers
v = glCreateShader(GL_VERTEX_SHADER);
g = glCreateShader(GL_GEOMETRY_SHADER);
f = glCreateShader(GL_FRAGMENT_SHADER);
// Read source code from files
vs = textFileRead("example.vert");
gs = textFileRead("example.geom");
fs = textFileRead("example.frag");
const char * vv = vs;
const char * gg = gs;
const char * ff = fs;
// Set shader source
glShaderSource(v, 1, &vv,NULL);
glShaderSource(g, 1, &gg,NULL);
glShaderSource(f, 1, &ff,NULL);
free(vs);free(gs);free(fs);
// Compile all shaders
glCompileShader(v);
glCompileShader(g);
glCompileShader(f);
// Create the program
p = glCreateProgram();
// Attach shaders to program
glAttachShader(p,v);
glAttachShader(p,g);
glAttachShader(p,f);
// Link and set program to use
glLinkProgram(p);
glUseProgram(p);
}
| Prev: Creating a Program | Next: Troubleshooting: the Infolog |
2 Responses to “GLSL Tutorial – Setup Example”
Leave a Reply Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thanks for the tutorial. The structure is very concise compared to others out there. I will, say, however, that we use variable names and not memory offsets for a reason 😉
Thanks for the comments Mike. I guess I should have been more verbose 🙂