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
36
37
38
#[derive(Clone)]
pub enum ColorFormat {
R,
RG,
RGB,
RGBA
}
impl ColorFormat {
pub fn components(components: usize) -> ColorFormat {
match components {
0...1 => ColorFormat::R,
2 => ColorFormat::RG,
3 => ColorFormat::RGB,
_ => ColorFormat::RGBA
}
}
pub fn get_size(&self) -> usize {
match self {
ColorFormat::R => 1,
ColorFormat::RG => 2,
ColorFormat::RGB => 3,
ColorFormat::RGBA => 4
}
}
pub fn get_format(&self) -> u32 {
match self {
ColorFormat::R => gl::RED,
ColorFormat::RG => gl::RG,
ColorFormat::RGB => gl::RGB,
ColorFormat::RGBA => gl::RGBA
}
}
}