1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-23 15:52:55 +01:00

Refactor rct_palette to GamePalette

This commit is contained in:
Ted John
2020-05-27 20:12:01 +01:00
parent 10209690c2
commit 46bb30f8a1
18 changed files with 100 additions and 120 deletions

View File

@@ -41,7 +41,7 @@ using namespace OpenRCT2::Drawing;
uint8_t gScreenshotCountdown = 0;
static bool WriteDpiToFile(const std::string_view& path, const rct_drawpixelinfo* dpi, const rct_palette& palette)
static bool WriteDpiToFile(const std::string_view& path, const rct_drawpixelinfo* dpi, const GamePalette& palette)
{
auto const pixels8 = dpi->bits;
auto const pixelsLen = (dpi->width + dpi->pitch) * dpi->height;
@@ -52,7 +52,7 @@ static bool WriteDpiToFile(const std::string_view& path, const rct_drawpixelinfo
image.Height = dpi->height;
image.Depth = 8;
image.Stride = dpi->width + dpi->pitch;
image.Palette = std::make_unique<rct_palette>(palette);
image.Palette = std::make_unique<GamePalette>(palette);
image.Pixels = std::vector<uint8_t>(pixels8, pixels8 + pixelsLen);
Imaging::WriteToFile(path, image, IMAGE_FORMAT::PNG);
return true;
@@ -92,16 +92,6 @@ void screenshot_check()
}
}
static rct_palette screenshot_get_rendered_palette()
{
rct_palette palette;
for (int32_t i = 0; i < 256; i++)
{
palette.entries[i] = gPalette[i];
}
return palette;
}
static std::string screenshot_get_park_name()
{
return GetContext()->GetGameState()->GetPark().Name;
@@ -178,8 +168,7 @@ std::string screenshot_dump_png(rct_drawpixelinfo* dpi)
return "";
}
auto renderedPalette = screenshot_get_rendered_palette();
if (WriteDpiToFile(path->c_str(), dpi, renderedPalette))
if (WriteDpiToFile(path->c_str(), dpi, gPalette))
{
return *path;
}
@@ -425,8 +414,7 @@ void screenshot_giant()
dpi = CreateDPI(viewport);
RenderViewport(nullptr, viewport, dpi);
auto renderedPalette = screenshot_get_rendered_palette();
WriteDpiToFile(path->c_str(), &dpi, renderedPalette);
WriteDpiToFile(path->c_str(), &dpi, gPalette);
// Show user that screenshot saved successfully
auto ft = Formatter::Common();
@@ -744,8 +732,7 @@ int32_t cmdline_for_screenshot(const char** argv, int32_t argc, ScreenshotOption
dpi = CreateDPI(viewport);
RenderViewport(nullptr, viewport, dpi);
auto renderedPalette = screenshot_get_rendered_palette();
WriteDpiToFile(outputPath, &dpi, renderedPalette);
WriteDpiToFile(outputPath, &dpi, gPalette);
}
catch (const std::exception& e)
{
@@ -838,8 +825,7 @@ void CaptureImage(const CaptureOptions& options)
auto outputPath = ResolveFilenameForCapture(options.Filename);
auto dpi = CreateDPI(viewport);
RenderViewport(nullptr, viewport, dpi);
auto renderedPalette = screenshot_get_rendered_palette();
WriteDpiToFile(outputPath, &dpi, renderedPalette);
WriteDpiToFile(outputPath, &dpi, gPalette);
ReleaseDPI(dpi);
gCurrentRotation = backupRotation;