Jelajahi Sumber

LibGfx: Avoid some unnecessary Rounding in AffineTransform and Color

Casts suffice in these cases.
(Assuming standard rounding mode)
Hendiadyoin1 3 tahun lalu
induk
melakukan
5fd49b9d9f

+ 3 - 3
Userland/Libraries/LibGfx/AffineTransform.cpp

@@ -158,7 +158,7 @@ IntPoint AffineTransform::map(IntPoint const& point) const
     float mapped_x;
     float mapped_y;
     map(static_cast<float>(point.x()), static_cast<float>(point.y()), mapped_x, mapped_y);
-    return { roundf(mapped_x), roundf(mapped_y) };
+    return { round_to<int>(mapped_x), round_to<int>(mapped_y) };
 }
 
 template<>
@@ -174,8 +174,8 @@ template<>
 IntSize AffineTransform::map(IntSize const& size) const
 {
     return {
-        roundf(static_cast<float>(size.width()) * x_scale()),
-        roundf(static_cast<float>(size.height()) * y_scale()),
+        round_to<int>(static_cast<float>(size.width()) * x_scale()),
+        round_to<int>(static_cast<float>(size.height()) * y_scale()),
     };
 }
 

+ 4 - 4
Userland/Libraries/LibGfx/Color.h

@@ -200,10 +200,10 @@ public:
 
     Color interpolate(Color const& other, float weight) const noexcept
     {
-        u8 r = red() + roundf(static_cast<float>(other.red() - red()) * weight);
-        u8 g = green() + roundf(static_cast<float>(other.green() - green()) * weight);
-        u8 b = blue() + roundf(static_cast<float>(other.blue() - blue()) * weight);
-        u8 a = alpha() + roundf(static_cast<float>(other.alpha() - alpha()) * weight);
+        u8 r = red() + round_to<u8>(static_cast<float>(other.red() - red()) * weight);
+        u8 g = green() + round_to<u8>(static_cast<float>(other.green() - green()) * weight);
+        u8 b = blue() + round_to<u8>(static_cast<float>(other.blue() - blue()) * weight);
+        u8 a = alpha() + round_to<u8>(static_cast<float>(other.alpha() - alpha()) * weight);
         return Color(r, g, b, a);
     }