From 47f3cdbb176934e0c6402168cae2aa93409168a5 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Tue, 28 Apr 2026 23:29:34 -0400 Subject: [PATCH] Move the shaders to the Slide since that's where they go. --- assets/layouts.json | 16 ++++++++-------- src/slides_ui.cpp | 17 +++++++++-------- src/slides_ui.hpp | 3 +-- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/assets/layouts.json b/assets/layouts.json index 31ca803..6d9e94b 100644 --- a/assets/layouts.json +++ b/assets/layouts.json @@ -10,14 +10,14 @@ "[=title|=*%(200,100)description|_|_|_]" ], "default_slide": [ - "[=*%(300,200)title|_|_|_|_]", - "[_|_|_]", - "[*%(300,600)content|_|_|*%(200,600)image|_]", - "[_|_|_|_|_]", - "[_|_|_|_|_]", - "[_|_|_|_|_]", - "[_|_|_|_|_]", - "[_|_|_|_|_]" + "[=*%(300,200)title|_|_|_|_]", + "[_|_|_]", + "[*%(300,600)content|_|_|*%(200,600)image|_]", + "[_|_|_|_|_]", + "[_|_|_|_|_]", + "[_|_|_|_|_]", + "[_|_|_|_|_]", + "[_|_|_|_|_]" ], "image_left": [ "[=title]", diff --git a/src/slides_ui.cpp b/src/slides_ui.cpp index a30ba9e..834816f 100644 --- a/src/slides_ui.cpp +++ b/src/slides_ui.cpp @@ -1,5 +1,6 @@ -#include "guecs/sfml/components.hpp" -#include "guecs/ui.hpp" +#include +#include +#include #include #include #include @@ -160,10 +161,10 @@ void SlidesUI::show_slide() { } if(slide.$config.contains("shader")) { - $view_shader = shaders::get(slide.$config["shader"]); - $view_shader->setUniform("u_resolution", sf::Vector2f{WINDOW_WIDTH, WINDOW_HEIGHT}); + slide.$shader = shaders::get(slide.$config["shader"]); + slide.$shader->setUniform("u_resolution", sf::Vector2f{WINDOW_WIDTH, WINDOW_HEIGHT}); } else { - $view_shader = nullptr; + slide.$shader = nullptr; } std::string layout_name{"default_slide"}; @@ -188,9 +189,9 @@ void SlidesUI::render(sf::RenderTarget& window) { slide.render($view_texture); $view_texture.display(); - if($view_shader) { - $view_shader->setUniform("u_time", $clock.getElapsedTime().asSeconds()); - window.draw($view_sprite, $view_shader.get()); + if(slide.$shader) { + slide.$shader->setUniform("u_time", $clock.getElapsedTime().asSeconds()); + window.draw($view_sprite, slide.$shader.get()); } else { window.draw($view_sprite); } diff --git a/src/slides_ui.hpp b/src/slides_ui.hpp index 1273477..270b150 100644 --- a/src/slides_ui.hpp +++ b/src/slides_ui.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include @@ -17,6 +16,7 @@ struct Slide { CONTENT_SIZE, guecs::THEME.TEXT_COLOR, 20}; guecs::Text $title_font{$title, TITLE_SIZE}; + std::shared_ptr $shader = nullptr; Slide(const std::string& title, const std::string& content, nlohmann::json& config, nlohmann::json& deck_config); @@ -40,7 +40,6 @@ struct SlidesUI { std::unordered_map $layouts; sf::RenderTexture $view_texture; sf::Sprite $view_sprite; - std::shared_ptr $view_shader = nullptr; sf::Clock $clock; size_t $current = 0;