From b9ade066e75d98b4a2f94c573be03f619fa2d9b3 Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Mon, 5 May 2025 22:31:39 -0700 Subject: [PATCH] Show current mode in title row This may be later isolated to debug builds --- core/src/components/fps.rs | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/core/src/components/fps.rs b/core/src/components/fps.rs index ffb70de..6fb5d9f 100644 --- a/core/src/components/fps.rs +++ b/core/src/components/fps.rs @@ -30,6 +30,8 @@ use crate::action::Action; #[derive(Debug, Clone, PartialEq)] pub struct FpsCounter { + mode: String, + last_tick_update: Instant, tick_count: u32, ticks_per_second: f64, @@ -49,6 +51,7 @@ impl FpsCounter { #[must_use] pub fn new() -> Self { Self { + mode: String::from(""), last_tick_update: Instant::now(), tick_count: 0, ticks_per_second: 0.0, @@ -88,29 +91,44 @@ impl FpsCounter { impl Component for FpsCounter { fn update(&mut self, action: Action) -> Result> { match action { - Action::Tick => self.app_tick()?, + Action::SetMode(mode) => { + self.mode = format!("{:?}", mode); + } Action::Render => self.render_tick()?, + Action::Tick => self.app_tick()?, _ => {} }; Ok(None) } fn draw(&mut self, frame: &mut Frame, area: Rect) -> Result<()> { - let [column, _] = - Layout::horizontal([Constraint::Min(1), Constraint::Length(2)]).areas(area); let [_, row, _] = Layout::vertical([ Constraint::Length(1), Constraint::Length(1), Constraint::Min(0), ]) - .areas(column); + .areas(area); + let [_, left, right, _] = Layout::horizontal([ + Constraint::Length(2), + Constraint::Min(1), + Constraint::Min(1), + Constraint::Length(2), + ]) + .areas(row); + + // Debug + let span = Span::styled(format!("Mode: {}", &self.mode), Style::new().dim()); + let paragraph = Paragraph::new(span).left_aligned(); + frame.render_widget(paragraph, left); + + // FPS let message = format!( "{:.2} ticks/sec, {:.2} FPS", self.ticks_per_second, self.frames_per_second ); let span = Span::styled(message, Style::new().dim()); let paragraph = Paragraph::new(span).right_aligned(); - frame.render_widget(paragraph, row); + frame.render_widget(paragraph, right); Ok(()) } }