10 #include "Mountain/core.hpp" 32 static constexpr
Color Transparent();
36 static constexpr
Color AliceBlue();
40 static constexpr
Color AntiqueWhite();
44 static constexpr
Color Aqua();
48 static constexpr
Color Aquamarine();
52 static constexpr
Color Azure();
56 static constexpr
Color Beige();
60 static constexpr
Color Bisque();
64 static constexpr
Color Black();
68 static constexpr
Color BlanchedAlmond();
72 static constexpr
Color Blue();
76 static constexpr
Color BlueViolet();
80 static constexpr
Color Brown();
84 static constexpr
Color BurlyWood();
88 static constexpr
Color CadetBlue();
92 static constexpr
Color Chartreuse();
96 static constexpr
Color Chocolate();
100 static constexpr
Color Coral();
104 static constexpr
Color CornflowerBlue();
108 static constexpr
Color Cornsilk();
112 static constexpr
Color Crimson();
116 static constexpr
Color Cyan();
120 static constexpr
Color DarkBlue();
124 static constexpr
Color DarkCyan();
128 static constexpr
Color DarkGoldenrod();
132 static constexpr
Color DarkGray();
136 static constexpr
Color DarkGreen();
140 static constexpr
Color DarkKhaki();
144 static constexpr
Color DarkMagenta();
148 static constexpr
Color DarkOliveGreen();
152 static constexpr
Color DarkOrange();
156 static constexpr
Color DarkOrchid();
160 static constexpr
Color DarkRed();
164 static constexpr
Color DarkSalmon();
168 static constexpr
Color DarkSeaGreen();
172 static constexpr
Color DarkSlateBlue();
176 static constexpr
Color DarkSlateGray();
180 static constexpr
Color DarkTurquoise();
184 static constexpr
Color DarkViolet();
188 static constexpr
Color DeepPink();
192 static constexpr
Color DeepSkyBlue();
196 static constexpr
Color DimGray();
200 static constexpr
Color DodgerBlue();
204 static constexpr
Color Firebrick();
208 static constexpr
Color FloralWhite();
212 static constexpr
Color ForestGreen();
216 static constexpr
Color Fuchsia();
220 static constexpr
Color Gainsboro();
224 static constexpr
Color GhostWhite();
228 static constexpr
Color Gold();
232 static constexpr
Color Goldenrod();
236 static constexpr
Color Gray();
240 static constexpr
Color Green();
244 static constexpr
Color GreenYellow();
248 static constexpr
Color Honeydew();
252 static constexpr
Color HotPink();
256 static constexpr
Color IndianRed();
260 static constexpr
Color Indigo();
264 static constexpr
Color Ivory();
268 static constexpr
Color Khaki();
272 static constexpr
Color Lavender();
276 static constexpr
Color LavenderBlush();
280 static constexpr
Color LawnGreen();
284 static constexpr
Color LemonChiffon();
288 static constexpr
Color LightBlue();
292 static constexpr
Color LightCoral();
296 static constexpr
Color LightCyan();
300 static constexpr
Color LightGoldenrodYellow();
304 static constexpr
Color LightGray();
308 static constexpr
Color LightGreen();
312 static constexpr
Color LightPink();
316 static constexpr
Color LightSalmon();
320 static constexpr
Color LightSeaGreen();
324 static constexpr
Color LightSkyBlue();
328 static constexpr
Color LightSlateGray();
332 static constexpr
Color LightSteelBlue();
336 static constexpr
Color LightYellow();
340 static constexpr
Color Lime();
344 static constexpr
Color LimeGreen();
348 static constexpr
Color Linen();
352 static constexpr
Color Magenta();
356 static constexpr
Color Maroon();
360 static constexpr
Color MediumAquamarine();
364 static constexpr
Color MediumBlue();
368 static constexpr
Color MediumOrchid();
372 static constexpr
Color MediumPurple();
376 static constexpr
Color MediumSeaGreen();
380 static constexpr
Color MediumSlateBlue();
384 static constexpr
Color MediumSpringGreen();
388 static constexpr
Color MediumTurquoise();
392 static constexpr
Color MediumVioletRed();
396 static constexpr
Color MidnightBlue();
400 static constexpr
Color MintCream();
404 static constexpr
Color MistyRose();
408 static constexpr
Color Moccasin();
412 static constexpr
Color MonoGameOrange();
416 static constexpr
Color NavajoWhite();
420 static constexpr
Color Navy();
424 static constexpr
Color OldLace();
428 static constexpr
Color Olive();
432 static constexpr
Color OliveDrab();
436 static constexpr
Color Orange();
440 static constexpr
Color OrangeRed();
444 static constexpr
Color Orchid();
448 static constexpr
Color PaleGoldenrod();
452 static constexpr
Color PaleGreen();
456 static constexpr
Color PaleTurquoise();
460 static constexpr
Color PaleVioletRed();
464 static constexpr
Color PapayaWhip();
468 static constexpr
Color PeachPuff();
472 static constexpr
Color Peru();
476 static constexpr
Color Pink();
480 static constexpr
Color Plum();
484 static constexpr
Color PowderBlue();
488 static constexpr
Color Purple();
492 static constexpr
Color Red();
496 static constexpr
Color RosyBrown();
500 static constexpr
Color RoyalBlue();
504 static constexpr
Color SaddleBrown();
508 static constexpr
Color Salmon();
512 static constexpr
Color SandyBrown();
516 static constexpr
Color SeaGreen();
520 static constexpr
Color SeaShell();
524 static constexpr
Color Sienna();
528 static constexpr
Color Silver();
532 static constexpr
Color SkyBlue();
536 static constexpr
Color SlateBlue();
540 static constexpr
Color SlateGray();
544 static constexpr
Color Snow();
548 static constexpr
Color SpringGreen();
552 static constexpr
Color SteelBlue();
556 static constexpr
Color Tan();
560 static constexpr
Color Teal();
564 static constexpr
Color Thistle();
568 static constexpr
Color Tomato();
572 static constexpr
Color Turquoise();
576 static constexpr
Color Violet();
580 static constexpr
Color Wheat();
584 static constexpr
Color White();
588 static constexpr
Color WhiteSmoke();
592 static constexpr
Color Yellow();
596 static constexpr
Color YellowGreen();
615 explicit constexpr
Color(
const float_t rgb,
const float_t a = 1.f);
624 constexpr
Color(
const float_t r,
const float_t g,
const float_t b,
const float_t a = 1.f);
631 explicit constexpr
Color(
const Vector3& rgb,
const float_t a = 1.f);
643 explicit constexpr
Color(
const float* data);
646 uint32_t GetPackedValue()
const;
649 constexpr float_t* Data();
652 constexpr
const float_t* Data()
const;
656 constexpr
explicit operator ColorHsva()
const;
660 constexpr
explicit operator Vector3()
const;
664 constexpr
explicit operator Vector4()
const;
735 constexpr
ColorHsva(
const float_t h,
const float_t s,
const float_t v,
const float_t a = 1.f);
739 constexpr
explicit operator Color()
const;
743 constexpr
explicit operator Vector3()
const;
747 constexpr
explicit operator Vector4()
const;
811 template <
class ParseContext>
812 constexpr
typename ParseContext::iterator parse(ParseContext& ctx)
814 auto it = ctx.begin();
819 throw std::format_error(
"Invalid format args for Color");
824 template <
class FmtContext>
825 typename FmtContext::iterator format(
Mountain::Color c, FmtContext& ctx)
const 827 std::ostringstream out;
829 out << std::vformat(
"{:" + m_Format +
"} ; {:" + m_Format +
"} ; {:" + m_Format +
"} ; {:" + m_Format +
'}', std::make_format_args(c.
r, c.
g, c.
b, c.
a));
831 return std::ranges::copy(std::move(out).str(), ctx.out()).out;
835 std::string m_Format;
842 template <
class ParseContext>
843 constexpr
typename ParseContext::iterator parse(ParseContext& ctx)
845 auto it = ctx.begin();
850 throw std::format_error(
"Invalid format args for ColorHsva");
855 template <
class FmtContext>
858 std::ostringstream out;
860 out << std::vformat(
"{:" + m_Format +
"} ; {:" + m_Format +
"} ; {:" + m_Format +
"} ; {:" + m_Format +
'}', std::make_format_args(c.
h, c.
s, c.
v, c.
a));
862 return std::ranges::copy(std::move(out).str(), ctx.out()).out;
866 std::string m_Format;
878 #include "Mountain/utils/color.inl" constexpr bool_t operator==(const Color &c1, const Color &c2)
Compares 2 Color component-wise.
constexpr bool_t operator!=(const Color &c1, const Color &c2)
Compares 2 Color component-wise.
constexpr Color operator*(const Color &c1, const Color &c2)
Multiplies 2 Color.
float_t a
Alpha component.
float_t g
Green component.
The Color struct represents a color in RGBA color space.
constexpr Color operator+(const Color &c1, const Color &c2)
Adds 2 Color, caps at 1.f.
float_t v
Value component.
float_t s
Saturation component.
The ColorHsva struct represents a color in HSVA color space.
float_t a
Alpha component.
Contains all declarations of the Mountain Framework.