sse2-float: correctly handle associted alpha in remainder
authorØyvind Kolås <pippin@gimp.org>
Thu, 27 Jan 2022 03:33:04 +0000 (04:33 +0100)
committerØyvind Kolås <pippin@gimp.org>
Thu, 27 Jan 2022 07:51:13 +0000 (08:51 +0100)
extensions/sse2-float.c

index 3757ffe09fe9f3cf8fd3f145772625353827c268..e4cd7cfac09116066b7bfcc9f02958275df91bce 100644 (file)
@@ -157,11 +157,8 @@ conv_rgbAF_linear_rgbaF_linear_shuffle (const Babl  *conversion,
   while (remainder--)
     {
       float alpha = src[3];
-      float recip;
-      if (alpha <= 0.0f)
-        recip = 0.0f;
-      else
-        recip = 1.0f/alpha;
+      float used_alpha = babl_epsilon_for_zero_float (alpha);
+      float recip = 1.0f/used_alpha;
       dst[0] = src[0] * recip;
       dst[1] = src[1] * recip;
       dst[2] = src[2] * recip;