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