diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-14 20:17:07 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-14 20:17:07 +0000 |
commit | 721b5dab9d3422faefaf97b7f4eb04afb86ab7ea (patch) | |
tree | 3c3bb06a390a4aed0b6bbc772ff782284522b02f | |
parent | Add support for resizing a SceneRenderer (diff) | |
download | ilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.tar.bz2 ilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.tar.xz ilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.zip |
-rw-r--r-- | ui/gameMainWindow.cpp | 19 | ||||
-rw-r--r-- | ui/gameMainWindow.h | 2 | ||||
-rw-r--r-- | ui/mainWindow.cpp | 5 |
3 files changed, 25 insertions, 1 deletions
diff --git a/ui/gameMainWindow.cpp b/ui/gameMainWindow.cpp index f63137c..d88bab5 100644 --- a/ui/gameMainWindow.cpp +++ b/ui/gameMainWindow.cpp @@ -43,6 +43,25 @@ GameMainWindow::tick(TickDuration) uiComponents.apply<CameraController>(&CameraController::updateCamera, &camera); } +bool +GameMainWindow::handleInput(const SDL_Event & event) +{ + switch (event.type) { + case SDL_WINDOWEVENT: + switch (event.window.event) { + case SDL_WINDOWEVENT_RESIZED: + SceneRenderer::resize({event.window.data1, event.window.data2}); + break; + default: + break; + } + default: + break; + } + + return WindowContent::handleInput(event); +} + void GameMainWindow::render() const { diff --git a/ui/gameMainWindow.h b/ui/gameMainWindow.h index 43980e8..b0f1592 100644 --- a/ui/gameMainWindow.h +++ b/ui/gameMainWindow.h @@ -17,6 +17,8 @@ public: void render() const override; private: + bool handleInput(const SDL_Event &) override; + void content(const SceneShader &, const Frustum &) const override; void environment(const SceneShader &, const SceneRenderer &) const override; void lights(const SceneShader &) const override; diff --git a/ui/mainWindow.cpp b/ui/mainWindow.cpp index 38d6a6e..73c0b5b 100644 --- a/ui/mainWindow.cpp +++ b/ui/mainWindow.cpp @@ -8,7 +8,10 @@ #include "backends/imgui_impl_sdl2.h" #pragma GCC diagnostic pop -MainWindow::MainWindow(size_t w, size_t h) : MainWindow {w, h, "I Like Trains", SDL_WINDOW_OPENGL} { } +MainWindow::MainWindow(size_t w, size_t h) : + MainWindow {w, h, "I Like Trains", SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL} +{ +} MainWindow::MainWindow(size_t w, size_t h, const std::string & title, Uint32 flags) : Window {w, h, title, flags} { |