Example/GLSL Program Link Error Testing

From OpenGL Wiki
Revision as of 23:16, 4 December 2014 by Adrian (talk | contribs)
Jump to navigation Jump to search

Program Linking error checking.

GLuint program = glCreateProgram();

// Attach shaders as necessary.
glAttachShader(program, ...);
...

// Link the program.
glLinkProgram(program);

GLint isLinked;
glGetProgramiv(program, GL_LINK_STATUS, &isLinked);
if(isLinked == GL_FALSE)
{
	GLint maxLength;
	glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength);

	//The maxLength includes the NULL character
	GLchar infoLog[maxLength];
	glGetProgramInfoLog(program, maxLength, &maxLength, infoLog);

	// Provide the infolog in whatever manner you deem best.

	// The program is useless now. So delete it.
	glDeleteProgram(program);

	// Exit with failure.
	return;
}