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,28 @@
# Based on dannyld's rainbow settings
shaders = 2
shader0 = "../crt/shaders/mame_hlsl/shaders/mame_ntsc_encode.slang"
filter_linear0 = "true"
scale_type0 = "source"
scale0 = "1.000000"
shader1 = "../crt/shaders/mame_hlsl/shaders/mame_ntsc_decode.slang"
filter_linear1 = "true"
scale_type1 = "source"
scale_1 = "1.000000"
# ntsc parameters
ntscsignal = "1.000000"
avalue = "0.000000"
bvalue = "0.000000"
scantime = "47.900070"
# optional blur
shadowalpha = "0.100000"
notch_width = "3.450001"
ifreqresponse = "1.750000"
qfreqresponse = "1.450000"
# uncomment for jailbars in blue
#pvalue = "1.100000"