Jacek Caban : gdi32: Store DC pen color in DC_ATTR.
Alexandre Julliard
julliard at winehq.org
Fri Jul 30 14:21:08 CDT 2021
Module: wine
Branch: master
Commit: b9ffa2bf261d49cd72caf4a42855107e0ac91d29
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b9ffa2bf261d49cd72caf4a42855107e0ac91d29
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Jul 30 13:00:54 2021 +0200
gdi32: Store DC pen color 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 | 29 ++++-------------------------
dlls/gdi32/dibdrv/objects.c | 2 +-
dlls/gdi32/gdidc.c | 9 +++++++++
dlls/gdi32/ntgdi_private.h | 1 -
include/ntgdi.h | 1 +
5 files changed, 15 insertions(+), 27 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index fd4a1d3abd0..675527d4df5 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -89,7 +89,7 @@ static void set_initial_dc_state( DC *dc )
dc->attr->background_mode = OPAQUE;
dc->attr->background_color = RGB( 255, 255, 255 );
dc->attr->brush_color = RGB( 255, 255, 255 );
- dc->dcPenColor = RGB( 0, 0, 0 );
+ dc->attr->pen_color = RGB( 0, 0, 0 );
dc->attr->text_color = RGB( 0, 0, 0 );
dc->brush_org.x = 0;
dc->brush_org.y = 0;
@@ -398,7 +398,6 @@ INT CDECL nulldrv_SaveDC( PHYSDEV dev )
newdc->hFont = dc->hFont;
newdc->hBitmap = dc->hBitmap;
newdc->hPalette = dc->hPalette;
- newdc->dcPenColor = dc->dcPenColor;
newdc->brush_org = dc->brush_org;
newdc->mapperFlags = dc->mapperFlags;
newdc->charExtra = dc->charExtra;
@@ -470,7 +469,7 @@ BOOL CDECL nulldrv_RestoreDC( PHYSDEV dev, INT level )
dc->attr->background_color = dcs->attr->background_color;
dc->attr->text_color = dcs->attr->text_color;
dc->attr->brush_color = dcs->attr->brush_color;
- dc->dcPenColor = dcs->dcPenColor;
+ dc->attr->pen_color = dcs->attr->pen_color;
dc->brush_org = dcs->brush_org;
dc->mapperFlags = dcs->mapperFlags;
dc->attr->text_align = dcs->attr->text_align;
@@ -1504,26 +1503,6 @@ COLORREF WINAPI SetDCBrushColor(HDC hdc, COLORREF crColor)
return oldClr;
}
-/***********************************************************************
- * GetDCPenColor (GDI32.@)
- */
-COLORREF WINAPI GetDCPenColor(HDC hdc)
-{
- DC *dc;
- COLORREF dcPenColor = CLR_INVALID;
-
- TRACE("hdc(%p)\n", hdc);
-
- dc = get_dc_ptr( hdc );
- if (dc)
- {
- dcPenColor = dc->dcPenColor;
- release_dc_ptr( dc );
- }
-
- return dcPenColor;
-}
-
/***********************************************************************
* SetDCPenColor (GDI32.@)
*/
@@ -1541,8 +1520,8 @@ COLORREF WINAPI SetDCPenColor(HDC hdc, COLORREF crColor)
crColor = physdev->funcs->pSetDCPenColor( physdev, crColor );
if (crColor != CLR_INVALID)
{
- oldClr = dc->dcPenColor;
- dc->dcPenColor = crColor;
+ oldClr = dc->attr->pen_color;
+ dc->attr->pen_color = crColor;
}
release_dc_ptr( dc );
}
diff --git a/dlls/gdi32/dibdrv/objects.c b/dlls/gdi32/dibdrv/objects.c
index 9d2c4022759..ce8e3572e90 100644
--- a/dlls/gdi32/dibdrv/objects.c
+++ b/dlls/gdi32/dibdrv/objects.c
@@ -2189,7 +2189,7 @@ HPEN CDECL dibdrv_SelectPen( PHYSDEV dev, HPEN hpen, const struct brush_pattern
pdev->pen_width = get_pen_device_width( dc, logpen.lopnWidth.x );
if (hpen == GetStockObject( DC_PEN ))
- logbrush.lbColor = dc->dcPenColor;
+ logbrush.lbColor = dc->attr->pen_color;
set_dash_pattern( &pdev->pen_pattern, 0, NULL );
select_brush( pdev, &pdev->pen_brush, &logbrush, pattern, dither );
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 9e85143ce0c..be9ac3d83b9 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -83,6 +83,15 @@ COLORREF WINAPI GetDCBrushColor( HDC hdc )
return dc_attr ? dc_attr->brush_color : CLR_INVALID;
}
+/***********************************************************************
+ * GetDCPenColor (GDI32.@)
+ */
+COLORREF WINAPI GetDCPenColor(HDC hdc)
+{
+ DC_ATTR *dc_attr = get_dc_attr( hdc );
+ return dc_attr ? dc_attr->pen_color : CLR_INVALID;
+}
+
/***********************************************************************
* GetTextColor (GDI32.@)
*/
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index fb110409357..73e6fd3d21f 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -116,7 +116,6 @@ typedef struct tagDC
const struct font_gamma_ramp *font_gamma_ramp;
UINT font_code_page;
- COLORREF dcPenColor;
POINT brush_org;
DWORD mapperFlags; /* Font mapper flags */
diff --git a/include/ntgdi.h b/include/ntgdi.h
index 1f33cfe5143..1fffc566adc 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -101,6 +101,7 @@ typedef struct DC_ATTR
LONG disabled; /* disabled flag, controled by DCHF_(DISABLE|ENABLE)DC */
COLORREF background_color;
COLORREF brush_color;
+ COLORREF pen_color;
COLORREF text_color;
POINT cur_pos;
INT graphics_mode;
More information about the wine-cvs
mailing list