Huw Davies : gdi32: Access a few more properties directly from the DC in the path driver.

Alexandre Julliard julliard at winehq.org
Fri Jul 29 10:17:09 CDT 2016


Module: wine
Branch: master
Commit: e767a607909377752af355117b9403c25fa4a471
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e767a607909377752af355117b9403c25fa4a471

Author: Huw Davies <huw at codeweavers.com>
Date:   Fri Jul 29 15:09:30 2016 +0100

gdi32: Access a few more properties directly from the DC in the path driver.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/path.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c
index 015a059..c204fde 100644
--- a/dlls/gdi32/path.c
+++ b/dlls/gdi32/path.c
@@ -702,7 +702,7 @@ HRGN WINAPI PathToRegion(HDC hdc)
         dc->path = NULL;
         if (path)
         {
-            ret = path_to_region( path, GetPolyFillMode( hdc ));
+            ret = path_to_region( path, dc->polyFillMode );
             free_gdi_path( path );
         }
     }
@@ -873,10 +873,12 @@ BOOL PATH_RestorePath( DC *dst, DC *src )
 static BOOL pathdrv_MoveTo( PHYSDEV dev, INT x, INT y )
 {
     struct path_physdev *physdev = get_path_physdev( dev );
+    DC *dc = get_physdev_dc( dev );
+
     physdev->path->newStroke = TRUE;
     physdev->path->pos.x = x;
     physdev->path->pos.y = y;
-    LPtoDP( physdev->dev.hdc, &physdev->path->pos, 1 );
+    lp_to_dp( dc, &physdev->path->pos, 1 );
     return TRUE;
 }
 
@@ -1137,7 +1139,7 @@ static BOOL PATH_Arc( PHYSDEV dev, INT x1, INT y1, INT x2, INT y2,
    }
 
    /* In GM_COMPATIBLE, don't include bottom and right edges */
-   if (GetGraphicsMode(dev->hdc) == GM_COMPATIBLE)
+   if (dc->GraphicsMode == GM_COMPATIBLE)
    {
       corners[1].x--;
       corners[1].y--;
@@ -1225,8 +1227,9 @@ static BOOL pathdrv_AngleArc( PHYSDEV dev, INT x, INT y, DWORD radius, FLOAT eSt
 static BOOL pathdrv_Arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
                          INT xstart, INT ystart, INT xend, INT yend )
 {
+    DC *dc = get_physdev_dc( dev );
     return PATH_Arc( dev, left, top, right, bottom, xstart, ystart, xend, yend,
-                     GetArcDirection( dev->hdc ), 0 );
+                     dc->ArcDirection, 0 );
 }
 
 
@@ -1236,8 +1239,9 @@ static BOOL pathdrv_Arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
 static BOOL pathdrv_ArcTo( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
                            INT xstart, INT ystart, INT xend, INT yend )
 {
+    DC *dc = get_physdev_dc( dev );
     return PATH_Arc( dev, left, top, right, bottom, xstart, ystart, xend, yend,
-                     GetArcDirection( dev->hdc ), -1 );
+                     dc->ArcDirection, -1 );
 }
 
 
@@ -1247,8 +1251,9 @@ static BOOL pathdrv_ArcTo( PHYSDEV dev, INT left, INT top, INT right, INT bottom
 static BOOL pathdrv_Chord( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
                            INT xstart, INT ystart, INT xend, INT yend )
 {
+    DC *dc = get_physdev_dc( dev );
     return PATH_Arc( dev, left, top, right, bottom, xstart, ystart, xend, yend,
-                     GetArcDirection( dev->hdc ), 1 );
+                     dc->ArcDirection, 1 );
 }
 
 
@@ -1258,8 +1263,9 @@ static BOOL pathdrv_Chord( PHYSDEV dev, INT left, INT top, INT right, INT bottom
 static BOOL pathdrv_Pie( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
                          INT xstart, INT ystart, INT xend, INT yend )
 {
+    DC *dc = get_physdev_dc( dev );
     return PATH_Arc( dev, left, top, right, bottom, xstart, ystart, xend, yend,
-                     GetArcDirection( dev->hdc ), 2 );
+                     dc->ArcDirection, 2 );
 }
 
 
@@ -1311,7 +1317,7 @@ static BOOL pathdrv_PolyDraw( PHYSDEV dev, const POINT *pts, const BYTE *types,
         case PT_MOVETO:
             path->newStroke = TRUE;
             path->pos = pts[i];
-            LPtoDP( dev->hdc, &path->pos, 1 );
+            lp_to_dp( dc, &path->pos, 1 );
             lastmove = path->count;
             break;
         case PT_LINETO:
@@ -2022,7 +2028,7 @@ BOOL nulldrv_BeginPath( PHYSDEV dev )
     physdev = get_path_physdev( find_dc_driver( dc, &path_driver ));
     physdev->path = path;
     path->pos = dc->cur_pos;
-    LPtoDP( dev->hdc, &path->pos, 1 );
+    lp_to_dp( dc, &path->pos, 1 );
     if (dc->path) free_gdi_path( dc->path );
     dc->path = NULL;
     return TRUE;




More information about the wine-cvs mailing list