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

View File

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

View File

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

View File

@ -99,7 +99,6 @@ struct unix_funcs
INT (WINAPI *pNtGdiExtSelectClipRgn)( HDC hdc, HRGN region, INT mode ); INT (WINAPI *pNtGdiExtSelectClipRgn)( HDC hdc, HRGN region, INT mode );
BOOL (WINAPI *pNtGdiFillPath)( HDC hdc ); BOOL (WINAPI *pNtGdiFillPath)( HDC hdc );
BOOL (WINAPI *pNtGdiFillRgn)( HDC hdc, HRGN hrgn, HBRUSH hbrush ); BOOL (WINAPI *pNtGdiFillRgn)( HDC hdc, HRGN hrgn, HBRUSH hbrush );
BOOL (WINAPI *pNtGdiFlattenPath)( HDC hdc );
BOOL (WINAPI *pNtGdiFontIsLinked)( HDC hdc ); BOOL (WINAPI *pNtGdiFontIsLinked)( HDC hdc );
BOOL (WINAPI *pNtGdiFrameRgn)( HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height ); BOOL (WINAPI *pNtGdiFrameRgn)( HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height );
BOOL (WINAPI *pNtGdiGetAndSetDCDword)( HDC hdc, UINT method, DWORD value, DWORD *result ); 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 ); COLORREF (WINAPI *pNtGdiGetNearestColor)( HDC hdc, COLORREF color );
UINT (WINAPI *pNtGdiGetOutlineTextMetricsInternalW)( HDC hdc, UINT cbData, UINT (WINAPI *pNtGdiGetOutlineTextMetricsInternalW)( HDC hdc, UINT cbData,
OUTLINETEXTMETRICW *otm, ULONG opts ); OUTLINETEXTMETRICW *otm, ULONG opts );
INT (WINAPI *pNtGdiGetPath)( HDC hdc, POINT *points, BYTE *types, INT size );
COLORREF (WINAPI *pNtGdiGetPixel)( HDC hdc, INT x, INT y ); COLORREF (WINAPI *pNtGdiGetPixel)( HDC hdc, INT x, INT y );
INT (WINAPI *pNtGdiGetRandomRgn)( HDC hdc, HRGN region, INT code ); INT (WINAPI *pNtGdiGetRandomRgn)( HDC hdc, HRGN region, INT code );
BOOL (WINAPI *pNtGdiGetRasterizerCaps)( RASTERIZER_STATUS *status, UINT size ); BOOL (WINAPI *pNtGdiGetRasterizerCaps)( RASTERIZER_STATUS *status, UINT size );
@ -153,7 +151,6 @@ struct unix_funcs
UNICODE_STRING *output, ULONG type, BOOL is_display, UNICODE_STRING *output, ULONG type, BOOL is_display,
HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev ); HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev );
BOOL (WINAPI *pNtGdiPatBlt)( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop ); 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, 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, INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
DWORD bk_color ); 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 ); return unix_funcs->pNtGdiFillRgn( hdc, hrgn, hbrush );
} }
BOOL WINAPI NtGdiFlattenPath( HDC hdc )
{
return unix_funcs->pNtGdiFlattenPath( hdc );
}
BOOL WINAPI NtGdiFontIsLinked( HDC hdc ) BOOL WINAPI NtGdiFontIsLinked( HDC hdc )
{ {
return unix_funcs->pNtGdiFontIsLinked( 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 ); 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 ) COLORREF WINAPI NtGdiGetPixel( HDC hdc, INT x, INT y )
{ {
return unix_funcs->pNtGdiGetPixel( hdc, x, 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 ); 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, 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, INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
DWORD bk_color ) DWORD bk_color )

View File

@ -511,6 +511,30 @@ NTSTATUS WINAPI wow64_NtGdiSetMagicColors( UINT *args )
return NtGdiSetMagicColors( hdc, magic, index ); 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 ) NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args )
{ {
return NtGdiFlush(); return NtGdiFlush();

View File

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