summaryrefslogtreecommitdiff
path: root/src/shaders/render
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-03-11 07:13:22 +0100
committerskal <pascal.massimino@gmail.com>2026-03-11 07:13:22 +0100
commitf700a081d9a5315ef583ffca2a2c626878ca2945 (patch)
tree70d43c3b7bdfe286aec700920f45551db8c46c8c /src/shaders/render
parent3ead818d35df56e6efbe3397967befba8d4bdb5d (diff)
factorize render_ntsc()
Diffstat (limited to 'src/shaders/render')
-rw-r--r--src/shaders/render/ntsc_common.wgsl13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/shaders/render/ntsc_common.wgsl b/src/shaders/render/ntsc_common.wgsl
index 61ea254..2f0d247 100644
--- a/src/shaders/render/ntsc_common.wgsl
+++ b/src/shaders/render/ntsc_common.wgsl
@@ -1,5 +1,6 @@
// Shared NTSC post-process constants and functions.
// Requires sample_ntsc_signal(uv: vec2f) -> vec4f to be defined by the includer.
+// Provides render_ntsc().
const PI = 3.14159265;
const TAU = 6.28318530718;
@@ -79,12 +80,12 @@ fn randomized_f32(p: vec2f, t: f32) -> f32 {
return hash_2f_alt(vec2f(p * 0.152 + t * 1500. + 50.0));
}
-@fragment fn fs_main(in: VertexOutput) -> @location(0) vec4f {
+fn render_ntsc(st: vec2f) -> vec4f {
let t = uniforms.time;
let bt = uniforms.beat_phase;
// Fisheye/barrel distortion
- var uv = fisheye(in.st, 0.18);
+ var uv = fisheye(st, 0.18);
let mframe = sin(bt * 32.) * 1.2;
uv.y += mframe * SCAN_FLICKER / uniforms.resolution.y; // flicker at target resolution
@@ -131,13 +132,5 @@ fn randomized_f32(p: vec2f, t: f32) -> f32 {
let scanl = 0.82 + 0.5 * sin(PI * uv.y * uniforms.resolution.y / 2.);
col = scanl * mix(border_col, col, v_strength);
col = clamp(col, vec4f(0.), vec4f(1.0));
-
- // Black outside screen edges
- if (uv.x <= 0.0 || uv.x >= 1.0 || uv.y <= 0.0 || uv.y >= 1.0) {
- // discard;
- }
-
- col = debug_f32(col, in.position.xy / 2., vec2f(100., 75.), uniforms.beat_time);
- col = debug_str(col, in.position.xy / 2., vec2f(100., 150.), vec4u(0x48656C6Cu, 0x6F000000u, 0u, 0u), 5u);
return col;
}