model_extractor/gl_debug.cpp
2025-05-13 15:33:42 +02:00

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