From 9971ccdf30a9adb00fa7fdac753ee80f80d3eb2b Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Sun, 7 Sep 2025 07:07:27 -0500 Subject: [PATCH] We have a working build that is performant enough for text_svg --- src/ui/presenter.rs | 104 +++++++++++++++++++++++--------------------- src/ui/text_svg.rs | 35 ++++++++------- 2 files changed, 74 insertions(+), 65 deletions(-) diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index 86d7bc7..7fd797b 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -202,15 +202,19 @@ impl Presenter { // )); } Message::SlideChange(slide) => { - debug!(?slide, "slide changed"); - let old_background = - self.current_slide.background().clone(); + let slide_text = slide.text(); + debug!(slide_text, "slide changed"); + debug!("comparing background..."); + let backgrounds_match = + self.current_slide.background() + == slide.background(); // self.current_slide_index = slide; + debug!("cloning slide..."); self.current_slide = slide.clone(); let _ = self.update(Message::ChangeFont(slide.font())); - if self.current_slide.background() != &old_background - { + debug!("changing video now..."); + if !backgrounds_match { if let Some(video) = &mut self.video { let _ = video.restart_stream(); } @@ -228,6 +232,7 @@ impl Presenter { }, y: 0.0, }; + debug!(?offset); let mut tasks = vec![]; tasks.push(scroll_to(self.scroll_id.clone(), offset)); @@ -249,12 +254,12 @@ impl Presenter { Some(current_audio) if current_audio != *new_audio => { - self.audio = Some(new_audio.clone()); debug!( ?new_audio, ?current_audio, "audio needs to change" ); + self.audio = Some(new_audio.clone()); tasks.push(self.start_audio()); } Some(current_audio) => { @@ -395,7 +400,7 @@ impl Presenter { pub fn view(&self) -> Element { slide_view( - self.current_slide.clone(), + &self.current_slide, &self.video, self.current_font, false, @@ -405,7 +410,7 @@ impl Presenter { pub fn view_preview(&self) -> Element { slide_view( - self.current_slide.clone(), + &self.current_slide, &self.video, self.current_font, false, @@ -441,7 +446,7 @@ impl Presenter { ); let container = slide_view( - slide.clone(), + &slide, &self.video, font, true, @@ -695,55 +700,54 @@ fn scale_font(font_size: f32, width: f32) -> f32 { } } -pub(crate) fn slide_view( - slide: Slide, - video: &Option