#pragma once #include #include #include #include #include "game_engine.hpp" #include using std::string; constexpr int FPS=30; constexpr int X_DIM = 1920 / 2; constexpr int Y_DIM = 1080 / 2; constexpr int TEXT_SIZE = 48; constexpr int Y_LINES = 23; constexpr int X_ROWS = 48; class SFMLBackend { sf::ContextSettings settings; sf::RenderWindow window; sf::Clock clock; sf::Clock deltaClock; sf::Sprite background; sf::Texture texture; bool window_active_out = false; bool show_build_log = false; int hit_points = 50; sf::Font font; GameEngine &game; std::vector log; public: SFMLBackend(GameEngine &g); void startup(); bool is_open(); void shutdown(); void handle_events(); void update_entities(); void update_log(std::vector &lines); void write_text(int x, int y, string content); void ImGui_setup(); void ImGui_update(); void Window_update(); };