Module: wine Branch: master Commit: e767a607909377752af355117b9403c25fa4a471 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e767a607909377752af355117b...
Author: Huw Davies huw@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;