馃悕馃悕馃悕
1
2@group(0) @binding(0) var tex_sampler: sampler;
3@group(0) @binding(1) var tex: texture_2d<f32>;
4
5@vertex
6fn vert(@builtin(vertex_index) vertex_index: u32) -> @builtin(position) vec4<f32> {
7 // fullscreen quad
8 let pos = array<vec2<f32>, 6>(
9 vec2<f32>(-1.0, -1.0), vec2<f32>(1.0, -1.0), vec2<f32>(-1.0, 1.0),
10 vec2<f32>(1.0, -1.0), vec2<f32>(1.0, 1.0), vec2<f32>(-1.0, 1.0)
11 );
12 return vec4<f32>(pos[vertex_index], 0.0, 1.0);
13}
14
15@fragment
16fn frag(@builtin(position) frag_coord: vec4<f32>) -> @location(0) vec4<f32> {
17 let tex_size = vec2<f32>(textureDimensions(tex));
18 let uv = frag_coord.xy / tex_size;
19 return textureSample(tex, tex_sampler, uv);
20}
21