summaryrefslogtreecommitdiff
path: root/src/effects/ntsc_effect.h
blob: 473729141a1f28a603cdb0d6b0cffba28ede87a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 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<std::string>& inputs,
       const std::vector<std::string>& 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<std::string>& inputs,
          const std::vector<std::string>& outputs, float start_time,
          float end_time)
      : WgslEffect(ctx, inputs, outputs, start_time, end_time,
                   ntsc_yiq_shader_wgsl) {}
};