diff options
-rw-r--r-- | test/test-render.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/test/test-render.cpp b/test/test-render.cpp index 5a75419..17bc5fc 100644 --- a/test/test-render.cpp +++ b/test/test-render.cpp @@ -48,7 +48,27 @@ class TestMainWindow : public Window { // This exists only to hold an OpenGL context open for the duration of the tests, // in the same way a real main window would always exist. public: - TestMainWindow() : Window {1, 1, __FILE__, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN} { } + TestMainWindow() : Window {1, 1, __FILE__, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN} + { + glEnable(GL_DEBUG_OUTPUT); + glDebugMessageCallback( + [](GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * message, + const void *) { + char buf[BUFSIZ]; + snprintf(buf, BUFSIZ, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s", + (type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : ""), type, severity, message); + switch (type) { + case GL_DEBUG_TYPE_ERROR: + case GL_DEBUG_TYPE_PERFORMANCE: + case GL_DEBUG_TYPE_PORTABILITY: + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: + BOOST_TEST_ERROR(buf); + } + BOOST_TEST_MESSAGE(buf); + }, + nullptr); + } void tick(TickDuration) override { |