File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -166,6 +166,15 @@ const char blit_shader_glsl[] = GLSL(330,
166166 return vec2 (l , l / (max (d .x , d .y ) + 1e-8 ));
167167 }
168168
169+ float rect_sdf_corner_only (vec2 point , vec2 half_size ){
170+ vec2 d = abs (point ) - half_size + vec2 (corner_radius );
171+ if (d .x > 0.0 && d .y > 0.0 ){
172+ return length (d )- corner_radius ;
173+ }
174+
175+ return -1.0 ;
176+ }
177+
169178 vec4 default_post_processing (vec4 c ) {
170179 vec4 border_color = texture (tex , vec2 (0.0 , 0.5 ));
171180 if (invert_color ) {
@@ -205,7 +214,7 @@ const char blit_shader_glsl[] = GLSL(330,
205214 // Add a small number to sdf.y to avoid 0/0
206215 if (rect_distance > 0.0f ) {
207216 c = (1.0f - clamp (rect_distance , 0.0f , sdf .y ) / (sdf .y + 1e-8 )) * rim_color ;
208- } else {
217+ } else if ( rect_sdf_corner_only ( texcoord - outer_size / 2.0f , inner_size / 2.0f ) > 0.0f ) {
209218 float factor = clamp (rect_distance + border_width , 0.0f , sdf .y ) / (sdf .y + 1e-8 );
210219 c = (1.0f - factor ) * c + factor * border_color ;
211220 }
You can’t perform that action at this time.
0 commit comments