diff options
Diffstat (limited to 'loader/src/main.rs')
-rw-r--r-- | loader/src/main.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/loader/src/main.rs b/loader/src/main.rs new file mode 100644 index 0000000..9ac920b --- /dev/null +++ b/loader/src/main.rs @@ -0,0 +1,38 @@ +use embedded_graphics_framebuffer::FrameBufferDisplay; +use embedded_graphics::{ + pixelcolor::{Rgb888, RgbColor}, + prelude::*, + primitives::{Circle, PrimitiveStyle}, +}; +use std::io; +use embedded_graphics::mono_font::ascii::FONT_10X20; +use embedded_graphics::mono_font::MonoTextStyle; +use embedded_graphics::text::Text; +use framebuffer::{Framebuffer, KdMode}; +use ctrlc; + +fn int_handler() { + return; +} + +fn main() { + Framebuffer::set_kd_mode(KdMode::Graphics).unwrap(); + + ctrlc::set_handler(int_handler) + .expect("Error setting Ctrl-C handler"); + + let mut display = FrameBufferDisplay::new(); + Circle::new(Point::new(((display.size().width / 2) - (96 / 2)) as i32, ((display.size().height / 2) - (96 / 2)) as i32), 96) + .into_styled(PrimitiveStyle::with_stroke(Rgb888::WHITE, 1)) + .draw(&mut display).expect("Failed to draw"); + + let style = MonoTextStyle::new(&FONT_10X20, Rgb888::WHITE); + + let text = "Starting up..."; + Text::new(text, Point::new(((display.size().width / 2) - (((text.len() as u32) * 10) / 2)) as i32, (display.size().height - 64) as i32), style).draw(&mut display).expect("Failed to draw"); + + display.flush().unwrap(); + + io::stdin().read_line(&mut String::new()).unwrap(); + Framebuffer::set_kd_mode(KdMode::Text).unwrap(); +}
\ No newline at end of file |