80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
#include <iostream>
|
|
#include "gl_debug.h"
|
|
|
|
#ifdef __DEBUG
|
|
void GLAPIENTRY debug_func(GLenum source, GLenum type, GLuint, GLenum severity, GLsizei, const GLchar* msg, const void*) {
|
|
const char* src;
|
|
switch(source) {
|
|
case GL_DEBUG_SOURCE_API:
|
|
src = "[SOURCE_API]";
|
|
break;
|
|
case GL_DEBUG_SOURCE_OTHER:
|
|
src = "[SOURCE_OTHER]";
|
|
break;
|
|
case GL_DEBUG_SOURCE_THIRD_PARTY:
|
|
src = "[SOURCE_THIRD_PARTY]";
|
|
break;
|
|
case GL_DEBUG_SOURCE_APPLICATION:
|
|
src = "[SOURCE_APP]";
|
|
break;
|
|
case GL_DEBUG_SOURCE_SHADER_COMPILER:
|
|
src = "[SOURCE_SHADER_COMPILER]";
|
|
break;
|
|
case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
|
|
src = "[SOURCE_WIN_SYS]";
|
|
break;
|
|
default:
|
|
src = "[SOURCE_UNKNOWN]";
|
|
break;
|
|
}
|
|
|
|
const char* tp;
|
|
switch(type) {
|
|
case GL_DEBUG_TYPE_ERROR:
|
|
tp = "[TYPE_ERROR]";
|
|
break;
|
|
case GL_DEBUG_TYPE_OTHER:
|
|
tp = "[TYPE_OTHER]";
|
|
break;
|
|
case GL_DEBUG_TYPE_MARKER:
|
|
tp = "[TYPE_MARKER]";
|
|
break;
|
|
case GL_DEBUG_TYPE_PERFORMANCE:
|
|
tp = "[TYPE_PERF]";
|
|
break;
|
|
case GL_DEBUG_TYPE_PORTABILITY:
|
|
tp = "[TYPE_PORT]";
|
|
break;
|
|
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
|
|
tp = "[TYPE_DEPRECATED]";
|
|
break;
|
|
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
|
|
tp = "[TYPE_UB]";
|
|
break;
|
|
default:
|
|
tp = "[TYPE_UNKNOWN]";
|
|
break;
|
|
}
|
|
|
|
const char* sv;
|
|
switch(severity) {
|
|
case GL_DEBUG_SEVERITY_LOW:
|
|
sv = "[SEV_LOW]";
|
|
break;
|
|
case GL_DEBUG_SEVERITY_MEDIUM:
|
|
sv = "[SEV_MED]";
|
|
break;
|
|
case GL_DEBUG_SEVERITY_HIGH:
|
|
sv = "[SEV_HIGH]";
|
|
break;
|
|
case GL_DEBUG_SEVERITY_NOTIFICATION:
|
|
return;
|
|
sv = "[SEV_NOTIF]";
|
|
break;
|
|
default:
|
|
sv = "[SEV_UNKNOWN]";
|
|
}
|
|
|
|
std::cerr << "[GL]" << sv << tp << src << ": " << msg << std::endl;
|
|
}
|
|
#endif
|