1[[block]]
2struct Uniforms {
3  modelViewProjectionMatrix : mat4x4<f32>;
4};
5
6[[binding(0), group(0)]] var<uniform> uniforms : Uniforms;
7
8struct VertexInput {
9  [[location(0)]]
10  cur_position : vec4<f32>;
11  [[location(1)]]
12  color : vec4<f32>;
13};
14
15struct VertexOutput {
16  [[location(0)]]
17  vtxFragColor : vec4<f32>;
18  [[builtin(position)]]
19  Position : vec4<f32>;
20};
21
22[[stage(vertex)]]
23fn vtx_main(input : VertexInput) -> VertexOutput {
24  var output : VertexOutput;
25  output.Position = (uniforms.modelViewProjectionMatrix * input.cur_position);
26  output.vtxFragColor = input.color;
27  return output;
28}
29
30[[stage(fragment)]]
31fn frag_main([[location(0)]] fragColor : vec4<f32>) -> [[location(0)]] vec4<f32> {
32  return fragColor;
33}
34