Iros
 
Loading...
Searching...
No Matches
color.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/types/integers.h"
5
6namespace gfx {
7struct RGBA32 {
12};
13
14class Color {
15public:
16 Color() = default;
17 constexpr explicit Color(u8 r, u8 g, u8 b, u8 a = 255) : m_red(r), m_green(g), m_blue(b), m_alpha(a) {}
18
19 constexpr auto red() const -> u8 { return m_red; }
20 constexpr auto green() const -> u8 { return m_green; }
21 constexpr auto blue() const -> u8 { return m_blue; }
22 constexpr auto alpha() const -> u8 { return m_alpha; }
23
24 constexpr auto with_red(u8 red) const -> Color { return Color(red, green(), blue(), alpha()); }
25 constexpr auto with_green(u8 green) const -> Color { return Color(red(), green, blue(), alpha()); }
26 constexpr auto with_blue(u8 blue) const -> Color { return Color(red(), green(), blue, alpha()); }
27 constexpr auto with_alpha(u8 alpha) const -> Color { return Color(red(), green(), blue(), alpha); }
28
29 constexpr auto as_rgba32() const -> RGBA32 { return { red(), blue(), green(), alpha() }; }
30
31 auto operator==(Color const&) const -> bool = default;
32 auto operator<=>(Color const&) const = default;
33
34private:
35 u8 m_red { 0 };
36 u8 m_green { 0 };
37 u8 m_blue { 0 };
38 u8 m_alpha { 255 };
39};
40}
constexpr auto blue() const -> u8
Definition color.h:21
constexpr auto with_blue(u8 blue) const -> Color
Definition color.h:26
Color()=default
constexpr auto green() const -> u8
Definition color.h:20
constexpr auto as_rgba32() const -> RGBA32
Definition color.h:29
constexpr auto with_alpha(u8 alpha) const -> Color
Definition color.h:27
constexpr Color(u8 r, u8 g, u8 b, u8 a=255)
Definition color.h:17
constexpr auto alpha() const -> u8
Definition color.h:22
constexpr auto with_red(u8 red) const -> Color
Definition color.h:24
constexpr auto red() const -> u8
Definition color.h:19
auto operator<=>(Color const &) const =default
constexpr auto with_green(u8 green) const -> Color
Definition color.h:25
auto operator==(Color const &) const -> bool=default
__UINT8_TYPE__ u8
Definition integers.h:9
Definition bitmap.h:14
Definition color.h:7
u8 r
Definition color.h:8
u8 b
Definition color.h:9
u8 a
Definition color.h:11
u8 g
Definition color.h:10