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:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user