Jacek Caban : gdi32: Use NtGdiGetRandomRgn for GetMetaRgn.
Alexandre Julliard
julliard at winehq.org
Thu Sep 2 15:45:30 CDT 2021
Module: wine
Branch: master
Commit: b096da8a50210cb437376a2d65374e310d53eeff
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b096da8a50210cb437376a2d65374e310d53eeff
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Sep 2 14:14:08 2021 +0200
gdi32: Use NtGdiGetRandomRgn for GetMetaRgn.
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/clipping.c | 26 ++------------------------
dlls/gdi32/gdidc.c | 8 ++++++++
2 files changed, 10 insertions(+), 24 deletions(-)
diff --git a/dlls/gdi32/clipping.c b/dlls/gdi32/clipping.c
index 4f22e6f3cde..02247f03620 100644
--- a/dlls/gdi32/clipping.c
+++ b/dlls/gdi32/clipping.c
@@ -392,28 +392,6 @@ INT WINAPI NtGdiGetAppClipBox( HDC hdc, RECT *rect )
}
-/***********************************************************************
- * GetMetaRgn (GDI32.@)
- */
-INT WINAPI GetMetaRgn( HDC hdc, HRGN hRgn )
-{
- INT ret = 0;
- DC * dc = get_dc_ptr( hdc );
-
- if (dc)
- {
- if (dc->hMetaRgn && NtGdiCombineRgn( hRgn, dc->hMetaRgn, 0, RGN_COPY ) != ERROR)
- {
- ret = 1;
- if (dc->attr->layout & LAYOUT_RTL)
- mirror_region( hRgn, hRgn, dc->attr->vis_rect.right - dc->attr->vis_rect.left );
- }
- release_dc_ptr( dc );
- }
- return ret;
-}
-
-
/***********************************************************************
* NtGdiGetRandomRgn (win32u.@)
*
@@ -442,8 +420,8 @@ INT WINAPI NtGdiGetRandomRgn( HDC hDC, HRGN hRgn, INT iCode )
else if (!NtGdiCombineRgn( hRgn, dc->hClipRgn, 0, RGN_COPY )) ret = -1;
break;
case 2:
- if (dc->hMetaRgn) NtGdiCombineRgn( hRgn, dc->hMetaRgn, 0, RGN_COPY );
- else ret = 0;
+ if (!dc->hMetaRgn) ret = 0;
+ else if (!NtGdiCombineRgn( hRgn, dc->hMetaRgn, 0, RGN_COPY )) ret = -1;
break;
case 3:
if (dc->hClipRgn && dc->hMetaRgn) NtGdiCombineRgn( hRgn, dc->hClipRgn, dc->hMetaRgn, RGN_AND );
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 6f534dce061..f175d8f59bc 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -1641,6 +1641,14 @@ INT WINAPI GetClipRgn( HDC hdc, HRGN rgn )
return NtGdiGetRandomRgn( hdc, rgn, NTGDI_RGN_MIRROR_RTL | 1 );
}
+/***********************************************************************
+ * GetMetaRgn (GDI32.@)
+ */
+INT WINAPI GetMetaRgn( HDC hdc, HRGN rgn )
+{
+ return NtGdiGetRandomRgn( hdc, rgn, NTGDI_RGN_MIRROR_RTL | 2 );
+}
+
/***********************************************************************
* IntersectClipRect (GDI32.@)
*/
More information about the wine-cvs
mailing list