From 94e99a5a9ded01e8184543b7ddf5cdfa39573ded Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 29 Dec 2022 23:25:25 +0000 Subject: Move test render helpers into a new test library --- test/test-render.cpp | 64 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) (limited to 'test/test-render.cpp') diff --git a/test/test-render.cpp b/test/test-render.cpp index ef4dcc6..8f8fd06 100644 --- a/test/test-render.cpp +++ b/test/test-render.cpp @@ -1,6 +1,8 @@ #define BOOST_TEST_MODULE test_render #include "test-helpers.hpp" +#include "testMainWindow.h" +#include "testRenderOutput.h" #include #include @@ -16,68 +18,6 @@ #include #include -class TestRenderOutput { -public: - TestRenderOutput() : size {640, 480} - { - glBindFramebuffer(GL_FRAMEBUFFER, output); - const auto configuregdata - = [this](const GLuint data, const GLint format, const GLenum type, const GLenum attachment) { - glBindTexture(GL_TEXTURE_2D, data); - glTexImage2D(GL_TEXTURE_2D, 0, format, size.x, size.y, 0, GL_RGBA, type, NULL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glFramebufferTexture2D(GL_FRAMEBUFFER, attachment, GL_TEXTURE_2D, data, 0); - }; - configuregdata(outImage, GL_RGBA, GL_UNSIGNED_BYTE, GL_COLOR_ATTACHMENT0); - glDrawBuffer(GL_COLOR_ATTACHMENT0); - - glBindRenderbuffer(GL_RENDERBUFFER, depth); - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, size.x, size.y); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depth); - - // finally check if framebuffer is complete - if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { - throw std::runtime_error("Framebuffer not complete!"); - } - } - const glm::ivec2 size; - glFrameBuffer output; - glRenderBuffer depth; - glTexture outImage; -}; - -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} - { - 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 - { - } -}; - class TestScene : public SceneProvider { RailVehicleClass train {"brush47"}; Terrain terrain {[]() { -- cgit v1.2.3