feat(postfx): redisseny sistema PostFX (X/F5/F6, --postfx CLI)

- X cicla 4 efectes (Vinyeta/Scanlines/Cromàtica/Complet), sempre activa PostFX
- F5 fa toggle PostFX on/off mantenint l'efecte seleccionat
- F6 hereta el toggle d'integer scaling (abans F5)
- Arrencada per defecte sense postprocés (tot a 0)
- --postfx <vinyeta|scanlines|cromatica|complet> per activar des de CLI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-20 09:06:24 +01:00
parent d2e7f2ff86
commit a51072db32
4 changed files with 77 additions and 13 deletions

View File

@@ -78,6 +78,8 @@ class Engine {
// PostFX presets
void handlePostFXCycle();
void handlePostFXToggle();
void setInitialPostFX(int mode);
// Modo kiosko
void setKioskMode(bool enabled) { kiosk_mode_ = enabled; }
@@ -170,8 +172,9 @@ class Engine {
float delta_time_ = 0.0f;
// PostFX uniforms (passed to GPU each frame)
PostFXUniforms postfx_uniforms_ = {1.5f, 0.0f, 0.0f, 0.0f};
PostFXUniforms postfx_uniforms_ = {0.0f, 0.0f, 0.0f, 0.0f};
int postfx_effect_mode_ = 0;
bool postfx_enabled_ = false;
// Sistema de zoom dinámico
int current_window_zoom_ = DEFAULT_WINDOW_ZOOM;
@@ -244,6 +247,9 @@ class Engine {
void updateShape();
void generateShape();
// PostFX helper
void applyPostFXPreset(int mode);
// GPU helpers
bool loadGpuSpriteTexture(size_t index); // Upload one sprite texture to GPU
void recreateOffscreenTexture(); // Recreate when resolution changes