use embedded_graphics::framebuffer::{Framebuffer}; use crate::{success_screen, FRAMERATE, H_I, W_I}; use crate::display::screens::base::{ButtonPosition, SuccessBase}; use crate::DisplayScreen; use embedded_graphics::pixelcolor::{PixelColor}; use embedded_graphics::prelude::Point; use crate::display::tools::DrawTools; use embedded_graphics::draw_target::DrawTarget; use embedded_graphics::pixelcolor::RgbColor; success_screen!(SuccessScreen, |index: &mut usize, frame_counter: &mut usize, dirty: &mut bool, display: &mut Framebuffer<_, _, _, WIDTH, HEIGHT, N>|->anyhow::Result<(), _> { if *dirty { display.draw_text_centered(Point::new(W_I/2, H_I/2), "Success!")?; *dirty = false; } else if *frame_counter % FRAMERATE*4 == 0 { #[cfg(debug_assertions)] println!("Switching to screen {}", *index + 1); *index += 1; *frame_counter = 0; *dirty = true; } return Ok(()) }, |button: ButtonPosition|->anyhow::Result<(), _> { Ok(()) });