| 3 | #include <iostream> |
| 4 | |
| 5 | void message_callback( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const* message, void const* user_param ) |
| 6 | { |
| 7 | auto const src_str = [source]() { |
| 8 | switch ( source ) |
| 9 | { |
| 10 | case GL_DEBUG_SOURCE_API: return "API"; |
| 11 | case GL_DEBUG_SOURCE_WINDOW_SYSTEM: return "WINDOW SYSTEM"; |
| 12 | case GL_DEBUG_SOURCE_SHADER_COMPILER: return "SHADER COMPILER"; |
| 13 | case GL_DEBUG_SOURCE_THIRD_PARTY: return "THIRD PARTY"; |
| 14 | case GL_DEBUG_SOURCE_APPLICATION: return "APPLICATION"; |
| 15 | case GL_DEBUG_SOURCE_OTHER: return "OTHER"; |
| 16 | } |
| 17 | return ""; |
| 18 | }(); |
| 19 | |
| 20 | auto const type_str = [type]() { |
| 21 | switch ( type ) |
| 22 | { |
| 23 | case GL_DEBUG_TYPE_ERROR: return "ERROR"; |
| 24 | case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: return "DEPRECATED_BEHAVIOR"; |
| 25 | case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: return "UNDEFINED_BEHAVIOR"; |
| 26 | case GL_DEBUG_TYPE_PORTABILITY: return "PORTABILITY"; |
| 27 | case GL_DEBUG_TYPE_PERFORMANCE: return "PERFORMANCE"; |
| 28 | case GL_DEBUG_TYPE_MARKER: return "MARKER"; |
| 29 | case GL_DEBUG_TYPE_OTHER: return "OTHER"; |
| 30 | } |
| 31 | return ""; |
| 32 | }(); |
| 33 | |
| 34 | auto const severity_str = [severity]() { |
| 35 | switch ( severity ) { |
| 36 | case GL_DEBUG_SEVERITY_NOTIFICATION: return "NOTIFICATION"; |
| 37 | case GL_DEBUG_SEVERITY_LOW: return "LOW"; |
| 38 | case GL_DEBUG_SEVERITY_MEDIUM: return "MEDIUM"; |
| 39 | case GL_DEBUG_SEVERITY_HIGH: return "HIGH"; |
| 40 | } |
| 41 | return ""; |
| 42 | }(); |
| 43 | |
| 44 | std::cout << src_str << ", " << type_str << ", " << severity_str << ", " << id << ": " << message << '\n' << '\n'; |
| 45 | } |
| 46 | |
| 47 | void initDebug() |
| 48 | { |
nothing calls this directly
no outgoing calls
no test coverage detected