|
|
|
@ -97,40 +97,45 @@ std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(float width, float height) { |
|
|
|
} |
|
|
|
|
|
|
|
const char* GetSource(GLenum source) { |
|
|
|
#define RET(s) \
|
|
|
|
case GL_DEBUG_SOURCE_##s: \ |
|
|
|
return #s |
|
|
|
switch (source) { |
|
|
|
RET(API); |
|
|
|
RET(WINDOW_SYSTEM); |
|
|
|
RET(SHADER_COMPILER); |
|
|
|
RET(THIRD_PARTY); |
|
|
|
RET(APPLICATION); |
|
|
|
RET(OTHER); |
|
|
|
case GL_DEBUG_SOURCE_API: |
|
|
|
return "API"; |
|
|
|
case GL_DEBUG_SOURCE_WINDOW_SYSTEM: |
|
|
|
return "WINDOW_SYSTEM"; |
|
|
|
case GL_DEBUG_SOURCE_SHADER_COMPILER: |
|
|
|
return "SHADER_COMPILER"; |
|
|
|
case GL_DEBUG_SOURCE_THIRD_PARTY: |
|
|
|
return "THIRD_PARTY"; |
|
|
|
case GL_DEBUG_SOURCE_APPLICATION: |
|
|
|
return "APPLICATION"; |
|
|
|
case GL_DEBUG_SOURCE_OTHER: |
|
|
|
return "OTHER"; |
|
|
|
default: |
|
|
|
UNREACHABLE(); |
|
|
|
return "Unknown source"; |
|
|
|
} |
|
|
|
#undef RET
|
|
|
|
} |
|
|
|
|
|
|
|
const char* GetType(GLenum type) { |
|
|
|
#define RET(t) \
|
|
|
|
case GL_DEBUG_TYPE_##t: \ |
|
|
|
return #t |
|
|
|
switch (type) { |
|
|
|
RET(ERROR); |
|
|
|
RET(DEPRECATED_BEHAVIOR); |
|
|
|
RET(UNDEFINED_BEHAVIOR); |
|
|
|
RET(PORTABILITY); |
|
|
|
RET(PERFORMANCE); |
|
|
|
RET(OTHER); |
|
|
|
RET(MARKER); |
|
|
|
case GL_DEBUG_TYPE_ERROR: |
|
|
|
return "ERROR"; |
|
|
|
case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: |
|
|
|
return "DEPRECATED_BEHAVIOR"; |
|
|
|
case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: |
|
|
|
return "UNDEFINED_BEHAVIOR"; |
|
|
|
case GL_DEBUG_TYPE_PORTABILITY: |
|
|
|
return "PORTABILITY"; |
|
|
|
case GL_DEBUG_TYPE_PERFORMANCE: |
|
|
|
return "PERFORMANCE"; |
|
|
|
case GL_DEBUG_TYPE_OTHER: |
|
|
|
return "OTHER"; |
|
|
|
case GL_DEBUG_TYPE_MARKER: |
|
|
|
return "MARKER"; |
|
|
|
default: |
|
|
|
UNREACHABLE(); |
|
|
|
return "Unknown type"; |
|
|
|
} |
|
|
|
#undef RET
|
|
|
|
} |
|
|
|
|
|
|
|
void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, |
|
|
|
|