@group(1) @binding(0) var grid_width: f32; @group(1) @binding(1) var grid_size: vec2; @group(1) @binding(2) var visible: u32; let grid_color: vec4 = vec4(1.0, 1.0, 1.0, 0.3); let x_color: vec4 = vec4(1.0, 0.0, 0.0, 1.0); let y_color :vec4 = vec4(0.0, 1.0, 0.0, 1.0); @fragment fn fragment( @builtin(position) position: vec4, #import bevy_sprite::mesh2d_vertex_output ) -> @location(0) vec4 { if abs(world_position.y) < grid_width && abs(world_position.x) < grid_width { return grid_color; } else if abs(world_position.y) < grid_width { return x_color; } else if abs(world_position.x) < grid_width { return y_color; } else if visible == u32(0) { return vec4(0.0, 0.0, 0.0, 0.0); } else if abs(world_position.x) % grid_size.x <= grid_width || abs(world_position.y) % grid_size.y <= grid_width { return grid_color; } else { return vec4(0.0, 0.0, 0.0, 0.0); } }