feat(shaders): sistema de shaders runtime amb presets externs

- Afegir GpuShaderPreset i ShaderManager per carregar shaders des de data/shaders/
- Implementar preset ntsc-md-rainbows (2 passos: encode + decode MAME NTSC)
- Render loop multi-pass per shaders externs (targets intermedis R16G16B16A16_FLOAT)
- cycleShader(): cicla OFF→PostFX natius→shaders externs amb tecla X
- --shader <nom> per arrancar directament amb un preset extern
- CMake auto-descubreix i compila data/shaders/**/*.vert/.frag → .spv
- HUD F1 mostra 'Shader: <nom>' quan hi ha shader extern actiu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-20 13:37:22 +01:00
parent e3f29c864b
commit f272bab296
19 changed files with 1004 additions and 23 deletions

View File

@@ -0,0 +1,18 @@
name = ntsc-md-rainbows
passes = 2
pass0_vert = pass0_encode.vert
pass0_frag = pass0_encode.frag
pass1_vert = pass1_decode.vert
pass1_frag = pass1_decode.frag
; NTSC parameters (mapped to NTSCParams uniform buffer)
scantime = 47.9
avalue = 0.0
bvalue = 0.0
ccvalue = 3.5795455
notch_width = 3.45
yfreqresponse = 1.75
ifreqresponse = 1.75
qfreqresponse = 1.45