// NTSC post-process effects: RGB and YIQ input variants. #pragma once #include "effects/shaders.h" #include "gpu/wgsl_effect.h" // RGB input: converts RGB → YIQ internally (standard post-process use). struct Ntsc : public WgslEffect { Ntsc(const GpuContext& ctx, const std::vector& inputs, const std::vector& outputs, float start_time, float end_time) : WgslEffect(ctx, inputs, outputs, start_time, end_time, ntsc_rgb_shader_wgsl) {} }; // YIQ input: input texture already stores luma/chroma/phase (e.g. RotatingCube output). struct NtscYiq : public WgslEffect { NtscYiq(const GpuContext& ctx, const std::vector& inputs, const std::vector& outputs, float start_time, float end_time) : WgslEffect(ctx, inputs, outputs, start_time, end_time, ntsc_yiq_shader_wgsl) {} };