BizHawk/ppsspp/native/gfx/gl_debug_log.cpp

55 lines
1.2 KiB
C++

#include "gfx/gl_common.h"
#include "base/logging.h"
void glCheckzor(const char *file, int line) {
GLenum err = glGetError();
if (err != GL_NO_ERROR) {
ELOG("GL error on line %i in %s: %i (%04x)", line, file, (int)err, (int)err);
}
}
#if !defined(USING_GLES2)
#if 0
void log_callback(GLenum source, GLenum type,
GLuint id,
GLenum severity,
GLsizei length,
const GLchar* message,
GLvoid* userParam) {
const char *src = "unknown";
switch (source) {
case GL_DEBUG_SOURCE_API_GL_ARB:
src = "GL";
break;
case GL_DEBUG_SOURCE_SHADER_COMPILER_ARB:
src = "GLSL";
break;
case GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB:
src = "X";
break;
default:
break;
}
switch (type) {
case GL_DEBUG_TYPE_ERROR_ARB:
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB:
ELOG("%s: %s", src, message);
break;
default:
ILOG("%s: %s", src, message);
break;
}
}
#endif
#endif
void gl_log_enable() {
#if !defined(USING_GLES2)
#if 0
glEnable(DEBUG_OUTPUT_SYNCHRONOUS_ARB); // TODO: Look into disabling, for more perf
glDebugMessageCallback(&log_callback, 0);
glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, 0, GL_TRUE);
#endif
#endif
}