Porytiles
Loading...
Searching...
No Matches
layer_mode_converter.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include "gsl/pointers"
6
14
15namespace porytiles {
16
18 public:
20 gsl::not_null<const TextFormatter *> format,
21 gsl::not_null<const UserDiagnostics *> diag,
22 gsl::not_null<const TilePrinter *> tile_printer,
23 const Rgba32 &extrinsic_transparency)
24 : format_{format}, diag_{diag}, tile_printer_{tile_printer}, extrinsic_transparency_{extrinsic_transparency}
25 {
26 }
27
45
65 [[nodiscard]] std::vector<TilemapEntry>
66 dual_layerize(const std::vector<TilemapEntry> &entries, const std::vector<Metatile<Rgba32>> &source_metatiles);
67
68 private:
69 const TextFormatter *format_;
70 const UserDiagnostics *diag_;
71 const TilePrinter *tile_printer_;
72 const Rgba32 extrinsic_transparency_;
73};
74
75} // namespace porytiles
A result type that maintains a chainable sequence of errors for debugging and error reporting.
LayerModeConverter(gsl::not_null< const TextFormatter * > format, gsl::not_null< const UserDiagnostics * > diag, gsl::not_null< const TilePrinter * > tile_printer, const Rgba32 &extrinsic_transparency)
std::vector< TilemapEntry > dual_layerize(const std::vector< TilemapEntry > &entries, const std::vector< Metatile< Rgba32 > > &source_metatiles)
Converts a tileset from triple-layer format to dual-layer format.
ChainableResult< std::vector< TilemapEntry > > triple_layerize(const PorymapTilesetComponent &component)
Converts a tileset component to triple-layer format.
The core tileset entity - a 2x2 grid of PixelTile objects arranged into three layers.
Definition metatile.hpp:186
Represents a 32-bit RGBA color.
Definition rgba32.hpp:23
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.
Abstract class for structured error reporting and diagnostic output.