Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
cd09a224
Commit
cd09a224
authored
Jul 31, 2022
by
Jacek Caban
Committed by
Alexandre Julliard
May 25, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Use syscall interface for bitblt functions.
parent
0c73b717
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
197 additions
and
131 deletions
+197
-131
gdiobj.c
dlls/win32u/gdiobj.c
+0
-11
syscall.c
dlls/win32u/syscall.c
+11
-0
win32u.spec
dlls/win32u/win32u.spec
+11
-11
win32u_private.h
dlls/win32u/win32u_private.h
+0
-24
wrappers.c
dlls/win32u/wrappers.c
+0
-85
gdi.c
dlls/wow64win/gdi.c
+164
-0
syscall.h
dlls/wow64win/syscall.h
+11
-0
No files found.
dlls/win32u/gdiobj.c
View file @
cd09a224
...
...
@@ -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
,
...
...
dlls/win32u/syscall.c
View file @
cd09a224
...
...
@@ -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
,
...
...
dlls/win32u/win32u.spec
View file @
cd09a224
...
...
@@ -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
...
...
dlls/win32u/win32u_private.h
View file @
cd09a224
...
...
@@ -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
,
...
...
dlls/win32u/wrappers.c
View file @
cd09a224
...
...
@@ -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
;
...
...
dlls/wow64win/gdi.c
View file @
cd09a224
...
...
@@ -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
);
...
...
dlls/wow64win/syscall.h
View file @
cd09a224
...
...
@@ -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 ) \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment