Skip to content

Commit

Permalink
rounded border: remove dead code in shader (bevyengine#12602)
Browse files Browse the repository at this point in the history
# Objective

- bevyengine#12500 added dead code to the ui shader

## Solution

- Remove it
  • Loading branch information
mockersf committed Mar 21, 2024
1 parent 93c17d1 commit 2f6d866
Showing 1 changed file with 0 additions and 141 deletions.
141 changes: 0 additions & 141 deletions crates/bevy_ui/src/render/ui.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,6 @@ fn vertex(
@group(1) @binding(0) var sprite_texture: texture_2d<f32>;
@group(1) @binding(1) var sprite_sampler: sampler;

fn sigmoid(t: f32) -> f32 {
return 1.0 / (1.0 + exp(-t));
}

// The returned value is the shortest distance from the given point to the boundary of the rounded
// box.
//
Expand Down Expand Up @@ -124,143 +120,6 @@ fn sd_inset_rounded_box(point: vec2<f32>, size: vec2<f32>, radius: vec4<f32>, in
return sd_rounded_box(inner_point, inner_size, r);
}

#ifdef CLAMP_INNER_CURVES
fn sd_inset_rounded_box(point: vec2<f32>, size: vec2<f32>, radius: vec4<f32>, inset: vec4<f32>) -> f32 {
let inner_size = size - inset.xy - inset.zw;
let inner_center = inset.xy + 0.5 * inner_size - 0.5 * size;
let inner_point = point - inner_center;

var r = radius;

if 0. < min(inset.x, inset.y) || inset.x + inset.y <= 0. {
// Top left corner.
r.x = r.x - max(inset.x, inset.y);
} else {
r.x = 0.;
}

if 0. < min(inset.z, inset.y) || inset.z + inset.y <= 0. {
// Top right corner.
r.y = r.y - max(inset.z, inset.y);
} else {
r.y = 0.;
}

if 0. < min(inset.z, inset.w) || inset.z + inset.w <= 0. {
// Bottom right corner.
r.z = r.z - max(inset.z, inset.w);
} else {
r.z = 0.;
}

if 0. < min(inset.x, inset.w) || inset.x + inset.w <= 0. {
// Bottom left corner.
r.w = r.w - max(inset.x, inset.w);
} else {
r.w = 0.;
}

let half_size = inner_size * 0.5;
let min = min(half_size.x, half_size.y);

r = min(max(r, vec4<f32>(0.0)), vec4<f32>(min));

return sd_rounded_box(inner_point, inner_size, r);
}
#endif

const RED: vec4<f32> = vec4<f32>(1., 0., 0., 1.);
const GREEN: vec4<f32> = vec4<f32>(0., 1., 0., 1.);
const BLUE: vec4<f32> = vec4<f32>(0., 0., 1., 1.);
const WHITE = vec4<f32>(1., 1., 1., 1.);
const BLACK = vec4<f32>(0., 0., 0., 1.);

// Draw the border in white, rest of the rect black.
fn draw_border(in: VertexOutput) -> vec4<f32> {
// Distance from external border. Positive values outside.
let external_distance = sd_rounded_box(in.point, in.size, in.radius);

// Distance from internal border. Positive values inside.
let internal_distance = sd_inset_rounded_box(in.point, in.size, in.radius, in.border);

// Distance from border, positive values inside border.
let border = max(-internal_distance, external_distance);

if border < 0.0 {
return WHITE;
} else {
return BLACK;
}
}

// Draw just the interior in white, rest of the rect black.
fn draw_interior(in: VertexOutput) -> vec4<f32> {
// Distance from external border. Positive values outside.
let external_distance = sd_rounded_box(in.point, in.size, in.radius);

if external_distance < 0.0 {
return WHITE;
} else {
return BLACK;
}
}

// Draw all the geometry.
fn draw_test(in: VertexOutput) -> vec4<f32> {
// Distance from external border. Negative inside
let external_distance = sd_rounded_box(in.point, in.size, in.radius);

// Distance from internal border.
let internal_distance = sd_inset_rounded_box(in.point, in.size, in.radius, in.border);

// Distance from border.
let border = max(-internal_distance, external_distance);

// Draw the area outside the border in green.
if 0.0 < external_distance {
return GREEN;
}

// Draw the area inside the border in white.
if border < 0.0 {
return WHITE;
}

// Draw the interior in blue.
if internal_distance < 0.0 {
return BLUE;
}

// Fill anything else with red (the presence of any red is a bug).
return RED;
}

fn draw_no_aa(in: VertexOutput) -> vec4<f32> {
let texture_color = textureSample(sprite_texture, sprite_sampler, in.uv);
let color = select(in.color, in.color * texture_color, enabled(in.flags, TEXTURED));

// Negative value => point inside external border.
let external_distance = sd_rounded_box(in.point, in.size, in.radius);
// Negative value => point inside internal border.
let internal_distance = sd_inset_rounded_box(in.point, in.size, in.radius, in.border);
// Negative value => point inside border.
let border = max(external_distance, -internal_distance);

if enabled(in.flags, BORDER) {
if border < 0.0 {
return color;
} else {
return vec4(0.0);
}
}

if external_distance < 0.0 {
return color;
}

return vec4(0.0);
}

fn draw(in: VertexOutput) -> vec4<f32> {
let texture_color = textureSample(sprite_texture, sprite_sampler, in.uv);

Expand Down

0 comments on commit 2f6d866

Please sign in to comment.