struct VertexInput { @location(0) position: vec3, @location(1) tex_coords: vec2, @location(2) color: vec4, } struct VertexOutput { @builtin(position) clip_position: vec4, @location(0) tex_coords: vec2, @location(1) color: vec4, } @vertex fn vs_main(input: VertexInput) -> VertexOutput { var out: VertexOutput; out.clip_position = vec4(input.position, 1.0); out.tex_coords = input.tex_coords; out.color = input.color; return out; } @fragment fn fs_main(in: VertexOutput) -> @location(0) vec4 { return in.color; }