mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 05:37:35 +00:00
LibGfx: Make Color(NamedColor) inline and constexpr
This commit is contained in:
parent
43c7d7d285
commit
767ff06f56
4 changed files with 86 additions and 86 deletions
|
@ -38,91 +38,6 @@
|
||||||
|
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
Color::Color(NamedColor named)
|
|
||||||
{
|
|
||||||
if (named == Transparent) {
|
|
||||||
m_value = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct {
|
|
||||||
u8 r;
|
|
||||||
u8 g;
|
|
||||||
u8 b;
|
|
||||||
} rgb;
|
|
||||||
|
|
||||||
switch (named) {
|
|
||||||
case Black:
|
|
||||||
rgb = { 0, 0, 0 };
|
|
||||||
break;
|
|
||||||
case White:
|
|
||||||
rgb = { 255, 255, 255 };
|
|
||||||
break;
|
|
||||||
case Red:
|
|
||||||
rgb = { 255, 0, 0 };
|
|
||||||
break;
|
|
||||||
case Green:
|
|
||||||
rgb = { 0, 255, 0 };
|
|
||||||
break;
|
|
||||||
case Cyan:
|
|
||||||
rgb = { 0, 255, 255 };
|
|
||||||
break;
|
|
||||||
case DarkCyan:
|
|
||||||
rgb = { 0, 127, 127 };
|
|
||||||
break;
|
|
||||||
case MidCyan:
|
|
||||||
rgb = { 0, 192, 192 };
|
|
||||||
break;
|
|
||||||
case Blue:
|
|
||||||
rgb = { 0, 0, 255 };
|
|
||||||
break;
|
|
||||||
case Yellow:
|
|
||||||
rgb = { 255, 255, 0 };
|
|
||||||
break;
|
|
||||||
case Magenta:
|
|
||||||
rgb = { 255, 0, 255 };
|
|
||||||
break;
|
|
||||||
case DarkGray:
|
|
||||||
rgb = { 64, 64, 64 };
|
|
||||||
break;
|
|
||||||
case MidGray:
|
|
||||||
rgb = { 127, 127, 127 };
|
|
||||||
break;
|
|
||||||
case LightGray:
|
|
||||||
rgb = { 192, 192, 192 };
|
|
||||||
break;
|
|
||||||
case MidGreen:
|
|
||||||
rgb = { 0, 192, 0 };
|
|
||||||
break;
|
|
||||||
case MidBlue:
|
|
||||||
rgb = { 0, 0, 192 };
|
|
||||||
break;
|
|
||||||
case MidRed:
|
|
||||||
rgb = { 192, 0, 0 };
|
|
||||||
break;
|
|
||||||
case MidMagenta:
|
|
||||||
rgb = { 192, 0, 192 };
|
|
||||||
break;
|
|
||||||
case DarkGreen:
|
|
||||||
rgb = { 0, 128, 0 };
|
|
||||||
break;
|
|
||||||
case DarkBlue:
|
|
||||||
rgb = { 0, 0, 128 };
|
|
||||||
break;
|
|
||||||
case DarkRed:
|
|
||||||
rgb = { 128, 0, 0 };
|
|
||||||
break;
|
|
||||||
case WarmGray:
|
|
||||||
rgb = { 212, 208, 200 };
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_value = 0xff000000 | (rgb.r << 16) | (rgb.g << 8) | rgb.b;
|
|
||||||
}
|
|
||||||
|
|
||||||
String Color::to_string() const
|
String Color::to_string() const
|
||||||
{
|
{
|
||||||
return String::format("#%02x%02x%02x%02x", red(), green(), blue(), alpha());
|
return String::format("#%02x%02x%02x%02x", red(), green(), blue(), alpha());
|
||||||
|
|
|
@ -77,7 +77,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr Color() { }
|
constexpr Color() { }
|
||||||
Color(NamedColor);
|
constexpr Color(NamedColor);
|
||||||
constexpr Color(u8 r, u8 g, u8 b)
|
constexpr Color(u8 r, u8 g, u8 b)
|
||||||
: m_value(0xff000000 | (r << 16) | (g << 8) | b)
|
: m_value(0xff000000 | (r << 16) | (g << 8) | b)
|
||||||
{
|
{
|
||||||
|
@ -310,6 +310,91 @@ private:
|
||||||
RGBA32 m_value { 0 };
|
RGBA32 m_value { 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline constexpr Color::Color(NamedColor named)
|
||||||
|
{
|
||||||
|
if (named == Transparent) {
|
||||||
|
m_value = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u8 r;
|
||||||
|
u8 g;
|
||||||
|
u8 b;
|
||||||
|
} rgb;
|
||||||
|
|
||||||
|
switch (named) {
|
||||||
|
case Black:
|
||||||
|
rgb = { 0, 0, 0 };
|
||||||
|
break;
|
||||||
|
case White:
|
||||||
|
rgb = { 255, 255, 255 };
|
||||||
|
break;
|
||||||
|
case Red:
|
||||||
|
rgb = { 255, 0, 0 };
|
||||||
|
break;
|
||||||
|
case Green:
|
||||||
|
rgb = { 0, 255, 0 };
|
||||||
|
break;
|
||||||
|
case Cyan:
|
||||||
|
rgb = { 0, 255, 255 };
|
||||||
|
break;
|
||||||
|
case DarkCyan:
|
||||||
|
rgb = { 0, 127, 127 };
|
||||||
|
break;
|
||||||
|
case MidCyan:
|
||||||
|
rgb = { 0, 192, 192 };
|
||||||
|
break;
|
||||||
|
case Blue:
|
||||||
|
rgb = { 0, 0, 255 };
|
||||||
|
break;
|
||||||
|
case Yellow:
|
||||||
|
rgb = { 255, 255, 0 };
|
||||||
|
break;
|
||||||
|
case Magenta:
|
||||||
|
rgb = { 255, 0, 255 };
|
||||||
|
break;
|
||||||
|
case DarkGray:
|
||||||
|
rgb = { 64, 64, 64 };
|
||||||
|
break;
|
||||||
|
case MidGray:
|
||||||
|
rgb = { 127, 127, 127 };
|
||||||
|
break;
|
||||||
|
case LightGray:
|
||||||
|
rgb = { 192, 192, 192 };
|
||||||
|
break;
|
||||||
|
case MidGreen:
|
||||||
|
rgb = { 0, 192, 0 };
|
||||||
|
break;
|
||||||
|
case MidBlue:
|
||||||
|
rgb = { 0, 0, 192 };
|
||||||
|
break;
|
||||||
|
case MidRed:
|
||||||
|
rgb = { 192, 0, 0 };
|
||||||
|
break;
|
||||||
|
case MidMagenta:
|
||||||
|
rgb = { 192, 0, 192 };
|
||||||
|
break;
|
||||||
|
case DarkGreen:
|
||||||
|
rgb = { 0, 128, 0 };
|
||||||
|
break;
|
||||||
|
case DarkBlue:
|
||||||
|
rgb = { 0, 0, 128 };
|
||||||
|
break;
|
||||||
|
case DarkRed:
|
||||||
|
rgb = { 128, 0, 0 };
|
||||||
|
break;
|
||||||
|
case WarmGray:
|
||||||
|
rgb = { 212, 208, 200 };
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ASSERT_NOT_REACHED();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_value = 0xff000000 | (rgb.r << 16) | (rgb.g << 8) | rgb.b;
|
||||||
|
}
|
||||||
|
|
||||||
const LogStream& operator<<(const LogStream&, Color);
|
const LogStream& operator<<(const LogStream&, Color);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue