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