#pragma once #include namespace ui { /** * @brief A 32-bit RGBA color. */ struct Color { union { u32 raw; u8 colors[4]; }; static constexpr Color from_u32(u32 raw) { return Color { .raw = raw }; } static constexpr Color from_rgba(u8 red, u8 green, u8 blue, u8 alpha) { return Color { .colors = { blue, green, red, alpha } }; } static constexpr Color from_rgb(u8 red, u8 green, u8 blue) { return from_rgba(red, green, blue, 0xff); } }; static constexpr Color WHITE = Color::from_rgb(0xff, 0xff, 0xff); static constexpr Color BLACK = Color::from_rgb(0x00, 0x00, 0x00); };