From c6fb8dd64e0c323e46c73162e21a3a34103bb407 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 8 Apr 2025 02:32:39 +0100 Subject: Create Windows with a size object Not individual width/height parameters. --- application/main.cpp | 5 ++--- application/resviewer.cpp | 5 ++--- test/testMainWindow.cpp | 2 +- ui/mainWindow.cpp | 2 +- ui/mainWindow.h | 3 +-- ui/window.cpp | 3 +-- ui/window.h | 3 +-- 7 files changed, 9 insertions(+), 14 deletions(-) diff --git a/application/main.cpp b/application/main.cpp index ad7abf2..a0c87c0 100644 --- a/application/main.cpp +++ b/application/main.cpp @@ -36,15 +36,14 @@ #include #include -static const int DISPLAY_WIDTH = 1280; -static const int DISPLAY_HEIGHT = 1024; +constexpr ScreenAbsCoord DEFAULT_WINDOW_SIZE {1280, 1024}; class DummyMainApplication : public GameState, public MainApplication { public: int run() { - windows.create(DISPLAY_WIDTH, DISPLAY_HEIGHT, "I Like Trains")->setContent(); + windows.create(DEFAULT_WINDOW_SIZE, "I Like Trains")->setContent(); terrain = world.create(GeoData::loadFromAsciiGrid("test/fixtures/height/SD19.asc")); world.create(terrain); diff --git a/application/resviewer.cpp b/application/resviewer.cpp index ced76f8..2eb40f2 100644 --- a/application/resviewer.cpp +++ b/application/resviewer.cpp @@ -7,8 +7,7 @@ #include #include -constexpr int DEFAULT_WIDTH = 240; -constexpr int DEFAULT_HEIGHT = 160; +constexpr ScreenAbsCoord DEFAULT_WINDOW_SIZE {800, 600}; int main(int argc, char ** argv) @@ -18,7 +17,7 @@ main(int argc, char ** argv) void run(std::span fileList) { - windows.create(DEFAULT_WIDTH, DEFAULT_HEIGHT, "ILT - Resource Viewer"); + windows.create(DEFAULT_WINDOW_SIZE, "ILT - Resource Viewer"); mainLoop(); } }; diff --git a/test/testMainWindow.cpp b/test/testMainWindow.cpp index 4a76044..d048682 100644 --- a/test/testMainWindow.cpp +++ b/test/testMainWindow.cpp @@ -2,7 +2,7 @@ #include #include -TestMainWindow::TestMainWindow() : MainWindow {1, 1, __FILE__, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN} +TestMainWindow::TestMainWindow() : MainWindow {{1, 1}, __FILE__, SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN} { glEnable(GL_DEBUG_OUTPUT); glDebugMessageCallback( diff --git a/ui/mainWindow.cpp b/ui/mainWindow.cpp index 8d46d43..57dabc0 100644 --- a/ui/mainWindow.cpp +++ b/ui/mainWindow.cpp @@ -8,7 +8,7 @@ #include "backends/imgui_impl_sdl2.h" #pragma GCC diagnostic pop -MainWindow::MainWindow(size_t w, size_t h, const char * title, Uint32 flags) : Window {w, h, title, flags} +MainWindow::MainWindow(ScreenAbsCoord size, const char * title, Uint32 flags) : Window {size, title, flags} { if (const auto version = gladLoadGL(reinterpret_cast(SDL_GL_GetProcAddress)); version < 30003) { throw std::runtime_error {std::format("Insufficient OpenGL version: {}", version)}; diff --git a/ui/mainWindow.h b/ui/mainWindow.h index 490ef09..d2de9b3 100644 --- a/ui/mainWindow.h +++ b/ui/mainWindow.h @@ -5,8 +5,7 @@ class MainWindow : public Window { public: - MainWindow( - size_t width, size_t height, const char * title, Uint32 flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL); + MainWindow(ScreenAbsCoord size, const char * title, Uint32 flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL); ~MainWindow() override; NO_MOVE(MainWindow); diff --git a/ui/window.cpp b/ui/window.cpp index 3d4634e..06857b2 100644 --- a/ui/window.cpp +++ b/ui/window.cpp @@ -7,8 +7,7 @@ #include "backends/imgui_impl_sdl2.h" #pragma GCC diagnostic pop -Window::Window(size_t width, size_t height, const char * title, Uint32 flags) : - size {static_cast(width), static_cast(height)}, +Window::Window(ScreenAbsCoord size, const char * title, Uint32 flags) : m_window {title, static_cast(SDL_WINDOWPOS_CENTERED), static_cast(SDL_WINDOWPOS_CENTERED), size.x, size.y, flags}, glContext {m_window} diff --git a/ui/window.h b/ui/window.h index 1c3d09c..99a977f 100644 --- a/ui/window.h +++ b/ui/window.h @@ -15,7 +15,7 @@ using SDL_GLContextPtr = wrapped_ptrt