From dcb59e1a3fa5b3bcfa9057db34c49ba3fd3055b3 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Fri, 8 May 2026 22:45:38 -0400 Subject: [PATCH] Stop rendering all the time, render to the texture only when changing. --- src/slides_ui.cpp | 12 +++++++++--- src/slides_ui.hpp | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/slides_ui.cpp b/src/slides_ui.cpp index 8889f5d..3a5dbe3 100644 --- a/src/slides_ui.cpp +++ b/src/slides_ui.cpp @@ -215,14 +215,20 @@ void SlidesUI::show_slide() { auto& cell = $gui.cell_for("slide"); slide.init(cell, layout); + + $needs_render = true; } void SlidesUI::render(sf::RenderTarget& window) { window.clear(); - $gui.render($view_texture); auto& slide = $deck->current_slide(); - slide.render($view_texture); - $view_texture.display(); + + if($needs_render) { + $gui.render($view_texture); + slide.render($view_texture); + $view_texture.display(); + $needs_render = false; + } if(slide.$shader) { slide.$shader->setUniform("u_time", $clock.getElapsedTime().asSeconds()); diff --git a/src/slides_ui.hpp b/src/slides_ui.hpp index 80cb40e..02a1d70 100644 --- a/src/slides_ui.hpp +++ b/src/slides_ui.hpp @@ -50,6 +50,7 @@ struct SlidesUI { sf::RenderTexture $view_texture; sf::Sprite $view_sprite; sf::Clock $clock; + bool $needs_render = true; SlidesUI(std::shared_ptr deck, sf::Vector2u size); void init();