From df37d6f9bc0471cd6c495ae523aa6242d88b5aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Mon, 12 May 2025 18:11:51 +0200 Subject: [PATCH] Replace `blend` with `mix` equivalent in `quad` shaders --- wgpu/src/shader/quad.wgsl | 4 ---- wgpu/src/shader/quad/gradient.wgsl | 2 +- wgpu/src/shader/quad/solid.wgsl | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/wgpu/src/shader/quad.wgsl b/wgpu/src/shader/quad.wgsl index bef8bd40..ff9fdae6 100644 --- a/wgpu/src/shader/quad.wgsl +++ b/wgpu/src/shader/quad.wgsl @@ -9,10 +9,6 @@ fn premultiply(color: vec4) -> vec4 { return vec4(color.xyz * color.a, color.a); } -fn blend(over: vec4, under: vec4, alpha: f32) -> vec4 { - return over * alpha + under * (1.0 - alpha); -} - fn distance_alg( frag_coord: vec2, position: vec2, diff --git a/wgpu/src/shader/quad/gradient.wgsl b/wgpu/src/shader/quad/gradient.wgsl index d743e26d..e8c54790 100644 --- a/wgpu/src/shader/quad/gradient.wgsl +++ b/wgpu/src/shader/quad/gradient.wgsl @@ -179,7 +179,7 @@ fn gradient_fs_main(input: GradientVertexOutput) -> @location(0) vec4 { internal_distance ); - mixed_color = blend(input.border_color, mixed_color, border_mix); + mixed_color = mix(mixed_color, input.border_color, border_mix); } var dist: f32 = distance_alg( diff --git a/wgpu/src/shader/quad/solid.wgsl b/wgpu/src/shader/quad/solid.wgsl index d5d1e604..f4c39f3d 100644 --- a/wgpu/src/shader/quad/solid.wgsl +++ b/wgpu/src/shader/quad/solid.wgsl @@ -97,7 +97,7 @@ fn solid_fs_main( internal_distance ); - mixed_color = blend(input.border_color, input.color, border_mix); + mixed_color = mix(input.color, input.border_color, border_mix); } var dist: f32 = distance_alg( @@ -125,7 +125,7 @@ fn solid_fs_main( let shadow_distance = max(rounded_box_sdf(input.position.xy - input.pos - input.shadow_offset - (input.scale / 2.0), input.scale / 2.0, shadow_radius), 0.); let shadow_alpha = 1.0 - smoothstep(-input.shadow_blur_radius, input.shadow_blur_radius, shadow_distance); - return blend(input.shadow_color, quad_color, (1.0 - radius_alpha) * shadow_alpha); + return mix(quad_color, input.shadow_color, (1.0 - radius_alpha) * shadow_alpha); } else { return quad_color; }