1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 09:32:29 +01:00

Refactor DRAWING_ENGINE_FLAGS into FlagHolder

This commit is contained in:
Gymnasiast
2025-03-26 12:43:21 +01:00
parent ea9e348c9d
commit 41dc87c68e
6 changed files with 14 additions and 14 deletions

View File

@@ -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

View File

@@ -9,8 +9,9 @@
#pragma once
#include "./Weather.h"
#include "../core/FlagHolder.hpp"
#include "ColourPalette.h"
#include "Weather.h"
#include <memory>
#include <string>
@@ -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<uint8_t, DrawingEngineFlag>;
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;
};

View File

@@ -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;
}

View File

@@ -273,9 +273,9 @@ DrawPixelInfo* X8DrawingEngine::GetDrawingPixelInfo()
return &_bitsDPI;
}
DRAWING_ENGINE_FLAGS X8DrawingEngine::GetFlags()
DrawingEngineFlags X8DrawingEngine::GetFlags()
{
return static_cast<DRAWING_ENGINE_FLAGS>(DEF_DIRTY_OPTIMISATIONS | DEF_PARALLEL_DRAWING);
return { DrawingEngineFlag::dirtyOptimisations, DrawingEngineFlag::parallelDrawing };
}
void X8DrawingEngine::InvalidateImage([[maybe_unused]] uint32_t image)

View File

@@ -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();

View File

@@ -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;
}