feat: added sf::VideoMode to AppConfig, optimized window initialisation

This commit is contained in:
Sara Gerretsen 2025-09-04 20:17:39 +02:00
parent 574116fb09
commit 151c58ff7b
2 changed files with 3 additions and 2 deletions

View file

@ -3,9 +3,11 @@
#include <optional> #include <optional>
#include <SFML/System/String.hpp> #include <SFML/System/String.hpp>
#include <SFML/Window/VideoMode.hpp>
struct AppConfig { struct AppConfig {
sf::String window_title{ "UNNAMED WINDOW" }; sf::String window_title{ "UNNAMED WINDOW" };
sf::VideoMode mode{{ 1280, 720 }};
bool vsync{}; bool vsync{};
std::optional<int> frame_rate_limit{std::nullopt}; std::optional<int> frame_rate_limit{std::nullopt};
}; };

View file

@ -9,13 +9,12 @@ static sf::Clock deltaClock{};
extern void configure(AppConfig &config); extern void configure(AppConfig &config);
void initialize_window() { void initialize_window() {
window.create(sf::VideoMode({ 1280, 720 }),"UNNAMED WINDOW");
AppConfig cfg{}; AppConfig cfg{};
configure(cfg); configure(cfg);
window.create(cfg.mode, cfg.window_title);
if (cfg.frame_rate_limit) if (cfg.frame_rate_limit)
window.setFramerateLimit(cfg.frame_rate_limit.value_or(0)); window.setFramerateLimit(cfg.frame_rate_limit.value_or(0));
window.setVerticalSyncEnabled(cfg.vsync); window.setVerticalSyncEnabled(cfg.vsync);
window.setTitle(cfg.window_title);
} }
void initialize_imgui() { void initialize_imgui() {