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>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
// 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
|
||||
Reference in New Issue
Block a user