Skip to content

Instantly share code, notes, and snippets.

@thebirk
Created September 4, 2019 21:44
Show Gist options
  • Select an option

  • Save thebirk/6a7034ca4a27a73b864ec13839a8af2c to your computer and use it in GitHub Desktop.

Select an option

Save thebirk/6a7034ca4a27a73b864ec13839a8af2c to your computer and use it in GitHub Desktop.
const char* source_to_string(GLenum source) {
switch (source) {
case GL_DEBUG_SOURCE_API:
return "GL_DEBUG_SOURCE_API";
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
return "GL_DEBUG_SOURCE_WINDOW_SYSTEM";
case GL_DEBUG_SOURCE_SHADER_COMPILER:
return "GL_DEBUG_SOURCE_SHADER_COMPILER";
case GL_DEBUG_SOURCE_THIRD_PARTY:
return "GL_DEBUG_SOURCE_THIRD_PARTY";
case GL_DEBUG_SOURCE_APPLICATION:
return "GL_DEBUG_SOURCE_APPLICATION";
case GL_DEBUG_SOURCE_OTHER:
return "GL_DEBUG_SOURCE_OTHER";
default:
return "INVALID_SOURCE";
}
}
const char* type_to_string(GLenum type) {
switch (type) {
case GL_DEBUG_TYPE_ERROR:
return "GL_DEBUG_TYPE_ERROR";
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
return "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR";
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
return "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR";
case GL_DEBUG_TYPE_PORTABILITY:
return "GL_DEBUG_TYPE_PORTABILITY";
case GL_DEBUG_TYPE_PERFORMANCE:
return "GL_DEBUG_TYPE_PERFORMANCE";
case GL_DEBUG_TYPE_MARKER:
return "GL_DEBUG_TYPE_MARKER";
case GL_DEBUG_TYPE_PUSH_GROUP:
return "GL_DEBUG_TYPE_PUSH_GROUP";
case GL_DEBUG_TYPE_POP_GROUP:
return "GL_DEBUG_TYPE_POP_GROUP";
case GL_DEBUG_TYPE_OTHER:
return "GL_DEBUG_TYPE_OTHER";
default:
return "INVALID_TYPE";
}
}
const char* severity_to_string(GLenum severity) {
switch (severity) {
case GL_DEBUG_SEVERITY_LOW:
return "GL_DEBUG_SEVERITY_LOW";
case GL_DEBUG_SEVERITY_MEDIUM:
return "GL_DEBUG_SEVERITY_MEDIUM";
case GL_DEBUG_SEVERITY_HIGH:
return "GL_DEBUG_SEVERITY_HIGH";
case GL_DEBUG_SEVERITY_NOTIFICATION:
return "GL_DEBUG_SEVERITY_NOTIFICATION";
default:
return "INVALID_SEVERITY";
}
}
void gl_log_func(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam) {
fprintf(stdout, "source: %s, type: %s, id: %u, severity: %s, msg: %s\n",
source_to_string(source),
type_to_string(type),
id,
severity_to_string(severity),
message);
fflush(stdout);
}
...
glEnable(GL_DEBUG_OUTPUT);
glDebugMessageCallback(gl_log_func, 0);
glDebugMessageControl( GL_DONT_CARE, GL_DONT_CARE, GL_DEBUG_SEVERITY_NOTIFICATION, 0, 0, GL_FALSE)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment