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}