Example/GLSL Shader Compile Error Testing: Difference between revisions
< Example
categorization |
Forgot to delete this. |
||
Line 22: | Line 22: | ||
//Provide the infolog in whatever manor you deem best. | //Provide the infolog in whatever manor you deem best. | ||
//Exit with failure. | //Exit with failure. | ||
glDeleteShader(shader); //Don't leak the shader. | |||
return; | return; | ||
} | } |
Revision as of 01:45, 21 March 2013
Shader compilation error checking.
GLuint shader = glCreateShader(...);
//Get strings for glShaderSource.
glShaderSource(shader, ...);
glCompileShader(shader);
GLint isCompiled = 0;
glGetShaderiv(shader, GL_COMPILE_STATUS, &isCompiled);
if(isCompiled == GL_FALSE)
{
GLint maxLength = 0;
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength);
//The maxLength includes the NULL character
std::vector<char> errorLog(maxLength);
glGetShaderInfoLog(vertexshader, maxLength, &maxLength, &errorLog[0]);
//Provide the infolog in whatever manor you deem best.
//Exit with failure.
glDeleteShader(shader); //Don't leak the shader.
return;
}
//Shader compilation is successful.