Commit cd09a224 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

win32u: Use syscall interface for bitblt functions.

parent 0c73b717
......@@ -1030,9 +1030,6 @@ BOOL WINAPI NtGdiSetColorAdjustment( HDC hdc, const COLORADJUSTMENT *ca )
static struct unix_funcs unix_funcs =
{
NtGdiAlphaBlend,
NtGdiBitBlt,
NtGdiComputeXformCoefficients,
NtGdiCreateCompatibleBitmap,
NtGdiCreateCompatibleDC,
NtGdiCreateDIBitmapInternal,
......@@ -1079,18 +1076,12 @@ static struct unix_funcs unix_funcs =
NtGdiGetTextFaceW,
NtGdiGetTextMetricsW,
NtGdiIntersectClipRect,
NtGdiMaskBlt,
NtGdiModifyWorldTransform,
NtGdiOffsetClipRgn,
NtGdiPatBlt,
NtGdiPlgBlt,
NtGdiPtVisible,
NtGdiRectVisible,
NtGdiResetDC,
NtGdiResizePalette,
NtGdiRestoreDC,
NtGdiScaleViewportExtEx,
NtGdiScaleWindowExtEx,
NtGdiSelectBitmap,
NtGdiSelectBrush,
NtGdiSelectFont,
......@@ -1100,9 +1091,7 @@ static struct unix_funcs unix_funcs =
NtGdiSetDeviceGammaRamp,
NtGdiSetLayout,
NtGdiSetSystemPaletteUse,
NtGdiStretchBlt,
NtGdiStretchDIBitsInternal,
NtGdiTransparentBlt,
NtGdiUnrealizeObject,
NtGdiUpdateColors,
NtUserDrawCaptionTemp,
......
......@@ -40,11 +40,14 @@ static void * const syscalls[] =
NtGdiAbortPath,
NtGdiAddFontMemResourceEx,
NtGdiAddFontResourceW,
NtGdiAlphaBlend,
NtGdiAngleArc,
NtGdiArcInternal,
NtGdiBeginPath,
NtGdiBitBlt,
NtGdiCloseFigure,
NtGdiCombineRgn,
NtGdiComputeXformCoefficients,
NtGdiCreateBitmap,
NtGdiCreateClientObj,
NtGdiCreateDIBBrush,
......@@ -100,10 +103,14 @@ static void * const syscalls[] =
NtGdiInitSpool,
NtGdiInvertRgn,
NtGdiLineTo,
NtGdiMaskBlt,
NtGdiModifyWorldTransform,
NtGdiMoveTo,
NtGdiOffsetRgn,
NtGdiOpenDCW,
NtGdiPatBlt,
NtGdiPathToRegion,
NtGdiPlgBlt,
NtGdiPolyDraw,
NtGdiPolyPolyDraw,
NtGdiPtInRegion,
......@@ -113,6 +120,8 @@ static void * const syscalls[] =
NtGdiRemoveFontResourceW,
NtGdiRoundRect,
NtGdiSaveDC,
NtGdiScaleViewportExtEx,
NtGdiScaleWindowExtEx,
NtGdiSelectClipPath,
NtGdiSetBitmapBits,
NtGdiSetBitmapDimension,
......@@ -127,10 +136,12 @@ static void * const syscalls[] =
NtGdiSetVirtualResolution,
NtGdiStartDoc,
NtGdiStartPage,
NtGdiStretchBlt,
NtGdiStrokeAndFillPath,
NtGdiStrokePath,
NtGdiSwapBuffers,
NtGdiTransformPoints,
NtGdiTransparentBlt,
NtGdiWidenPath,
NtUserActivateKeyboardLayout,
NtUserAddClipboardFormatListener,
......
......@@ -112,7 +112,7 @@
@ stub NtGdiAddInitialFonts
@ stub NtGdiAddRemoteFontToDC
@ stub NtGdiAddRemoteMMInstanceToDC
@ stdcall NtGdiAlphaBlend(long long long long long long long long long long long ptr)
@ stdcall -syscall NtGdiAlphaBlend(long long long long long long long long long long long ptr)
@ stdcall -syscall NtGdiAngleArc(long long long long long long)
@ stub NtGdiAnyLinkedFonts
@ stdcall -syscall NtGdiArcInternal(long long long long long long long long long long)
......@@ -123,7 +123,7 @@
@ stub NtGdiBRUSHOBJ_ulGetBrushColor
@ stub NtGdiBeginGdiRendering
@ stdcall -syscall NtGdiBeginPath(long)
@ stdcall NtGdiBitBlt(long long long long long long long long long long long)
@ stdcall -syscall NtGdiBitBlt(long long long long long long long long long long long)
@ stub NtGdiCLIPOBJ_bEnum
@ stub NtGdiCLIPOBJ_cEnumStart
@ stub NtGdiCLIPOBJ_ppoGetPath
......@@ -136,7 +136,7 @@
@ stub NtGdiColorCorrectPalette
@ stdcall -syscall NtGdiCombineRgn(long long long long)
@ stub NtGdiCombineTransform
@ stdcall NtGdiComputeXformCoefficients(long)
@ stdcall -syscall NtGdiComputeXformCoefficients(long)
@ stub NtGdiConfigureOPMProtectedOutput
@ stub NtGdiConvertMetafileRect
@ stdcall -syscall NtGdiCreateBitmap(long long long long ptr)
......@@ -540,9 +540,9 @@
@ stub NtGdiMakeInfoDC
@ stub NtGdiMakeObjectUnXferable
@ stub NtGdiMakeObjectXferable
@ stdcall NtGdiMaskBlt(long long long long long long long long long long long long long)
@ stdcall -syscall NtGdiMaskBlt(long long long long long long long long long long long long long)
@ stub NtGdiMirrorWindowOrg
@ stdcall NtGdiModifyWorldTransform(long ptr long)
@ stdcall -syscall NtGdiModifyWorldTransform(long ptr long)
@ stub NtGdiMonoBitmap
@ stdcall -syscall NtGdiMoveTo(long long long ptr)
@ stdcall NtGdiOffsetClipRgn(long long long)
......@@ -553,9 +553,9 @@
@ stub NtGdiPATHOBJ_vEnumStart
@ stub NtGdiPATHOBJ_vEnumStartClipLines
@ stub NtGdiPATHOBJ_vGetBounds
@ stdcall NtGdiPatBlt(long long long long long long)
@ stdcall -syscall NtGdiPatBlt(long long long long long long)
@ stdcall -syscall NtGdiPathToRegion(long)
@ stdcall NtGdiPlgBlt(long ptr long long long long long long long long long)
@ stdcall -syscall NtGdiPlgBlt(long ptr long long long long long long long long long)
@ stdcall -syscall NtGdiPolyDraw(long ptr ptr long)
@ stub NtGdiPolyPatBlt
@ stdcall -syscall NtGdiPolyPolyDraw(long ptr ptr long long)
......@@ -582,8 +582,8 @@
@ stdcall -syscall NtGdiSaveDC(long)
@ stub NtGdiScaleRgn
@ stub NtGdiScaleValues
@ stdcall NtGdiScaleViewportExtEx(long long long long long ptr)
@ stdcall NtGdiScaleWindowExtEx(long long long long long ptr)
@ stdcall -syscall NtGdiScaleViewportExtEx(long long long long long ptr)
@ stdcall -syscall NtGdiScaleWindowExtEx(long long long long long ptr)
@ stdcall NtGdiSelectBitmap(long long)
@ stdcall NtGdiSelectBrush(long long)
@ stdcall -syscall NtGdiSelectClipPath(long long)
......@@ -620,13 +620,13 @@
@ stdcall -syscall NtGdiSetVirtualResolution(long long long long long)
@ stdcall -syscall NtGdiStartDoc(long ptr ptr long)
@ stdcall -syscall NtGdiStartPage(long)
@ stdcall NtGdiStretchBlt(long long long long long long long long long long long long)
@ stdcall -syscall NtGdiStretchBlt(long long long long long long long long long long long long)
@ stdcall NtGdiStretchDIBitsInternal(long long long long long long long long long ptr ptr long long long long long)
@ stdcall -syscall NtGdiStrokeAndFillPath(long)
@ stdcall -syscall NtGdiStrokePath(long)
@ stdcall -syscall NtGdiSwapBuffers(long)
@ stdcall -syscall NtGdiTransformPoints(long ptr ptr long long)
@ stdcall NtGdiTransparentBlt(long long long long long long long long long long long)
@ stdcall -syscall NtGdiTransparentBlt(long long long long long long long long long long long)
@ stub NtGdiUMPDEngFreeUserMem
@ stub NtGdiUnloadPrinterDriver
@ stub NtGdiUnmapMemFont
......
......@@ -35,12 +35,6 @@
struct unix_funcs
{
/* win32u functions */
BOOL (WINAPI *pNtGdiAlphaBlend)( HDC hdc_dst, int x_dst, int y_dst, int width_dst, int height_dst,
HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
DWORD blend_function, HANDLE xform );
BOOL (WINAPI *pNtGdiBitBlt)( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src,
INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl );
BOOL (WINAPI *pNtGdiComputeXformCoefficients)( HDC hdc );
HBITMAP (WINAPI *pNtGdiCreateCompatibleBitmap)( HDC hdc, INT width, INT height );
HDC (WINAPI *pNtGdiCreateCompatibleDC)( HDC hdc );
HBITMAP (WINAPI *pNtGdiCreateDIBitmapInternal)( HDC hdc, INT width, INT height, DWORD init,
......@@ -103,25 +97,13 @@ struct unix_funcs
INT (WINAPI *pNtGdiGetTextFaceW)( HDC hdc, INT count, WCHAR *name, BOOL alias_name );
BOOL (WINAPI *pNtGdiGetTextMetricsW)( HDC hdc, TEXTMETRICW *metrics, ULONG flags );
INT (WINAPI *pNtGdiIntersectClipRect)( HDC hdc, INT left, INT top, INT right, INT bottom );
BOOL (WINAPI *pNtGdiMaskBlt)( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
HDC hdc_src, INT x_src, INT y_src, HBITMAP mask,
INT x_mask, INT y_mask, DWORD rop, DWORD bk_color );
BOOL (WINAPI *pNtGdiModifyWorldTransform)( HDC hdc, const XFORM *xform, DWORD mode );
INT (WINAPI *pNtGdiOffsetClipRgn)( HDC hdc, INT x, INT y );
BOOL (WINAPI *pNtGdiPatBlt)( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
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 );
BOOL (WINAPI *pNtGdiPtVisible)( HDC hdc, INT x, INT y );
BOOL (WINAPI *pNtGdiRectVisible)( HDC hdc, const RECT *rect );
BOOL (WINAPI *pNtGdiResetDC)( HDC hdc, const DEVMODEW *devmode, BOOL *banding,
DRIVER_INFO_2W *driver_info, void *dev );
BOOL (WINAPI *pNtGdiResizePalette)( HPALETTE palette, UINT count );
BOOL (WINAPI *pNtGdiRestoreDC)( HDC hdc, INT level );
BOOL (WINAPI *pNtGdiScaleViewportExtEx)( HDC hdc, INT x_num, INT x_denom,
INT y_num, INT y_denom, SIZE *size );
BOOL (WINAPI *pNtGdiScaleWindowExtEx)( HDC hdc, INT x_num, INT x_denom,
INT y_num, INT y_denom, SIZE *size );
HGDIOBJ (WINAPI *pNtGdiSelectBitmap)( HDC hdc, HGDIOBJ handle );
HGDIOBJ (WINAPI *pNtGdiSelectBrush)( HDC hdc, HGDIOBJ handle );
HGDIOBJ (WINAPI *pNtGdiSelectFont)( HDC hdc, HGDIOBJ handle );
......@@ -135,17 +117,11 @@ struct unix_funcs
BOOL (WINAPI *pNtGdiSetDeviceGammaRamp)( HDC hdc, void *ptr );
DWORD (WINAPI *pNtGdiSetLayout)( HDC hdc, LONG wox, DWORD layout );
UINT (WINAPI *pNtGdiSetSystemPaletteUse)( HDC hdc, UINT use );
BOOL (WINAPI *pNtGdiStretchBlt)( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src,
DWORD rop, COLORREF bk_color );
INT (WINAPI *pNtGdiStretchDIBitsInternal)( HDC hdc, INT x_dst, INT y_dst, INT width_dst,
INT height_dst, INT x_src, INT y_src, INT width_src,
INT height_src, const void *bits, const BITMAPINFO *bmi,
UINT coloruse, DWORD rop, UINT max_info, UINT max_bits,
HANDLE xform );
BOOL (WINAPI *pNtGdiTransparentBlt)( HDC hdc, int x_dst, int y_dst, int width_dst, int height_dst,
HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
UINT color );
BOOL (WINAPI *pNtGdiUnrealizeObject)( HGDIOBJ obj );
BOOL (WINAPI *pNtGdiUpdateColors)( HDC hdc );
BOOL (WINAPI *pNtUserDrawCaptionTemp)( HWND hwnd, HDC hdc, const RECT *rect, HFONT font,
......
......@@ -24,29 +24,6 @@
static const struct unix_funcs *unix_funcs;
BOOL WINAPI NtGdiAlphaBlend( HDC hdc_dst, int x_dst, int y_dst, int width_dst, int height_dst,
HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
DWORD blend_function, HANDLE xform )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiAlphaBlend( hdc_dst, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, blend_function, xform );
}
BOOL WINAPI NtGdiBitBlt( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src,
INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiBitBlt( hdc_dst, x_dst, y_dst, width, height, hdc_src, x_src, y_src,
rop, bk_color, fl );
}
BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiComputeXformCoefficients( hdc );
}
HBITMAP WINAPI NtGdiCreateCompatibleBitmap( HDC hdc, INT width, INT height )
{
if (!unix_funcs) return 0;
......@@ -289,42 +266,12 @@ INT WINAPI NtGdiIntersectClipRect( HDC hdc, INT left, INT top, INT right, INT bo
return unix_funcs->pNtGdiIntersectClipRect( hdc, left, top, right, bottom );
}
BOOL WINAPI NtGdiMaskBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
HDC hdc_src, INT x_src, INT y_src, HBITMAP mask,
INT x_mask, INT y_mask, DWORD rop, DWORD bk_color )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiMaskBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, mask, x_mask, y_mask, rop, bk_color );
}
BOOL WINAPI NtGdiModifyWorldTransform( HDC hdc, const XFORM *xform, DWORD mode )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiModifyWorldTransform( hdc, xform, mode );
}
INT WINAPI NtGdiOffsetClipRgn( HDC hdc, INT x, INT y )
{
if (!unix_funcs) return ERROR;
return unix_funcs->pNtGdiOffsetClipRgn( hdc, x, y );
}
BOOL WINAPI NtGdiPatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiPatBlt( hdc, left, top, width, height, rop );
}
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 )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiPlgBlt( hdc, point, hdc_src, x_src, y_src, width, height, mask,
x_mask, y_mask, bk_color );
}
BOOL WINAPI NtGdiPtVisible( HDC hdc, INT x, INT y )
{
if (!unix_funcs) return FALSE;
......@@ -356,20 +303,6 @@ BOOL WINAPI NtGdiRestoreDC( HDC hdc, INT level )
return unix_funcs->pNtGdiRestoreDC( hdc, level );
}
BOOL WINAPI NtGdiScaleViewportExtEx( HDC hdc, INT x_num, INT x_denom,
INT y_num, INT y_denom, SIZE *size )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiScaleViewportExtEx( hdc, x_num, x_denom, y_num, y_denom, size );
}
BOOL WINAPI NtGdiScaleWindowExtEx( HDC hdc, INT x_num, INT x_denom,
INT y_num, INT y_denom, SIZE *size )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiScaleWindowExtEx( hdc, x_num, x_denom, y_num, y_denom, size );
}
HGDIOBJ WINAPI NtGdiSelectBitmap( HDC hdc, HGDIOBJ handle )
{
if (!unix_funcs) return 0;
......@@ -430,15 +363,6 @@ UINT WINAPI NtGdiSetSystemPaletteUse( HDC hdc, UINT use )
return unix_funcs->pNtGdiSetSystemPaletteUse( hdc, use );
}
BOOL WINAPI NtGdiStretchBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src,
DWORD rop, COLORREF bk_color )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiStretchBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, rop, bk_color );
}
INT WINAPI NtGdiStretchDIBitsInternal( HDC hdc, INT x_dst, INT y_dst, INT width_dst,
INT height_dst, INT x_src, INT y_src, INT width_src,
INT height_src, const void *bits, const BITMAPINFO *bmi,
......@@ -451,15 +375,6 @@ INT WINAPI NtGdiStretchDIBitsInternal( HDC hdc, INT x_dst, INT y_dst, INT width_
coloruse, rop, max_info, max_bits, xform );
}
BOOL WINAPI NtGdiTransparentBlt( HDC hdc, int x_dst, int y_dst, int width_dst, int height_dst,
HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
UINT color )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtGdiTransparentBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, color );
}
BOOL WINAPI NtGdiUnrealizeObject( HGDIOBJ obj )
{
if (!unix_funcs) return FALSE;
......
......@@ -93,6 +93,25 @@ NTSTATUS WINAPI wow64_NtGdiAddFontResourceW( UINT *args )
return NtGdiAddFontResourceW( str, size, files, flags, tid, dv );
}
NTSTATUS WINAPI wow64_NtGdiAlphaBlend( UINT *args )
{
HDC hdc_dst = get_handle( &args );
int x_dst = get_ulong( &args );
int y_dst = get_ulong( &args );
int width_dst = get_ulong( &args );
int height_dst = get_ulong( &args );
HDC hdc_src = get_handle( &args );
int x_src = get_ulong( &args );
int y_src = get_ulong( &args );
int width_src = get_ulong( &args );
int height_src = get_ulong( &args );
DWORD blend_function = get_ulong( &args );
HANDLE xform = get_handle( &args );
return NtGdiAlphaBlend( hdc_dst, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, blend_function, xform );
}
NTSTATUS WINAPI wow64_NtGdiAngleArc( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -128,6 +147,24 @@ NTSTATUS WINAPI wow64_NtGdiBeginPath( UINT *args )
return NtGdiBeginPath( hdc );
}
NTSTATUS WINAPI wow64_NtGdiBitBlt( UINT *args )
{
HDC hdc_dst = get_handle( &args );
INT x_dst = get_ulong( &args );
INT y_dst = get_ulong( &args );
INT width = get_ulong( &args );
INT height = get_ulong( &args );
HDC hdc_src = get_handle( &args );
INT x_src = get_ulong( &args );
INT y_src = get_ulong( &args );
DWORD rop = get_ulong( &args );
DWORD bk_color = get_ulong( &args );
FLONG fl = get_ulong( &args );
return NtGdiBitBlt( hdc_dst, x_dst, y_dst, width, height, hdc_src,
x_src, y_src, rop, bk_color, fl );
}
NTSTATUS WINAPI wow64_NtGdiCloseFigure( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -145,6 +182,13 @@ NTSTATUS WINAPI wow64_NtGdiCombineRgn( UINT *args )
return NtGdiCombineRgn( dest, src1, src2, mode );
}
NTSTATUS WINAPI wow64_NtGdiComputeXformCoefficients( UINT *args )
{
HDC hdc = get_handle( &args );
return NtGdiComputeXformCoefficients( hdc );
}
NTSTATUS WINAPI wow64_NtGdiCreateBitmap( UINT *args )
{
INT width = get_ulong( &args );
......@@ -719,6 +763,35 @@ NTSTATUS WINAPI wow64_NtGdiLineTo( UINT *args )
return NtGdiLineTo( hdc, x, y );
}
NTSTATUS WINAPI wow64_NtGdiMaskBlt( UINT *args )
{
HDC hdc = get_handle( &args );
INT x_dst = get_ulong( &args );
INT y_dst = get_ulong( &args );
INT width_dst = get_ulong( &args );
INT height_dst = get_ulong( &args );
HDC hdc_src = get_handle( &args );
INT x_src = get_ulong( &args );
INT y_src = get_ulong( &args );
HBITMAP mask = get_handle( &args );
INT x_mask = get_ulong( &args );
INT y_mask = get_ulong( &args );
DWORD rop = get_ulong( &args );
DWORD bk_color = get_ulong( &args );
return NtGdiMaskBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, mask, x_mask, y_mask, rop, bk_color );
}
NTSTATUS WINAPI wow64_NtGdiModifyWorldTransform( UINT *args )
{
HDC hdc = get_handle( &args );
const XFORM *xform = get_ptr( &args );
DWORD mode = get_ulong( &args );
return NtGdiModifyWorldTransform( hdc, xform, mode );
}
NTSTATUS WINAPI wow64_NtGdiMoveTo( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -860,6 +933,18 @@ NTSTATUS WINAPI wow64_NtGdiOpenDCW( UINT *args )
return HandleToUlong( ret );
}
NTSTATUS WINAPI wow64_NtGdiPatBlt( UINT *args )
{
HDC hdc = get_handle( &args );
INT left = get_ulong( &args );
INT top = get_ulong( &args );
INT width = get_ulong( &args );
INT height = get_ulong( &args );
DWORD rop = get_ulong( &args );
return NtGdiPatBlt( hdc, left, top, width, height, rop );
}
NTSTATUS WINAPI wow64_NtGdiPathToRegion( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -867,6 +952,24 @@ NTSTATUS WINAPI wow64_NtGdiPathToRegion( UINT *args )
return HandleToUlong( NtGdiPathToRegion( hdc ));
}
NTSTATUS WINAPI wow64_NtGdiPlgBlt( UINT *args )
{
HDC hdc = get_handle( &args );
const POINT *point = get_ptr( &args );
HDC hdc_src = get_handle( &args );
INT x_src = get_ulong( &args );
INT y_src = get_ulong( &args );
INT width = get_ulong( &args );
INT height = get_ulong( &args );
HBITMAP mask = get_handle( &args );
INT x_mask = get_ulong( &args );
INT y_mask = get_ulong( &args );
DWORD bk_color = get_ulong( &args );
return NtGdiPlgBlt( hdc, point, hdc_src, x_src, y_src, width, height,
mask, x_mask, y_mask, bk_color );
}
NTSTATUS WINAPI wow64_NtGdiPtInRegion( UINT *args )
{
HRGN hrgn = get_handle( &args );
......@@ -910,6 +1013,30 @@ NTSTATUS WINAPI wow64_NtGdiSaveDC( UINT *args )
return NtGdiSaveDC( hdc );
}
NTSTATUS WINAPI wow64_NtGdiScaleViewportExtEx( UINT *args )
{
HDC hdc = get_handle( &args );
INT x_num = get_ulong( &args );
INT x_denom = get_ulong( &args );
INT y_num = get_ulong( &args );
INT y_denom = get_ulong( &args );
SIZE *size = get_ptr( &args );
return NtGdiScaleViewportExtEx( hdc, x_num, x_denom, y_num, y_denom, size );
}
NTSTATUS WINAPI wow64_NtGdiScaleWindowExtEx( UINT *args )
{
HDC hdc = get_handle( &args );
INT x_num = get_ulong( &args );
INT x_denom = get_ulong( &args );
INT y_num = get_ulong( &args );
INT y_denom = get_ulong( &args );
SIZE *size = get_ptr( &args );
return NtGdiScaleWindowExtEx( hdc, x_num, x_denom, y_num, y_denom, size );
}
NTSTATUS WINAPI wow64_NtGdiSelectClipPath( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -1051,6 +1178,25 @@ NTSTATUS WINAPI wow64_NtGdiStartPage( UINT *args )
return NtGdiStartPage( hdc );
}
NTSTATUS WINAPI wow64_NtGdiStretchBlt( UINT *args )
{
HDC hdc = get_handle( &args );
INT x_dst = get_ulong( &args );
INT y_dst = get_ulong( &args );
INT width_dst = get_ulong( &args );
INT height_dst = get_ulong( &args );
HDC hdc_src = get_handle( &args );
INT x_src = get_ulong( &args );
INT y_src = get_ulong( &args );
INT width_src = get_ulong( &args );
INT height_src = get_ulong( &args );
DWORD rop = get_ulong( &args );
COLORREF bk_color = get_ulong( &args );
return NtGdiStretchBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, rop, bk_color );
}
NTSTATUS WINAPI wow64_NtGdiStrokeAndFillPath( UINT *args )
{
HDC hdc = get_handle( &args );
......@@ -1072,6 +1218,24 @@ NTSTATUS WINAPI wow64_NtGdiSwapBuffers( UINT *args )
return NtGdiSwapBuffers( hdc );
}
NTSTATUS WINAPI wow64_NtGdiTransparentBlt( UINT *args )
{
HDC hdc = get_handle( &args );
int x_dst = get_ulong( &args );
int y_dst = get_ulong( &args );
int width_dst = get_ulong( &args );
int height_dst = get_ulong( &args );
HDC hdc_src = get_handle( &args );
int x_src = get_ulong( &args );
int y_src = get_ulong( &args );
int width_src = get_ulong( &args );
int height_src = get_ulong( &args );
UINT color = get_ulong( &args );
return NtGdiTransparentBlt( hdc, x_dst, y_dst, width_dst, height_dst, hdc_src,
x_src, y_src, width_src, height_src, color );
}
NTSTATUS WINAPI wow64_NtGdiTransformPoints( UINT *args )
{
HDC hdc = get_handle( &args );
......
......@@ -26,11 +26,14 @@
SYSCALL_ENTRY( NtGdiAbortPath ) \
SYSCALL_ENTRY( NtGdiAddFontMemResourceEx ) \
SYSCALL_ENTRY( NtGdiAddFontResourceW ) \
SYSCALL_ENTRY( NtGdiAlphaBlend ) \
SYSCALL_ENTRY( NtGdiAngleArc ) \
SYSCALL_ENTRY( NtGdiArcInternal ) \
SYSCALL_ENTRY( NtGdiBeginPath ) \
SYSCALL_ENTRY( NtGdiBitBlt ) \
SYSCALL_ENTRY( NtGdiCloseFigure ) \
SYSCALL_ENTRY( NtGdiCombineRgn ) \
SYSCALL_ENTRY( NtGdiComputeXformCoefficients ) \
SYSCALL_ENTRY( NtGdiCreateBitmap ) \
SYSCALL_ENTRY( NtGdiCreateClientObj ) \
SYSCALL_ENTRY( NtGdiCreateDIBBrush ) \
......@@ -86,10 +89,14 @@
SYSCALL_ENTRY( NtGdiInitSpool ) \
SYSCALL_ENTRY( NtGdiInvertRgn ) \
SYSCALL_ENTRY( NtGdiLineTo ) \
SYSCALL_ENTRY( NtGdiMaskBlt ) \
SYSCALL_ENTRY( NtGdiModifyWorldTransform ) \
SYSCALL_ENTRY( NtGdiMoveTo ) \
SYSCALL_ENTRY( NtGdiOffsetRgn ) \
SYSCALL_ENTRY( NtGdiOpenDCW ) \
SYSCALL_ENTRY( NtGdiPatBlt ) \
SYSCALL_ENTRY( NtGdiPathToRegion ) \
SYSCALL_ENTRY( NtGdiPlgBlt ) \
SYSCALL_ENTRY( NtGdiPolyDraw ) \
SYSCALL_ENTRY( NtGdiPolyPolyDraw ) \
SYSCALL_ENTRY( NtGdiPtInRegion ) \
......@@ -99,6 +106,8 @@
SYSCALL_ENTRY( NtGdiRemoveFontResourceW ) \
SYSCALL_ENTRY( NtGdiRoundRect ) \
SYSCALL_ENTRY( NtGdiSaveDC ) \
SYSCALL_ENTRY( NtGdiScaleViewportExtEx ) \
SYSCALL_ENTRY( NtGdiScaleWindowExtEx ) \
SYSCALL_ENTRY( NtGdiSelectClipPath ) \
SYSCALL_ENTRY( NtGdiSetBitmapBits ) \
SYSCALL_ENTRY( NtGdiSetBitmapDimension ) \
......@@ -113,10 +122,12 @@
SYSCALL_ENTRY( NtGdiSetVirtualResolution ) \
SYSCALL_ENTRY( NtGdiStartDoc ) \
SYSCALL_ENTRY( NtGdiStartPage ) \
SYSCALL_ENTRY( NtGdiStretchBlt ) \
SYSCALL_ENTRY( NtGdiStrokeAndFillPath ) \
SYSCALL_ENTRY( NtGdiStrokePath ) \
SYSCALL_ENTRY( NtGdiSwapBuffers ) \
SYSCALL_ENTRY( NtGdiTransformPoints ) \
SYSCALL_ENTRY( NtGdiTransparentBlt ) \
SYSCALL_ENTRY( NtGdiWidenPath ) \
SYSCALL_ENTRY( NtUserActivateKeyboardLayout ) \
SYSCALL_ENTRY( NtUserAddClipboardFormatListener ) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment