[DISP] Add depth support to Display
This commit is contained in:
parent
59c079dbbd
commit
0ecdb774f5
|
@ -24,6 +24,7 @@ pub enum PixelOrder {
|
||||||
pub struct Display {
|
pub struct Display {
|
||||||
base: u32,
|
base: u32,
|
||||||
size: u32,
|
size: u32,
|
||||||
|
depth: u32,
|
||||||
pitch: u32,
|
pitch: u32,
|
||||||
max_x: u32,
|
max_x: u32,
|
||||||
max_y: u32,
|
max_y: u32,
|
||||||
|
@ -74,6 +75,7 @@ impl Display {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
base: u32,
|
base: u32,
|
||||||
size: u32,
|
size: u32,
|
||||||
|
depth: u32,
|
||||||
pitch: u32,
|
pitch: u32,
|
||||||
max_x: u32,
|
max_x: u32,
|
||||||
max_y: u32,
|
max_y: u32,
|
||||||
|
@ -84,6 +86,7 @@ impl Display {
|
||||||
Display {
|
Display {
|
||||||
base,
|
base,
|
||||||
size,
|
size,
|
||||||
|
depth,
|
||||||
pitch,
|
pitch,
|
||||||
max_x,
|
max_x,
|
||||||
max_y,
|
max_y,
|
||||||
|
@ -102,8 +105,9 @@ impl Display {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let f = |v: u32, chan: u16| unsafe {
|
let f = |v: u32, chan: u16| unsafe {
|
||||||
*(self.base as *mut u8)
|
*(self.base as *mut u8).offset(
|
||||||
.offset((y as u32 * self.pitch + x as u32 * 3 + c(chan) as u32) as isize) = v as u8;
|
(y as u32 * self.pitch + x as u32 * (self.depth / 8) + c(chan) as u32) as isize,
|
||||||
|
) = v as u8;
|
||||||
};
|
};
|
||||||
|
|
||||||
f(color & 0xff, 0);
|
f(color & 0xff, 0);
|
||||||
|
|
Loading…
Reference in New Issue