Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1//! This shader draws a checkerboard pattern
2import bevy_ui_render::ui_vertex_output::UiVertexOutput;
3import bevy_ui_render::ui::sd_rounded_box;
5@fragment
6fn fragment(in: UiVertexOutput) -> @location(0) vec4<f32> {
7 let uv = (in.uv - vec2<f32>(0.5, 0.5)) * in.size / 16.;
8 let check = select(0.0, 1.0, (fract(uv.x) < 0.5) != (fract(uv.y) < 0.5));
9 let bg = mix(vec3<f32>(0.2, 0.2, 0.2), vec3<f32>(0.6, 0.6, 0.6), check);
11 let size = vec2<f32>(in.size.x, in.size.y);
12 // With rounded non-elliptical border radius, in.border_radius_x == in.border_radius.y.
13 let external_distance = sd_rounded_box((in.uv - 0.5) * size, size, in.border_radius_x, in.border_radius_y);
14 let alpha = smoothstep(0.5, -0.5, external_distance);
16 return vec4<f32>(bg, alpha);
Contents