[[block]] struct View { view_proj: mat4x4; world_position: vec3; }; [[group(0), binding(0)]] var view: View; struct VertexOutput { [[location(0)]] uv: vec2; [[builtin(position)]] position: vec4; }; [[stage(vertex)]] fn vertex( [[location(0)]] vertex_position: vec3, [[location(1)]] vertex_uv: vec2 ) -> VertexOutput { var out: VertexOutput; out.uv = vertex_uv; out.position = view.view_proj * vec4(vertex_position, 1.0); return out; } [[group(1), binding(0)]] var sprite_texture: texture_2d; [[group(1), binding(1)]] var sprite_sampler: sampler; [[stage(fragment)]] fn fragment(in: VertexOutput) -> [[location(0)]] vec4 { return textureSample(sprite_texture, sprite_sampler, in.uv); }