Module: wine Branch: master Commit: b825727d1d7c0987bf3938570639d85d586ce97b URL: https://source.winehq.org/git/wine.git/?a=commit;h=b825727d1d7c0987bf3938570...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jul 20 09:19:14 2021 +0200
gdi32: Store graphics mode in DC_ATTR.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/dc.c | 12 ++++++------ dlls/gdi32/dibdrv/graphics.c | 4 ++-- dlls/gdi32/enhmfdrv/graphics.c | 10 +++++----- dlls/gdi32/font.c | 8 ++++---- dlls/gdi32/mapping.c | 4 ++-- dlls/gdi32/ntgdi_private.h | 1 - dlls/gdi32/path.c | 4 ++-- include/ntgdi.h | 1 + 8 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 4441592f59f..2573390c6f2 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -99,7 +99,7 @@ static void set_initial_dc_state( DC *dc ) dc->breakExtra = 0; dc->breakRem = 0; dc->MapMode = MM_TEXT; - dc->GraphicsMode = GM_COMPATIBLE; + dc->attr->graphics_mode = GM_COMPATIBLE; dc->attr->cur_pos.x = 0; dc->attr->cur_pos.y = 0; dc->ArcDirection = AD_COUNTERCLOCKWISE; @@ -414,7 +414,7 @@ INT CDECL nulldrv_SaveDC( PHYSDEV dev ) newdc->breakExtra = dc->breakExtra; newdc->breakRem = dc->breakRem; newdc->MapMode = dc->MapMode; - newdc->GraphicsMode = dc->GraphicsMode; + newdc->attr->graphics_mode = dc->attr->graphics_mode; newdc->attr->cur_pos = dc->attr->cur_pos; newdc->ArcDirection = dc->ArcDirection; newdc->xformWorld2Wnd = dc->xformWorld2Wnd; @@ -491,7 +491,7 @@ BOOL CDECL nulldrv_RestoreDC( PHYSDEV dev, INT level ) dc->breakExtra = dcs->breakExtra; dc->breakRem = dcs->breakRem; dc->MapMode = dcs->MapMode; - dc->GraphicsMode = dcs->GraphicsMode; + dc->attr->graphics_mode = dcs->attr->graphics_mode; dc->attr->cur_pos = dcs->attr->cur_pos; dc->ArcDirection = dcs->ArcDirection; dc->xformWorld2Wnd = dcs->xformWorld2Wnd; @@ -1053,7 +1053,7 @@ INT WINAPI GetGraphicsMode( HDC hdc ) DC * dc = get_dc_ptr( hdc ); if (dc) { - ret = dc->GraphicsMode; + ret = dc->attr->graphics_mode; release_dc_ptr( dc ); } return ret; @@ -1076,8 +1076,8 @@ INT WINAPI SetGraphicsMode( HDC hdc, INT mode ) if (!dc) return 0; if ((mode > 0) && (mode <= GM_LAST)) { - ret = dc->GraphicsMode; - dc->GraphicsMode = mode; + ret = dc->attr->graphics_mode; + dc->attr->graphics_mode = mode; } /* font metrics depend on the graphics mode */ if (ret != mode) NtGdiSelectFont(dc->hSelf, dc->hFont); diff --git a/dlls/gdi32/dibdrv/graphics.c b/dlls/gdi32/dibdrv/graphics.c index a875ae113cd..b6ae4ab10e2 100644 --- a/dlls/gdi32/dibdrv/graphics.c +++ b/dlls/gdi32/dibdrv/graphics.c @@ -561,7 +561,7 @@ static struct cached_font *add_cached_font( DC *dc, HFONT hfont, UINT aa_flags ) GetObjectW( hfont, sizeof(font.lf), &font.lf ); font.xform = dc->xformWorld2Vport; font.xform.eDx = font.xform.eDy = 0; /* unused, would break hashing */ - if (dc->GraphicsMode == GM_COMPATIBLE) + if (dc->attr->graphics_mode == GM_COMPATIBLE) { font.lf.lfOrientation = font.lf.lfEscapement; if (font.xform.eM11 * font.xform.eM22 < 0) @@ -1399,7 +1399,7 @@ BOOL CDECL dibdrv_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT bott
TRACE("(%p, %d, %d, %d, %d)\n", dev, left, top, right, bottom);
- if (dc->GraphicsMode == GM_ADVANCED) + if (dc->attr->graphics_mode == GM_ADVANCED) { pts[0].x = pts[3].x = left; pts[0].y = pts[1].y = top; diff --git a/dlls/gdi32/enhmfdrv/graphics.c b/dlls/gdi32/enhmfdrv/graphics.c index 3c8c8b3bd07..2c23d0f9ae7 100644 --- a/dlls/gdi32/enhmfdrv/graphics.c +++ b/dlls/gdi32/enhmfdrv/graphics.c @@ -188,7 +188,7 @@ EMFDRV_ArcChordPie( PHYSDEV dev, INT left, INT top, INT right, INT bottom, if(left > right) {temp = left; left = right; right = temp;} if(top > bottom) {temp = top; top = bottom; bottom = temp;}
- if(dc->GraphicsMode == GM_COMPATIBLE) { + if(dc->attr->graphics_mode == GM_COMPATIBLE) { right--; bottom--; } @@ -359,7 +359,7 @@ BOOL CDECL EMFDRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom if(left > right) {temp = left; left = right; right = temp;} if(top > bottom) {temp = top; top = bottom; bottom = temp;}
- if(dc->GraphicsMode == GM_COMPATIBLE) { + if(dc->attr->graphics_mode == GM_COMPATIBLE) { right--; bottom--; } @@ -393,7 +393,7 @@ BOOL CDECL EMFDRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT botto if(left > right) {temp = left; left = right; right = temp;} if(top > bottom) {temp = top; top = bottom; bottom = temp;}
- if(dc->GraphicsMode == GM_COMPATIBLE) { + if(dc->attr->graphics_mode == GM_COMPATIBLE) { right--; bottom--; } @@ -426,7 +426,7 @@ BOOL CDECL EMFDRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, if(left > right) {temp = left; left = right; right = temp;} if(top > bottom) {temp = top; top = bottom; bottom = temp;}
- if(dc->GraphicsMode == GM_COMPATIBLE) { + if(dc->attr->graphics_mode == GM_COMPATIBLE) { right--; bottom--; } @@ -810,7 +810,7 @@ BOOL CDECL EMFDRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, const RECT int textHeight = 0; int textWidth = 0; const UINT textAlign = dc->textAlign; - const INT graphicsMode = dc->GraphicsMode; + const INT graphicsMode = dc->attr->graphics_mode; FLOAT exScale, eyScale;
nSize = sizeof(*pemr) + ((count+1) & ~1) * sizeof(WCHAR) + count * sizeof(INT); diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index 066b7a3648e..c3cbe18f0c8 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -3759,7 +3759,7 @@ static HFONT CDECL font_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags ) lf.lfWeight, lf.lfPitchAndFamily, lf.lfCharSet, lf.lfOrientation, lf.lfEscapement );
- if (dc->GraphicsMode == GM_ADVANCED) + if (dc->attr->graphics_mode == GM_ADVANCED) { memcpy( &dcmat, &dc->xformWorld2Vport, sizeof(FMAT2) ); /* try to avoid not necessary glyph transformations */ @@ -6015,7 +6015,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, if(!(tm.tmPitchAndFamily & TMPF_VECTOR)) /* Non-scalable fonts shouldn't be rotated */ lf.lfEscapement = 0;
- if ((dc->GraphicsMode == GM_COMPATIBLE) && + if ((dc->attr->graphics_mode == GM_COMPATIBLE) && (dc->vport2WorldValid && dc->xformWorld2Vport.eM11 * dc->xformWorld2Vport.eM22 < 0)) { lf.lfEscapement = -lf.lfEscapement; @@ -6116,7 +6116,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, desired[1].x -= desired[0].x; desired[1].y -= desired[0].y;
- if (dc->GraphicsMode == GM_COMPATIBLE) + if (dc->attr->graphics_mode == GM_COMPATIBLE) { if (dc->vport2WorldValid && dc->xformWorld2Vport.eM11 < 0) desired[1].x = -desired[1].x; @@ -6146,7 +6146,7 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x, INT y, UINT flags, desired[1].x -= desired[0].x; desired[1].y -= desired[0].y;
- if (dc->GraphicsMode == GM_COMPATIBLE) + if (dc->attr->graphics_mode == GM_COMPATIBLE) { if (dc->vport2WorldValid && dc->xformWorld2Vport.eM11 < 0) desired[1].x = -desired[1].x; diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c index 5eb06555831..46a7973644e 100644 --- a/dlls/gdi32/mapping.c +++ b/dlls/gdi32/mapping.c @@ -561,7 +561,7 @@ BOOL WINAPI ModifyWorldTransform( HDC hdc, const XFORM *xform, DWORD mode ) if ((dc = get_dc_ptr( hdc ))) { PHYSDEV physdev = GET_DC_PHYSDEV( dc, pModifyWorldTransform ); - if (dc->GraphicsMode == GM_ADVANCED) + if (dc->attr->graphics_mode == GM_ADVANCED) ret = physdev->funcs->pModifyWorldTransform( physdev, xform, mode ); release_dc_ptr( dc ); } @@ -587,7 +587,7 @@ BOOL WINAPI SetWorldTransform( HDC hdc, const XFORM *xform ) if ((dc = get_dc_ptr( hdc ))) { PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSetWorldTransform ); - if (dc->GraphicsMode == GM_ADVANCED) + if (dc->attr->graphics_mode == GM_ADVANCED) ret = physdev->funcs->pSetWorldTransform( physdev, xform ); release_dc_ptr( dc ); } diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h index ba065c2439f..4527651bb33 100644 --- a/dlls/gdi32/ntgdi_private.h +++ b/dlls/gdi32/ntgdi_private.h @@ -135,7 +135,6 @@ typedef struct tagDC INT breakExtra; /* breakTotalExtra / breakCount */ INT breakRem; /* breakTotalExtra % breakCount */ INT MapMode; - INT GraphicsMode; /* Graphics mode */ ABORTPROC pAbortProc; /* AbortProc for Printing */ INT ArcDirection; XFORM xformWorld2Wnd; /* World-to-window transformation */ diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c index 4bca32c2e30..3a1da23df30 100644 --- a/dlls/gdi32/path.c +++ b/dlls/gdi32/path.c @@ -383,7 +383,7 @@ static BOOL PATH_CheckCorners( DC *dc, POINT corners[], INT x1, INT y1, INT x2, }
/* In GM_COMPATIBLE, don't include bottom and right edges */ - if (dc->GraphicsMode == GM_COMPATIBLE) + if (dc->attr->graphics_mode == GM_COMPATIBLE) { if (corners[0].x == corners[1].x) return FALSE; if (corners[0].y == corners[1].y) return FALSE; @@ -1129,7 +1129,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 (dc->GraphicsMode == GM_COMPATIBLE) + if (dc->attr->graphics_mode == GM_COMPATIBLE) { corners[1].x--; corners[1].y--; diff --git a/include/ntgdi.h b/include/ntgdi.h index 53915033c89..4d1d6a48c4f 100644 --- a/include/ntgdi.h +++ b/include/ntgdi.h @@ -89,6 +89,7 @@ enum typedef struct DC_ATTR { POINT cur_pos; + INT graphics_mode; void *emf; } DC_ATTR;