From fc899d15ef0ae051194df615dd949b5f8cdbe4c7 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 10 Jun 2017 17:05:21 +0100 Subject: [PATCH] Remove SDL_Window from IDrawingEngine and UiContext --- src/openrct2-ui/UiContext.cpp | 2 +- .../drawing/engines/HardwareDisplayDrawingEngine.cpp | 7 +++---- src/openrct2-ui/drawing/engines/SoftwareDrawingEngine.cpp | 5 ++--- .../drawing/engines/opengl/OpenGLDrawingEngine.cpp | 6 ++---- src/openrct2/drawing/IDrawingEngine.h | 2 +- src/openrct2/drawing/NewDrawing.cpp | 2 +- src/openrct2/drawing/X8DrawingEngine.cpp | 2 +- src/openrct2/drawing/X8DrawingEngine.h | 2 +- src/openrct2/ui/DummyUiContext.cpp | 2 +- src/openrct2/ui/UiContext.h | 8 +++----- 10 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/openrct2-ui/UiContext.cpp b/src/openrct2-ui/UiContext.cpp index 74a8960962..4d2b980d98 100644 --- a/src/openrct2-ui/UiContext.cpp +++ b/src/openrct2-ui/UiContext.cpp @@ -102,7 +102,7 @@ public: } // Window - SDL_Window * GetWindow() override + void * GetWindow() override { return _window; } diff --git a/src/openrct2-ui/drawing/engines/HardwareDisplayDrawingEngine.cpp b/src/openrct2-ui/drawing/engines/HardwareDisplayDrawingEngine.cpp index 08d89060ee..327e79e39e 100644 --- a/src/openrct2-ui/drawing/engines/HardwareDisplayDrawingEngine.cpp +++ b/src/openrct2-ui/drawing/engines/HardwareDisplayDrawingEngine.cpp @@ -55,7 +55,7 @@ public: explicit HardwareDisplayDrawingEngine(IUiContext * uiContext) : _uiContext(uiContext) { - UNUSED(_uiContext); // Will be used in due course to retrieve window information + _window = (SDL_Window *)_uiContext->GetWindow(); } ~HardwareDisplayDrawingEngine() override @@ -65,10 +65,9 @@ public: SDL_DestroyRenderer(_sdlRenderer); } - void Initialise(SDL_Window * window) override + void Initialise() override { - _window = window; - _sdlRenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); + _sdlRenderer = SDL_CreateRenderer(_window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); } void Resize(uint32 width, uint32 height) override diff --git a/src/openrct2-ui/drawing/engines/SoftwareDrawingEngine.cpp b/src/openrct2-ui/drawing/engines/SoftwareDrawingEngine.cpp index f55bd0212d..73af8490b2 100644 --- a/src/openrct2-ui/drawing/engines/SoftwareDrawingEngine.cpp +++ b/src/openrct2-ui/drawing/engines/SoftwareDrawingEngine.cpp @@ -46,7 +46,7 @@ public: explicit SoftwareDrawingEngine(IUiContext * uiContext) : _uiContext(uiContext) { - UNUSED(_uiContext); // Will be used in due course to retrieve window information + _window = (SDL_Window *)_uiContext->GetWindow(); } ~SoftwareDrawingEngine() override @@ -56,9 +56,8 @@ public: SDL_FreePalette(_palette); } - void Initialise(SDL_Window * window) override + void Initialise() override { - _window = window; } void Resize(uint32 width, uint32 height) override diff --git a/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp b/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp index 3ec17a8420..d2f3f73837 100644 --- a/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp +++ b/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp @@ -250,7 +250,7 @@ public: OpenGLDrawingEngine(IUiContext * uiContext) : _uiContext(uiContext) { - UNUSED(_uiContext); // Will be used in due course to retrieve window information + _window = (SDL_Window *)_uiContext->GetWindow(); _drawingContext = new OpenGLDrawingContext(this); } @@ -266,10 +266,8 @@ public: SDL_GL_DeleteContext(_context); } - void Initialise(SDL_Window * window) override + void Initialise() override { - _window = window; - OpenGLVersion requiredVersion = OPENGL_MINIMUM_REQUIRED_VERSION; SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, requiredVersion.Major); diff --git a/src/openrct2/drawing/IDrawingEngine.h b/src/openrct2/drawing/IDrawingEngine.h index 10e7043681..f9e6ee65e2 100644 --- a/src/openrct2/drawing/IDrawingEngine.h +++ b/src/openrct2/drawing/IDrawingEngine.h @@ -51,7 +51,7 @@ namespace OpenRCT2 { namespace Drawing { virtual ~IDrawingEngine() { } - virtual void Initialise(SDL_Window * window) abstract; + virtual void Initialise() abstract; virtual void Resize(uint32 width, uint32 height) abstract; virtual void SetPalette(const rct_palette_entry * colours) abstract; diff --git a/src/openrct2/drawing/NewDrawing.cpp b/src/openrct2/drawing/NewDrawing.cpp index 4727df0a50..63edba8953 100644 --- a/src/openrct2/drawing/NewDrawing.cpp +++ b/src/openrct2/drawing/NewDrawing.cpp @@ -104,7 +104,7 @@ extern "C" { try { - drawingEngine->Initialise(uiContext->GetWindow()); + drawingEngine->Initialise(); drawingEngine->SetUncappedFrameRate(gConfigGeneral.uncap_fps == 1); _drawingEngine = drawingEngine; } diff --git a/src/openrct2/drawing/X8DrawingEngine.cpp b/src/openrct2/drawing/X8DrawingEngine.cpp index 120ffe8a6d..bf3c1428b5 100644 --- a/src/openrct2/drawing/X8DrawingEngine.cpp +++ b/src/openrct2/drawing/X8DrawingEngine.cpp @@ -151,7 +151,7 @@ X8DrawingEngine::~X8DrawingEngine() delete [] _bits; } -void X8DrawingEngine::Initialise(SDL_Window * window) +void X8DrawingEngine::Initialise() { } diff --git a/src/openrct2/drawing/X8DrawingEngine.h b/src/openrct2/drawing/X8DrawingEngine.h index 6d47961cc7..c626b208cc 100644 --- a/src/openrct2/drawing/X8DrawingEngine.h +++ b/src/openrct2/drawing/X8DrawingEngine.h @@ -85,7 +85,7 @@ namespace OpenRCT2 { namespace Drawing explicit X8DrawingEngine(); ~X8DrawingEngine() override; - void Initialise(SDL_Window * window) override; + void Initialise() override; void Resize(uint32 width, uint32 height) override; void SetPalette(const rct_palette_entry * palette) override; void SetUncappedFrameRate(bool uncapped) override; diff --git a/src/openrct2/ui/DummyUiContext.cpp b/src/openrct2/ui/DummyUiContext.cpp index 52b893198a..ce666cd405 100644 --- a/src/openrct2/ui/DummyUiContext.cpp +++ b/src/openrct2/ui/DummyUiContext.cpp @@ -28,7 +28,7 @@ namespace OpenRCT2 { namespace Ui { void CreateWindow() override { } void CloseWindow() override { } - SDL_Window * GetWindow() override { return nullptr; } + void * GetWindow() override { return nullptr; } sint32 GetWidth() override { return 0; } sint32 GetHeight() override { return 0; } void SetFullscreenMode(FULLSCREEN_MODE mode) override { } diff --git a/src/openrct2/ui/UiContext.h b/src/openrct2/ui/UiContext.h index aeef40d16d..201bd290ae 100644 --- a/src/openrct2/ui/UiContext.h +++ b/src/openrct2/ui/UiContext.h @@ -22,8 +22,6 @@ #include "../Context.h" #include "../interface/Cursors.h" -struct SDL_Window; - namespace OpenRCT2 { namespace Drawing @@ -92,9 +90,9 @@ namespace OpenRCT2 virtual ~IUiContext() = default; // Window - virtual void CreateWindow() abstract; - virtual void CloseWindow() abstract; - virtual SDL_Window * GetWindow() abstract; + virtual void CreateWindow() abstract; + virtual void CloseWindow() abstract; + virtual void * GetWindow() abstract; virtual sint32 GetWidth() abstract; virtual sint32 GetHeight() abstract; virtual void SetFullscreenMode(FULLSCREEN_MODE mode) abstract;