feat(renderer): add CRT shader filter with configurable effects

Add CRT (Cathode Ray Tube) shader implementation as scaling filter
options (CRT EasyMode and CRT Royale) in the Window Adapting Filter
dropdown. Provides classic TV effects including scanlines, phosphor
masks, curvature distortion, gamma correction, bloom, brightness, and
alpha transparency.

- Add CRTEasyMode and CRTRoyale to ScalingFilter enum
- Implement vulkan_crt_easymode.frag shader with single-pass effects
- Integrate CRT filter into WindowAdaptPass rendering pipeline
- Add configurable CRT parameters to settings with user-friendly labels
- Add UI translations for desktop and Android platforms
- Support CRT push constants in present pipeline

The CRT filter appears alongside other scaling filters like FSR and
FSR 2.0. CRT parameter settings are only active when a CRT filter
is selected.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2026-01-01 18:18:05 +10:00
parent d8c1cad245
commit efef746299
12 changed files with 320 additions and 16 deletions

View File

@@ -163,8 +163,12 @@
<item>@string/scaling_filter_bicubic</item>
<item>@string/scaling_filter_gaussian</item>
<item>@string/scaling_filter_scale_force</item>
<item>@string/scaling_filter_scale_fx</item>
<item>@string/scaling_filter_lanczos</item>
<item>@string/scaling_filter_fsr</item>
<item>@string/scaling_filter_fsr2</item>
<item>@string/scaling_filter_crt_easymode</item>
<item>@string/scaling_filter_crt_royale</item>
</string-array>
<integer-array name="rendererScalingFilterValues">
@@ -175,6 +179,10 @@
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
</integer-array>
<string-array name="fsr2QualityModeNames">

View File

@@ -654,8 +654,12 @@
<string name="scaling_filter_bicubic">Bicubic</string>
<string name="scaling_filter_gaussian">Gaussian</string>
<string name="scaling_filter_scale_force">ScaleForce</string>
<string name="scaling_filter_scale_fx">ScaleFX</string>
<string name="scaling_filter_lanczos">Lanczos</string>
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
<string name="scaling_filter_fsr2">AMD FidelityFX™ Super Resolution 2.0</string>
<string name="scaling_filter_crt_easymode">CRT EasyMode</string>
<string name="scaling_filter_crt_royale">CRT Royale</string>
<!-- Anti-Aliasing -->
<string name="anti_aliasing_none">None</string>