From e7ed992aeeb35a060f6f143de86807ddcc7229ee Mon Sep 17 00:00:00 2001 From: keqingmoe Date: Wed, 11 Dec 2024 22:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD=EF=BC=9A?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E6=AD=A3=E8=A7=84=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tui/screen/colors.cppm | 46 +++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/tui/screen/colors.cppm b/src/tui/screen/colors.cppm index 9fee0d0..a34f338 100644 --- a/src/tui/screen/colors.cppm +++ b/src/tui/screen/colors.cppm @@ -305,7 +305,11 @@ enum struct palette256 : u8 */ struct rgb_t { - u8 red{}, green{}, blue{}; + u8 red{}; + u8 green{}; + u8 blue{}; + + friend auto operator==(rgb_t, rgb_t) noexcept -> bool = default; }; /** @@ -672,6 +676,46 @@ constexpr auto get_nearest_palette16(palette256 c) noexcept -> palette16 return static_cast(p16.index16); } +/** + * @brief 颜色正规化 + * @arg `palette1` + * @return `rgb_t` + */ +constexpr auto normalize(palette1) noexcept -> rgb_t +{ + return rgb_t{0, 0, 0}; +} +/** + * @brief 颜色正规化 + * @arg `palette16` 16 种预设颜色 + * @return `rgb_t ` + */ +constexpr auto normalize(palette16 c) noexcept -> rgb_t +{ + auto&& info = get_color_info(c); + return rgb_t{info.red, info.green, info.blue}; +} +/** + * @brief 颜色正规化 + * @arg `palette256` 256 种预设颜色 + * @return `rgb_t` + */ +constexpr auto normalize(palette256 c) noexcept -> rgb_t +{ + auto&& info = get_color_info(c); + return rgb_t{info.red, info.green, info.blue}; +} +/** + * @brief 颜色正规化 + * @arg `rgb_t` RGB 真彩色 + * @return `rgb_t` + */ +constexpr auto normalize(rgb_t rgb) noexcept -> rgb_t +{ + return rgb; +} + + } }