[PATCH v2 07/10] gdi32: Store stretch_blt_mode in DC_ATTR.
Huw Davies
huw at codeweavers.com
Thu Jul 29 07:22:02 CDT 2021
From: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/gdi32/bitblt.c | 2 +-
dlls/gdi32/dc.c | 24 ++++--------------------
dlls/gdi32/dib.c | 2 +-
dlls/gdi32/gdidc.c | 9 +++++++++
dlls/gdi32/ntgdi_private.h | 1 -
include/ntgdi.h | 1 +
6 files changed, 16 insertions(+), 23 deletions(-)
diff --git a/dlls/gdi32/bitblt.c b/dlls/gdi32/bitblt.c
index 39b28cba6df..4c80f1af611 100644
--- a/dlls/gdi32/bitblt.c
+++ b/dlls/gdi32/bitblt.c
@@ -313,7 +313,7 @@ BOOL CDECL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
((src->width != dst->width) || (src->height != dst->height)))
{
copy_bitmapinfo( src_info, dst_info );
- err = stretch_bits( src_info, src, dst_info, dst, &bits, dc_dst->stretchBltMode );
+ err = stretch_bits( src_info, src, dst_info, dst, &bits, dc_dst->attr->stretch_blt_mode );
if (!err) err = dst_dev->funcs->pPutImage( dst_dev, 0, dst_info, &bits, src, dst, rop );
}
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index d14593652b8..70e7132d0c5 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -84,7 +84,7 @@ static void set_initial_dc_state( DC *dc )
dc->font_code_page = CP_ACP;
dc->attr->rop_mode = R2_COPYPEN;
dc->attr->poly_fill_mode = ALTERNATE;
- dc->stretchBltMode = BLACKONWHITE;
+ dc->attr->stretch_blt_mode = BLACKONWHITE;
dc->attr->rel_abs_mode = ABSOLUTE;
dc->attr->background_mode = OPAQUE;
dc->attr->background_color = RGB( 255, 255, 255 );
@@ -466,7 +466,7 @@ BOOL CDECL nulldrv_RestoreDC( PHYSDEV dev, INT level )
dc->attr->layout = dcs->attr->layout;
dc->attr->rop_mode = dcs->attr->rop_mode;
dc->attr->poly_fill_mode = dcs->attr->poly_fill_mode;
- dc->stretchBltMode = dcs->stretchBltMode;
+ dc->attr->stretch_blt_mode = dcs->attr->stretch_blt_mode;
dc->attr->rel_abs_mode = dcs->attr->rel_abs_mode;
dc->attr->background_mode = dcs->attr->background_mode;
dc->attr->background_color = dcs->attr->background_color;
@@ -1392,22 +1392,6 @@ UINT WINAPI SetBoundsRect(HDC hdc, const RECT* rect, UINT flags)
}
-/***********************************************************************
- * GetStretchBltMode (GDI32.@)
- */
-INT WINAPI GetStretchBltMode( HDC hdc )
-{
- INT ret = 0;
- DC * dc = get_dc_ptr( hdc );
- if (dc)
- {
- ret = dc->stretchBltMode;
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* SetStretchBltMode (GDI32.@)
*/
@@ -1427,8 +1411,8 @@ INT WINAPI SetStretchBltMode( HDC hdc, INT mode )
mode = physdev->funcs->pSetStretchBltMode( physdev, mode );
if (mode)
{
- ret = dc->stretchBltMode;
- dc->stretchBltMode = mode;
+ ret = dc->attr->stretch_blt_mode;
+ dc->attr->stretch_blt_mode = mode;
}
release_dc_ptr( dc );
}
diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 22237b207a5..432f33151d9 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -592,7 +592,7 @@ INT CDECL nulldrv_StretchDIBits( PHYSDEV dev, INT xDst, INT yDst, INT widthDst,
if (err == ERROR_TRANSFORM_NOT_SUPPORTED)
{
copy_bitmapinfo( src_info, dst_info );
- err = stretch_bits( src_info, &src, dst_info, &dst, &src_bits, dc->stretchBltMode );
+ err = stretch_bits( src_info, &src, dst_info, &dst, &src_bits, dc->attr->stretch_blt_mode );
if (!err) err = dev->funcs->pPutImage( dev, NULL, dst_info, &src_bits, &src, &dst, rop );
}
if (err) ret = 0;
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 90c70f9d976..f8a6eea6de5 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -196,6 +196,15 @@ INT WINAPI SetPolyFillMode( HDC hdc, INT mode )
return ret;
}
+/***********************************************************************
+ * GetStretchBltMode (GDI32.@)
+ */
+INT WINAPI GetStretchBltMode( HDC hdc )
+{
+ DC_ATTR *dc_attr = get_dc_attr( hdc );
+ return dc_attr ? dc_attr->stretch_blt_mode : 0;
+}
+
/***********************************************************************
* GetCurrentPositionEx (GDI32.@)
*/
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index 262971f2a8a..cb7a8e7f7c9 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;
- WORD stretchBltMode;
COLORREF dcBrushColor;
COLORREF dcPenColor;
POINT brush_org;
diff --git a/include/ntgdi.h b/include/ntgdi.h
index 38798213f88..a4ed8b6aec9 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -110,6 +110,7 @@ typedef struct DC_ATTR
WORD poly_fill_mode;
WORD rop_mode;
WORD rel_abs_mode;
+ WORD stretch_blt_mode;
void *emf;
} DC_ATTR;
--
2.25.1
More information about the wine-devel
mailing list