Wine-Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 22 participants
- 84527 discussions
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/font.c | 8 ++++----
dlls/gdi32/gdi32.spec | 2 +-
dlls/gdi32/uniscribe/shape.c | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index 2e49f19b461..7e087d68db3 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -4205,9 +4205,9 @@ static UINT get_text_charset_info(DC *dc, FONTSIGNATURE *fs, DWORD flags)
}
/***********************************************************************
- * GetTextCharsetInfo (GDI32.@)
+ * NtGdiGetTextCharsetInfo (win32u.@)
*/
-UINT WINAPI GetTextCharsetInfo(HDC hdc, FONTSIGNATURE *fs, DWORD flags)
+UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags )
{
UINT ret = DEFAULT_CHARSET;
DC *dc = get_dc_ptr(hdc);
@@ -6977,7 +6977,7 @@ DWORD WINAPI GetFontLanguageInfo(HDC hdc)
DWORD result=0;
- GetTextCharsetInfo( hdc, &fontsig, 0 );
+ NtGdiGetTextCharsetInfo( hdc, &fontsig, 0 );
/* We detect each flag we return using a bitmask on the Codepage Bitfields */
if( (fontsig.fsCsb[0]&GCP_DBCS_MASK)!=0 )
@@ -8083,7 +8083,7 @@ BOOL WINAPI GetFontResourceInfoW( LPCWSTR str, LPDWORD size, PVOID buffer, DWORD
UINT WINAPI GetTextCharset(HDC hdc)
{
/* MSDN docs say this is equivalent */
- return GetTextCharsetInfo(hdc, NULL, 0);
+ return NtGdiGetTextCharsetInfo( hdc, NULL, 0 );
}
/***********************************************************************
diff --git a/dlls/gdi32/gdi32.spec b/dlls/gdi32/gdi32.spec
index 7ff32c58c26..6b8ed856ffa 100644
--- a/dlls/gdi32/gdi32.spec
+++ b/dlls/gdi32/gdi32.spec
@@ -345,7 +345,7 @@
@ stdcall GetTextAlign(long)
@ stdcall GetTextCharacterExtra(long)
@ stdcall GetTextCharset(long)
-@ stdcall GetTextCharsetInfo(long ptr long)
+@ stdcall GetTextCharsetInfo(long ptr long) NtGdiGetTextCharsetInfo
@ stdcall GetTextColor(long)
@ stdcall GetTextExtentExPointA(long str long long ptr ptr ptr)
@ stdcall GetTextExtentExPointI(long ptr long long ptr ptr ptr)
diff --git a/dlls/gdi32/uniscribe/shape.c b/dlls/gdi32/uniscribe/shape.c
index 843d670f1e9..d65476f67b4 100644
--- a/dlls/gdi32/uniscribe/shape.c
+++ b/dlls/gdi32/uniscribe/shape.c
@@ -23,7 +23,7 @@
#include "windef.h"
#include "winbase.h"
-#include "wingdi.h"
+#include "ntgdi.h"
#include "winuser.h"
#include "winnls.h"
#include "usp10.h"
@@ -594,7 +594,7 @@ static OPENTYPE_TAG get_opentype_script(HDC hdc, const SCRIPT_ANALYSIS *psa,
/*
* fall back to the font charset
*/
- charset = GetTextCharsetInfo(hdc, NULL, 0x0);
+ charset = NtGdiGetTextCharsetInfo(hdc, NULL, 0x0);
switch (charset)
{
case ANSI_CHARSET:
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/dibdrv/dc.c | 14 --------------
dlls/gdi32/driver.c | 12 ------------
dlls/gdi32/enhmfdrv/init.c | 7 -------
dlls/gdi32/font.c | 7 -------
dlls/gdi32/mapping.c | 34 ----------------------------------
dlls/gdi32/mfdrv/init.c | 7 -------
dlls/gdi32/ntgdi_private.h | 6 ------
dlls/gdi32/path.c | 7 -------
dlls/wineandroid.drv/init.c | 7 -------
dlls/winemac.drv/gdi.c | 7 -------
dlls/wineps.drv/init.c | 7 -------
dlls/winex11.drv/init.c | 7 -------
dlls/winex11.drv/xrender.c | 7 -------
include/wine/gdi_driver.h | 9 +--------
14 files changed, 1 insertion(+), 137 deletions(-)
diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c
index 467cdb144e6..e12c5ec0751 100644
--- a/dlls/gdi32/dibdrv/dc.c
+++ b/dlls/gdi32/dibdrv/dc.c
@@ -682,8 +682,6 @@ const struct gdi_dc_funcs dib_driver =
dibdrv_LineTo, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
dibdrv_PaintRgn, /* pPaintRgn */
dibdrv_PatBlt, /* pPatBlt */
dibdrv_Pie, /* pPie */
@@ -704,7 +702,6 @@ const struct gdi_dc_funcs dib_driver =
dibdrv_SelectBrush, /* pSelectBrush */
NULL, /* pSelectClipPath */
dibdrv_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
dibdrv_SelectPen, /* pSelectPen */
NULL, /* pSetBkColor */
dibdrv_SetBoundsRect, /* pSetBoundsRect */
@@ -715,10 +712,6 @@ const struct gdi_dc_funcs dib_driver =
NULL, /* pSetDeviceGammaRamp */
dibdrv_SetPixel, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
@@ -1262,8 +1255,6 @@ static const struct gdi_dc_funcs window_driver =
windrv_LineTo, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
windrv_PaintRgn, /* pPaintRgn */
windrv_PatBlt, /* pPatBlt */
windrv_Pie, /* pPie */
@@ -1284,7 +1275,6 @@ static const struct gdi_dc_funcs window_driver =
NULL, /* pSelectBrush */
NULL, /* pSelectClipPath */
NULL, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
windrv_SetBoundsRect, /* pSetBoundsRect */
@@ -1295,10 +1285,6 @@ static const struct gdi_dc_funcs window_driver =
NULL, /* pSetDeviceGammaRamp */
windrv_SetPixel, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 21e066630fc..eb4fd2ae99c 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -751,11 +751,6 @@ static HFONT CDECL nulldrv_SelectFont( PHYSDEV dev, HFONT font, UINT *aa_flags )
return font;
}
-static HPALETTE CDECL nulldrv_SelectPalette( PHYSDEV dev, HPALETTE palette, BOOL bkgnd )
-{
- return palette;
-}
-
static HPEN CDECL nulldrv_SelectPen( PHYSDEV dev, HPEN pen, const struct brush_pattern *pattern )
{
return pen;
@@ -898,8 +893,6 @@ const struct gdi_dc_funcs null_driver =
nulldrv_LineTo, /* pLineTo */
nulldrv_ModifyWorldTransform, /* pModifyWorldTransform */
nulldrv_MoveTo, /* pMoveTo */
- nulldrv_OffsetViewportOrgEx, /* pOffsetViewportOrg */
- nulldrv_OffsetWindowOrgEx, /* pOffsetWindowOrg */
nulldrv_PaintRgn, /* pPaintRgn */
nulldrv_PatBlt, /* pPatBlt */
nulldrv_Pie, /* pPie */
@@ -920,7 +913,6 @@ const struct gdi_dc_funcs null_driver =
nulldrv_SelectBrush, /* pSelectBrush */
nulldrv_SelectClipPath, /* pSelectClipPath */
nulldrv_SelectFont, /* pSelectFont */
- nulldrv_SelectPalette, /* pSelectPalette */
nulldrv_SelectPen, /* pSelectPen */
nulldrv_SetBkColor, /* pSetBkColor */
nulldrv_SetBoundsRect, /* pSetBoundsRect */
@@ -931,10 +923,6 @@ const struct gdi_dc_funcs null_driver =
nulldrv_SetDeviceGammaRamp, /* pSetDeviceGammaRamp */
nulldrv_SetPixel, /* pSetPixel */
nulldrv_SetTextColor, /* pSetTextColor */
- nulldrv_SetViewportExtEx, /* pSetViewportExt */
- nulldrv_SetViewportOrgEx, /* pSetViewportOrg */
- nulldrv_SetWindowExtEx, /* pSetWindowExt */
- nulldrv_SetWindowOrgEx, /* pSetWindowOrg */
nulldrv_SetWorldTransform, /* pSetWorldTransform */
nulldrv_StartDoc, /* pStartDoc */
nulldrv_StartPage, /* pStartPage */
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 424f69cd9b4..df34ae57756 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -96,8 +96,6 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_LineTo, /* pLineTo */
EMFDRV_ModifyWorldTransform, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrgEx */
- NULL, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
EMFDRV_PatBlt, /* pPatBlt */
EMFDRV_Pie, /* pPie */
@@ -118,7 +116,6 @@ static const struct gdi_dc_funcs emfdrv_driver =
NULL, /* pSelectBrush */
EMFDRV_SelectClipPath, /* pSelectClipPath */
EMFDRV_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
EMFDRV_SetBkColor, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -129,10 +126,6 @@ static const struct gdi_dc_funcs emfdrv_driver =
NULL, /* pSetDeviceGammaRamp */
EMFDRV_SetPixel, /* pSetPixel */
EMFDRV_SetTextColor, /* pSetTextColor */
- NULL, /* pSetViewportExtEx */
- NULL, /* pSetViewportOrgEx */
- NULL, /* pSetWindowExtEx */
- NULL, /* pSetWindowOrgEx */
EMFDRV_SetWorldTransform, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index b8dc2cc4b1f..2e49f19b461 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -3873,8 +3873,6 @@ const struct gdi_dc_funcs font_driver =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
@@ -3895,7 +3893,6 @@ const struct gdi_dc_funcs font_driver =
NULL, /* pSelectBrush */
NULL, /* pSelectClipPath */
font_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -3906,10 +3903,6 @@ const struct gdi_dc_funcs font_driver =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 3dcaf3f430f..f21b965bc4b 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -82,20 +82,6 @@ static void MAPPING_FixIsotropic( DC * dc )
}
-/***********************************************************************
- * null driver fallback implementations
- */
-
-BOOL CDECL nulldrv_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- return TRUE;
-}
-
-BOOL CDECL nulldrv_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- return TRUE;
-}
-
BOOL set_map_mode( DC *dc, int mode )
{
SIZE virtual_size, virtual_res;
@@ -155,26 +141,6 @@ BOOL set_map_mode( DC *dc, int mode )
return TRUE;
}
-BOOL CDECL nulldrv_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
-{
- return TRUE;
-}
-
-BOOL CDECL nulldrv_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- return TRUE;
-}
-
-BOOL CDECL nulldrv_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
-{
- return TRUE;
-}
-
-BOOL CDECL nulldrv_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- return TRUE;
-}
-
BOOL CDECL nulldrv_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode )
{
DC *dc = get_nulldrv_dc( dev );
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index e6c2a905df8..17bef62018c 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -161,8 +161,6 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrgEx */
- NULL, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
@@ -183,7 +181,6 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pSelectBrush */
MFDRV_SelectClipPath, /* pSelectClipPath */
NULL, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
MFDRV_SetBkColor, /* pSetBkColor */
MFDRV_SetBoundsRect, /* pSetBoundsRect */
@@ -194,10 +191,6 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
MFDRV_SetTextColor, /* pSetTextColor */
- NULL, /* pSetViewportExtEx */
- NULL, /* pSetViewportOrgEx */
- NULL, /* pSetWindowExtEx */
- NULL, /* pSetWindowOrgEx */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index 62e6e5101ee..560414b93c9 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -569,8 +569,6 @@ extern BOOL CDECL nulldrv_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, ULON
void * grad_array, ULONG ngrad, ULONG mode ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_InvertRgn( PHYSDEV dev, HRGN rgn ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_PolyBezier( PHYSDEV dev, const POINT *points, DWORD count ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_PolyBezierTo( PHYSDEV dev, const POINT *points, DWORD count ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_PolyDraw( PHYSDEV dev, const POINT *points, const BYTE *types, DWORD count ) DECLSPEC_HIDDEN;
@@ -580,10 +578,6 @@ extern BOOL CDECL nulldrv_SelectClipPath( PHYSDEV dev, INT mode ) DECLSPEC_HIDDE
extern INT CDECL nulldrv_SetDIBitsToDevice( PHYSDEV dev, INT x_dst, INT y_dst, DWORD width, DWORD height,
INT x_src, INT y_src, UINT start, UINT lines,
const void *bits, BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) DECLSPEC_HIDDEN;
-extern BOOL CDECL nulldrv_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_SetWorldTransform( PHYSDEV dev, const XFORM *xform ) DECLSPEC_HIDDEN;
extern BOOL CDECL nulldrv_StretchBlt( PHYSDEV dst_dev, struct bitblt_coords *dst,
PHYSDEV src_dev, struct bitblt_coords *src, DWORD rop ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/path.c b/dlls/gdi32/path.c
index 57a93658abd..720b877e65c 100644
--- a/dlls/gdi32/path.c
+++ b/dlls/gdi32/path.c
@@ -2134,8 +2134,6 @@ const struct gdi_dc_funcs path_driver =
pathdrv_LineTo, /* pLineTo */
NULL, /* pModifyWorldTransform */
pathdrv_MoveTo, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
pathdrv_Pie, /* pPie */
@@ -2156,7 +2154,6 @@ const struct gdi_dc_funcs path_driver =
NULL, /* pSelectBrush */
NULL, /* pSelectClipPath */
NULL, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -2167,10 +2164,6 @@ const struct gdi_dc_funcs path_driver =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/wineandroid.drv/init.c b/dlls/wineandroid.drv/init.c
index b3d4f945993..474c3089677 100644
--- a/dlls/wineandroid.drv/init.c
+++ b/dlls/wineandroid.drv/init.c
@@ -343,8 +343,6 @@ static const struct gdi_dc_funcs android_drv_funcs =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
@@ -365,7 +363,6 @@ static const struct gdi_dc_funcs android_drv_funcs =
NULL, /* pSelectBrush */
NULL, /* pSelectClipPath */
NULL, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -376,10 +373,6 @@ static const struct gdi_dc_funcs android_drv_funcs =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/winemac.drv/gdi.c b/dlls/winemac.drv/gdi.c
index b657afd5943..7c635c200d9 100644
--- a/dlls/winemac.drv/gdi.c
+++ b/dlls/winemac.drv/gdi.c
@@ -323,8 +323,6 @@ static const struct gdi_dc_funcs macdrv_funcs =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
@@ -345,7 +343,6 @@ static const struct gdi_dc_funcs macdrv_funcs =
NULL, /* pSelectBrush */
NULL, /* pSelectClipPath */
NULL, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -356,10 +353,6 @@ static const struct gdi_dc_funcs macdrv_funcs =
macdrv_SetDeviceGammaRamp, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index e71e82e092f..673f36749ae 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -837,8 +837,6 @@ static const struct gdi_dc_funcs psdrv_funcs =
PSDRV_LineTo, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
PSDRV_PaintRgn, /* pPaintRgn */
PSDRV_PatBlt, /* pPatBlt */
PSDRV_Pie, /* pPie */
@@ -859,7 +857,6 @@ static const struct gdi_dc_funcs psdrv_funcs =
PSDRV_SelectBrush, /* pSelectBrush */
NULL, /* pSelectClipPath */
PSDRV_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
PSDRV_SelectPen, /* pSelectPen */
PSDRV_SetBkColor, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -870,10 +867,6 @@ static const struct gdi_dc_funcs psdrv_funcs =
NULL, /* pSetDeviceGammaRamp */
PSDRV_SetPixel, /* pSetPixel */
PSDRV_SetTextColor, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
PSDRV_StartDoc, /* pStartDoc */
PSDRV_StartPage, /* pStartPage */
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index 937286b8601..1c14d62ce3c 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -402,8 +402,6 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_LineTo, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
X11DRV_PaintRgn, /* pPaintRgn */
X11DRV_PatBlt, /* pPatBlt */
X11DRV_Pie, /* pPie */
@@ -424,7 +422,6 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_SelectBrush, /* pSelectBrush */
NULL, /* pSelectClipPath */
X11DRV_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
X11DRV_SelectPen, /* pSelectPen */
NULL, /* pSetBkColor */
X11DRV_SetBoundsRect, /* pSetBoundsRect */
@@ -435,10 +432,6 @@ static const struct gdi_dc_funcs x11drv_funcs =
X11DRV_SetDeviceGammaRamp, /* pSetDeviceGammaRamp */
X11DRV_SetPixel, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index 3ab576ea8d5..804982d1a3c 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -2214,8 +2214,6 @@ static const struct gdi_dc_funcs xrender_funcs =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- NULL, /* pOffsetViewportOrg */
- NULL, /* pOffsetWindowOrg */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
@@ -2236,7 +2234,6 @@ static const struct gdi_dc_funcs xrender_funcs =
xrenderdrv_SelectBrush, /* pSelectBrush */
NULL, /* pSelectClipPath */
xrenderdrv_SelectFont, /* pSelectFont */
- NULL, /* pSelectPalette */
NULL, /* pSelectPen */
NULL, /* pSetBkColor */
NULL, /* pSetBoundsRect */
@@ -2247,10 +2244,6 @@ static const struct gdi_dc_funcs xrender_funcs =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
NULL, /* pSetTextColor */
- NULL, /* pSetViewportExt */
- NULL, /* pSetViewportOrg */
- NULL, /* pSetWindowExt */
- NULL, /* pSetWindowOrg */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h
index ffa730f9105..13aac87887f 100644
--- a/include/wine/gdi_driver.h
+++ b/include/wine/gdi_driver.h
@@ -127,8 +127,6 @@ struct gdi_dc_funcs
BOOL (CDECL *pLineTo)(PHYSDEV,INT,INT);
BOOL (CDECL *pModifyWorldTransform)(PHYSDEV,const XFORM*,DWORD);
BOOL (CDECL *pMoveTo)(PHYSDEV,INT,INT);
- BOOL (CDECL *pOffsetViewportOrgEx)(PHYSDEV,INT,INT,POINT*);
- BOOL (CDECL *pOffsetWindowOrgEx)(PHYSDEV,INT,INT,POINT*);
BOOL (CDECL *pPaintRgn)(PHYSDEV,HRGN);
BOOL (CDECL *pPatBlt)(PHYSDEV,struct bitblt_coords*,DWORD);
BOOL (CDECL *pPie)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT);
@@ -149,7 +147,6 @@ struct gdi_dc_funcs
HBRUSH (CDECL *pSelectBrush)(PHYSDEV,HBRUSH,const struct brush_pattern*);
BOOL (CDECL *pSelectClipPath)(PHYSDEV,INT);
HFONT (CDECL *pSelectFont)(PHYSDEV,HFONT,UINT*);
- HPALETTE (CDECL *pSelectPalette)(PHYSDEV,HPALETTE,BOOL);
HPEN (CDECL *pSelectPen)(PHYSDEV,HPEN,const struct brush_pattern*);
COLORREF (CDECL *pSetBkColor)(PHYSDEV,COLORREF);
UINT (CDECL *pSetBoundsRect)(PHYSDEV,RECT*,UINT);
@@ -160,10 +157,6 @@ struct gdi_dc_funcs
BOOL (CDECL *pSetDeviceGammaRamp)(PHYSDEV,LPVOID);
COLORREF (CDECL *pSetPixel)(PHYSDEV,INT,INT,COLORREF);
COLORREF (CDECL *pSetTextColor)(PHYSDEV,COLORREF);
- BOOL (CDECL *pSetViewportExtEx)(PHYSDEV,INT,INT,SIZE*);
- BOOL (CDECL *pSetViewportOrgEx)(PHYSDEV,INT,INT,POINT*);
- BOOL (CDECL *pSetWindowExtEx)(PHYSDEV,INT,INT,SIZE*);
- BOOL (CDECL *pSetWindowOrgEx)(PHYSDEV,INT,INT,POINT*);
BOOL (CDECL *pSetWorldTransform)(PHYSDEV,const XFORM*);
INT (CDECL *pStartDoc)(PHYSDEV,const DOCINFOW*);
INT (CDECL *pStartPage)(PHYSDEV);
@@ -183,7 +176,7 @@ struct gdi_dc_funcs
};
/* increment this when you change the DC function table */
-#define WINE_GDI_DRIVER_VERSION 58
+#define WINE_GDI_DRIVER_VERSION 59
#define GDI_PRIORITY_NULL_DRV 0 /* null driver */
#define GDI_PRIORITY_FONT_DRV 100 /* any font driver */
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 22 ----------------------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 1 +
dlls/gdi32/gdidc.c | 17 +++++++++++++++++
dlls/gdi32/mapping.c | 26 --------------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
9 files changed, 22 insertions(+), 54 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 4db80ceb9cd..4e7602f1f38 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -349,28 +349,6 @@ BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD m
return ret;
}
-BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetWindowOrgEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
- EMRSETWINDOWORGEX emr;
- POINT prev;
- BOOL ret;
-
- GetWindowOrgEx( dev->hdc, &prev );
-
- emr.emr.iType = EMR_SETWINDOWORGEX;
- emr.emr.nSize = sizeof(emr);
- emr.ptlOrigin.x = prev.x + x;
- emr.ptlOrigin.y = prev.y + y;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pOffsetWindowOrgEx( next, x, y, pt );
- physDev->modifying_transform--;
- return ret;
-}
-
BOOL EMFDC_SetMapperFlags( DC_ATTR *dc_attr, DWORD flags )
{
EMRSETMAPPERFLAGS emr;
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 23a46ebfc55..7e289dd04c5 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -82,7 +82,6 @@ extern BOOL CDECL EMFDRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, U
extern BOOL CDECL EMFDRV_InvertRgn( PHYSDEV dev, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_LineTo( PHYSDEV dev, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_PatBlt( PHYSDEV dev, struct bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_Pie( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index c8d68fbc782..424f69cd9b4 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -97,7 +97,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_ModifyWorldTransform, /* pModifyWorldTransform */
NULL, /* pMoveTo */
NULL, /* pOffsetViewportOrgEx */
- EMFDRV_OffsetWindowOrgEx, /* pOffsetWindowOrgEx */
+ NULL, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
EMFDRV_PatBlt, /* pPatBlt */
EMFDRV_Pie, /* pPie */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index 700632c803d..489f4475736 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -68,6 +68,7 @@ extern BOOL METADC_LineTo( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_MoveTo( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_OffsetClipRgn( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_OffsetViewportOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL METADC_OffsetWindowOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_PaintRgn( HDC hdc, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL METADC_PatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
extern BOOL METADC_Pie( HDC hdc, INT left, INT top, INT right, INT bottom,
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index a0a07bb97be..5e6cd9dbb04 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -501,6 +501,23 @@ BOOL WINAPI SetWindowOrgEx( HDC hdc, INT x, INT y, POINT *point )
return NtGdiComputeXformCoefficients( hdc );
}
+/***********************************************************************
+ * OffsetWindowOrgEx (GDI32.@)
+ */
+BOOL WINAPI OffsetWindowOrgEx( HDC hdc, INT x, INT y, POINT *point )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_OffsetWindowOrgEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (point) *point = dc_attr->wnd_org;
+ dc_attr->wnd_org.x += x;
+ dc_attr->wnd_org.y += y;
+ if (dc_attr->emf && !EMFDC_SetWindowOrgEx( dc_attr, dc_attr->wnd_org.x,
+ dc_attr->wnd_org.y )) return FALSE;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetViewportExtEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 452d0597835..3dcaf3f430f 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -93,14 +93,6 @@ BOOL CDECL nulldrv_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
BOOL CDECL nulldrv_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (pt)
- *pt = dc->attr->wnd_org;
-
- dc->attr->wnd_org.x += x;
- dc->attr->wnd_org.y += y;
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -336,24 +328,6 @@ BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
}
-/***********************************************************************
- * OffsetWindowOrgEx (GDI32.@)
- */
-BOOL WINAPI OffsetWindowOrgEx( HDC hdc, INT x, INT y, LPPOINT pt )
-{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pOffsetWindowOrgEx );
- ret = physdev->funcs->pOffsetWindowOrgEx( physdev, x, y, pt );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* NtGdiScaleViewportExtEx (win32u.@)
*/
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index a9147fc9354..6b7b58070b4 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -120,9 +120,9 @@ BOOL METADC_OffsetViewportOrgEx( HDC hdc, INT x, INT y )
return metadc_param2( hdc, META_OFFSETVIEWPORTORG, x, y );
}
-BOOL CDECL MFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL METADC_OffsetWindowOrgEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_OFFSETWINDOWORG, x, y );
+ return metadc_param2( hdc, META_OFFSETWINDOWORG, x, y );
}
BOOL METADC_ScaleViewportExtEx( HDC hdc, INT x_num, INT x_denom, INT y_num, INT y_denom )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index dbdbc92bd11..e6c2a905df8 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -162,7 +162,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
NULL, /* pOffsetViewportOrgEx */
- MFDRV_OffsetWindowOrgEx, /* pOffsetWindowOrgEx */
+ NULL, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
NULL, /* pPie */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index 7650c8d54e9..01f4f618432 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -88,7 +88,6 @@ extern BOOL CDECL MFDRV_EndPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FillPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FillRgn( PHYSDEV dev, HRGN hrgn, HBRUSH hbrush ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FlattenPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_PolyBezier( PHYSDEV dev, const POINT* pt, DWORD count ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_PolyBezierTo( PHYSDEV dev, const POINT* pt, DWORD count ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_RestoreDC( PHYSDEV dev, INT level ) DECLSPEC_HIDDEN;
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 22 ----------------------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 1 +
dlls/gdi32/gdidc.c | 17 +++++++++++++++++
dlls/gdi32/mapping.c | 25 -------------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
9 files changed, 22 insertions(+), 53 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index e67380d7766..4db80ceb9cd 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -349,28 +349,6 @@ BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD m
return ret;
}
-BOOL CDECL EMFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
-{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetViewportOrgEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
- EMRSETVIEWPORTORGEX emr;
- POINT prev;
- BOOL ret;
-
- GetViewportOrgEx( dev->hdc, &prev );
-
- emr.emr.iType = EMR_SETVIEWPORTORGEX;
- emr.emr.nSize = sizeof(emr);
- emr.ptlOrigin.x = prev.x + x;
- emr.ptlOrigin.y = prev.y + y;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pOffsetViewportOrgEx( next, x, y, pt );
- physDev->modifying_transform--;
- return ret;
-}
-
BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
{
PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetWindowOrgEx );
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 3af92286d1f..23a46ebfc55 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -82,7 +82,6 @@ extern BOOL CDECL EMFDRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, U
extern BOOL CDECL EMFDRV_InvertRgn( PHYSDEV dev, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_LineTo( PHYSDEV dev, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_PatBlt( PHYSDEV dev, struct bitblt_coords *dst, DWORD rop ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_Pie( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 0b1d2fbb1cf..c8d68fbc782 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -96,7 +96,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_LineTo, /* pLineTo */
EMFDRV_ModifyWorldTransform, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- EMFDRV_OffsetViewportOrgEx, /* pOffsetViewportOrgEx */
+ NULL, /* pOffsetViewportOrgEx */
EMFDRV_OffsetWindowOrgEx, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
EMFDRV_PatBlt, /* pPatBlt */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index f3ce7b910fa..700632c803d 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -67,6 +67,7 @@ extern BOOL METADC_InvertRgn( HDC hdc, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL METADC_LineTo( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_MoveTo( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_OffsetClipRgn( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL METADC_OffsetViewportOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_PaintRgn( HDC hdc, HRGN hrgn ) DECLSPEC_HIDDEN;
extern BOOL METADC_PatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
extern BOOL METADC_Pie( HDC hdc, INT left, INT top, INT right, INT bottom,
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index f58f93d036d..a0a07bb97be 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -559,6 +559,23 @@ BOOL WINAPI SetViewportOrgEx( HDC hdc, INT x, INT y, POINT *point )
return NtGdiComputeXformCoefficients( hdc );
}
+/***********************************************************************
+ * OffsetViewportOrgEx (GDI32.@)
+ */
+BOOL WINAPI OffsetViewportOrgEx( HDC hdc, INT x, INT y, POINT *point )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_OffsetViewportOrgEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (point) *point = dc_attr->vport_org;
+ dc_attr->vport_org.x += x;
+ dc_attr->vport_org.y += y;
+ if (dc_attr->emf && !EMFDC_SetViewportOrgEx( dc_attr, dc_attr->vport_org.x,
+ dc_attr->vport_org.y )) return FALSE;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetWorldTransform (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 6c22349a371..452d0597835 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -88,13 +88,6 @@ static void MAPPING_FixIsotropic( DC * dc )
BOOL CDECL nulldrv_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (pt) *pt = dc->attr->vport_org;
-
- dc->attr->vport_org.x += x;
- dc->attr->vport_org.y += y;
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -343,24 +336,6 @@ BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
}
-/***********************************************************************
- * OffsetViewportOrgEx (GDI32.@)
- */
-BOOL WINAPI OffsetViewportOrgEx( HDC hdc, INT x, INT y, LPPOINT pt)
-{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pOffsetViewportOrgEx );
- ret = physdev->funcs->pOffsetViewportOrgEx( physdev, x, y, pt );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* OffsetWindowOrgEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index 9818dc0d9d9..a9147fc9354 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -115,9 +115,9 @@ BOOL METADC_SetWindowOrgEx( HDC hdc, INT x, INT y )
return metadc_param2( hdc, META_SETWINDOWORG, x, y );
}
-BOOL CDECL MFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL METADC_OffsetViewportOrgEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_OFFSETVIEWPORTORG, x, y );
+ return metadc_param2( hdc, META_OFFSETVIEWPORTORG, x, y );
}
BOOL CDECL MFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index d0c277f791d..dbdbc92bd11 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -161,7 +161,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pLineTo */
NULL, /* pModifyWorldTransform */
NULL, /* pMoveTo */
- MFDRV_OffsetViewportOrgEx, /* pOffsetViewportOrgEx */
+ NULL, /* pOffsetViewportOrgEx */
MFDRV_OffsetWindowOrgEx, /* pOffsetWindowOrgEx */
NULL, /* pPaintRgn */
NULL, /* pPatBlt */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index 2d218f89787..7650c8d54e9 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -88,7 +88,6 @@ extern BOOL CDECL MFDRV_EndPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FillPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FillRgn( PHYSDEV dev, HRGN hrgn, HBRUSH hbrush ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_FlattenPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_PolyBezier( PHYSDEV dev, const POINT* pt, DWORD count ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_PolyBezierTo( PHYSDEV dev, const POINT* pt, DWORD count ) DECLSPEC_HIDDEN;
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 12 ++----------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 2 ++
dlls/gdi32/gdidc.c | 17 +++++++++++++++++
dlls/gdi32/mapping.c | 26 --------------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
9 files changed, 25 insertions(+), 42 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 9eae745a350..e67380d7766 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -253,23 +253,15 @@ BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y )
return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
-BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL EMFDC_SetWindowOrgEx( DC_ATTR *dc_attr, INT x, INT y )
{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowOrgEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
EMRSETWINDOWORGEX emr;
- BOOL ret;
emr.emr.iType = EMR_SETWINDOWORGEX;
emr.emr.nSize = sizeof(emr);
emr.ptlOrigin.x = x;
emr.ptlOrigin.y = y;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pSetWindowOrgEx( next, x, y, pt );
- physDev->modifying_transform--;
- return ret;
+ return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
BOOL EMFDC_ScaleViewportExtEx( DC_ATTR *dc_attr, INT x_num, INT x_denom, INT y_num, INT y_denom )
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 1ae6f17410e..3af92286d1f 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -110,7 +110,6 @@ extern INT CDECL EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDes
BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
PHYSDEV devSrc, struct bitblt_coords *src, DWORD rop ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index e9746368aec..0b1d2fbb1cf 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -132,7 +132,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
NULL, /* pSetViewportExtEx */
NULL, /* pSetViewportOrgEx */
NULL, /* pSetWindowExtEx */
- EMFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
+ NULL, /* pSetWindowOrgEx */
EMFDRV_SetWorldTransform, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index 4fbb7a7571e..f3ce7b910fa 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -101,6 +101,7 @@ extern BOOL METADC_SetTextJustification( HDC hdc, INT extra, INT breaks ) DECLSP
extern BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetViewportOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetWindowExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL METADC_SetWindowOrgEx( HDC, INT x, INT y ) DECLSPEC_HIDDEN;
/* enhanced metafiles */
extern BOOL EMFDC_AbortPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN;
@@ -170,5 +171,6 @@ extern BOOL EMFDC_SetTextJustification( DC_ATTR *dc_attr, INT extra, INT breaks
extern BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetWindowExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL EMFDC_SetWindowOrgEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
#endif /* __WINE_GDI_PRIVATE_H */
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 786edc8ffea..f58f93d036d 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -484,6 +484,23 @@ BOOL WINAPI GetWindowOrgEx( HDC hdc, POINT *point )
return TRUE;
}
+/***********************************************************************
+ * SetWindowOrgEx (GDI32.@)
+ */
+BOOL WINAPI SetWindowOrgEx( HDC hdc, INT x, INT y, POINT *point )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_SetWindowOrgEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (dc_attr->emf && !EMFDC_SetWindowOrgEx( dc_attr, x, y )) return FALSE;
+
+ if (point) *point = dc_attr->wnd_org;
+ dc_attr->wnd_org.x = x;
+ dc_attr->wnd_org.y = y;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetViewportExtEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 5947bd1b8ab..6c22349a371 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -187,14 +187,6 @@ BOOL CDECL nulldrv_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
BOOL CDECL nulldrv_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (pt)
- *pt = dc->attr->wnd_org;
-
- dc->attr->wnd_org.x = x;
- dc->attr->wnd_org.y = y;
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -351,24 +343,6 @@ BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
}
-/***********************************************************************
- * SetWindowOrgEx (GDI32.@)
- */
-BOOL WINAPI SetWindowOrgEx( HDC hdc, INT x, INT y, LPPOINT pt )
-{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSetWindowOrgEx );
- ret = physdev->funcs->pSetWindowOrgEx( physdev, x, y, pt );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* OffsetViewportOrgEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index eb5ad29e421..9818dc0d9d9 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -110,9 +110,9 @@ BOOL METADC_SetWindowExtEx( HDC hdc, INT x, INT y )
return metadc_param2( hdc, META_SETWINDOWEXT, x, y );
}
-BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL METADC_SetWindowOrgEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_SETWINDOWORG, x, y );
+ return metadc_param2( hdc, META_SETWINDOWORG, x, y );
}
BOOL CDECL MFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index 8a095246d21..d0c277f791d 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -197,7 +197,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pSetViewportExtEx */
NULL, /* pSetViewportOrgEx */
NULL, /* pSetWindowExtEx */
- MFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
+ NULL, /* pSetWindowOrgEx */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
NULL, /* pStartPage */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index 4fb0093f956..2d218f89787 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -99,7 +99,6 @@ extern COLORREF CDECL MFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_H
extern COLORREF CDECL MFDRV_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
PHYSDEV devSrc, struct bitblt_coords *src, DWORD rop ) DECLSPEC_HIDDEN;
extern INT CDECL MFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDest, DWORD cx,
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 12 ++---------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 2 ++
dlls/gdi32/gdidc.c | 19 +++++++++++++++++
dlls/gdi32/mapping.c | 32 ----------------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
9 files changed, 27 insertions(+), 48 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 5c4440afc17..9eae745a350 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -231,23 +231,15 @@ BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT cx, INT cy )
return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
-BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
+BOOL EMFDC_SetWindowExtEx( DC_ATTR *dc_attr, INT cx, INT cy )
{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowExtEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
EMRSETWINDOWEXTEX emr;
- BOOL ret;
emr.emr.iType = EMR_SETWINDOWEXTEX;
emr.emr.nSize = sizeof(emr);
emr.szlExtent.cx = cx;
emr.szlExtent.cy = cy;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pSetWindowExtEx( next, cx, cy, size );
- physDev->modifying_transform--;
- return ret;
+ return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y )
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index a5e310787a1..1ae6f17410e 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -110,7 +110,6 @@ extern INT CDECL EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDes
BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index c70af9f7cf5..e9746368aec 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -131,7 +131,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_SetTextColor, /* pSetTextColor */
NULL, /* pSetViewportExtEx */
NULL, /* pSetViewportOrgEx */
- EMFDRV_SetWindowExtEx, /* pSetWindowExtEx */
+ NULL, /* pSetWindowExtEx */
EMFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
EMFDRV_SetWorldTransform, /* pSetWorldTransform */
NULL, /* pStartDoc */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index 5d6b308e85c..4fbb7a7571e 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -100,6 +100,7 @@ extern BOOL METADC_SetTextAlign( HDC hdc, UINT align ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetTextJustification( HDC hdc, INT extra, INT breaks ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetViewportOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL METADC_SetWindowExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
/* enhanced metafiles */
extern BOOL EMFDC_AbortPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN;
@@ -168,5 +169,6 @@ extern BOOL EMFDC_SetTextAlign( DC_ATTR *dc_attr, UINT align ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetTextJustification( DC_ATTR *dc_attr, INT extra, INT breaks ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL EMFDC_SetWindowExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
#endif /* __WINE_GDI_PRIVATE_H */
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 026fde6a028..786edc8ffea 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -454,6 +454,25 @@ BOOL WINAPI GetWindowExtEx( HDC hdc, SIZE *size )
return TRUE;
}
+/***********************************************************************
+ * SetWindowExtEx (GDI32.@)
+ */
+BOOL WINAPI SetWindowExtEx( HDC hdc, INT x, INT y, SIZE *size )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_SetWindowExtEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (dc_attr->emf && !EMFDC_SetWindowExtEx( dc_attr, x, y )) return FALSE;
+
+ if (size) *size = dc_attr->wnd_ext;
+ if (dc_attr->map_mode != MM_ISOTROPIC && dc_attr->map_mode != MM_ANISOTROPIC) return TRUE;
+ if (!x || !y) return FALSE;
+ dc_attr->wnd_ext.cx = x;
+ dc_attr->wnd_ext.cy = y;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetWindowOrgEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 65e47f8e998..5947bd1b8ab 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -182,20 +182,6 @@ BOOL CDECL nulldrv_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
BOOL CDECL nulldrv_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (size)
- *size = dc->attr->wnd_ext;
-
- if (dc->attr->map_mode != MM_ISOTROPIC && dc->attr->map_mode != MM_ANISOTROPIC) return TRUE;
- if (!cx || !cy) return FALSE;
- dc->attr->wnd_ext.cx = cx;
- dc->attr->wnd_ext.cy = cy;
- /* The API docs say that you should call SetWindowExtEx before
- SetViewportExtEx. This advice does not imply that Windows
- doesn't ensure the isotropic mapping after SetWindowExtEx! */
- if (dc->attr->map_mode == MM_ISOTROPIC) MAPPING_FixIsotropic( dc );
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -365,24 +351,6 @@ BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
}
-/***********************************************************************
- * SetWindowExtEx (GDI32.@)
- */
-BOOL WINAPI SetWindowExtEx( HDC hdc, INT x, INT y, LPSIZE size )
-{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSetWindowExtEx );
- ret = physdev->funcs->pSetWindowExtEx( physdev, x, y, size );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* SetWindowOrgEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index 16184129b7d..eb5ad29e421 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -105,9 +105,9 @@ BOOL METADC_SetViewportOrgEx( HDC hdc, INT x, INT y )
return metadc_param2( hdc, META_SETVIEWPORTORG, x, y );
}
-BOOL CDECL MFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size )
+BOOL METADC_SetWindowExtEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_SETWINDOWEXT, x, y );
+ return metadc_param2( hdc, META_SETWINDOWEXT, x, y );
}
BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index 959ea48c9e0..8a095246d21 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -196,7 +196,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
MFDRV_SetTextColor, /* pSetTextColor */
NULL, /* pSetViewportExtEx */
NULL, /* pSetViewportOrgEx */
- MFDRV_SetWindowExtEx, /* pSetWindowExtEx */
+ NULL, /* pSetWindowExtEx */
MFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
NULL, /* pSetWorldTransform */
NULL, /* pStartDoc */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index 4c9c5534597..4fb0093f956 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -99,7 +99,6 @@ extern COLORREF CDECL MFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_H
extern COLORREF CDECL MFDRV_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
PHYSDEV devSrc, struct bitblt_coords *src, DWORD rop ) DECLSPEC_HIDDEN;
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 12 ++----------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 2 ++
dlls/gdi32/gdidc.c | 17 +++++++++++++++++
dlls/gdi32/mapping.c | 26 --------------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
9 files changed, 25 insertions(+), 42 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 13d4a491faa..5c4440afc17 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -250,23 +250,15 @@ BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
return ret;
}
-BOOL CDECL EMFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y )
{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportOrgEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
EMRSETVIEWPORTORGEX emr;
- BOOL ret;
emr.emr.iType = EMR_SETVIEWPORTORGEX;
emr.emr.nSize = sizeof(emr);
emr.ptlOrigin.x = x;
emr.ptlOrigin.y = y;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pSetViewportOrgEx( next, x, y, pt );
- physDev->modifying_transform--;
- return ret;
+ return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index b77c538aa75..a5e310787a1 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -110,7 +110,6 @@ extern INT CDECL EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDes
BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 6918dd76c9b..c70af9f7cf5 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -130,7 +130,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_SetPixel, /* pSetPixel */
EMFDRV_SetTextColor, /* pSetTextColor */
NULL, /* pSetViewportExtEx */
- EMFDRV_SetViewportOrgEx, /* pSetViewportOrgEx */
+ NULL, /* pSetViewportOrgEx */
EMFDRV_SetWindowExtEx, /* pSetWindowExtEx */
EMFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
EMFDRV_SetWorldTransform, /* pSetWorldTransform */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index f74b45a6f98..5d6b308e85c 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -99,6 +99,7 @@ extern BOOL METADC_SetStretchBltMode( HDC hdc, INT mode ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetTextAlign( HDC hdc, UINT align ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetTextJustification( HDC hdc, INT extra, INT breaks ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL METADC_SetViewportOrgEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
/* enhanced metafiles */
extern BOOL EMFDC_AbortPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN;
@@ -166,5 +167,6 @@ extern BOOL EMFDC_SetStretchBltMode( DC_ATTR *dc_attr, INT mode ) DECLSPEC_HIDDE
extern BOOL EMFDC_SetTextAlign( DC_ATTR *dc_attr, UINT align ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetTextJustification( DC_ATTR *dc_attr, INT extra, INT breaks ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
+extern BOOL EMFDC_SetViewportOrgEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
#endif /* __WINE_GDI_PRIVATE_H */
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 52258a4f71f..026fde6a028 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -506,6 +506,23 @@ BOOL WINAPI GetViewportOrgEx( HDC hdc, POINT *point )
return TRUE;
}
+/***********************************************************************
+ * SetViewportOrgEx (GDI32.@)
+ */
+BOOL WINAPI SetViewportOrgEx( HDC hdc, INT x, INT y, POINT *point )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_SetViewportOrgEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (dc_attr->emf && !EMFDC_SetViewportOrgEx( dc_attr, x, y )) return FALSE;
+
+ if (point) *point = dc_attr->vport_org;
+ dc_attr->vport_org.x = x;
+ dc_attr->vport_org.y = y;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetWorldTransform (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 29eed8da843..65e47f8e998 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -177,14 +177,6 @@ BOOL CDECL nulldrv_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
BOOL CDECL nulldrv_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (pt)
- *pt = dc->attr->vport_org;
-
- dc->attr->vport_org.x = x;
- dc->attr->vport_org.y = y;
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -373,24 +365,6 @@ BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
}
-/***********************************************************************
- * SetViewportOrgEx (GDI32.@)
- */
-BOOL WINAPI SetViewportOrgEx( HDC hdc, INT x, INT y, LPPOINT pt )
-{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSetViewportOrgEx );
- ret = physdev->funcs->pSetViewportOrgEx( physdev, x, y, pt );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* SetWindowExtEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index 20d12a5ada6..16184129b7d 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -100,9 +100,9 @@ BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y )
return metadc_param2( hdc, META_SETVIEWPORTEXT, x, y );
}
-BOOL CDECL MFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
+BOOL METADC_SetViewportOrgEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_SETVIEWPORTORG, x, y );
+ return metadc_param2( hdc, META_SETVIEWPORTORG, x, y );
}
BOOL CDECL MFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index 7eec8eb9d70..959ea48c9e0 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -195,7 +195,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pSetPixel */
MFDRV_SetTextColor, /* pSetTextColor */
NULL, /* pSetViewportExtEx */
- MFDRV_SetViewportOrgEx, /* pSetViewportOrgEx */
+ NULL, /* pSetViewportOrgEx */
MFDRV_SetWindowExtEx, /* pSetWindowExtEx */
MFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
NULL, /* pSetWorldTransform */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index f478508bc4b..4c9c5534597 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -99,7 +99,6 @@ extern COLORREF CDECL MFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_H
extern COLORREF CDECL MFDRV_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_StretchBlt( PHYSDEV devDst, struct bitblt_coords *dst,
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/enhmfdrv/dc.c | 12 ++---------
dlls/gdi32/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/gdi_private.h | 2 ++
dlls/gdi32/gdidc.c | 19 ++++++++++++++++++
dlls/gdi32/mapping.c | 30 ++++++++--------------------
dlls/gdi32/mfdrv/dc.c | 4 ++--
dlls/gdi32/mfdrv/init.c | 2 +-
dlls/gdi32/mfdrv/metafiledrv.h | 1 -
include/ntgdi.h | 1 +
10 files changed, 36 insertions(+), 38 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c
index 6b843b5a641..13d4a491faa 100644
--- a/dlls/gdi32/enhmfdrv/dc.c
+++ b/dlls/gdi32/enhmfdrv/dc.c
@@ -220,23 +220,15 @@ BOOL EMFDC_SetMapMode( DC_ATTR *dc_attr, INT mode )
return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
-BOOL CDECL EMFDRV_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
+BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT cx, INT cy )
{
- PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportExtEx );
- EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
EMRSETVIEWPORTEXTEX emr;
- BOOL ret;
emr.emr.iType = EMR_SETVIEWPORTEXTEX;
emr.emr.nSize = sizeof(emr);
emr.szlExtent.cx = cx;
emr.szlExtent.cy = cy;
-
- if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE;
- physDev->modifying_transform++;
- ret = next->funcs->pSetViewportExtEx( next, cx, cy, size );
- physDev->modifying_transform--;
- return ret;
+ return EMFDRV_WriteRecord( dc_attr->emf, &emr.emr );
}
BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 5b764c523b5..b77c538aa75 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -110,7 +110,6 @@ extern INT CDECL EMFDRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDes
BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_SetViewportExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index 0b2a81b4184..6918dd76c9b 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -129,7 +129,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
NULL, /* pSetDeviceGammaRamp */
EMFDRV_SetPixel, /* pSetPixel */
EMFDRV_SetTextColor, /* pSetTextColor */
- EMFDRV_SetViewportExtEx, /* pSetViewportExtEx */
+ NULL, /* pSetViewportExtEx */
EMFDRV_SetViewportOrgEx, /* pSetViewportOrgEx */
EMFDRV_SetWindowExtEx, /* pSetWindowExtEx */
EMFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h
index 0d23b254128..f74b45a6f98 100644
--- a/dlls/gdi32/gdi_private.h
+++ b/dlls/gdi32/gdi_private.h
@@ -98,6 +98,7 @@ extern BOOL METADC_SetROP2( HDC hdc, INT rop ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetStretchBltMode( HDC hdc, INT mode ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetTextAlign( HDC hdc, UINT align ) DECLSPEC_HIDDEN;
extern BOOL METADC_SetTextJustification( HDC hdc, INT extra, INT breaks ) DECLSPEC_HIDDEN;
+extern BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y ) DECLSPEC_HIDDEN;
/* enhanced metafiles */
extern BOOL EMFDC_AbortPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN;
@@ -164,5 +165,6 @@ extern BOOL EMFDC_SetROP2( DC_ATTR *dc_attr, INT rop ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetStretchBltMode( DC_ATTR *dc_attr, INT mode ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetTextAlign( DC_ATTR *dc_attr, UINT align ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_SetTextJustification( DC_ATTR *dc_attr, INT extra, INT breaks ) DECLSPEC_HIDDEN;
+extern BOOL EMFDC_SetViewportExtEx( DC_ATTR *dc_attr, INT x, INT y ) DECLSPEC_HIDDEN;
#endif /* __WINE_GDI_PRIVATE_H */
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index fa947d56b79..52258a4f71f 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -476,6 +476,25 @@ BOOL WINAPI GetViewportExtEx( HDC hdc, SIZE *size )
return TRUE;
}
+/***********************************************************************
+ * SetViewportExtEx (GDI32.@)
+ */
+BOOL WINAPI SetViewportExtEx( HDC hdc, INT x, INT y, LPSIZE size )
+{
+ DC_ATTR *dc_attr;
+
+ if (is_meta_dc( hdc )) return METADC_SetViewportExtEx( hdc, x, y );
+ if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
+ if (dc_attr->emf && !EMFDC_SetViewportExtEx( dc_attr, x, y )) return FALSE;
+
+ if (size) *size = dc_attr->vport_ext;
+ if (dc_attr->map_mode != MM_ISOTROPIC && dc_attr->map_mode != MM_ANISOTROPIC) return TRUE;
+ if (!x || !y) return FALSE;
+ dc_attr->vport_ext.cx = x;
+ dc_attr->vport_ext.cy = y;
+ return NtGdiComputeXformCoefficients( hdc );
+}
+
/***********************************************************************
* GetViewportOrgEx (GDI32.@)
*/
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index d5d82c8aef9..29eed8da843 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -172,17 +172,6 @@ BOOL set_map_mode( DC *dc, int mode )
BOOL CDECL nulldrv_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size )
{
- DC *dc = get_nulldrv_dc( dev );
-
- if (size)
- *size = dc->attr->vport_ext;
-
- if (dc->attr->map_mode != MM_ISOTROPIC && dc->attr->map_mode != MM_ANISOTROPIC) return TRUE;
- if (!cx || !cy) return FALSE;
- dc->attr->vport_ext.cx = cx;
- dc->attr->vport_ext.cy = cy;
- if (dc->attr->map_mode == MM_ISOTROPIC) MAPPING_FixIsotropic( dc );
- DC_UpdateXforms( dc );
return TRUE;
}
@@ -370,20 +359,17 @@ void lp_to_dp( DC *dc, POINT *points, INT count )
/***********************************************************************
- * SetViewportExtEx (GDI32.@)
+ * NtGdiComputeXformCoefficients (win32u.@)
*/
-BOOL WINAPI SetViewportExtEx( HDC hdc, INT x, INT y, LPSIZE size )
+BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
{
- BOOL ret = FALSE;
- DC * dc = get_dc_ptr( hdc );
+ DC *dc;
- if (dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pSetViewportExtEx );
- ret = physdev->funcs->pSetViewportExtEx( physdev, x, y, size );
- release_dc_ptr( dc );
- }
- return ret;
+ if (!(dc = get_dc_ptr( hdc ))) return FALSE;
+ if (dc->attr->map_mode == MM_ISOTROPIC) MAPPING_FixIsotropic( dc );
+ DC_UpdateXforms( dc );
+ release_dc_ptr( dc );
+ return TRUE;
}
diff --git a/dlls/gdi32/mfdrv/dc.c b/dlls/gdi32/mfdrv/dc.c
index fe89b0b6d5e..20d12a5ada6 100644
--- a/dlls/gdi32/mfdrv/dc.c
+++ b/dlls/gdi32/mfdrv/dc.c
@@ -95,9 +95,9 @@ BOOL METADC_SetMapMode( HDC hdc, INT mode )
return metadc_param1( hdc, META_SETMAPMODE, mode );
}
-BOOL CDECL MFDRV_SetViewportExtEx( PHYSDEV dev, INT x, INT y, SIZE *size )
+BOOL METADC_SetViewportExtEx( HDC hdc, INT x, INT y )
{
- return MFDRV_MetaParam2( dev, META_SETVIEWPORTEXT, x, y );
+ return metadc_param2( hdc, META_SETVIEWPORTEXT, x, y );
}
BOOL CDECL MFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt )
diff --git a/dlls/gdi32/mfdrv/init.c b/dlls/gdi32/mfdrv/init.c
index 2406f737362..7eec8eb9d70 100644
--- a/dlls/gdi32/mfdrv/init.c
+++ b/dlls/gdi32/mfdrv/init.c
@@ -194,7 +194,7 @@ static const struct gdi_dc_funcs MFDRV_Funcs =
NULL, /* pSetDeviceGammaRamp */
NULL, /* pSetPixel */
MFDRV_SetTextColor, /* pSetTextColor */
- MFDRV_SetViewportExtEx, /* pSetViewportExtEx */
+ NULL, /* pSetViewportExtEx */
MFDRV_SetViewportOrgEx, /* pSetViewportOrgEx */
MFDRV_SetWindowExtEx, /* pSetWindowExtEx */
MFDRV_SetWindowOrgEx, /* pSetWindowOrgEx */
diff --git a/dlls/gdi32/mfdrv/metafiledrv.h b/dlls/gdi32/mfdrv/metafiledrv.h
index 74015babb30..f478508bc4b 100644
--- a/dlls/gdi32/mfdrv/metafiledrv.h
+++ b/dlls/gdi32/mfdrv/metafiledrv.h
@@ -99,7 +99,6 @@ extern COLORREF CDECL MFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_H
extern COLORREF CDECL MFDRV_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
extern COLORREF CDECL MFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
-extern BOOL CDECL MFDRV_SetViewportExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetWindowExtEx( PHYSDEV dev, INT x, INT y, SIZE *size ) DECLSPEC_HIDDEN;
extern BOOL CDECL MFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) DECLSPEC_HIDDEN;
diff --git a/include/ntgdi.h b/include/ntgdi.h
index d2b5576d316..e3600aa8c79 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -153,6 +153,7 @@ BOOL WINAPI NtGdiBeginPath( HDC hdc );
BOOL WINAPI NtGdiCancelDC( HDC hdc );
BOOL WINAPI NtGdiCloseFigure( HDC hdc );
INT WINAPI NtGdiCombineRgn( HRGN dest, HRGN src1, HRGN src2, INT mode );
+BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc );
HBITMAP WINAPI NtGdiCreateBitmap( INT width, INT height, UINT planes,
UINT bpp, const void *bits );
HBRUSH WINAPI NtGdiCreateHatchBrushInternal( INT style, COLORREF color, BOOL pen );
--
2.23.0
1
0
Aug. 10, 2021
From: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/gdi32/dc.c | 6 ++----
dlls/gdi32/mapping.c | 12 ++++++------
dlls/gdi32/ntgdi_private.h | 2 --
include/ntgdi.h | 2 ++
4 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 3cd3f72d4da..93decc58926 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -428,8 +428,8 @@ BOOL CDECL nulldrv_RestoreDC( PHYSDEV dev, INT level )
dc->attr->wnd_ext = dcs->attr->wnd_ext;
dc->attr->vport_org = dcs->attr->vport_org;
dc->attr->vport_ext = dcs->attr->vport_ext;
- dc->virtual_res = dcs->virtual_res;
- dc->virtual_size = dcs->virtual_size;
+ dc->attr->virtual_res = dcs->attr->virtual_res;
+ dc->attr->virtual_size = dcs->attr->virtual_size;
if (dcs->hClipRgn)
{
@@ -550,8 +550,6 @@ INT WINAPI NtGdiSaveDC( HDC hdc )
newdc->xformWorld2Vport = dc->xformWorld2Vport;
newdc->xformVport2World = dc->xformVport2World;
newdc->vport2WorldValid = dc->vport2WorldValid;
- newdc->virtual_res = dc->virtual_res;
- newdc->virtual_size = dc->virtual_size;
/* Get/SetDCState() don't change hVisRgn field ("Undoc. Windows" p.559). */
diff --git a/dlls/gdi32/mapping.c b/dlls/gdi32/mapping.c
index 0c440908beb..d5d82c8aef9 100644
--- a/dlls/gdi32/mapping.c
+++ b/dlls/gdi32/mapping.c
@@ -31,7 +31,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dc);
static SIZE get_dc_virtual_size( DC *dc )
{
- SIZE ret = dc->virtual_size;
+ SIZE ret = dc->attr->virtual_size;
if (!ret.cx)
{
@@ -43,7 +43,7 @@ static SIZE get_dc_virtual_size( DC *dc )
static SIZE get_dc_virtual_res( DC *dc )
{
- SIZE ret = dc->virtual_res;
+ SIZE ret = dc->attr->virtual_res;
if (!ret.cx)
{
@@ -630,10 +630,10 @@ BOOL WINAPI NtGdiSetVirtualResolution( HDC hdc, DWORD horz_res, DWORD vert_res,
dc = get_dc_ptr( hdc );
if (!dc) return FALSE;
- dc->virtual_res.cx = horz_res;
- dc->virtual_res.cy = vert_res;
- dc->virtual_size.cx = horz_size;
- dc->virtual_size.cy = vert_size;
+ dc->attr->virtual_res.cx = horz_res;
+ dc->attr->virtual_res.cy = vert_res;
+ dc->attr->virtual_size.cx = horz_size;
+ dc->attr->virtual_size.cy = vert_size;
release_dc_ptr( dc );
return TRUE;
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index de7ed17369f..62e6e5101ee 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -80,8 +80,6 @@ typedef struct tagDC
BOOL bounds_enabled:1; /* bounds tracking is enabled */
BOOL path_open:1; /* path is currently open (only for saved DCs) */
- SIZE virtual_res; /* Initially HORZRES,VERTRES. Changed by SetVirtualResolution */
- SIZE virtual_size; /* Initially HORZSIZE,VERTSIZE. Changed by SetVirtualResolution */
RECT device_rect; /* rectangle for the whole device */
int pixel_format; /* pixel format (for memory DCs) */
UINT aa_flags; /* anti-aliasing flags to pass to GetGlyphOutline for current font */
diff --git a/include/ntgdi.h b/include/ntgdi.h
index a1e9c123799..d2b5576d316 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -136,6 +136,8 @@ typedef struct DC_ATTR
SIZE wnd_ext; /* window extent */
POINT vport_org; /* viewport origin */
SIZE vport_ext; /* viewport extent */
+ SIZE virtual_res;
+ SIZE virtual_size;
void *emf;
} DC_ATTR;
--
2.23.0
1
0
[PATCH 1/2] user32/tests: Test delayed clipboard rendering after window destruction.
by Francois Gouget Aug. 10, 2021
by Francois Gouget Aug. 10, 2021
Aug. 10, 2021
If the window does not render the delayed-rendering clipboard formats
before it is destroyed, then they should be removed from the clipboard,
including the derived formats added by CloseClipboard().
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
Currently Wine fails to remove the derived formats (e.g. CF_TEXT in the
case of CF_UNICODETEXT), and ends up creating circular references in the
CloseClipboard() call. In turn this causes GetClipboardData() to go into
an infinite recursive loop and to crash. This usually happens in
explorer.exe on desktop environments that have a clipboard manager.
https://bugs.winehq.org/show_bug.cgi?id=51496
---
dlls/user32/tests/clipboard.c | 42 +++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/dlls/user32/tests/clipboard.c b/dlls/user32/tests/clipboard.c
index f351a6a29a8..8515ba5b88a 100644
--- a/dlls/user32/tests/clipboard.c
+++ b/dlls/user32/tests/clipboard.c
@@ -949,6 +949,48 @@ static void test_synthesized(void)
r = CloseClipboard();
ok(r, "gle %d\n", GetLastError());
DestroyWindow( hwnd );
+
+ /* Check what happens to the delayed rendering clipboard formats when the
+ * owner window is destroyed.
+ */
+ hwnd = CreateWindowA( "static", NULL, WS_POPUP, 0, 0, 10, 10, 0, 0, 0, NULL );
+ SetWindowLongPtrA( hwnd, GWLP_WNDPROC, (LONG_PTR)renderer_winproc );
+
+ r = open_clipboard(hwnd);
+ ok(r, "gle %d\n", GetLastError());
+ r = EmptyClipboard();
+ ok(r, "gle %d\n", GetLastError());
+ SetClipboardData( CF_UNICODETEXT, NULL );
+ r = CloseClipboard();
+ ok(r, "gle %d\n", GetLastError());
+
+ r = open_clipboard(NULL);
+ ok(r, "gle %d\n", GetLastError());
+ count = CountClipboardFormats();
+ ok(count == 4, "count %u\n", count );
+
+ DestroyWindow( hwnd );
+
+ /* CF_UNICODETEXT and derivatives, CF_TEXT + CF_OEMTEXT, should be gone */
+ count = CountClipboardFormats();
+ todo_wine ok(count == 1, "count %u\n", count );
+ cf = EnumClipboardFormats( 0 );
+ ok(cf == CF_LOCALE, "unexpected clipboard format %u\n", cf);
+
+ r = CloseClipboard();
+ ok(r, "gle %d\n", GetLastError());
+
+ r = open_clipboard(NULL);
+ ok(r, "gle %d\n", GetLastError());
+
+ SetLastError(0xdeadbeef);
+ data = (void*)1; if (broken(1)) /* FIXME Crashes in Wine */
+ data = GetClipboardData( CF_TEXT );
+ ok(GetLastError() == 0xdeadbeef, "unexpected last error %d\n", GetLastError());
+ todo_wine ok(!data, "GetClipboardData() should have returned NULL\n");
+
+ r = CloseClipboard();
+ ok(r, "gle %d\n", GetLastError());
}
static DWORD WINAPI clipboard_render_data_thread(void *param)
--
2.20.1
1
1