ShishGL  1.0
A simple modular cross-platform graphics library
Color.hpp
Go to the documentation of this file.
1 /*============================================================================*/
2 #ifndef SHISHGL_COLOR_HPP
3 #define SHISHGL_COLOR_HPP
4 /*============================================================================*/
5 #include <cstdint>
6 /*============================================================================*/
7 namespace Sh {
8 
9  struct Color {
10 
11  Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha = 255);
12 
13  uint8_t r, g, b, a;
14 
15  /* each channel (r, g, b) is multiplied by intensity */
16  Color& operator*=(const uint8_t& intensity);
17  Color operator*(const uint8_t& intensity);
18 
19  /* by-channel multiplying */
20  Color& operator*=(const Color& right);
21  Color operator*(const Color& right);
22 
23  /* by-channel sum */
24  Color& operator+=(const Color& right);
25  Color operator+(const Color& right);
26 
27  /*====================================================================*/
28  static const Color NONE;
29  static const Color INDIAN_RED;
30  static const Color LIGHT_CORAL;
31  static const Color SALMON;
32  static const Color DARK_SALMON;
33  static const Color LIGHT_SALMON;
34  static const Color CRIMSON;
35  static const Color RED;
36  static const Color FIRE_BRICK;
37  static const Color DARK_RED;
38  static const Color PINK;
39  static const Color LIGHT_PINK;
40  static const Color HOT_PINK;
41  static const Color DEEP_PINK;
42  static const Color MEDIUM_VIOLET_RED;
43  static const Color PALE_VIOLET_RED;
44  static const Color CORAL;
45  static const Color TOMATO;
46  static const Color ORANGE_RED;
47  static const Color DARK_ORANGE;
48  static const Color ORANGE;
49  static const Color GOLD;
50  static const Color YELLOW;
51  static const Color LIGHT_YELLOW;
52  static const Color LEMON_CHIFFON;
54  static const Color PAPAYA_WHIP;
55  static const Color MOCCASIN;
56  static const Color PEACH_PUFF;
57  static const Color PALE_GOLDENROD;
58  static const Color KHAKI;
59  static const Color DARK_KHAKI;
60  static const Color LAVENDER;
61  static const Color THISTLE;
62  static const Color PLUM;
63  static const Color VIOLET;
64  static const Color ORCHID;
65  static const Color FUCHSIA;
66  static const Color MAGENTA;
67  static const Color MEDIUM_ORCHID;
68  static const Color MEDIUM_PURPLE;
69  static const Color BLUE_VIOLET;
70  static const Color DARK_VIOLET;
71  static const Color DARK_ORCHID;
72  static const Color DARK_MAGENTA;
73  static const Color PURPLE;
74  static const Color INDIGO;
75  static const Color SLATE_BLUE;
76  static const Color DARK_SLATE_BLUE;
77  static const Color CORNSILK;
78  static const Color BLANCHED_ALMOND;
79  static const Color BISQUE;
80  static const Color NAVAJO_WHITE;
81  static const Color WHEAT;
82  static const Color BURLY_WOOD;
83  static const Color TAN;
84  static const Color ROSY_BROWN;
85  static const Color SANDY_BROWN;
86  static const Color GOLDENROD;
87  static const Color DARK_GOLDEN_ROD;
88  static const Color PERU;
89  static const Color CHOCOLATE;
90  static const Color SADDLE_BROWN;
91  static const Color SIENNA;
92  static const Color BROWN;
93  static const Color MAROON;
94  static const Color BLACK;
95  static const Color GRAY;
96  static const Color SILVER;
97  static const Color WHITE;
98  static const Color OLIVE;
99  static const Color LIME;
100  static const Color GREEN;
101  static const Color AQUA;
102  static const Color TEAL;
103  static const Color BLUE;
104  static const Color NAVY;
105  static const Color GREEN_YELLOW;
106  static const Color CHARTREUSE;
107  static const Color LAWN_GREEN;
108  static const Color LIME_GREEN;
109  static const Color PALE_GREEN;
110  static const Color LIGHT_GREEN;
112  static const Color SPRING_GREEN;
113  static const Color MEDIUM_SEA_GREEN;
114  static const Color SEA_GREEN;
115  static const Color FOREST_GREEN;
116  static const Color DARK_GREEN;
117  static const Color YELLOW_GREEN;
118  static const Color OLIVE_DRAB;
119  static const Color DARK_OLIVE_GREEN;
120  static const Color MEDIUM_AQUAMARINE;
121  static const Color DARK_SEA_GREEN;
122  static const Color LIGHT_SEA_GREEN;
123  static const Color DARK_CYAN;
124  static const Color CYAN;
125  static const Color LIGHT_CYAN;
126  static const Color PALE_TURQUOISE;
127  static const Color AQUAMARINE;
128  static const Color TURQUOISE;
129  static const Color MEDIUM_TURQUOISE;
130  static const Color DARK_TURQUOISE;
131  static const Color CADET_BLUE;
132  static const Color STEEL_BLUE;
133  static const Color LIGHT_STEEL_BLUE;
134  static const Color POWDER_BLUE;
135  static const Color LIGHT_BLUE;
136  static const Color SKY_BLUE;
137  static const Color LIGHT_SKY_BLUE;
138  static const Color DEEP_SKY_BLUE;
139  static const Color DODGER_BLUE;
140  static const Color CORNFLOWER_BLUE;
141  static const Color MEDIUM_SLATE_BLUE;
142  static const Color ROYAL_BLUE;
143  static const Color MEDIUM_BLUE;
144  static const Color DARK_BLUE;
145  static const Color MIDNIGHT_BLUE;
146  static const Color SNOW;
147  static const Color HONEYDEW;
148  static const Color MINT_CREAM;
149  static const Color AZURE;
150  static const Color ALICE_BLUE;
151  static const Color GHOST_WHITE;
152  static const Color WHITE_SMOKE;
153  static const Color SEASHELL;
154  static const Color BEIGE;
155  static const Color OLD_LACE;
156  static const Color FLORAL_WHITE;
157  static const Color IVORY;
158  static const Color ANTIQUE_WHITE;
159  static const Color LINEN;
160  static const Color LAVENDER_BLUSH;
161  static const Color MISTY_ROSE;
162  static const Color GAINSBORO;
163  static const Color LIGHT_GREY;
164  static const Color LIGHT_GRAY;
165  static const Color DARK_GRAY;
166  static const Color DARK_GREY;
167  static const Color GREY;
168  static const Color DIM_GRAY;
169  static const Color DIM_GREY;
170  static const Color LIGHT_SLATE_GRAY;
171  static const Color LIGHT_SLATE_GREY;
172  static const Color SLATE_GRAY;
173  static const Color SLATE_GREY;
174  static const Color DARK_SLATE_GRAY;
175  static const Color DARK_SLATE_GREY;
176  };
177 
178  struct ColorPair {
179  Color bg; /* background color */
180  Color fg; /* foreground color */
181  };
182 
183 
184 }
185 /*============================================================================*/
186 #endif //SHISHGL_COLOR_HPP
187 /*============================================================================*/
Sh::Color::ALICE_BLUE
static const Color ALICE_BLUE
Definition: Color.hpp:150
Sh::Color::LIGHT_GREY
static const Color LIGHT_GREY
Definition: Color.hpp:163
Sh::Color::DARK_SEA_GREEN
static const Color DARK_SEA_GREEN
Definition: Color.hpp:121
Sh::Color::CHARTREUSE
static const Color CHARTREUSE
Definition: Color.hpp:106
Sh::Color::TAN
static const Color TAN
Definition: Color.hpp:83
Sh::Color::PURPLE
static const Color PURPLE
Definition: Color.hpp:73
Sh::Color::DIM_GREY
static const Color DIM_GREY
Definition: Color.hpp:169
Sh::Color::BROWN
static const Color BROWN
Definition: Color.hpp:92
Sh::Color::LIGHT_CYAN
static const Color LIGHT_CYAN
Definition: Color.hpp:125
Sh::Color::DARK_GRAY
static const Color DARK_GRAY
Definition: Color.hpp:165
Sh::Color::GOLDENROD
static const Color GOLDENROD
Definition: Color.hpp:86
Sh::Color::PLUM
static const Color PLUM
Definition: Color.hpp:62
Sh::Color::DARK_KHAKI
static const Color DARK_KHAKI
Definition: Color.hpp:59
Sh::Color::DARK_SLATE_BLUE
static const Color DARK_SLATE_BLUE
Definition: Color.hpp:76
Sh::Color::DEEP_PINK
static const Color DEEP_PINK
Definition: Color.hpp:41
Sh::Color::MINT_CREAM
static const Color MINT_CREAM
Definition: Color.hpp:148
Sh::Color::POWDER_BLUE
static const Color POWDER_BLUE
Definition: Color.hpp:134
Sh::Color::operator+=
Color & operator+=(const Color &right)
Definition: Color.cpp:48
Sh::Color::MEDIUM_VIOLET_RED
static const Color MEDIUM_VIOLET_RED
Definition: Color.hpp:42
Sh::Color::BLUE
static const Color BLUE
Definition: Color.hpp:103
Sh::Color::WHEAT
static const Color WHEAT
Definition: Color.hpp:81
Sh::Color::SIENNA
static const Color SIENNA
Definition: Color.hpp:91
Sh::Color::ANTIQUE_WHITE
static const Color ANTIQUE_WHITE
Definition: Color.hpp:158
Sh::Color::SALMON
static const Color SALMON
Definition: Color.hpp:31
Sh::Color::LIGHT_STEEL_BLUE
static const Color LIGHT_STEEL_BLUE
Definition: Color.hpp:133
Sh::Color::INDIAN_RED
static const Color INDIAN_RED
Definition: Color.hpp:29
Sh::Color::DARK_CYAN
static const Color DARK_CYAN
Definition: Color.hpp:123
Sh::Color::TOMATO
static const Color TOMATO
Definition: Color.hpp:45
Sh::Color::ORANGE
static const Color ORANGE
Definition: Color.hpp:48
Sh::Color::MEDIUM_SPRING_GREEN
static const Color MEDIUM_SPRING_GREEN
Definition: Color.hpp:111
Sh::Color::INDIGO
static const Color INDIGO
Definition: Color.hpp:74
Sh::ColorPair::bg
Color bg
Definition: Color.hpp:179
Sh::Color::VIOLET
static const Color VIOLET
Definition: Color.hpp:63
Sh::Color::NONE
static const Color NONE
Definition: Color.hpp:28
Sh::Color::CHOCOLATE
static const Color CHOCOLATE
Definition: Color.hpp:89
Sh::Color::DARK_SLATE_GRAY
static const Color DARK_SLATE_GRAY
Definition: Color.hpp:174
Sh::Color::PERU
static const Color PERU
Definition: Color.hpp:88
Sh::Color::DARK_RED
static const Color DARK_RED
Definition: Color.hpp:37
Sh::Color::LIGHT_BLUE
static const Color LIGHT_BLUE
Definition: Color.hpp:135
Sh::Color::DARK_GREY
static const Color DARK_GREY
Definition: Color.hpp:166
Sh::Color::THISTLE
static const Color THISTLE
Definition: Color.hpp:61
Sh::Color::MAGENTA
static const Color MAGENTA
Definition: Color.hpp:66
Sh::Color::GREY
static const Color GREY
Definition: Color.hpp:167
Sh::Color::DARK_ORANGE
static const Color DARK_ORANGE
Definition: Color.hpp:47
Sh::Color::GHOST_WHITE
static const Color GHOST_WHITE
Definition: Color.hpp:151
Sh::Color::OLIVE_DRAB
static const Color OLIVE_DRAB
Definition: Color.hpp:118
Sh::Color::FIRE_BRICK
static const Color FIRE_BRICK
Definition: Color.hpp:36
Sh::Color::LAVENDER
static const Color LAVENDER
Definition: Color.hpp:60
Sh::Color::TEAL
static const Color TEAL
Definition: Color.hpp:102
Sh::Color::b
uint8_t b
Definition: Color.hpp:13
Sh::Color::GREEN_YELLOW
static const Color GREEN_YELLOW
Definition: Color.hpp:105
Sh::Color::operator+
Color operator+(const Color &right)
Definition: Color.cpp:55
Sh::Color::AQUAMARINE
static const Color AQUAMARINE
Definition: Color.hpp:127
Sh::Color::LIGHT_SALMON
static const Color LIGHT_SALMON
Definition: Color.hpp:33
Sh::Color::BURLY_WOOD
static const Color BURLY_WOOD
Definition: Color.hpp:82
Sh::Color::LAWN_GREEN
static const Color LAWN_GREEN
Definition: Color.hpp:107
Sh::Color::SLATE_GRAY
static const Color SLATE_GRAY
Definition: Color.hpp:172
Sh::ColorPair::fg
Color fg
Definition: Color.hpp:180
Sh::Color::PALE_GOLDENROD
static const Color PALE_GOLDENROD
Definition: Color.hpp:57
Sh::Color::r
uint8_t r
Definition: Color.hpp:13
Sh::Color::LEMON_CHIFFON
static const Color LEMON_CHIFFON
Definition: Color.hpp:52
Sh::Color::MEDIUM_SEA_GREEN
static const Color MEDIUM_SEA_GREEN
Definition: Color.hpp:113
Sh::Color::HONEYDEW
static const Color HONEYDEW
Definition: Color.hpp:147
Sh::Color::g
uint8_t g
Definition: Color.hpp:13
Sh::Color::BEIGE
static const Color BEIGE
Definition: Color.hpp:154
Sh::Color::CORAL
static const Color CORAL
Definition: Color.hpp:44
Sh::Color::MAROON
static const Color MAROON
Definition: Color.hpp:93
Sh::Color::CRIMSON
static const Color CRIMSON
Definition: Color.hpp:34
Sh::Color::DARK_SALMON
static const Color DARK_SALMON
Definition: Color.hpp:32
Sh::Color::LIGHT_GRAY
static const Color LIGHT_GRAY
Definition: Color.hpp:164
Sh::Color::MEDIUM_BLUE
static const Color MEDIUM_BLUE
Definition: Color.hpp:143
Sh::Color::KHAKI
static const Color KHAKI
Definition: Color.hpp:58
Sh::Color::GREEN
static const Color GREEN
Definition: Color.hpp:100
Sh::Color::SKY_BLUE
static const Color SKY_BLUE
Definition: Color.hpp:136
Sh::Color::SLATE_GREY
static const Color SLATE_GREY
Definition: Color.hpp:173
Sh::Color::MEDIUM_ORCHID
static const Color MEDIUM_ORCHID
Definition: Color.hpp:67
Sh::Color::LIGHT_YELLOW
static const Color LIGHT_YELLOW
Definition: Color.hpp:51
Sh::Color::LIME
static const Color LIME
Definition: Color.hpp:99
Sh::Color::DARK_GREEN
static const Color DARK_GREEN
Definition: Color.hpp:116
Sh::Color::ROSY_BROWN
static const Color ROSY_BROWN
Definition: Color.hpp:84
Sh::ColorPair
Definition: Color.hpp:178
Sh::Color::DARK_MAGENTA
static const Color DARK_MAGENTA
Definition: Color.hpp:72
Sh::Color::WHITE
static const Color WHITE
Definition: Color.hpp:97
Sh::Color::RED
static const Color RED
Definition: Color.hpp:35
Sh::Color::PEACH_PUFF
static const Color PEACH_PUFF
Definition: Color.hpp:56
Sh::Color::MISTY_ROSE
static const Color MISTY_ROSE
Definition: Color.hpp:161
Sh::Color::TURQUOISE
static const Color TURQUOISE
Definition: Color.hpp:128
Sh::Color::CORNSILK
static const Color CORNSILK
Definition: Color.hpp:77
Sh::Color::CORNFLOWER_BLUE
static const Color CORNFLOWER_BLUE
Definition: Color.hpp:140
Sh::Color::YELLOW_GREEN
static const Color YELLOW_GREEN
Definition: Color.hpp:117
Sh::Color::FUCHSIA
static const Color FUCHSIA
Definition: Color.hpp:65
Sh::Color::DODGER_BLUE
static const Color DODGER_BLUE
Definition: Color.hpp:139
Sh::Color::PALE_VIOLET_RED
static const Color PALE_VIOLET_RED
Definition: Color.hpp:43
Sh::Color::ROYAL_BLUE
static const Color ROYAL_BLUE
Definition: Color.hpp:142
Sh::Color::PAPAYA_WHIP
static const Color PAPAYA_WHIP
Definition: Color.hpp:54
Sh::Color::GOLD
static const Color GOLD
Definition: Color.hpp:49
Sh::Color::ORCHID
static const Color ORCHID
Definition: Color.hpp:64
Sh
Definition: CoreApplication.hpp:10
Sh::Color::YELLOW
static const Color YELLOW
Definition: Color.hpp:50
Sh::Color::LINEN
static const Color LINEN
Definition: Color.hpp:159
Sh::Color::BLACK
static const Color BLACK
Definition: Color.hpp:94
Sh::Color::operator*=
Color & operator*=(const uint8_t &intensity)
Definition: Color.cpp:26
Sh::Color::MEDIUM_SLATE_BLUE
static const Color MEDIUM_SLATE_BLUE
Definition: Color.hpp:141
Sh::Color::ORANGE_RED
static const Color ORANGE_RED
Definition: Color.hpp:46
Sh::Color::Color
Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha=255)
Definition: Color.cpp:7
Sh::Color::SADDLE_BROWN
static const Color SADDLE_BROWN
Definition: Color.hpp:90
Sh::Color::OLIVE
static const Color OLIVE
Definition: Color.hpp:98
Sh::Color::a
uint8_t a
Definition: Color.hpp:13
Sh::Color::LIGHT_SLATE_GREY
static const Color LIGHT_SLATE_GREY
Definition: Color.hpp:171
Sh::Color::LIGHT_SEA_GREEN
static const Color LIGHT_SEA_GREEN
Definition: Color.hpp:122
Sh::Color::WHITE_SMOKE
static const Color WHITE_SMOKE
Definition: Color.hpp:152
Sh::Color::SILVER
static const Color SILVER
Definition: Color.hpp:96
Sh::Color
Definition: Color.hpp:9
Sh::Color::operator*
Color operator*(const uint8_t &intensity)
Definition: Color.cpp:33
Sh::Color::LIGHT_PINK
static const Color LIGHT_PINK
Definition: Color.hpp:39
Sh::Color::LIGHT_GREEN
static const Color LIGHT_GREEN
Definition: Color.hpp:110
Sh::Color::SLATE_BLUE
static const Color SLATE_BLUE
Definition: Color.hpp:75
Sh::Color::PALE_TURQUOISE
static const Color PALE_TURQUOISE
Definition: Color.hpp:126
Sh::Color::GAINSBORO
static const Color GAINSBORO
Definition: Color.hpp:162
Sh::Color::DARK_SLATE_GREY
static const Color DARK_SLATE_GREY
Definition: Color.hpp:175
Sh::Color::SANDY_BROWN
static const Color SANDY_BROWN
Definition: Color.hpp:85
Sh::Color::SEA_GREEN
static const Color SEA_GREEN
Definition: Color.hpp:114
Sh::Color::CYAN
static const Color CYAN
Definition: Color.hpp:124
Sh::Color::CADET_BLUE
static const Color CADET_BLUE
Definition: Color.hpp:131
Sh::Color::LIGHT_GOLDENROD_YELLOW
static const Color LIGHT_GOLDENROD_YELLOW
Definition: Color.hpp:53
Sh::Color::LAVENDER_BLUSH
static const Color LAVENDER_BLUSH
Definition: Color.hpp:160
Sh::Color::NAVAJO_WHITE
static const Color NAVAJO_WHITE
Definition: Color.hpp:80
Sh::Color::LIGHT_SLATE_GRAY
static const Color LIGHT_SLATE_GRAY
Definition: Color.hpp:170
Sh::Color::OLD_LACE
static const Color OLD_LACE
Definition: Color.hpp:155
Sh::Color::HOT_PINK
static const Color HOT_PINK
Definition: Color.hpp:40
Sh::Color::MEDIUM_AQUAMARINE
static const Color MEDIUM_AQUAMARINE
Definition: Color.hpp:120
Sh::Color::DIM_GRAY
static const Color DIM_GRAY
Definition: Color.hpp:168
Sh::Color::MEDIUM_PURPLE
static const Color MEDIUM_PURPLE
Definition: Color.hpp:68
Sh::Color::DARK_BLUE
static const Color DARK_BLUE
Definition: Color.hpp:144
Sh::Color::AQUA
static const Color AQUA
Definition: Color.hpp:101
Sh::Color::DARK_GOLDEN_ROD
static const Color DARK_GOLDEN_ROD
Definition: Color.hpp:87
Sh::Color::MOCCASIN
static const Color MOCCASIN
Definition: Color.hpp:55
Sh::Color::LIGHT_SKY_BLUE
static const Color LIGHT_SKY_BLUE
Definition: Color.hpp:137
Sh::Color::GRAY
static const Color GRAY
Definition: Color.hpp:95
Sh::Color::LIGHT_CORAL
static const Color LIGHT_CORAL
Definition: Color.hpp:30
Sh::Color::SNOW
static const Color SNOW
Definition: Color.hpp:146
Sh::Color::BLUE_VIOLET
static const Color BLUE_VIOLET
Definition: Color.hpp:69
Sh::Color::DARK_ORCHID
static const Color DARK_ORCHID
Definition: Color.hpp:71
Sh::Color::PALE_GREEN
static const Color PALE_GREEN
Definition: Color.hpp:109
Sh::Color::NAVY
static const Color NAVY
Definition: Color.hpp:104
Sh::Color::DARK_TURQUOISE
static const Color DARK_TURQUOISE
Definition: Color.hpp:130
Sh::Color::SPRING_GREEN
static const Color SPRING_GREEN
Definition: Color.hpp:112
Sh::Color::BISQUE
static const Color BISQUE
Definition: Color.hpp:79
Sh::Color::FLORAL_WHITE
static const Color FLORAL_WHITE
Definition: Color.hpp:156
Sh::Color::STEEL_BLUE
static const Color STEEL_BLUE
Definition: Color.hpp:132
Sh::Color::BLANCHED_ALMOND
static const Color BLANCHED_ALMOND
Definition: Color.hpp:78
Sh::Color::FOREST_GREEN
static const Color FOREST_GREEN
Definition: Color.hpp:115
Sh::Color::IVORY
static const Color IVORY
Definition: Color.hpp:157
Sh::Color::MIDNIGHT_BLUE
static const Color MIDNIGHT_BLUE
Definition: Color.hpp:145
Sh::Color::LIME_GREEN
static const Color LIME_GREEN
Definition: Color.hpp:108
Sh::Color::PINK
static const Color PINK
Definition: Color.hpp:38
Sh::Color::AZURE
static const Color AZURE
Definition: Color.hpp:149
Sh::Color::DARK_OLIVE_GREEN
static const Color DARK_OLIVE_GREEN
Definition: Color.hpp:119
Sh::Color::MEDIUM_TURQUOISE
static const Color MEDIUM_TURQUOISE
Definition: Color.hpp:129
Sh::Color::SEASHELL
static const Color SEASHELL
Definition: Color.hpp:153
Sh::Color::DARK_VIOLET
static const Color DARK_VIOLET
Definition: Color.hpp:70
Sh::Color::DEEP_SKY_BLUE
static const Color DEEP_SKY_BLUE
Definition: Color.hpp:138