Replaced LPTODP/DPTOLP macros by calls to LPtoDP/DPtoLP (with the help
of Huw Davies).

diff --git a/graphics/path.c b/graphics/path.c
index befd345..139a7d1 100644
--- a/graphics/path.c
+++ b/graphics/path.c
@@ -81,6 +81,12 @@
 #define GROW_FACTOR_NUMER    2  /* Numerator of grow factor for the array */
 #define GROW_FACTOR_DENOM    1  /* Denominator of grow factor             */
 
+/* A floating point version of the POINT structure */
+typedef struct tagFLOAT_POINT
+{
+   FLOAT x, y;
+} FLOAT_POINT;
+
 
 static BOOL PATH_PathToRegion(GdiPath *pPath, INT nPolyFillMode,
    HRGN *pHrgn);
@@ -94,6 +100,23 @@
    *pPoint, double *pX, double *pY);
 static BOOL PATH_CheckCorners(DC *dc, POINT corners[], INT x1, INT y1, INT x2, INT y2);
 
+/* Performs a world-to-viewport transformation on the specified point (which
+ * is in floating point format).
+ */
+static inline void WINE_UNUSED INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)
+{
+    FLOAT x, y;
+
+    /* Perform the transformation */
+    x = point->x;
+    y = point->y;
+    point->x = x * dc->xformWorld2Vport.eM11 +
+               y * dc->xformWorld2Vport.eM21 +
+               dc->xformWorld2Vport.eDx;
+    point->y = x * dc->xformWorld2Vport.eM12 +
+               y * dc->xformWorld2Vport.eM22 +
+               dc->xformWorld2Vport.eDy;
+}
 
 /***********************************************************************
  *           BeginPath    (GDI.512)