eliminate further useless sdf sampling in shaders; eliminate useless borders in ui, eliminating more overdraw; eliminate tab bar clipping issue

This commit is contained in:
Ryan Fleury
2024-01-29 15:52:08 -08:00
parent f6e7db7c3a
commit afe105da31
4 changed files with 29 additions and 22 deletions
+10 -6
View File
@@ -168,12 +168,6 @@ str8_lit_comp(
" // rjf: determine SDF sample position\n"
" float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;\n"
" \n"
" // rjf: sample for corners\n"
" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n"
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n"
" vertex2pixel.corner_radius_px);\n"
" float corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n"
" \n"
" // rjf: sample for borders\n"
" float border_sdf_t = 1;\n"
" if(vertex2pixel.border_thickness_px > 0)\n"
@@ -188,6 +182,16 @@ str8_lit_comp(
" discard;\n"
" }\n"
" \n"
" // rjf: sample for corners\n"
" float corner_sdf_t = 1;\n"
" if(vertex2pixel.corner_radius_px > 0)\n"
" {\n"
" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n"
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n"
" vertex2pixel.corner_radius_px);\n"
" corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n"
" }\n"
" \n"
" // rjf: form+return final color\n"
" float4 final_color = albedo_sample;\n"
" final_color *= tint;\n"
+10 -6
View File
@@ -167,12 +167,6 @@ ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET
// rjf: determine SDF sample position
float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;
// rjf: sample for corners
float corner_sdf_s = rect_sdf(sdf_sample_pos,
vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),
vertex2pixel.corner_radius_px);
float corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);
// rjf: sample for borders
float border_sdf_t = 1;
if(vertex2pixel.border_thickness_px > 0)
@@ -187,6 +181,16 @@ ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET
discard;
}
// rjf: sample for corners
float corner_sdf_t = 1;
if(vertex2pixel.corner_radius_px > 0)
{
float corner_sdf_s = rect_sdf(sdf_sample_pos,
vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),
vertex2pixel.corner_radius_px);
corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);
}
// rjf: form+return final color
float4 final_color = albedo_sample;
final_color *= tint;