0573022b7c
Crea core/system/DebugOverlay como sistema global propiedad del Director
que muestra FPS y estado de VSync en la esquina superior izquierda usando
VectorText. Visible por defecto en builds debug, oculto en release; F11
alterna.
Cambios:
- Nuevo DebugOverlay con su propio contador de FPS interno (cadencia 0.5s).
El cálculo que vivía en SDLManager::updateFPS se mueve aquí.
- Director construye el overlay una vez y lo pasa a runFrameLoop. F11 se
intercepta directamente en el event loop del Director (no en
GlobalEvents para no acoplar la firma a la presencia del overlay).
- Limpieza de SDLManager: fuera updateFPS, updateColors (era no-op desde
Fase 8c), setWindowTitle (no se usaba) y los campos fps_*.
- Título de ventana estático estilo CCAE:
© 2026 Orni Attack — JailDesigner
Ya no se reescribe cada 0.5s con FPS y VSync; ese estado vive en el
overlay.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
// debug_overlay.hpp - Overlay de debug (FPS + VSync) toggleable con F11
|
|
// © 2025 Orni Attack
|
|
//
|
|
// 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
|