Do a static buffer allocation for the Canvas
This commit is contained in:
parent
85e5d0bb5e
commit
aea858dd17
@ -10,16 +10,18 @@
|
|||||||
|
|
||||||
use alloc::{boxed::Box, vec::Vec};
|
use alloc::{boxed::Box, vec::Vec};
|
||||||
|
|
||||||
pub struct Canvas<'a> {
|
static mut BUF: [u8; 163200] = [0; 163200];
|
||||||
pub buf: &'a mut [u8],
|
|
||||||
|
pub struct Canvas {
|
||||||
|
pub buf: &'static mut [u8; 163200],
|
||||||
pub width: usize,
|
pub width: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Canvas<'a> {
|
impl Canvas {
|
||||||
pub fn new(buf: &'a mut [u8], columns: usize) -> Self {
|
pub fn new() -> Self {
|
||||||
Self {
|
Self {
|
||||||
buf,
|
buf: unsafe { &mut BUF },
|
||||||
width: columns,
|
width: 170,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,15 +119,18 @@ unsafe fn main() -> ! {
|
|||||||
|
|
||||||
timer.delay_ms(1000);
|
timer.delay_ms(1000);
|
||||||
|
|
||||||
|
/*
|
||||||
let mut framebuf = [0; FRAMEBUF];
|
let mut framebuf = [0; FRAMEBUF];
|
||||||
let mut canvas = Canvas::new(&mut framebuf, COLUMNS);
|
let mut canvas = Canvas::new(&mut framebuf, COLUMNS);
|
||||||
|
*/
|
||||||
|
let mut canvas = Canvas::new();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
{
|
{
|
||||||
let display = display.acquire();
|
let display = display.acquire();
|
||||||
let _ = led.set_high();
|
let _ = led.set_high();
|
||||||
timer.delay_ms(100);
|
timer.delay_ms(100);
|
||||||
display.send_buf(&canvas.buf);
|
display.send_buf(canvas.buf);
|
||||||
let _ = led.set_low();
|
let _ = led.set_low();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user