summaryrefslogtreecommitdiff
path: root/src/effects/shaders.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-10 20:42:32 +0100
committerskal <pascal.massimino@gmail.com>2026-03-10 20:42:32 +0100
commit3547424b8c5f3884f84d16fb3f08b47965d62428 (patch)
tree18cfcc23fad133a9cf2e84ba4fb77b1d5826ff8a /src/effects/shaders.cc
parent7ca40818e3d0401f97efae6fe876038df4f5bd00 (diff)
ntsc: factor common code into snippet; add RGB and YIQ input variants
- Extract shared NTSC logic into render/ntsc_common.wgsl snippet - sample_ntsc_signal() hook decouples input format from processing - ntsc_rgb.wgsl: RGB input (converts via rgba_to_luma_chroma_phase) - ntsc_yiq.wgsl: YIQ passthrough for RotatingCube output - Add NtscYiq WgslEffect thin wrapper; register both in tests handoff(Claude): NTSC refactor complete; NtscYiq ready for timeline use with RotatingCube. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/effects/shaders.cc')
-rw-r--r--src/effects/shaders.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/effects/shaders.cc b/src/effects/shaders.cc
index 44dfa0b..8a81bb0 100644
--- a/src/effects/shaders.cc
+++ b/src/effects/shaders.cc
@@ -55,6 +55,8 @@ void InitShaderComposer() {
AssetId::ASSET_SHADER_DEBUG_DEBUG_PRINT);
register_if_exists("render/scratch_lines",
AssetId::ASSET_SHADER_RENDER_SCRATCH_LINES);
+ register_if_exists("render/ntsc_common",
+ AssetId::ASSET_SHADER_RENDER_NTSC_COMMON);
register_if_exists("render/fullscreen_vs",
AssetId::ASSET_SHADER_RENDER_FULLSCREEN_VS);
register_if_exists("render/fullscreen_uv_vs",
@@ -103,7 +105,8 @@ const char* flash_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_FLASH);
const char* scene1_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_SCENE1);
const char* scene2_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_SCENE2);
const char* scratch_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_SCRATCH);
-const char* ntsc_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_NTSC);
+const char* ntsc_rgb_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_NTSC_RGB);
+const char* ntsc_yiq_shader_wgsl = SafeGetAsset(AssetId::ASSET_SHADER_NTSC_YIQ);
// Compute shaders
const char* gen_noise_compute_wgsl =