Stop rendering all the time, render to the texture only when changing.

master
Zed A. Shaw 2 weeks ago
parent 1ccb14a77b
commit dcb59e1a3f
  1. 8
      src/slides_ui.cpp
  2. 1
      src/slides_ui.hpp

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

@ -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<SlideDeck> deck, sf::Vector2u size);
void init();

Loading…
Cancel
Save