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;
|
||||
}
|
||||
|
||||
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>
|
||||
auto to_coloru8(geom::vector<float, N> const & c)
|
||||
{
|
||||
|
|
@ -33,6 +51,24 @@ namespace psemek::gfx
|
|||
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>
|
||||
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