Jacek Caban : gdi32: Directly handle EMFs in GdiComment.
Alexandre Julliard
julliard at winehq.org
Tue Aug 17 16:26:52 CDT 2021
Module: wine
Branch: master
Commit: 2ef5b9720f9867371a5dcc6069d819cc93e3929d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2ef5b9720f9867371a5dcc6069d819cc93e3929d
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Aug 17 11:39:46 2021 +0200
gdi32: Directly handle EMFs in GdiComment.
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/enhmfdrv/enhmetafiledrv.h | 1 -
dlls/gdi32/enhmfdrv/init.c | 2 +-
dlls/gdi32/enhmfdrv/objects.c | 11 +++++++----
dlls/gdi32/gdiobj.c | 19 -------------------
4 files changed, 8 insertions(+), 25 deletions(-)
diff --git a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
index 3e24af9f0da..fb108c15be5 100644
--- a/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
+++ b/dlls/gdi32/enhmfdrv/enhmetafiledrv.h
@@ -73,7 +73,6 @@ extern BOOL CDECL EMFDRV_FillPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_FillRgn( PHYSDEV dev, HRGN hrgn, HBRUSH hbrush ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_FlattenPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_FrameRgn( PHYSDEV dev, HRGN hrgn, HBRUSH hbrush, INT width, INT height ) DECLSPEC_HIDDEN;
-extern BOOL CDECL EMFDRV_GdiComment( PHYSDEV dev, UINT bytes, const BYTE *buffer ) DECLSPEC_HIDDEN;
extern INT CDECL EMFDRV_GetDeviceCaps( PHYSDEV dev, INT cap ) DECLSPEC_HIDDEN;
extern BOOL CDECL EMFDRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, ULONG nvert,
void *grad_array, ULONG ngrad, ULONG mode ) DECLSPEC_HIDDEN;
diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c
index bdae8005e90..4bd9d831a53 100644
--- a/dlls/gdi32/enhmfdrv/init.c
+++ b/dlls/gdi32/enhmfdrv/init.c
@@ -66,7 +66,7 @@ static const struct gdi_dc_funcs emfdrv_driver =
EMFDRV_FlattenPath, /* pFlattenPath */
NULL, /* pFontIsLinked */
EMFDRV_FrameRgn, /* pFrameRgn */
- EMFDRV_GdiComment, /* pGdiComment */
+ NULL, /* pGdiComment */
NULL, /* pGetBoundsRect */
NULL, /* pGetCharABCWidths */
NULL, /* pGetCharABCWidthsI */
diff --git a/dlls/gdi32/enhmfdrv/objects.c b/dlls/gdi32/enhmfdrv/objects.c
index 14632dc7b23..1e2cb52dc6a 100644
--- a/dlls/gdi32/enhmfdrv/objects.c
+++ b/dlls/gdi32/enhmfdrv/objects.c
@@ -510,15 +510,18 @@ COLORREF CDECL EMFDRV_SetDCPenColor( PHYSDEV dev, COLORREF color )
return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID;
}
-/******************************************************************
- * EMFDRV_GdiComment
+/*******************************************************************
+ * GdiComment (GDI32.@)
*/
-BOOL CDECL EMFDRV_GdiComment(PHYSDEV dev, UINT bytes, const BYTE *buffer)
+BOOL WINAPI GdiComment( HDC hdc, UINT bytes, const BYTE *buffer )
{
+ DC_ATTR *dc_attr;
EMRGDICOMMENT *emr;
UINT total, rounded_size;
BOOL ret;
+ if (!(dc_attr = get_dc_attr( hdc )) || !dc_attr->emf) return FALSE;
+
rounded_size = (bytes+3) & ~3;
total = offsetof(EMRGDICOMMENT,Data) + rounded_size;
@@ -529,7 +532,7 @@ BOOL CDECL EMFDRV_GdiComment(PHYSDEV dev, UINT bytes, const BYTE *buffer)
memset(&emr->Data[bytes], 0, rounded_size - bytes);
memcpy(&emr->Data[0], buffer, bytes);
- ret = EMFDRV_WriteRecord( dev, &emr->emr );
+ ret = EMFDRV_WriteRecord( dc_attr->emf, &emr->emr );
HeapFree(GetProcessHeap(), 0, emr);
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 8435c009716..da428d149ce 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -1217,25 +1217,6 @@ BOOL WINAPI GetColorAdjustment(HDC hdc, LPCOLORADJUSTMENT lpca)
return FALSE;
}
-/*******************************************************************
- * GdiComment [GDI32.@]
- *
- *
- */
-BOOL WINAPI GdiComment(HDC hdc, UINT cbSize, const BYTE *lpData)
-{
- DC *dc = get_dc_ptr(hdc);
- BOOL ret = FALSE;
-
- if(dc)
- {
- PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGdiComment );
- ret = physdev->funcs->pGdiComment( physdev, cbSize, lpData );
- release_dc_ptr( dc );
- }
- return ret;
-}
-
/*******************************************************************
* SetColorAdjustment [GDI32.@]
*
More information about the wine-cvs
mailing list