#include "MainGUI.h" #include "modules/ImguiModule/src/ImguiModule.h" MainGUI::MainGUI(Archimedes::App* a, void* h) : Archimedes::Module(a, h) { name = "MainGUI"; ImguiModule* im = new ImguiModule(a, nullptr); deps[im->getName()] = im; } MainGUI::~MainGUI() { } void MainGUI::onLoad() { ImguiModule* im = (ImguiModule*) moduleInstances["ImguiModule"]; if(!im) { std::cout << "No ImguiModule for MainGUI!\n"; std::abort(); } ImGui::SetCurrentContext(im->getContext()); } void MainGUI::run() { ImGuiIO& io = ImGui::GetIO(); static std::string s; ImGui::Begin("MainGUI Module"); ImGui::Text("Active Modules:"); for(auto m : app->getModuleNames()) ImGui::Text("%s", m.c_str()); ImGui::Text("\nEnter a module to un/load:"); ImGui::InputText("module: ", &s); if(ImGui::Button("load")) app->startModule(s); ImGui::SameLine(); if(ImGui::Button("unload")) app->stopModule(s); ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); ImGui::End(); }