#include "qt_tstfrm/test_main_loop.hpp" #include "testing/testing.hpp" #include "shaders/gl_program_params.hpp" #include "shaders/gl_program_pool.hpp" #include "drape/drape_global.hpp" #include "drape/drape_tests/testing_graphics_context.hpp" #include "drape/gl_functions.hpp" #include "std/target_os.hpp" #include using namespace std::placeholders; template void TestProgramParams() { auto constexpr api = dp::ApiVersion::OpenGLES3; TestingGraphicsContext context(api); GLFunctions::Init(api); gpu::GLProgramPool pool(api); gpu::GLProgramParamsSetter paramsSetter; ProgramParams params; for (auto const p : ProgramParams::GetBoundPrograms()) { auto const program = pool.Get(p); program->Bind(); paramsSetter.Apply(make_ref(&context), make_ref(program), params); program->Unbind(); } } // These unit tests create Qt application and OGL context so can't be run in GUI-less Linux machine. #ifdef OMIM_OS_MAC UNIT_TEST(MapProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("MapProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(RouteProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("RouteProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(TrafficProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("TrafficProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(TransitProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("TransitProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(GuiProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("GuiProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(ShapesProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("ShapesProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(Arrow3dProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("Arrow3dProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(DebugRectProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("DebugRectProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(ScreenQuadProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("ScreenQuadProgramParams_Test", std::bind(&TestProgramParams)); } UNIT_TEST(SMAAProgramParams_Test) { RunTestInOpenGLOffscreenEnvironment("SMAAProgramParams_Test", std::bind(&TestProgramParams)); } #endif