diff --git a/3rdParty/ftxui/CMakeLists.txt b/3rdParty/ftxui/CMakeLists.txt index 8fc318f..d485171 100644 --- a/3rdParty/ftxui/CMakeLists.txt +++ b/3rdParty/ftxui/CMakeLists.txt @@ -8,7 +8,7 @@ FetchContent_Declare( ftxui EXCLUDE_FROM_ALL GIT_REPOSITORY ${FTXUI_REPO} - GIT_TAG v5.0.0 + GIT_TAG daa421fa6ad97c8a6c9bd43f77c81862bfa52c77 GIT_SHALLOW TRUE ) FetchContent_MakeAvailable(ftxui) \ No newline at end of file diff --git a/examples/ExampleApps/BillboardExampleApp.cpp b/examples/ExampleApps/BillboardExampleApp.cpp index 2b69d6a..068f812 100644 --- a/examples/ExampleApps/BillboardExampleApp.cpp +++ b/examples/ExampleApps/BillboardExampleApp.cpp @@ -35,7 +35,6 @@ namespace OpenVulkano void Init() override { auto engineConfig = OpenVulkano::EngineConfiguration::GetEngineConfiguration(); - engineConfig->SetNumThreads(4); engineConfig->SetPreferFramebufferFormatSRGB(false); engineConfig->SetFpsCap(0); // monitor's refresh rate engineConfig->SetVSync(true); diff --git a/examples/ExampleApps/CubesExampleApp.cpp b/examples/ExampleApps/CubesExampleApp.cpp index 8b3909b..391f548 100644 --- a/examples/ExampleApps/CubesExampleApp.cpp +++ b/examples/ExampleApps/CubesExampleApp.cpp @@ -51,7 +51,7 @@ namespace OpenVulkano void Init() override { auto engineConfig = OpenVulkano::EngineConfiguration::GetEngineConfiguration(); - engineConfig->SetNumThreads(4); + //engineConfig->SetNumThreads(4); engineConfig->SetPreferFramebufferFormatSRGB(false); std::srand(1); // Fix seed for random numbers diff --git a/examples/ExampleApps/TextExampleApp.cpp b/examples/ExampleApps/TextExampleApp.cpp index 4a97377..3436a83 100644 --- a/examples/ExampleApps/TextExampleApp.cpp +++ b/examples/ExampleApps/TextExampleApp.cpp @@ -47,7 +47,6 @@ namespace OpenVulkano void Init() override { auto engineConfig = OpenVulkano::EngineConfiguration::GetEngineConfiguration(); - engineConfig->SetNumThreads(4); engineConfig->SetPreferFramebufferFormatSRGB(false); std::srand(1); // Fix seed for random numbers diff --git a/examples/main.cpp b/examples/main.cpp index 002e431..f10b998 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -11,6 +11,7 @@ #include #include #include +#include // for Event, Event::Custom #include #include @@ -28,14 +29,34 @@ int main(int argc, char** argv) int selectedExample = 0; ftxui::MenuOption option; auto screen = ftxui::ScreenInteractive::TerminalOutput(); + screen.ForceHandleCtrlC(true); + //screen.ForceHandleCtrlZ(true); option.on_enter = screen.ExitLoopClosure(); auto menu = ftxui::Menu(&examples, &selectedExample, option); - + bool shouldExit = false; + menu |= ftxui::CatchEvent( + [&](ftxui::Event event) + { + if (event == ftxui::Event::CtrlC || event == ftxui::Event::CtrlZ) + { + screen.ExitLoopClosure()(); + shouldExit = true; + } + return false; + }); screen.Loop(menu); - if (selectedExample >= examples.size()) throw std::runtime_error("Invalid menu selection!"); + if (shouldExit) + { + return 0; + } - std::unique_ptr app( EXAMPLE_APPS[selectedExample].second() ); + if (selectedExample >= examples.size()) + { + throw std::runtime_error("Invalid menu selection!"); + } + + std::unique_ptr app(EXAMPLE_APPS[selectedExample].second()); GraphicsAppManager manager(app.get()); manager.Run();