diff --git a/examples/main.cpp b/examples/main.cpp index cd4dc04..e81daae 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -8,12 +8,39 @@ #include "ExampleApps/CubesExampleApp.hpp" #include "ExampleApps/MovingCubeApp.hpp" +#include +#include +#include +#include + +#include +#include + using namespace OpenVulkano; int main(int argc, char** argv) { - std::unique_ptr app = CubesExampleApp::CreateUnique(); - // std::unique_ptr app = MovingCubeApp::CreateUnique(); + std::vector examples = { + "Cubes Example App", + "Moving Cube Example App", + }; + + int selectedExample = 0; + ftxui::MenuOption option; + auto screen = ftxui::ScreenInteractive::TerminalOutput(); + option.on_enter = screen.ExitLoopClosure(); + auto menu = ftxui::Menu(&examples, &selectedExample, option); + + screen.Loop(menu); + + std::unique_ptr app; + switch (selectedExample) + { + case 0: app = CubesExampleApp::CreateUnique(); break; + case 1: app = MovingCubeApp::CreateUnique(); break; + default: throw std::runtime_error("Invalid menu selection!"); break; + } + GraphicsAppManager manager(app.get()); manager.Run(); return 0;