gdi32: Use NtGdiFillPath for FillPath.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2021-08-18 11:58:26 +02:00 committed by Alexandre Julliard
parent b47fb9081d
commit 6ce4ad23eb
4 changed files with 25 additions and 6 deletions

View file

@ -1180,7 +1180,16 @@ BOOL EMFDC_GradientFill( DC_ATTR *dc_attr, TRIVERTEX *vert_array, ULONG nvert,
*/
BOOL CDECL EMFDRV_FillPath( PHYSDEV dev )
{
return emfdrv_stroke_and_fill_path( dev, EMR_FILLPATH );
/* FIXME: update bound rect */
return TRUE;
}
/**********************************************************************
* EMFDC_FillPath
*/
BOOL EMFDC_FillPath( DC_ATTR *dc_attr )
{
return emfdrv_stroke_and_fill_path( dc_attr->emf, EMR_FILLPATH );
}
/**********************************************************************

View file

@ -147,6 +147,7 @@ extern BOOL EMFDC_ExtFloodFill( DC_ATTR *dc_attr, INT x, INT y, COLORREF color,
extern BOOL EMFDC_ExtSelectClipRgn( DC_ATTR *dc_attr, HRGN hrgn, INT mode ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_ExtTextOut( DC_ATTR *dc_attr, INT x, INT y, UINT flags, const RECT *rect,
const WCHAR *str, UINT count, const INT *dx ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_FillPath( DC_ATTR *dc_attr ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_FillRgn( DC_ATTR *dc_attr, HRGN hrgn, HBRUSH hbrush ) DECLSPEC_HIDDEN;
extern BOOL EMFDC_FrameRgn( DC_ATTR *dc_attr, HRGN hrgn, HBRUSH hbrush, INT width,
INT height ) DECLSPEC_HIDDEN;

View file

@ -1519,6 +1519,18 @@ BOOL WINAPI CloseFigure( HDC hdc )
return NtGdiCloseFigure( hdc );
}
/***********************************************************************
* FillPath (GDI32.@)
*/
BOOL WINAPI FillPath( HDC hdc )
{
DC_ATTR *dc_attr;
if (!(dc_attr = get_dc_attr( hdc ))) return FALSE;
if (dc_attr->emf && !EMFDC_FillPath( dc_attr )) return FALSE;
return NtGdiFillPath( hdc );
}
/***********************************************************************
* IntersectClipRect (GDI32.@)
*/

View file

@ -696,12 +696,9 @@ HRGN WINAPI PathToRegion(HDC hdc)
/***********************************************************************
* FillPath (GDI32.@)
*
* FIXME
* Check that SetLastError is being called correctly
* NtGdiFillPath (win32u.@)
*/
BOOL WINAPI FillPath(HDC hdc)
BOOL WINAPI NtGdiFillPath( HDC hdc )
{
BOOL ret = FALSE;
DC *dc = get_dc_ptr( hdc );