struct Uniforms { pan: vec2f, zoom: f32, } struct TileParams { lod: u32, tile_size: f32, world_min: vec2f, world_max: vec2f, } @group(0) @binding(0) var uniforms: Uniforms; @group(0) @binding(1) var tile_params: TileParams; @vertex fn vs_main(@builtin(vertex_index) vertex_index : u32) -> @builtin(position) vec4f { const pos = array( vec2( 0.0, 0.5), vec2(-0.5, -0.5), vec2( 0.5, -0.5) ); return vec4f(pos[vertex_index], 0, 1); } @fragment fn fs_main() -> @location(0) vec4f { return vec4(1, 0, 0, 1); }