#ifndef GLBACKEND_TESTS_COMMON_RUN_HPP_ #define GLBACKEND_TESTS_COMMON_RUN_HPP_ #include <iostream> #include <string> #include <glbase.hpp> #include <glbackend.hpp> // NOLINTNEXTLINE #define STR_EXCEPTION GLBase::Exception #include <str.hpp> #define GLBACKEND_TESTS_COMMON_RUN(GLBACKEND) \ run<GLBACKEND>(#GLBACKEND); constexpr auto size = std::array<int, 2>{640, 480}; template<typename GLBackend> inline void run(std::string const & name) { GLBackend::prefix("assets/tests"); auto backend = GLBackend(name, size); std::cout << backend.debug_info() << std::endl; backend.callback_render([&]() { glClearColor(1.0F, 0.0F, 0.0F, 0.5F); glClear(GL_COLOR_BUFFER_BIT); if (!backend.tga_compare(name + ".tga", true)) STR_THROW("Frame did not match expected frame."); backend.running(false); }); backend.run(); } #endif