Add coloru16 converters
This commit is contained in:
parent
b45f605209
commit
bb1df4599d
1 changed files with 36 additions and 0 deletions
|
|
@ -24,6 +24,24 @@ namespace psemek::gfx
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <std::size_t N>
|
||||||
|
auto to_colorf(geom::vector<std::uint16_t, N> const & c)
|
||||||
|
{
|
||||||
|
geom::vector<float, N> r;
|
||||||
|
for (std::size_t i = 0; i < N; ++i)
|
||||||
|
r[i] = c[i] / 65535.f;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <std::size_t N>
|
||||||
|
auto to_coloru8(geom::vector<std::uint16_t, N> const & c)
|
||||||
|
{
|
||||||
|
geom::vector<std::uint8_t, N> r;
|
||||||
|
for (std::size_t i = 0; i < N; ++i)
|
||||||
|
r[i] = (static_cast<std::uint32_t>(c[i]) * 255) / 65535;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
auto to_coloru8(geom::vector<float, N> const & c)
|
auto to_coloru8(geom::vector<float, N> const & c)
|
||||||
{
|
{
|
||||||
|
|
@ -33,6 +51,24 @@ namespace psemek::gfx
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <std::size_t N>
|
||||||
|
auto to_coloru16(geom::vector<std::uint8_t, N> const & c)
|
||||||
|
{
|
||||||
|
geom::vector<std::uint16_t, N> r;
|
||||||
|
for (std::size_t i = 0; i < N; ++i)
|
||||||
|
r[i] = (static_cast<std::uint32_t>(c[i]) * 65535) / 255;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <std::size_t N>
|
||||||
|
auto to_coloru16(geom::vector<float, N> const & c)
|
||||||
|
{
|
||||||
|
geom::vector<std::uint16_t, N> r;
|
||||||
|
for (std::size_t i = 0; i < N; ++i)
|
||||||
|
r[i] = static_cast<std::uint16_t>(std::round(geom::clamp(c[i] * 65535.f, {0.f, 65535.f})));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
auto lerp(geom::vector<std::uint8_t, N> const & c0, geom::vector<std::uint8_t, N> const & c1, float t)
|
auto lerp(geom::vector<std::uint8_t, N> const & c0, geom::vector<std::uint8_t, N> const & c1, float t)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue