summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/gameMainWindow.cpp6
-rw-r--r--ui/gameMainWindow.h9
-rw-r--r--ui/mainWindow.cpp7
-rw-r--r--ui/mainWindow.h5
-rw-r--r--ui/window.cpp7
-rw-r--r--ui/window.h5
-rw-r--r--ui/windowContent.h2
7 files changed, 12 insertions, 29 deletions
diff --git a/ui/gameMainWindow.cpp b/ui/gameMainWindow.cpp
index cc74f66..dbbf8a7 100644
--- a/ui/gameMainWindow.cpp
+++ b/ui/gameMainWindow.cpp
@@ -50,15 +50,13 @@ private:
GameMainSelector * gms;
};
-GameMainWindow::GameMainWindow(size_t w, size_t h) : SceneRenderer {{w, h}, 0}
+GameMainWindow::GameMainWindow(ScreenAbsCoord size) : SceneRenderer {size, 0}
{
uiComponents.create<ManualCameraController>(glm::vec2 {310'727'624, 494'018'810});
auto gms = uiComponents.create<GameMainSelector>(&camera);
uiComponents.create<GameMainToolbar>(gms);
}
-GameMainWindow::~GameMainWindow() { }
-
void
GameMainWindow::tick(TickDuration)
{
@@ -85,7 +83,7 @@ GameMainWindow::handleInput(const SDL_Event & event)
}
void
-GameMainWindow::render() const
+GameMainWindow::render()
{
SceneRenderer::render(*this);
glEnable(GL_BLEND);
diff --git a/ui/gameMainWindow.h b/ui/gameMainWindow.h
index b0f1592..71b6314 100644
--- a/ui/gameMainWindow.h
+++ b/ui/gameMainWindow.h
@@ -3,18 +3,13 @@
#include "chronology.h"
#include "gfx/gl/sceneRenderer.h"
#include "windowContent.h"
-#include <cstddef>
class GameMainWindow : public WindowContent, SceneRenderer, public SceneProvider {
public:
- GameMainWindow(size_t w, size_t h);
- ~GameMainWindow() override;
-
- NO_MOVE(GameMainWindow);
- NO_COPY(GameMainWindow);
+ GameMainWindow(ScreenAbsCoord size);
void tick(TickDuration) override;
- void render() const override;
+ void render() override;
private:
bool handleInput(const SDL_Event &) override;
diff --git a/ui/mainWindow.cpp b/ui/mainWindow.cpp
index 73c0b5b..57dabc0 100644
--- a/ui/mainWindow.cpp
+++ b/ui/mainWindow.cpp
@@ -8,12 +8,7 @@
#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_RESIZABLE | SDL_WINDOW_OPENGL}
-{
-}
-
-MainWindow::MainWindow(size_t w, size_t h, const std::string & 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 fe26c5c..d2de9b3 100644
--- a/ui/mainWindow.h
+++ b/ui/mainWindow.h
@@ -5,12 +5,9 @@
class MainWindow : public Window {
public:
- MainWindow(size_t w, size_t h);
+ MainWindow(ScreenAbsCoord size, const char * title, Uint32 flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL);
~MainWindow() override;
NO_MOVE(MainWindow);
NO_COPY(MainWindow);
-
-protected:
- MainWindow(size_t width, size_t height, const std::string & title, Uint32 flags);
};
diff --git a/ui/window.cpp b/ui/window.cpp
index 732e9ef..06857b2 100644
--- a/ui/window.cpp
+++ b/ui/window.cpp
@@ -7,10 +7,9 @@
#include "backends/imgui_impl_sdl2.h"
#pragma GCC diagnostic pop
-Window::Window(size_t width, size_t height, const std::string & title, Uint32 flags) :
- size {static_cast<int>(width), static_cast<int>(height)},
- m_window {title.c_str(), static_cast<int>(SDL_WINDOWPOS_CENTERED), static_cast<int>(SDL_WINDOWPOS_CENTERED), size.x,
- size.y, flags},
+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 62c34de..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 std::string & title, Uint32 flags);
+ Window(ScreenAbsCoord size, const char * title, Uint32 flags);
virtual ~Window() = default;
NO_COPY(Window);
@@ -27,7 +27,7 @@ public:
{
glm::ivec2 size {};
SDL_GetWindowSizeInPixels(m_window, &size.x, &size.y);
- content = std::make_unique<C>(size.x, size.y, std::forward<P>(p)...);
+ content = std::make_unique<C>(ScreenAbsCoord {size.x, size.y}, std::forward<P>(p)...);
}
void tick(TickDuration elapsed);
@@ -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;
diff --git a/ui/windowContent.h b/ui/windowContent.h
index 762d1cc..34cbea3 100644
--- a/ui/windowContent.h
+++ b/ui/windowContent.h
@@ -14,7 +14,7 @@ public:
NO_COPY(WindowContent);
virtual void tick(TickDuration);
- virtual void render() const = 0;
+ virtual void render() = 0;
virtual bool handleInput(const SDL_Event & e);
protected: