Files
orni-attack/source/core/system/debug_overlay.hpp
T
JailDesigner 0573022b7c Debug overlay (FPS + VSync) toggleable con F11
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>
2026-05-20 09:34:46 +02:00

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