diff --git a/src/CHANGEME.cpp b/src/CHANGEME.cpp index 85a5c7f..daa321e 100644 --- a/src/CHANGEME.cpp +++ b/src/CHANGEME.cpp @@ -1,3 +1,5 @@ +#include "SFML/Graphics/RectangleShape.hpp" +#include "SFML/Graphics/RenderStates.hpp" #include "defs.h" #include #include @@ -22,7 +24,11 @@ void setup() { void loop() { } -void draw_scene(sf::RenderTarget &target) { +void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states) { + static sf::RectangleShape rect{ { 300, 300 } }; + sf::RenderStates n_states{states}; + n_states.transform.translate({ 20, 20 }); + target.draw(rect, n_states); } static bool dockspace = true; diff --git a/src/defs.h b/src/defs.h index f2552c1..6b84899 100644 --- a/src/defs.h +++ b/src/defs.h @@ -4,11 +4,13 @@ #include #include #include +#include struct AppConfig { sf::String window_title{ "UNNAMED WINDOW" }; - sf::VideoMode mode{{ 1280, 720 }}; - bool vsync{}; + sf::VideoMode mode{ { 1280, 720 } }; + sf::RenderStates default_render_states{sf::RenderStates::Default}; + bool vsync{false}; std::optional frame_rate_limit{std::nullopt}; }; diff --git a/src/main.cpp b/src/main.cpp index 954cf02..4ca7772 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,6 +12,7 @@ static sf::View view{}; extern void configure(AppConfig &config); void initialize_window() { + cfg = AppConfig(); configure(cfg); window.create(cfg.mode, cfg.window_title); if (cfg.frame_rate_limit) @@ -40,8 +41,8 @@ void poll_events() { } extern void setup(void); -extern void loop(void); -extern void draw_scene(sf::RenderTarget &target); +extern void loop(double delta); +extern void draw_scene(sf::RenderTarget &target, sf::RenderStates const &states); extern void draw_main_menu_bar(void); extern void draw_gui(void); @@ -63,6 +64,7 @@ int main() { draw_gui(); // Render window.clear(); + draw_scene(window, cfg.default_render_states); ImGui::SFML::Render(window); window.display(); }