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:
2026-05-20 09:34:46 +02:00
parent 5e82dc880f
commit 0573022b7c
6 changed files with 127 additions and 71 deletions
-17
View File
@@ -11,7 +11,6 @@
#include <SDL3/SDL.h>
#include <cstdint>
#include <string>
#include "core/rendering/render_context.hpp"
@@ -36,21 +35,10 @@ class SDLManager {
void clear(uint8_t r = 0, uint8_t g = 0, uint8_t b = 0);
void present();
// No-op desde la migración a postpro (la oscilación de brillo la
// gestiona el shader, no la CPU). Se mantiene la firma para no tocar
// los escenarios que la siguen invocando.
void updateColors(float delta_time);
// [NUEVO] Actualitzar counter de FPS
void updateFPS(float delta_time);
// Getters
auto getRenderer() -> Rendering::Renderer* { return &gpu_renderer_; }
[[nodiscard]] auto getScaleFactor() const -> float { return zoom_factor_; }
// [NUEVO] Actualitzar título de la finestra
void setWindowTitle(const std::string& title);
// [NUEVO] Actualitzar context de renderizado (factor de scale global)
void updateRenderingContext() const;
@@ -58,11 +46,6 @@ class SDLManager {
SDL_Window* finestra_;
Rendering::Renderer gpu_renderer_; // GpuFrameRenderer (SDL3 GPU)
// [NUEVO] Variables FPS
float fps_accumulator_;
int fps_frame_count_;
int fps_display_;
// [NUEVO] Estat de la finestra
int current_width_; // Mida física actual
int current_height_;