From b0fd3562cfd94abd9f2a0eb560d6fa72819e76df Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 28 May 2022 20:07:21 +0300 Subject: [PATCH] Add color hex output --- libs/gfx/include/psemek/gfx/color.hpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/libs/gfx/include/psemek/gfx/color.hpp b/libs/gfx/include/psemek/gfx/color.hpp index 8f66532a..b00ea315 100644 --- a/libs/gfx/include/psemek/gfx/color.hpp +++ b/libs/gfx/include/psemek/gfx/color.hpp @@ -163,6 +163,33 @@ namespace psemek::gfx }; } + template + struct as_hex + { + geom::vector color; + + as_hex(geom::vector const & color) + : color{color} + {} + }; + + template + OStream & operator << (OStream & os, as_hex const & c) + { + static auto const hex_v = [](std::uint8_t value) -> char + { + if (value < 10) + return '0' + value; + else + return 'a' + (value - 10); + }; + + for (auto v : c.color.coords) + os << hex_v(v >> 4) << hex_v(v & 15); + + return os; + } + struct generic_color { color_4f c;