Adjusted project organization

This commit is contained in:
Sara Gerretsen 2025-09-03 19:48:42 +02:00
parent d1a015dd13
commit 3acec91cdf
2 changed files with 44 additions and 20 deletions

View file

@ -1,41 +1,52 @@
#include "imgui.h" #include "imgui.h"
#include "imgui-SFML.h" #include "imgui-SFML.h"
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp> #include <SFML/Graphics.hpp>
int main() { static sf::RenderWindow window{};
sf::RenderWindow window; static sf::Clock deltaClock{};
void initialize_window() {
window.create(sf::VideoMode({ 1280, 720 }), "My window"); window.create(sf::VideoMode({ 1280, 720 }), "My window");
window.setFramerateLimit(60); window.setFramerateLimit(60);
window.setVerticalSyncEnabled(true); window.setVerticalSyncEnabled(true);
}
void initialize_imgui() {
if (!ImGui::SFML::Init(window)) if (!ImGui::SFML::Init(window))
return -1; exit(-1);
}
sf::Clock deltaClock; void poll_events() {
while (window.isOpen()) while (const std::optional event = window.pollEvent())
{ {
ImGui::SFML::ProcessEvent(window, *event);
// "close requested" event: we close the window
if (event->is<sf::Event::Closed>())
window.close();
}
}
extern void setup();
extern void loop();
extern void draw_gui();
int main() {
initialize_window();
initialize_imgui();
setup();
while (window.isOpen()) {
// Event Polling // Event Polling
while (const std::optional event = window.pollEvent()) poll_events();
{
ImGui::SFML::ProcessEvent(window, *event);
// "close requested" event: we close the window
if (event->is<sf::Event::Closed>())
window.close();
}
// Update // Update
loop();
ImGui::SFML::Update(window, deltaClock.restart()); ImGui::SFML::Update(window, deltaClock.restart());
// ImGui::ShowDemoWindow(); draw_gui();
// Render // Render
window.clear(); window.clear();
ImGui::SFML::Render(window); ImGui::SFML::Render(window);
window.display(); window.display();
} }
return 0;
return 0;
} }

13
src/project.cpp Normal file
View file

@ -0,0 +1,13 @@
#include <imgui.h>
#include <imgui-SFML.h>
void setup() {
}
void loop() {
}
void draw_gui() {
// draw your GUI
ImGui::ShowDemoWindow();
}