From 438d633a78c67cdd261a5e2421ee94e3c93f9cd6 Mon Sep 17 00:00:00 2001 From: Sara Gerretsen Date: Thu, 11 Sep 2025 11:45:39 +0200 Subject: [PATCH] feat: exposed more internal state to defs.h --- src/defs.h | 14 +++++++++++--- src/main.cpp | 54 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/defs.h b/src/defs.h index 6b84899..eab06ee 100644 --- a/src/defs.h +++ b/src/defs.h @@ -1,10 +1,13 @@ #ifndef LLCS_DEFS_H #define LLCS_DEFS_H -#include -#include -#include +#include "SFML/Graphics/View.hpp" #include +#include +#include +#include +#include +#include struct AppConfig { sf::String window_title{ "UNNAMED WINDOW" }; @@ -14,4 +17,9 @@ struct AppConfig { std::optional frame_rate_limit{std::nullopt}; }; +extern AppConfig const &get_application_configuration(); +extern sf::Time const &get_delta_time(); +extern sf::RenderWindow const &get_window(); +extern void set_render_view(sf::View const &view); + #endif // !LLCS_DEFS_H diff --git a/src/main.cpp b/src/main.cpp index 8d897e2..87e9aeb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,7 +5,8 @@ #include static sf::RenderWindow window{}; -static sf::Clock deltaClock{}; +static sf::Clock delta_clock{}; +static sf::Time delta_time{}; static AppConfig cfg{}; static sf::View view{}; @@ -26,16 +27,35 @@ void initialize_imgui() { exit(-1); } +extern void handle_input_event(sf::Event const &evt); +extern void handle_window_event(sf::Event const &evt); + void poll_events() { while (std::optional const event{ window.pollEvent() }) { ImGui::SFML::ProcessEvent(window, *event); - // "close requested" event: we close the window if (event->is()) { window.close(); - } else if (sf::Event::Resized const *resized{ event->getIf()}) { - view.setSize({ static_cast(resized->size.x), static_cast(resized->size.y) }); - window.setView(view); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_input_event(*event); + } else if (event->is() || event->is()) { + handle_window_event(*event); + } else if (event->is()) { + handle_window_event(*event); } } } @@ -45,6 +65,7 @@ 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); +extern void shutdown(void); int main() { initialize_window(); @@ -54,9 +75,9 @@ int main() { // Event Polling poll_events(); // Update - sf::Time const deltaTime{ deltaClock.restart() }; - ImGui::SFML::Update(window, deltaTime); - loop(deltaTime.asSeconds()); + delta_time = delta_clock.restart(); + ImGui::SFML::Update(window, delta_time); + loop(delta_time.asSeconds()); if(ImGui::BeginMainMenuBar()) { draw_main_menu_bar(); ImGui::EndMainMenuBar(); @@ -68,6 +89,23 @@ int main() { ImGui::SFML::Render(window); window.display(); } + shutdown(); ImGui::SFML::Shutdown(); return 0; } + +AppConfig const &get_application_configuration() { + return cfg; +} + +sf::Time const &get_delta_time() { + return delta_time; +} + +sf::RenderWindow const &get_window() { + return window; +} + +void set_render_view(sf::View const &view) { + window.setView(view); +}