win32u: Use syscall interface for some palette 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-11 18:51:06 +02:00 committed by Alexandre Julliard
parent 21009822a3
commit fe96d12a89
7 changed files with 54 additions and 40 deletions

View File

@ -1077,9 +1077,7 @@ static struct unix_funcs unix_funcs =
NtGdiCreateCompatibleBitmap, NtGdiCreateCompatibleBitmap,
NtGdiCreateCompatibleDC, NtGdiCreateCompatibleDC,
NtGdiCreateDIBitmapInternal, NtGdiCreateDIBitmapInternal,
NtGdiCreateHalftonePalette,
NtGdiCreateMetafileDC, NtGdiCreateMetafileDC,
NtGdiCreatePaletteInternal,
NtGdiCreatePen, NtGdiCreatePen,
NtGdiDdDDICheckVidPnExclusiveOwnership, NtGdiDdDDICheckVidPnExclusiveOwnership,
NtGdiDdDDICloseAdapter, NtGdiDdDDICloseAdapter,
@ -1127,7 +1125,6 @@ static struct unix_funcs unix_funcs =
NtGdiGetGlyphOutline, NtGdiGetGlyphOutline,
NtGdiGetKerningPairs, NtGdiGetKerningPairs,
NtGdiGetNearestColor, NtGdiGetNearestColor,
NtGdiGetNearestPaletteIndex,
NtGdiGetOutlineTextMetricsInternalW, NtGdiGetOutlineTextMetricsInternalW,
NtGdiGetPath, NtGdiGetPath,
NtGdiGetPixel, NtGdiGetPixel,
@ -1135,7 +1132,6 @@ static struct unix_funcs unix_funcs =
NtGdiGetRasterizerCaps, NtGdiGetRasterizerCaps,
NtGdiGetRealizationInfo, NtGdiGetRealizationInfo,
NtGdiGetSpoolMessage, NtGdiGetSpoolMessage,
NtGdiGetSystemPaletteUse,
NtGdiGetTextCharsetInfo, NtGdiGetTextCharsetInfo,
NtGdiGetTextExtentExW, NtGdiGetTextExtentExW,
NtGdiGetTextFaceW, NtGdiGetTextFaceW,
@ -1173,7 +1169,6 @@ static struct unix_funcs unix_funcs =
NtGdiSetDIBitsToDeviceInternal, NtGdiSetDIBitsToDeviceInternal,
NtGdiSetDeviceGammaRamp, NtGdiSetDeviceGammaRamp,
NtGdiSetLayout, NtGdiSetLayout,
NtGdiSetMagicColors,
NtGdiSetPixel, NtGdiSetPixel,
NtGdiSetSystemPaletteUse, NtGdiSetSystemPaletteUse,
NtGdiStartDoc, NtGdiStartDoc,

View File

@ -42,7 +42,9 @@ static void * const syscalls[] =
NtGdiCreateDIBBrush, NtGdiCreateDIBBrush,
NtGdiCreateDIBSection, NtGdiCreateDIBSection,
NtGdiCreateEllipticRgn, NtGdiCreateEllipticRgn,
NtGdiCreateHalftonePalette,
NtGdiCreateHatchBrushInternal, NtGdiCreateHatchBrushInternal,
NtGdiCreatePaletteInternal,
NtGdiCreatePatternBrushInternal, NtGdiCreatePatternBrushInternal,
NtGdiCreateRectRgn, NtGdiCreateRectRgn,
NtGdiCreateRoundRectRgn, NtGdiCreateRoundRectRgn,
@ -60,8 +62,10 @@ static void * const syscalls[] =
NtGdiGetDCObject, NtGdiGetDCObject,
NtGdiGetFontFileData, NtGdiGetFontFileData,
NtGdiGetFontFileInfo, NtGdiGetFontFileInfo,
NtGdiGetNearestPaletteIndex,
NtGdiGetRegionData, NtGdiGetRegionData,
NtGdiGetRgnBox, NtGdiGetRgnBox,
NtGdiGetSystemPaletteUse,
NtGdiGetTransform, NtGdiGetTransform,
NtGdiHfontCreate, NtGdiHfontCreate,
NtGdiOffsetRgn, NtGdiOffsetRgn,
@ -74,6 +78,7 @@ static void * const syscalls[] =
NtGdiSetBitmapDimension, NtGdiSetBitmapDimension,
NtGdiSetBrushOrg, NtGdiSetBrushOrg,
NtGdiSetColorAdjustment, NtGdiSetColorAdjustment,
NtGdiSetMagicColors,
NtGdiSetMetaRgn, NtGdiSetMetaRgn,
NtGdiSetPixelFormat, NtGdiSetPixelFormat,
NtGdiSetRectRgn, NtGdiSetRectRgn,

View File

@ -151,12 +151,12 @@
@ stdcall -syscall NtGdiCreateDIBSection(long long long ptr long long long long ptr) @ stdcall -syscall NtGdiCreateDIBSection(long long long ptr long long long long ptr)
@ stdcall NtGdiCreateDIBitmapInternal(long long long long ptr ptr long long long long long) @ stdcall NtGdiCreateDIBitmapInternal(long long long long ptr ptr long long long long long)
@ stdcall -syscall NtGdiCreateEllipticRgn(long long long long) @ stdcall -syscall NtGdiCreateEllipticRgn(long long long long)
@ stdcall NtGdiCreateHalftonePalette(long) @ stdcall -syscall NtGdiCreateHalftonePalette(long)
@ stdcall -syscall NtGdiCreateHatchBrushInternal(long long long) @ stdcall -syscall NtGdiCreateHatchBrushInternal(long long long)
@ stdcall NtGdiCreateMetafileDC(long) @ stdcall NtGdiCreateMetafileDC(long)
@ stub NtGdiCreateOPMProtectedOutput @ stub NtGdiCreateOPMProtectedOutput
@ stub NtGdiCreateOPMProtectedOutputs @ stub NtGdiCreateOPMProtectedOutputs
@ stdcall NtGdiCreatePaletteInternal(ptr long) @ stdcall -syscall NtGdiCreatePaletteInternal(ptr long)
@ stdcall -syscall NtGdiCreatePatternBrushInternal(long long long) @ stdcall -syscall NtGdiCreatePatternBrushInternal(long long long)
@ stdcall NtGdiCreatePen(long long long long) @ stdcall NtGdiCreatePen(long long long long)
@ stdcall -syscall NtGdiCreateRectRgn(long long long long) @ stdcall -syscall NtGdiCreateRectRgn(long long long long)
@ -491,7 +491,7 @@
@ stub NtGdiGetMiterLimit @ stub NtGdiGetMiterLimit
@ stub NtGdiGetMonitorID @ stub NtGdiGetMonitorID
@ stdcall NtGdiGetNearestColor(long long) @ stdcall NtGdiGetNearestColor(long long)
@ stdcall NtGdiGetNearestPaletteIndex(long long) @ stdcall -syscall NtGdiGetNearestPaletteIndex(long long)
@ stub NtGdiGetNumberOfPhysicalMonitors @ stub NtGdiGetNumberOfPhysicalMonitors
@ stub NtGdiGetOPMInformation @ stub NtGdiGetOPMInformation
@ stub NtGdiGetOPMRandomNumber @ stub NtGdiGetOPMRandomNumber
@ -514,7 +514,7 @@
@ stub NtGdiGetStats @ stub NtGdiGetStats
@ stub NtGdiGetStringBitmapW @ stub NtGdiGetStringBitmapW
@ stub NtGdiGetSuggestedOPMProtectedOutputArraySize @ stub NtGdiGetSuggestedOPMProtectedOutputArraySize
@ stdcall NtGdiGetSystemPaletteUse(long) @ stdcall -syscall NtGdiGetSystemPaletteUse(long)
@ stdcall NtGdiGetTextCharsetInfo(long ptr long) @ stdcall NtGdiGetTextCharsetInfo(long ptr long)
@ stub NtGdiGetTextExtent @ stub NtGdiGetTextExtent
@ stdcall NtGdiGetTextExtentExW(long wstr long long ptr ptr ptr long) @ stdcall NtGdiGetTextExtentExW(long wstr long long ptr ptr ptr long)
@ -604,7 +604,7 @@
@ stub NtGdiSetIcmMode @ stub NtGdiSetIcmMode
@ stdcall NtGdiSetLayout(long long long) @ stdcall NtGdiSetLayout(long long long)
@ stub NtGdiSetLinkedUFIs @ stub NtGdiSetLinkedUFIs
@ stdcall NtGdiSetMagicColors(long long long) @ stdcall -syscall NtGdiSetMagicColors(long long long)
@ stdcall -syscall NtGdiSetMetaRgn(long) @ stdcall -syscall NtGdiSetMetaRgn(long)
@ stub NtGdiSetMiterLimit @ stub NtGdiSetMiterLimit
@ stub NtGdiSetOPMSigningKeyAndSequenceNumbers @ stub NtGdiSetOPMSigningKeyAndSequenceNumbers

View File

@ -62,9 +62,7 @@ struct unix_funcs
const void *bits, const BITMAPINFO *data, const void *bits, const BITMAPINFO *data,
UINT coloruse, UINT max_info, UINT max_bits, UINT coloruse, UINT max_info, UINT max_bits,
ULONG flags, HANDLE xform ); ULONG flags, HANDLE xform );
HPALETTE (WINAPI *pNtGdiCreateHalftonePalette)( HDC hdc );
HDC (WINAPI *pNtGdiCreateMetafileDC)( HDC hdc ); HDC (WINAPI *pNtGdiCreateMetafileDC)( HDC hdc );
HPALETTE (WINAPI *pNtGdiCreatePaletteInternal)( const LOGPALETTE *palette, UINT count );
HPEN (WINAPI *pNtGdiCreatePen)( INT style, INT width, COLORREF color, HBRUSH brush ); HPEN (WINAPI *pNtGdiCreatePen)( INT style, INT width, COLORREF color, HBRUSH brush );
NTSTATUS (WINAPI *pNtGdiDdDDICheckVidPnExclusiveOwnership)( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc ); NTSTATUS (WINAPI *pNtGdiDdDDICheckVidPnExclusiveOwnership)( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc );
NTSTATUS (WINAPI *pNtGdiDdDDICloseAdapter)( const D3DKMT_CLOSEADAPTER *desc ); NTSTATUS (WINAPI *pNtGdiDdDDICloseAdapter)( const D3DKMT_CLOSEADAPTER *desc );
@ -126,7 +124,6 @@ struct unix_funcs
BOOL ignore_rotation ); BOOL ignore_rotation );
DWORD (WINAPI *pNtGdiGetKerningPairs)( HDC hdc, DWORD count, KERNINGPAIR *kern_pair ); DWORD (WINAPI *pNtGdiGetKerningPairs)( HDC hdc, DWORD count, KERNINGPAIR *kern_pair );
COLORREF (WINAPI *pNtGdiGetNearestColor)( HDC hdc, COLORREF color ); COLORREF (WINAPI *pNtGdiGetNearestColor)( HDC hdc, COLORREF color );
UINT (WINAPI *pNtGdiGetNearestPaletteIndex)( HPALETTE hpalette, 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 ); INT (WINAPI *pNtGdiGetPath)( HDC hdc, POINT *points, BYTE *types, INT size );
@ -135,7 +132,6 @@ struct unix_funcs
BOOL (WINAPI *pNtGdiGetRasterizerCaps)( RASTERIZER_STATUS *status, UINT size ); BOOL (WINAPI *pNtGdiGetRasterizerCaps)( RASTERIZER_STATUS *status, UINT size );
BOOL (WINAPI *pNtGdiGetRealizationInfo)( HDC hdc, struct font_realization_info *info ); BOOL (WINAPI *pNtGdiGetRealizationInfo)( HDC hdc, struct font_realization_info *info );
DWORD (WINAPI *pNtGdiGetSpoolMessage)( void *ptr1, DWORD data2, void *ptr3, DWORD data4 ); DWORD (WINAPI *pNtGdiGetSpoolMessage)( void *ptr1, DWORD data2, void *ptr3, DWORD data4 );
UINT (WINAPI *pNtGdiGetSystemPaletteUse)( HDC hdc );
UINT (WINAPI *pNtGdiGetTextCharsetInfo)( HDC hdc, FONTSIGNATURE *fs, DWORD flags ); UINT (WINAPI *pNtGdiGetTextCharsetInfo)( HDC hdc, FONTSIGNATURE *fs, DWORD flags );
BOOL (WINAPI *pNtGdiGetTextExtentExW)( HDC hdc, const WCHAR *str, INT count, INT max_ext, BOOL (WINAPI *pNtGdiGetTextExtentExW)( HDC hdc, const WCHAR *str, INT count, INT max_ext,
INT *nfit, INT *dxs, SIZE *size, UINT flags ); INT *nfit, INT *dxs, SIZE *size, UINT flags );
@ -190,7 +186,6 @@ struct unix_funcs
BOOL xform_coords, HANDLE xform ); BOOL xform_coords, HANDLE xform );
BOOL (WINAPI *pNtGdiSetDeviceGammaRamp)( HDC hdc, void *ptr ); BOOL (WINAPI *pNtGdiSetDeviceGammaRamp)( HDC hdc, void *ptr );
DWORD (WINAPI *pNtGdiSetLayout)( HDC hdc, LONG wox, DWORD layout ); DWORD (WINAPI *pNtGdiSetLayout)( HDC hdc, LONG wox, DWORD layout );
BOOL (WINAPI *pNtGdiSetMagicColors)( HDC hdc, DWORD magic, ULONG index );
COLORREF (WINAPI *pNtGdiSetPixel)( HDC hdc, INT x, INT y, COLORREF color ); COLORREF (WINAPI *pNtGdiSetPixel)( HDC hdc, INT x, INT y, COLORREF color );
UINT (WINAPI *pNtGdiSetSystemPaletteUse)( HDC hdc, UINT use ); UINT (WINAPI *pNtGdiSetSystemPaletteUse)( HDC hdc, UINT use );
INT (WINAPI *pNtGdiStartDoc)( HDC hdc, const DOCINFOW *doc, BOOL *banding, INT job ); INT (WINAPI *pNtGdiStartDoc)( HDC hdc, const DOCINFOW *doc, BOOL *banding, INT job );

View File

@ -100,21 +100,11 @@ HBITMAP WINAPI NtGdiCreateDIBitmapInternal( HDC hdc, INT width, INT height, DWOR
coloruse, max_info, max_bits, flags, xform ); coloruse, max_info, max_bits, flags, xform );
} }
HPALETTE WINAPI NtGdiCreateHalftonePalette( HDC hdc )
{
return unix_funcs->pNtGdiCreateHalftonePalette( hdc );
}
HDC WINAPI NtGdiCreateMetafileDC( HDC hdc ) HDC WINAPI NtGdiCreateMetafileDC( HDC hdc )
{ {
return unix_funcs->pNtGdiCreateMetafileDC( hdc ); return unix_funcs->pNtGdiCreateMetafileDC( hdc );
} }
HPALETTE WINAPI NtGdiCreatePaletteInternal( const LOGPALETTE *palette, UINT count )
{
return unix_funcs->pNtGdiCreatePaletteInternal( palette, count );
}
HPEN WINAPI NtGdiCreatePen( INT style, INT width, COLORREF color, HBRUSH brush ) HPEN WINAPI NtGdiCreatePen( INT style, INT width, COLORREF color, HBRUSH brush )
{ {
return unix_funcs->pNtGdiCreatePen( style, width, color, brush ); return unix_funcs->pNtGdiCreatePen( style, width, color, brush );
@ -303,11 +293,6 @@ COLORREF WINAPI NtGdiGetNearestColor( HDC hdc, COLORREF color )
return unix_funcs->pNtGdiGetNearestColor( hdc, color ); return unix_funcs->pNtGdiGetNearestColor( hdc, color );
} }
UINT WINAPI NtGdiGetNearestPaletteIndex( HPALETTE hpalette, COLORREF color )
{
return unix_funcs->pNtGdiGetNearestPaletteIndex( hpalette, color );
}
UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData, UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData,
OUTLINETEXTMETRICW *otm, ULONG opts ) OUTLINETEXTMETRICW *otm, ULONG opts )
{ {
@ -344,11 +329,6 @@ DWORD WINAPI NtGdiGetSpoolMessage( void *ptr1, DWORD data2, void *ptr3, DWORD da
return unix_funcs->pNtGdiGetSpoolMessage( ptr1, data2, ptr3, data4 ); return unix_funcs->pNtGdiGetSpoolMessage( ptr1, data2, ptr3, data4 );
} }
UINT WINAPI NtGdiGetSystemPaletteUse( HDC hdc )
{
return unix_funcs->pNtGdiGetSystemPaletteUse( hdc );
}
UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags ) UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags )
{ {
return unix_funcs->pNtGdiGetTextCharsetInfo( hdc, fs, flags ); return unix_funcs->pNtGdiGetTextCharsetInfo( hdc, fs, flags );
@ -556,11 +536,6 @@ DWORD WINAPI NtGdiSetLayout( HDC hdc, LONG wox, DWORD layout )
return unix_funcs->pNtGdiSetLayout( hdc, wox, layout ); return unix_funcs->pNtGdiSetLayout( hdc, wox, layout );
} }
BOOL WINAPI NtGdiSetMagicColors( HDC hdc, DWORD magic, ULONG index )
{
return unix_funcs->pNtGdiSetMagicColors( hdc, magic, index );
}
COLORREF WINAPI NtGdiSetPixel( HDC hdc, INT x, INT y, COLORREF color ) COLORREF WINAPI NtGdiSetPixel( HDC hdc, INT x, INT y, COLORREF color )
{ {
return unix_funcs->pNtGdiSetPixel( hdc, x, y, color ); return unix_funcs->pNtGdiSetPixel( hdc, x, y, color );

View File

@ -472,6 +472,45 @@ NTSTATUS WINAPI wow64_NtGdiTransformPoints( UINT *args )
return NtGdiTransformPoints( hdc, points_in, points_out, count, mode ); return NtGdiTransformPoints( hdc, points_in, points_out, count, mode );
} }
NTSTATUS WINAPI wow64_NtGdiCreatePaletteInternal( UINT *args )
{
const LOGPALETTE *palette = get_ptr( &args );
UINT count = get_ulong( &args );
return HandleToUlong( NtGdiCreatePaletteInternal( palette, count ));
}
NTSTATUS WINAPI wow64_NtGdiCreateHalftonePalette( UINT *args )
{
HDC hdc = get_handle( &args );
return HandleToUlong( NtGdiCreateHalftonePalette( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiGetNearestPaletteIndex( UINT *args )
{
HPALETTE hpalette = get_handle( &args );
COLORREF color = get_ulong( &args );
return NtGdiGetNearestPaletteIndex( hpalette, color );
}
NTSTATUS WINAPI wow64_NtGdiGetSystemPaletteUse( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiGetSystemPaletteUse( hdc );
}
NTSTATUS WINAPI wow64_NtGdiSetMagicColors( UINT *args )
{
HDC hdc = get_handle( &args );
DWORD magic = get_ulong( &args );
ULONG index = get_ulong( &args );
return NtGdiSetMagicColors( hdc, magic, index );
}
NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args ) NTSTATUS WINAPI wow64_NtGdiFlush( UINT *args )
{ {
return NtGdiFlush(); return NtGdiFlush();

View File

@ -30,7 +30,9 @@
SYSCALL_ENTRY( NtGdiCreateDIBBrush ) \ SYSCALL_ENTRY( NtGdiCreateDIBBrush ) \
SYSCALL_ENTRY( NtGdiCreateDIBSection ) \ SYSCALL_ENTRY( NtGdiCreateDIBSection ) \
SYSCALL_ENTRY( NtGdiCreateEllipticRgn ) \ SYSCALL_ENTRY( NtGdiCreateEllipticRgn ) \
SYSCALL_ENTRY( NtGdiCreateHalftonePalette ) \
SYSCALL_ENTRY( NtGdiCreateHatchBrushInternal ) \ SYSCALL_ENTRY( NtGdiCreateHatchBrushInternal ) \
SYSCALL_ENTRY( NtGdiCreatePaletteInternal ) \
SYSCALL_ENTRY( NtGdiCreatePatternBrushInternal ) \ SYSCALL_ENTRY( NtGdiCreatePatternBrushInternal ) \
SYSCALL_ENTRY( NtGdiCreateRectRgn ) \ SYSCALL_ENTRY( NtGdiCreateRectRgn ) \
SYSCALL_ENTRY( NtGdiCreateRoundRectRgn ) \ SYSCALL_ENTRY( NtGdiCreateRoundRectRgn ) \
@ -48,8 +50,10 @@
SYSCALL_ENTRY( NtGdiGetDCObject ) \ SYSCALL_ENTRY( NtGdiGetDCObject ) \
SYSCALL_ENTRY( NtGdiGetFontFileData ) \ SYSCALL_ENTRY( NtGdiGetFontFileData ) \
SYSCALL_ENTRY( NtGdiGetFontFileInfo ) \ SYSCALL_ENTRY( NtGdiGetFontFileInfo ) \
SYSCALL_ENTRY( NtGdiGetNearestPaletteIndex ) \
SYSCALL_ENTRY( NtGdiGetRegionData ) \ SYSCALL_ENTRY( NtGdiGetRegionData ) \
SYSCALL_ENTRY( NtGdiGetRgnBox ) \ SYSCALL_ENTRY( NtGdiGetRgnBox ) \
SYSCALL_ENTRY( NtGdiGetSystemPaletteUse ) \
SYSCALL_ENTRY( NtGdiGetTransform ) \ SYSCALL_ENTRY( NtGdiGetTransform ) \
SYSCALL_ENTRY( NtGdiHfontCreate ) \ SYSCALL_ENTRY( NtGdiHfontCreate ) \
SYSCALL_ENTRY( NtGdiOffsetRgn ) \ SYSCALL_ENTRY( NtGdiOffsetRgn ) \
@ -62,6 +66,7 @@
SYSCALL_ENTRY( NtGdiSetBitmapDimension ) \ SYSCALL_ENTRY( NtGdiSetBitmapDimension ) \
SYSCALL_ENTRY( NtGdiSetBrushOrg ) \ SYSCALL_ENTRY( NtGdiSetBrushOrg ) \
SYSCALL_ENTRY( NtGdiSetColorAdjustment ) \ SYSCALL_ENTRY( NtGdiSetColorAdjustment ) \
SYSCALL_ENTRY( NtGdiSetMagicColors ) \
SYSCALL_ENTRY( NtGdiSetMetaRgn ) \ SYSCALL_ENTRY( NtGdiSetMetaRgn ) \
SYSCALL_ENTRY( NtGdiSetPixelFormat ) \ SYSCALL_ENTRY( NtGdiSetPixelFormat ) \
SYSCALL_ENTRY( NtGdiSetRectRgn ) \ SYSCALL_ENTRY( NtGdiSetRectRgn ) \