1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use types::{ Color, ColorComponent };
pub const WHITE: Color = [1.0; 4];
pub const BLACK: Color = [0.0, 0.0, 0.0, 1.0];
pub const TRANSPARENT: Color = [0.0; 4];
pub fn grey(f: ColorComponent) -> Color {
[f, f, f, 1.0]
}
pub fn alpha(f: ColorComponent) -> Color {
[1.0, 1.0, 1.0, f]
}
pub fn hex(hex: &str) -> Color {
use read_color::rgb_maybe_a;
let (rgb, a) = rgb_maybe_a(&mut hex.chars()).unwrap();
let color = match a {
None => [rgb[0], rgb[1], rgb[2], 255],
Some(a) => [rgb[0], rgb[1], rgb[2], a]
};
let inv_255 = 1.0f32 / 255.0f32;
[
color[0] as f32 * inv_255,
color[1] as f32 * inv_255,
color[2] as f32 * inv_255,
color[3] as f32 * inv_255
]
}