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::{
c_api::{self, NcChannel_u32, NcRgb_u32},
NcPalette, NcPaletteIndex,
};
#[inline]
pub fn ncpalette_get(palette: &NcPalette, index: impl Into<NcPaletteIndex>) -> NcRgb_u32 {
c_api::ncchannel_rgb(palette.chans[index.into() as usize])
}
#[inline]
pub fn ncpalette_get_rgb8(
palette: &NcPalette,
index: impl Into<NcPaletteIndex>,
red: &mut u8,
green: &mut u8,
blue: &mut u8,
) -> NcChannel_u32 {
c_api::ncchannel_rgb8(palette.chans[index.into() as usize], red, green, blue)
}
#[inline]
pub fn ncpalette_set(palette: &mut NcPalette, index: impl Into<NcPaletteIndex>, rgb: NcRgb_u32) {
c_api::ncchannel_set(&mut palette.chans[index.into() as usize], rgb);
}
#[inline]
pub fn ncpalette_set_rgb8(
palette: &mut NcPalette,
index: impl Into<NcPaletteIndex>,
red: u8,
green: u8,
blue: u8,
) {
c_api::ncchannel_set_rgb8(&mut palette.chans[index.into() as usize], red, green, blue)
}