summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-04-08 02:32:39 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2025-04-08 02:32:39 +0100
commitc6fb8dd64e0c323e46c73162e21a3a34103bb407 (patch)
tree89b3d5963a83bcf8bc6e49029e1ac3bb7d46b191
parentCreate WindowContent with a size object (diff)
downloadilt-c6fb8dd64e0c323e46c73162e21a3a34103bb407.tar.bz2
ilt-c6fb8dd64e0c323e46c73162e21a3a34103bb407.tar.xz
ilt-c6fb8dd64e0c323e46c73162e21a3a34103bb407.zip
Create Windows with a size object
Not individual width/height parameters.
-rw-r--r--application/main.cpp5
-rw-r--r--application/resviewer.cpp5
-rw-r--r--test/testMainWindow.cpp2
-rw-r--r--ui/mainWindow.cpp2
-rw-r--r--ui/mainWindow.h3
-rw-r--r--ui/window.cpp3
-rw-r--r--ui/window.h3
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 <ui/gameMainWindow.h>
#include <ui/window.h>
-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<MainWindow>(DISPLAY_WIDTH, DISPLAY_HEIGHT, "I Like Trains")->setContent<GameMainWindow>();
+ windows.create<MainWindow>(DEFAULT_WINDOW_SIZE, "I Like Trains")->setContent<GameMainWindow>();
terrain = world.create<Terrain>(GeoData::loadFromAsciiGrid("test/fixtures/height/SD19.asc"));
world.create<Water>(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 <ui/mainApplication.h>
#include <ui/mainWindow.h>
-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<char * const> fileList)
{
- windows.create<MainWindow>(DEFAULT_WIDTH, DEFAULT_HEIGHT, "ILT - Resource Viewer");
+ windows.create<MainWindow>(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 <boost/test/test_tools.hpp>
#include <format>
-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<GLADloadfunc>(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<int>(width), static_cast<int>(height)},
+Window::Window(ScreenAbsCoord size, const char * title, Uint32 flags) :
m_window {title, static_cast<int>(SDL_WINDOWPOS_CENTERED), static_cast<int>(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<GL_Context, SDL_GL_CreateContext, SDL_GL_D
class Window {
public:
- Window(size_t width, size_t height, const char * title, Uint32 flags);
+ Window(ScreenAbsCoord size, const char * title, Uint32 flags);
virtual ~Window() = default;
NO_COPY(Window);
@@ -39,7 +39,6 @@ public:
protected:
void clear(float r, float g, float b, float a) const;
- const ScreenAbsCoord size;
SDL_WindowPtr m_window;
SDL_GLContextPtr glContext;
WindowContent::Ptr content;