From 75e561bd092895a031ae4475f7d1fdc35b1b1832 Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 28 Feb 2026 00:39:32 +0100 Subject: fix(shaders): deduplicate VertexOutput/vs_main via render/fullscreen_uv_vs snippet - Fix vs_main return type (VertexOutput, not vec4) - Fix #include paths in passthrough, gaussian_blur, heptagon, combined_postprocess - ShaderComposer: assert + suggest correct path on missing #include (non-STRIP_ALL) - VerifyIncludes: upgrade WARNING to ERROR + assert, add "did you mean?" hint Co-Authored-By: Claude Sonnet 4.6 --- common/shaders/render/fullscreen_uv_vs.wgsl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 common/shaders/render/fullscreen_uv_vs.wgsl (limited to 'common/shaders/render/fullscreen_uv_vs.wgsl') diff --git a/common/shaders/render/fullscreen_uv_vs.wgsl b/common/shaders/render/fullscreen_uv_vs.wgsl new file mode 100644 index 0000000..42d87c3 --- /dev/null +++ b/common/shaders/render/fullscreen_uv_vs.wgsl @@ -0,0 +1,15 @@ +// Common vertex shader for fullscreen post-processing effects. +// Draws a single triangle that covers the entire screen, with uv +// coordinates in [0..1] +struct VertexOutput { + @builtin(position) position: vec4, + @location(0) uv: vec2, +}; + +@vertex fn vs_main(@builtin(vertex_index) i: u32) -> VertexOutput { + let pos = array(vec4f(-1, -1, 0, 1.), vec4f(3, -1, 2., 1.), vec4f(-1, 3, 0, -1)); + var out: VertexOutput; + out.position = vec4f(pos[i].xy, 0.0, 1.0); + out.uv = pos[i].zw; + return out; +} -- cgit v1.2.3