From 8922399c7403640d54216153d29cf30445d1a4af Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 13 Sep 2020 16:39:29 +0300 Subject: [PATCH] Add float <-> uint8 color conversions --- libs/gfx/include/psemek/gfx/color.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libs/gfx/include/psemek/gfx/color.hpp b/libs/gfx/include/psemek/gfx/color.hpp index cd82c58d..2fa5e53a 100644 --- a/libs/gfx/include/psemek/gfx/color.hpp +++ b/libs/gfx/include/psemek/gfx/color.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include @@ -10,4 +11,22 @@ namespace psemek::gfx using color_rgb = geom::vector; using color_rgba = geom::vector; + template + auto to_colorf(geom::vector const & c) + { + geom::vector r; + for (std::size_t i = 0; i < N; ++i) + r[i] = c[i] / 255.f; + return r; + } + + template + auto to_coloru8(geom::vector const & c) + { + geom::vector r; + for (std::size_t i = 0; i < N; ++i) + r[i] = static_cast(std::round(geom::clamp(c[i] * 255.f, {0.f, 255.f}))); + return r; + } + }