diff --git a/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp b/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp index cef31e690a..38b08695f0 100644 --- a/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp +++ b/src/openrct2-ui/drawing/engines/opengl/OpenGLDrawingEngine.cpp @@ -358,9 +358,9 @@ public: return &_bitsDPI; } - DRAWING_ENGINE_FLAGS GetFlags() override + DrawingEngineFlags GetFlags() override { - return DEF_NONE; + return {}; } void InvalidateImage(uint32_t image) override diff --git a/src/openrct2/drawing/IDrawingEngine.h b/src/openrct2/drawing/IDrawingEngine.h index 1c2c0e0e72..7c132e07c8 100644 --- a/src/openrct2/drawing/IDrawingEngine.h +++ b/src/openrct2/drawing/IDrawingEngine.h @@ -9,8 +9,9 @@ #pragma once -#include "./Weather.h" +#include "../core/FlagHolder.hpp" #include "ColourPalette.h" +#include "Weather.h" #include #include @@ -24,20 +25,19 @@ enum class DrawingEngine : int32_t Count, }; -enum DRAWING_ENGINE_FLAGS +enum DrawingEngineFlag { - DEF_NONE = 0, - /** * Whether or not the engine will only draw changed blocks of the screen each frame. */ - DEF_DIRTY_OPTIMISATIONS = 1 << 0, + dirtyOptimisations, /** * The drawing engine is capable of processing the drawing in parallel. */ - DEF_PARALLEL_DRAWING = 1 << 1, + parallelDrawing = 1 << 1, }; +using DrawingEngineFlags = FlagHolder; struct DrawPixelInfo; @@ -73,7 +73,7 @@ namespace OpenRCT2::Drawing virtual IDrawingContext* GetDrawingContext() = 0; virtual DrawPixelInfo* GetDrawingPixelInfo() = 0; - virtual DRAWING_ENGINE_FLAGS GetFlags() = 0; + virtual DrawingEngineFlags GetFlags() = 0; virtual void InvalidateImage(uint32_t image) = 0; }; diff --git a/src/openrct2/drawing/NewDrawing.cpp b/src/openrct2/drawing/NewDrawing.cpp index 2277e252da..96e4139116 100644 --- a/src/openrct2/drawing/NewDrawing.cpp +++ b/src/openrct2/drawing/NewDrawing.cpp @@ -128,7 +128,7 @@ bool DrawingEngineHasDirtyOptimisations() auto drawingEngine = GetDrawingEngine(); if (drawingEngine != nullptr) { - result = (drawingEngine->GetFlags() & DEF_DIRTY_OPTIMISATIONS); + result = drawingEngine->GetFlags().has(DrawingEngineFlag::dirtyOptimisations); } return result; } diff --git a/src/openrct2/drawing/X8DrawingEngine.cpp b/src/openrct2/drawing/X8DrawingEngine.cpp index 53def4d799..d6f6002992 100644 --- a/src/openrct2/drawing/X8DrawingEngine.cpp +++ b/src/openrct2/drawing/X8DrawingEngine.cpp @@ -273,9 +273,9 @@ DrawPixelInfo* X8DrawingEngine::GetDrawingPixelInfo() return &_bitsDPI; } -DRAWING_ENGINE_FLAGS X8DrawingEngine::GetFlags() +DrawingEngineFlags X8DrawingEngine::GetFlags() { - return static_cast(DEF_DIRTY_OPTIMISATIONS | DEF_PARALLEL_DRAWING); + return { DrawingEngineFlag::dirtyOptimisations, DrawingEngineFlag::parallelDrawing }; } void X8DrawingEngine::InvalidateImage([[maybe_unused]] uint32_t image) diff --git a/src/openrct2/drawing/X8DrawingEngine.h b/src/openrct2/drawing/X8DrawingEngine.h index ec6e9ab611..d1e3834dab 100644 --- a/src/openrct2/drawing/X8DrawingEngine.h +++ b/src/openrct2/drawing/X8DrawingEngine.h @@ -108,7 +108,7 @@ namespace OpenRCT2 std::string Screenshot() override; IDrawingContext* GetDrawingContext() override; DrawPixelInfo* GetDrawingPixelInfo() override; - DRAWING_ENGINE_FLAGS GetFlags() override; + DrawingEngineFlags GetFlags() override; void InvalidateImage(uint32_t image) override; DrawPixelInfo* GetDPI(); diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index 1411fe4f1b..7ed5167fcb 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -1009,7 +1009,7 @@ namespace OpenRCT2 } bool useParallelDrawing = false; - if (useMultithreading && (dpi.DrawingEngine->GetFlags() & DEF_PARALLEL_DRAWING)) + if (useMultithreading && dpi.DrawingEngine->GetFlags().has(DrawingEngineFlag::parallelDrawing)) { useParallelDrawing = true; }