Porytiles
Loading...
Searching...
No Matches
tile_validator.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include "gsl/pointers"
6
13
14namespace porytiles2 {
15
20 public:
21 explicit TileValidator(
22 gsl::not_null<TextFormatter *> format,
23 gsl::not_null<UserDiagnostics *> diag,
24 gsl::not_null<TilePrinter *> tile_printer)
25 : format_{format}, diag_{diag}, tile_printer_{tile_printer}
26 {
27 }
28
29 [[nodiscard]] ChainableResult<void> validate_alpha_channels(const std::vector<PixelTile<Rgba32>> &tiles) const;
30
31 [[nodiscard]] ChainableResult<void>
32 validate_unique_color_count(const std::vector<PixelTile<Rgba32>> &tiles, const Rgba32 &extrinsic) const;
33
34 [[nodiscard]] ChainableResult<void>
35 generate_precision_loss_warnings(const std::vector<PixelTile<Rgba32>> &tiles) const;
36
37 private:
38 TextFormatter *format_;
39 UserDiagnostics *diag_;
40 TilePrinter *tile_printer_;
41};
42
43} // namespace porytiles2
A result type that maintains a chainable sequence of errors for debugging and error reporting.
An 8x8 tile backed by literal-array-based per-pixel storage of an arbitrary pixel type.
Represents a 32-bit RGBA color.
Definition rgba32.hpp:21
Abstract base class for applying text styling with context-aware formatting.
A collection of printer functions for various tile types.
A collection of tile validation functions for compilation operations.
TileValidator(gsl::not_null< TextFormatter * > format, gsl::not_null< UserDiagnostics * > diag, gsl::not_null< TilePrinter * > tile_printer)
ChainableResult< void > validate_alpha_channels(const std::vector< PixelTile< Rgba32 > > &tiles) const
ChainableResult< void > generate_precision_loss_warnings(const std::vector< PixelTile< Rgba32 > > &tiles) const
ChainableResult< void > validate_unique_color_count(const std::vector< PixelTile< Rgba32 > > &tiles, const Rgba32 &extrinsic) const
Abstract interface for structured error reporting and diagnostic output.