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