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; + } + }