docker-watcher-esp/src/display/screens/success.rs
CanadianBaconBoi 36484f1735
Major Rewrite
No more blinking :D
2025-05-10 22:37:10 +02:00

26 lines
1006 B
Rust

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(())
});