// debug_overlay.hpp - Overlay de debug (FPS + VSync) toggleable con F11 // © 2026 JailDesigner // // Sistema global propiedad del Director. Se actualiza y dibuja cada frame // después de la escena (queda on top). En builds debug arranca visible, // en release oculto. F11 alterna visibilidad. #pragma once #include "core/graphics/vector_text.hpp" #include "core/rendering/render_context.hpp" namespace System { class DebugOverlay { public: explicit DebugOverlay(Rendering::Renderer* renderer); // Acumula FPS. Llamar una vez por frame con el delta del Director. void update(float delta_time); // Pinta el overlay si está visible. Posición esquina sup-izq. void draw() const; void toggle() { visible_ = !visible_; } [[nodiscard]] auto isVisible() const -> bool { return visible_; } private: Graphics::VectorText text_; bool visible_; // FPS counter — se actualiza cada FPS_UPDATE_INTERVAL segundos. float fps_accumulator_; int fps_frame_count_; int fps_display_; }; } // namespace System