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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
use crate::{error, Nc, NcChannel, NcComponent, NcPalette, NcPaletteIndex, NcResult, NcRgb};
impl NcPalette {
pub fn new<'a>(nc: &mut Nc) -> &'a mut Self {
unsafe { &mut *crate::ncpalette_new(nc) }
}
pub fn free(&mut self) {
unsafe {
crate::ncpalette_free(self);
}
}
pub fn r#use(&self, nc: &mut Nc) -> NcResult<()> {
error![unsafe { crate::ncpalette_use(nc, self) }]
}
pub fn get_rgb8(&self, index: NcPaletteIndex) -> (NcComponent, NcComponent, NcComponent) {
let (mut r, mut g, mut b) = (0, 0, 0);
crate::ncchannel_rgb8(self.chans[index as usize], &mut r, &mut g, &mut b);
(r, g, b)
}
pub fn get_rgb(&self, index: NcPaletteIndex) -> NcChannel {
let (mut r, mut g, mut b) = (0, 0, 0);
crate::ncchannel_rgb8(self.chans[index as usize], &mut r, &mut g, &mut b)
}
pub fn set(&mut self, index: NcPaletteIndex, rgb: NcRgb) {
crate::ncchannel_set(&mut self.chans[index as usize], rgb);
}
}