summaryrefslogtreecommitdiff
path: root/common/shaders/render/fullscreen_uv_vs.wgsl
blob: f9ae4275ee12386ec898ad8b896a93b051fbe31a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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: vec4f,
    @location(0) uv: vec2f,
};

@vertex fn vs_main(@builtin(vertex_index) i: u32) -> VertexOutput {
    let pos = array<vec4f, 3>(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;
}