#include "mm/services/service.hpp" #include #include #include #include #include #include #include #include TEST(imgui_render_task, demowindow) { MM::Engine engine; engine.addService(); ASSERT_TRUE(engine.enableService()); auto& rs = engine.addService(); ASSERT_TRUE(engine.enableService()); // needs a open window (and opengl context) which the OpenGLRenderer creates in this case engine.addService(); ASSERT_TRUE(engine.enableService()); class ImGuiDemoWindowService : public MM::Services::Service { public: const char* name(void) override { return "ImGuiDemoWindowService"; } bool enable(MM::Engine&) override { return true; } void disable(MM::Engine&) override {} std::vector registerUpdates(void) override { return {{ "ImGuiDemoWindow"_hs, "ImGuiDemoWindow", [](MM::Engine&) { ImGui::ShowDemoWindow(); } }}; } }; engine.addService(); ASSERT_TRUE(engine.enableService()); rs.addRenderTask(engine); engine.run(); } int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }