/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "Host/GraphicsAppManager.hpp" #include "ExampleAppList.hpp" #include #include #include #include #include #include using namespace OpenVulkano; int main(int argc, char** argv) { GraphicsAppManager manager; std::vector examples; for (const auto& e : EXAMPLE_APPS) { examples.emplace_back(e.first); } 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); if (selectedExample >= examples.size()) throw std::runtime_error("Invalid menu selection!"); std::unique_ptr app( EXAMPLE_APPS[selectedExample].second() ); manager.SetApp(app.get()); manager.Run(); return 0; }