win32u: Use syscall interface for some path functions.

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-10-12 15:28:52 +02:00 committed by Alexandre Julliard
parent 3dea31ed06
commit 3d978e4c4e
7 changed files with 33 additions and 24 deletions

View File

@ -1107,7 +1107,6 @@ static struct unix_funcs unix_funcs =
NtGdiExtSelectClipRgn,
NtGdiFillPath,
NtGdiFillRgn,
NtGdiFlattenPath,
NtGdiFontIsLinked,
NtGdiFrameRgn,
NtGdiGetAndSetDCDword,
@ -1126,7 +1125,6 @@ static struct unix_funcs unix_funcs =
NtGdiGetKerningPairs,
NtGdiGetNearestColor,
NtGdiGetOutlineTextMetricsInternalW,
NtGdiGetPath,
NtGdiGetPixel,
NtGdiGetRandomRgn,
NtGdiGetRasterizerCaps,
@ -1147,7 +1145,6 @@ static struct unix_funcs unix_funcs =
NtGdiOffsetClipRgn,
NtGdiOpenDCW,
NtGdiPatBlt,
NtGdiPathToRegion,
NtGdiPlgBlt,
NtGdiPolyDraw,
NtGdiPolyPolyDraw,

View File

@ -55,6 +55,7 @@ static void * const syscalls[] =
NtGdiEqualRgn,
NtGdiExtCreateRegion,
NtGdiExtGetObjectW,
NtGdiFlattenPath,
NtGdiFlush,
NtGdiGetBitmapBits,
NtGdiGetBitmapDimension,
@ -63,12 +64,14 @@ static void * const syscalls[] =
NtGdiGetFontFileData,
NtGdiGetFontFileInfo,
NtGdiGetNearestPaletteIndex,
NtGdiGetPath,
NtGdiGetRegionData,
NtGdiGetRgnBox,
NtGdiGetSystemPaletteUse,
NtGdiGetTransform,
NtGdiHfontCreate,
NtGdiOffsetRgn,
NtGdiPathToRegion,
NtGdiPtInRegion,
NtGdiRectInRegion,
NtGdiRemoveFontMemResourceEx,

View File

@ -435,7 +435,7 @@
@ stub NtGdiFONTOBJ_vGetInfo
@ stdcall NtGdiFillPath(long)
@ stdcall NtGdiFillRgn(long long long)
@ stdcall NtGdiFlattenPath(long)
@ stdcall -syscall NtGdiFlattenPath(long)
@ stdcall -syscall NtGdiFlush()
@ stdcall NtGdiFontIsLinked(long)
@ stub NtGdiForceUFIMapping
@ -497,7 +497,7 @@
@ stub NtGdiGetOPMRandomNumber
@ stub NtGdiGetObjectBitmapHandle
@ stdcall NtGdiGetOutlineTextMetricsInternalW(long long ptr long)
@ stdcall NtGdiGetPath(long ptr ptr long)
@ stdcall -syscall NtGdiGetPath(long ptr ptr long)
@ stub NtGdiGetPerBandInfo
@ stub NtGdiGetPhysicalMonitorDescription
@ stub NtGdiGetPhysicalMonitors
@ -554,7 +554,7 @@
@ stub NtGdiPATHOBJ_vEnumStartClipLines
@ stub NtGdiPATHOBJ_vGetBounds
@ stdcall NtGdiPatBlt(long long long long long long)
@ stdcall NtGdiPathToRegion(long)
@ stdcall -syscall NtGdiPathToRegion(long)
@ stdcall NtGdiPlgBlt(long ptr long long long long long long long long long)
@ stdcall NtGdiPolyDraw(long ptr ptr long)
@ stub NtGdiPolyPatBlt

View File

@ -99,7 +99,6 @@ struct unix_funcs
INT (WINAPI *pNtGdiExtSelectClipRgn)( HDC hdc, HRGN region, INT mode );
BOOL (WINAPI *pNtGdiFillPath)( HDC hdc );
BOOL (WINAPI *pNtGdiFillRgn)( HDC hdc, HRGN hrgn, HBRUSH hbrush );
BOOL (WINAPI *pNtGdiFlattenPath)( HDC hdc );
BOOL (WINAPI *pNtGdiFontIsLinked)( HDC hdc );
BOOL (WINAPI *pNtGdiFrameRgn)( HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height );
BOOL (WINAPI *pNtGdiGetAndSetDCDword)( HDC hdc, UINT method, DWORD value, DWORD *result );
@ -126,7 +125,6 @@ struct unix_funcs
COLORREF (WINAPI *pNtGdiGetNearestColor)( HDC hdc, COLORREF color );
UINT (WINAPI *pNtGdiGetOutlineTextMetricsInternalW)( HDC hdc, UINT cbData,
OUTLINETEXTMETRICW *otm, ULONG opts );
INT (WINAPI *pNtGdiGetPath)( HDC hdc, POINT *points, BYTE *types, INT size );
COLORREF (WINAPI *pNtGdiGetPixel)( HDC hdc, INT x, INT y );
INT (WINAPI *pNtGdiGetRandomRgn)( HDC hdc, HRGN region, INT code );
BOOL (WINAPI *pNtGdiGetRasterizerCaps)( RASTERIZER_STATUS *status, UINT size );
@ -153,7 +151,6 @@ struct unix_funcs
UNICODE_STRING *output, ULONG type, BOOL is_display,
HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev );
BOOL (WINAPI *pNtGdiPatBlt)( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
HRGN (WINAPI *pNtGdiPathToRegion)( HDC hdc );
BOOL (WINAPI *pNtGdiPlgBlt)( HDC hdc, const POINT *point, HDC hdc_src, INT x_src, INT y_src,
INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
DWORD bk_color );

View File

@ -195,11 +195,6 @@ BOOL WINAPI NtGdiFillRgn( HDC hdc, HRGN hrgn, HBRUSH hbrush )
return unix_funcs->pNtGdiFillRgn( hdc, hrgn, hbrush );
}
BOOL WINAPI NtGdiFlattenPath( HDC hdc )
{
return unix_funcs->pNtGdiFlattenPath( hdc );
}
BOOL WINAPI NtGdiFontIsLinked( HDC hdc )
{
return unix_funcs->pNtGdiFontIsLinked( hdc );
@ -299,11 +294,6 @@ UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData,
return unix_funcs->pNtGdiGetOutlineTextMetricsInternalW( hdc, cbData, otm, opts );
}
INT WINAPI NtGdiGetPath( HDC hdc, POINT *points, BYTE *types, INT size )
{
return unix_funcs->pNtGdiGetPath( hdc, points, types, size );
}
COLORREF WINAPI NtGdiGetPixel( HDC hdc, INT x, INT y )
{
return unix_funcs->pNtGdiGetPixel( hdc, x, y );
@ -412,11 +402,6 @@ BOOL WINAPI NtGdiPatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWOR
return unix_funcs->pNtGdiPatBlt( hdc, left, top, width, height, rop );
}
HRGN WINAPI NtGdiPathToRegion( HDC hdc )
{
return unix_funcs->pNtGdiPathToRegion( hdc );
}
BOOL WINAPI NtGdiPlgBlt( HDC hdc, const POINT *point, HDC hdc_src, INT x_src, INT y_src,
INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
DWORD bk_color )

View File

@ -511,6 +511,30 @@ NTSTATUS WINAPI wow64_NtGdiSetMagicColors( UINT *args )
return NtGdiSetMagicColors( hdc, magic, index );
}
NTSTATUS WINAPI wow64_NtGdiGetPath( UINT *args )
{
HDC hdc = get_handle( &args );
POINT *points = get_ptr( &args );
BYTE *types = get_ptr( &args );
INT size = get_ulong( &args );
return NtGdiGetPath( hdc, points, types, size );
}
NTSTATUS WINAPI wow64_NtGdiPathToRegion( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiPathToRegion( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiFlattenPath( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiFlattenPath( hdc );
}
NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args )
{
return NtGdiFlush();

View File

@ -43,6 +43,7 @@
SYSCALL_ENTRY( NtGdiEqualRgn ) \
SYSCALL_ENTRY( NtGdiExtCreateRegion ) \
SYSCALL_ENTRY( NtGdiExtGetObjectW ) \
SYSCALL_ENTRY( NtGdiFlattenPath ) \
SYSCALL_ENTRY( NtGdiFlush ) \
SYSCALL_ENTRY( NtGdiGetBitmapBits ) \
SYSCALL_ENTRY( NtGdiGetBitmapDimension ) \
@ -51,12 +52,14 @@
SYSCALL_ENTRY( NtGdiGetFontFileData ) \
SYSCALL_ENTRY( NtGdiGetFontFileInfo ) \
SYSCALL_ENTRY( NtGdiGetNearestPaletteIndex ) \
SYSCALL_ENTRY( NtGdiGetPath ) \
SYSCALL_ENTRY( NtGdiGetRegionData ) \
SYSCALL_ENTRY( NtGdiGetRgnBox ) \
SYSCALL_ENTRY( NtGdiGetSystemPaletteUse ) \
SYSCALL_ENTRY( NtGdiGetTransform ) \
SYSCALL_ENTRY( NtGdiHfontCreate ) \
SYSCALL_ENTRY( NtGdiOffsetRgn ) \
SYSCALL_ENTRY( NtGdiPathToRegion ) \
SYSCALL_ENTRY( NtGdiPtInRegion ) \
SYSCALL_ENTRY( NtGdiRectInRegion ) \
SYSCALL_ENTRY( NtGdiRemoveFontMemResourceEx ) \