2 * See Licensing and Copyright notice in naev.h
8 * @brief Predefined colours for use with NAEV.
23 #define STRCASECMP lstrcmpiA
26 #define STRCASECMP strcasecmp
27 #endif /* HAS_WIN32 */
35 glColour cWhite
= { .r
=1.00, .g
=1.00, .b
=1.00, .a
=1. }; /**< White */
36 glColour cGrey90
= { .r
=0.90, .g
=0.90, .b
=0.90, .a
=1. }; /**< Grey 90% */
37 glColour cGrey80
= { .r
=0.80, .g
=0.80, .b
=0.80, .a
=1. }; /**< Grey 80% */
38 glColour cGrey70
= { .r
=0.70, .g
=0.70, .b
=0.70, .a
=1. }; /**< Grey 70% */
39 glColour cGrey60
= { .r
=0.60, .g
=0.60, .b
=0.60, .a
=1. }; /**< Grey 60% */
40 glColour cGrey50
= { .r
=0.50, .g
=0.50, .b
=0.50, .a
=1. }; /**< Grey 50% */
41 glColour cGrey40
= { .r
=0.40, .g
=0.40, .b
=0.40, .a
=1. }; /**< Grey 40% */
42 glColour cGrey30
= { .r
=0.30, .g
=0.30, .b
=0.30, .a
=1. }; /**< Grey 30% */
43 glColour cGrey20
= { .r
=0.20, .g
=0.20, .b
=0.20, .a
=1. }; /**< Grey 20% */
44 glColour cGrey10
= { .r
=0.10, .g
=0.10, .b
=0.10, .a
=1. }; /**< Grey 10% */
45 glColour cBlack
= { .r
=0.00, .g
=0.00, .b
=0.00, .a
=1. }; /**< Black */
48 glColour cGreen
= { .r
=0.20, .g
=0.80, .b
=0.20, .a
=1. }; /**< Green */
50 glColour cDarkRed
= { .r
=0.60, .g
=0.10, .b
=0.10, .a
=1. }; /**< Dark Red */
51 glColour cRed
= { .r
=0.80, .g
=0.20, .b
=0.20, .a
=1. }; /**< Red */
53 glColour cOrange
= { .r
=0.90, .g
=0.70, .b
=0.10, .a
=1. }; /**< Orange */
55 glColour cGold
= { .r
=1.00, .g
=0.84, .b
=0.00, .a
=1. }; /**< Gold */
56 glColour cYellow
= { .r
=0.80, .g
=0.80, .b
=0.00, .a
=1. }; /**< Yellow */
58 glColour cMidnightBlue
= { .r
=0.40, .g
=0.4, .b
=0.60, .a
=1. }; /**< Midnight Blue. */
59 glColour cDarkBlue
= { .r
=0.10, .g
=0.10, .b
=0.60, .a
=1. }; /**< Dark Blue */
60 glColour cBlue
= { .r
=0.20, .g
=0.20, .b
=0.80, .a
=1. }; /**< Blue */
61 glColour cLightBlue
= { .r
=0.40, .g
=0.40, .b
=1.00, .a
=1. }; /**< Light Blue */
62 glColour cCyan
= { .r
=0.00, .g
=1.00, .b
=1.00, .a
=1. }; /* Cyan. */
64 glColour cPurple
= { .r
=0.90, .g
=0.10, .b
=0.90, .a
=1. }; /**< Purple */
65 glColour cDarkPurple
= { .r
=0.68, .g
=0.18, .b
=0.64, .a
=1. }; /**< Dark Purple */
67 glColour cBrown
= { .r
=0.59, .g
=0.28, .b
=0.00, .a
=1. }; /**< Brown */
69 glColour cSilver
= { .r
=0.75, .g
=0.75, .b
=0.75, .a
=1. }; /**< Silver */
75 glColour cConsole
= { .r
= 0.1, .g
= 0.9, .b
= 0.1, .a
= 1. }; /**< Console colour */
76 glColour cDConsole
= { .r
= 0.0, .g
= 0.7, .b
= 0.0, .a
= 1. }; /**< Dark Console colour */
78 glColour cHilight
= { .r
= 0.1, .g
= 0.9, .b
= 0.1, .a
= 0.3 }; /**< Hilight colour */
80 glColour cInert
= { .r
= 0.6, .g
= 0.6, .b
= 0.6, .a
= 1. }; /**< Inert object colour */
81 glColour cNeutral
= { .r
= 0.9, .g
= 1.0, .b
= 0.3, .a
= 1. }; /**< Neutral object colour */
82 glColour cFriend
= { .r
= 0.0, .g
= 0.8, .b
= 0.0, .a
= 1. }; /**< Friend object colour */
83 glColour cHostile
= { .r
= 0.9, .g
= 0.2, .b
= 0.2, .a
= 1. }; /**< Hostile object colour */
85 glColour cRadar_player
= { .r
= 0.4, .g
= 0.8, .b
= 0.4, .a
= 1. }; /**< Player colour on radar. */
86 glColour cRadar_tPilot
= { .r
= 0.8, .g
= 0.5, .b
= 0.0, .a
= 1. }; /**< Targetted object colour on radar. */
87 glColour cRadar_tPlanet
= { .r
= 0.7, .g
= 0.0, .b
= 0.9, .a
= 1. }; /**< Targetted planet colour. */
88 glColour cRadar_weap
= { .r
= 0.8, .g
= 0.2, .b
= 0.2, .a
= 1. }; /**< Weapon colour on radar. */
90 glColour cShield
= { .r
= 0.2, .g
= 0.2, .b
= 0.8, .a
= 1. }; /**< Shield bar colour. */
91 glColour cArmour
= { .r
= 0.5, .g
= 0.5, .b
= 0.5, .a
= 1. }; /**< Armour bar colour. */
92 glColour cEnergy
= { .r
= 0.2, .g
= 0.8, .b
= 0.2, .a
= 1. }; /**< Energy bar colour. */
93 glColour cFuel
= { .r
= 0.9, .g
= 0.1, .b
= 0.4, .a
= 1. }; /**< Fuel bar colour. */
95 /* Deiz's Super Font Palette */
97 glColour cFontRed
= { .r
= 0.8, .g
= 0.2, .b
= 0.2, .a
= 1. };
98 glColour cFontGreen
= { .r
= 0.4, .g
= 0.8, .b
= 0.2, .a
= 1. };
99 glColour cFontBlue
= { .r
= 0.2, .g
= 0.4, .b
= 0.8, .a
= 1. };
100 glColour cFontYellow
= { .r
= 0.9, .g
= 0.8, .b
= 0.0, .a
= 1. };
101 glColour cFontWhite
= { .r
= 0.8, .g
= 0.8, .b
= 0.8, .a
= 1. };
102 glColour cFontPurple
= { .r
= 0.7, .g
= 0.3, .b
= 0.7, .a
= 1. };
103 glColour cFontFriendly
= { .r
= 0.3, .g
= 0.9, .b
= 0.3, .a
= 1. };
104 glColour cFontHostile
= { .r
= 0.9, .g
= 0.2, .b
= 0.2, .a
= 1. };
105 glColour cFontNeutral
= { .r
= 1.0, .g
= 0.9, .b
= 0.0, .a
= 1. };
108 * @brief Changes colourspace from HSV to RGB.
110 * All values go from 0 to 1.
112 * @param[out] r Stores R.
113 * @param[out] g Stores G.
114 * @param[out] b Stores B.
115 * @param h Hue to convert.
116 * @param s Saturation to convert.
117 * @param v Value to convert.
119 void col_hsv2rgb( double *r
, double *g
, double *b
, double h
, double s
, double v
)
121 double var_h
, var_i
, var_1
, var_2
, var_3
;
130 var_i
= floor(var_h
);
132 var_2
= v
* (1 - s
* (var_h
- var_i
));
133 var_3
= v
* (1 - s
* (1 - (var_h
- var_i
)));
135 if (var_i
== 0) { *r
= v
; *g
= var_3
; *b
= var_1
; }
136 else if (var_i
== 1) { *r
= var_2
; *g
= v
; *b
= var_1
; }
137 else if (var_i
== 2) { *r
= var_1
; *g
= v
; *b
= var_3
; }
138 else if (var_i
== 3) { *r
= var_1
; *g
= var_2
; *b
= v
; }
139 else if (var_i
== 4) { *r
= var_3
; *g
= var_1
; *b
= v
; }
140 else { *r
= v
; *g
= var_1
; *b
= var_2
; }
145 * @brief Returns a colour from it's name
147 * @param name Colour's name
150 #define CHECK_COLOUR(colour) \
151 if (STRCASECMP(name, #colour) == 0) return &c##colour
152 glColour
* col_fromName(const char* name
) {
153 if (name
[0] == 'b' || name
[0] == 'B') {
159 if (name
[0] == 'c' || name
[0] == 'C') {
163 if (name
[0] == 'd' || name
[0] == 'D') {
164 CHECK_COLOUR(DarkRed
);
165 CHECK_COLOUR(DarkBlue
);
168 if (name
[0] == 'g' || name
[0] == 'G') {
171 CHECK_COLOUR(Grey90
);
172 CHECK_COLOUR(Grey80
);
173 CHECK_COLOUR(Grey70
);
174 CHECK_COLOUR(Grey60
);
175 CHECK_COLOUR(Grey50
);
176 CHECK_COLOUR(Grey40
);
177 CHECK_COLOUR(Grey30
);
178 CHECK_COLOUR(Grey20
);
179 CHECK_COLOUR(Grey10
);
182 if (name
[0] == 'l' || name
[0] == 'L') {
183 CHECK_COLOUR(LightBlue
);
186 if (name
[0] == 'o' || name
[0] == 'O') {
187 CHECK_COLOUR(Orange
);
190 if (name
[0] == 'p' || name
[0] == 'P') {
191 CHECK_COLOUR(Purple
);
194 if (name
[0] == 'r' || name
[0] == 'R') {
198 if (name
[0] == 's' || name
[0] == 'S') {
199 CHECK_COLOUR(Silver
);
202 if (name
[0] == 'w' || name
[0] == 'W') {
206 if (name
[0] == 'y' || name
[0] == 'Y') {
207 CHECK_COLOUR(Yellow
);
210 if (name
[0] == 'm' || name
[0] == 'M') {
211 CHECK_COLOUR(MidnightBlue
);
215 WARN("Unknown colour %s", name
);