gdiplus: Improve precision of calculated pixel to units transformation.

Dmitry Timoshkov dmitry at baikal.ru
Tue Jul 31 04:48:46 CDT 2012


This patch replaces 1.0/72.0 division by multiplication to 72.0 and
considerably improves precision of calculated pixel to units result.
---
 dlls/gdiplus/gdiplus.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/gdiplus/gdiplus.c b/dlls/gdiplus/gdiplus.c
index 9b43cd6..2599c58 100644
--- a/dlls/gdiplus/gdiplus.c
+++ b/dlls/gdiplus/gdiplus.c
@@ -36,7 +36,7 @@
 WINE_DEFAULT_DEBUG_CHANNEL(gdiplus);
 
 static const REAL mm_per_inch = 25.4;
-static const REAL inch_per_point = 1.0/72.0;
+static const REAL point_per_inch = 72.0;
 
 static Status WINAPI NotificationHook(ULONG_PTR *token)
 {
@@ -353,7 +353,7 @@ REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi)
     case UnitDisplay:
         return units;
     case UnitPoint:
-        return units * dpi * inch_per_point;
+        return units * dpi / point_per_inch;
     case UnitInch:
         return units * dpi;
     case UnitDocument:
@@ -376,7 +376,7 @@ REAL pixels_to_units(REAL pixels, GpUnit unit, REAL dpi)
     case UnitDisplay:
         return pixels;
     case UnitPoint:
-        return pixels / dpi / inch_per_point;
+        return pixels * point_per_inch / dpi;
     case UnitInch:
         return pixels / dpi;
         break;
-- 
1.7.11.2




More information about the wine-patches mailing list