21 lines
504 B
WebGPU Shading Language
21 lines
504 B
WebGPU Shading Language
struct Varying {
|
|
@location(0) uv: vec2f,
|
|
@builtin(position) screen: vec4f,
|
|
}
|
|
|
|
@vertex
|
|
fn on_vertex(@builtin(vertex_index) vi: u32) -> Varying {
|
|
let uv = vec2f(vec2(vi, vi >> 1u) & vec2(1u));
|
|
let screen = vec4(uv * 2. - 1., 0., 1.);
|
|
return Varying(vec2(uv.x, 1. - uv.y), screen);
|
|
}
|
|
|
|
@group(0) @binding(0) var field: texture_2d<u32>;
|
|
|
|
@fragment
|
|
fn on_fragment(in: Varying) -> @location(0) vec4f {
|
|
let pos = vec2u(in.screen.xy);
|
|
let state = textureLoad(field, pos, 0).x;
|
|
return vec4f(f32(state));
|
|
}
|