summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-03-14 20:17:07 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-03-14 20:17:07 +0000
commit721b5dab9d3422faefaf97b7f4eb04afb86ab7ea (patch)
tree3c3bb06a390a4aed0b6bbc772ff782284522b02f
parentAdd support for resizing a SceneRenderer (diff)
downloadilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.tar.bz2
ilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.tar.xz
ilt-721b5dab9d3422faefaf97b7f4eb04afb86ab7ea.zip
Support resizing the main windowHEADmain
-rw-r--r--ui/gameMainWindow.cpp19
-rw-r--r--ui/gameMainWindow.h2
-rw-r--r--ui/mainWindow.cpp5
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}
{