28 constexpr Rgba32() : red_{0}, green_{0}, blue_{0}, alpha_{0} {}
81 [[nodiscard]] std::uint8_t
red()
const
86 [[nodiscard]] std::uint8_t
green()
const
91 [[nodiscard]] std::uint8_t
blue()
const
96 [[nodiscard]] std::uint8_t
alpha()
const
110 return "[" + std::to_string(rgba.
red()) +
", " + std::to_string(rgba.
green()) +
", " + std::to_string(rgba.
blue()) +
111 ", " + std::to_string(rgba.
alpha()) +
"]";
155 Rgba32{255, 255, 255, 255},
156 Rgba32{238, 238, 238, 255},
157 Rgba32{222, 222, 222, 255},
158 Rgba32{205, 205, 205, 255},
159 Rgba32{189, 189, 189, 255},
160 Rgba32{172, 172, 172, 255},
161 Rgba32{156, 156, 156, 255},
162 Rgba32{139, 139, 139, 255},
163 Rgba32{115, 115, 115, 255},
190 const std::size_t h1 = std::hash<std::uint8_t>{}(rgba.red());
191 const std::size_t h2 = std::hash<std::uint8_t>{}(rgba.green());
192 const std::size_t h3 = std::hash<std::uint8_t>{}(rgba.blue());
193 const std::size_t h4 = std::hash<std::uint8_t>{}(rgba.alpha());
194 return h1 ^ (h2 << 8) ^ (h3 << 16) ^ (h4 << 24);
219 constexpr auto parse(std::format_parse_context &ctx)
Represents a 32-bit RGBA color.
constexpr Rgba32(std::uint8_t red, std::uint8_t green, std::uint8_t blue, std::uint8_t alpha=alpha_opaque)
std::string to_csv_str() const
auto operator<=>(const Rgba32 &rgba) const =default
static constexpr std::uint8_t alpha_transparent
bool is_intrinsically_transparent() const
Checks if this color is intrinsically transparent based on its alpha channel.
bool is_transparent(const Rgba32 &extrinsic) const
Checks if this color should be treated as transparent.
std::uint8_t blue() const
bool equals_ignoring_alpha(const Rgba32 &other) const
std::uint8_t alpha() const
bool is_extrinsically_transparent(const Rgba32 &extrinsic) const
Checks if this color matches the extrinsic transparency color.
std::string to_jasc_str() const
static constexpr std::uint8_t alpha_opaque
std::uint8_t green() const
bool operator==(const Rgba32 &rgba) const =default
constexpr Rgba32 rgba_yellow
constexpr Rgba32 rgba_purple
constexpr Rgba32 rgba_cyan
std::vector< Rgba32 > standard_greyscale_pal()
Returns the standard 16-color greyscale palette used for indexed tile output.
constexpr Rgba32 rgba_magenta
constexpr Rgba32 rgba_green
constexpr Rgba32 rgba_blue
constexpr Rgba32 rgba_grey
std::ostream & operator<<(std::ostream &os, const PrimaryPairingMode m)
Stream insertion operator for PrimaryPairingMode.
constexpr Rgba32 rgba_lime
constexpr Rgba32 rgba_white
constexpr Rgba32 rgba_red
std::string to_string(const PrimaryPairingMode m)
Converts a PrimaryPairingMode to its canonical string representation.
constexpr Rgba32 rgba_black
std::size_t operator()(const porytiles::Rgba32 &rgba) const noexcept