src/shaders.wgsl
1@group(0) @binding(0) var<uniform> scale: vec2f;
2
3struct VertexInput {
4 @location(0) position: vec2f,
5 @location(1) color: vec4f,
6};
7
8struct VertexOutput {
9 @builtin(position) position: vec4f,
10 // Passed to the fragment shader
11 @location(0) color: vec4f,
12};
13
14@vertex
15fn vertex_shader(in: VertexInput) -> VertexOutput {
16 var out: VertexOutput;
17 out.position = vec4f(
18 in.position.x / scale.x - 1,
19 1 - in.position.y / scale.y,
20 0, 1
21 );
22 out.color = in.color;
23 return out;
24}
25
26@fragment
27fn fragment_shader(in: VertexOutput) -> @location(0) vec4f {
28 return in.color;
29}