Jacek Caban : gdi32: Store graphics mode in DC_ATTR.
Alexandre Julliard
julliard at winehq.org
Wed Jul 21 16:04:30 CDT 2021
Module: wine
Branch: master
Commit: b825727d1d7c0987bf3938570639d85d586ce97b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b825727d1d7c0987bf3938570639d85d586ce97b
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Jul 20 09:19:14 2021 +0200
gdi32: Store graphics mode in DC_ATTR.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
More information about the wine-cvs
mailing list