From 574116fb09337fa04f18b8b27b199f0818127e0a Mon Sep 17 00:00:00 2001 From: Sara Gerretsen Date: Thu, 4 Sep 2025 19:24:07 +0200 Subject: [PATCH] feat: configure() now uses specialised application config struct --- src/CHANGEME.cpp | 12 +++++------- src/defs.h | 13 +++++++++++++ src/main.cpp | 10 ++++++++-- 3 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 src/defs.h diff --git a/src/CHANGEME.cpp b/src/CHANGEME.cpp index 41dc0d2..b3ec286 100644 --- a/src/CHANGEME.cpp +++ b/src/CHANGEME.cpp @@ -1,15 +1,13 @@ +#include "defs.h" #include #include #include #include -sf::String const window_name{ "mywindow" }; - -void configure(sf::Window &window) { - window.setTitle("MYPROJECT"); - // choose one or the other, both doesn't really do much - //window.setFramerateLimit(0); - window.setVerticalSyncEnabled(true); +void configure(AppConfig &config) { + config.window_title = "MYPROJECT"; + config.frame_rate_limit = 60; + config.vsync = true; } void setup() { diff --git a/src/defs.h b/src/defs.h new file mode 100644 index 0000000..be8d88a --- /dev/null +++ b/src/defs.h @@ -0,0 +1,13 @@ +#ifndef LLCS_DEFS_H +#define LLCS_DEFS_H + +#include +#include + +struct AppConfig { + sf::String window_title{ "UNNAMED WINDOW" }; + bool vsync{}; + std::optional frame_rate_limit{std::nullopt}; +}; + +#endif // !LLCS_DEFS_H diff --git a/src/main.cpp b/src/main.cpp index ced8903..ffefd2e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,4 @@ +#include "defs.h" #include #include #include @@ -5,11 +6,16 @@ static sf::RenderWindow window{}; static sf::Clock deltaClock{}; -extern void configure(sf::Window &window); +extern void configure(AppConfig &config); void initialize_window() { window.create(sf::VideoMode({ 1280, 720 }),"UNNAMED WINDOW"); - configure(window); + AppConfig cfg{}; + configure(cfg); + if (cfg.frame_rate_limit) + window.setFramerateLimit(cfg.frame_rate_limit.value_or(0)); + window.setVerticalSyncEnabled(cfg.vsync); + window.setTitle(cfg.window_title); } void initialize_imgui() {