Add common generic colors

This commit is contained in:
Nikita Lisitsa 2020-09-29 19:20:02 +03:00
parent aaf6ce7652
commit 4e37e7a54f

View file

@ -35,4 +35,50 @@ namespace psemek::gfx
return to_coloru8(geom::lerp(to_colorf(c0), to_colorf(c1), t));
}
struct generic_color
{
geom::vector<float, 4> c;
auto as_color_rgb() const
{
return to_coloru8(geom::vector{c[0], c[1], c[2]});
}
auto as_color_rgba() const
{
return to_coloru8(c);
}
operator color_rgb() const
{
return as_color_rgb();
}
operator color_rgba() const
{
return as_color_rgba();
}
operator geom::vector<float, 3>() const
{
return geom::vector{c[0], c[1], c[2]};
}
operator geom::vector<float, 4>() const
{
return c;
}
};
static const generic_color white {{1.f, 1.f, 1.f, 1.f}};
static const generic_color black {{0.f, 0.f, 0.f, 1.f}};
static const generic_color red {{1.f, 0.f, 0.f, 1.f}};
static const generic_color green {{0.f, 1.f, 0.f, 1.f}};
static const generic_color blue {{0.f, 0.f, 1.f, 1.f}};
static const generic_color cyan {{0.f, 1.f, 1.f, 1.f}};
static const generic_color magenta{{1.f, 0.f, 1.f, 1.f}};
static const generic_color yellow {{1.f, 1.f, 0.f, 1.f}};
}