2 * Copyright 2021 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 typedef struct _GDI_HANDLE_ENTRY
41 } GDI_HANDLE_ENTRY
, *PGDI_HANDLE_ENTRY
;
43 #define GDI_MAX_HANDLE_COUNT 0x10000
45 typedef struct _GDI_SHARED_MEMORY
47 GDI_HANDLE_ENTRY Handles
[GDI_MAX_HANDLE_COUNT
];
48 } GDI_SHARED_MEMORY
, *PGDI_SHARED_MEMORY
;
50 INT WINAPI
NtGdiAbortDoc( HDC hdc
);
51 BOOL WINAPI
NtGdiAbortPath( HDC hdc
);
52 BOOL WINAPI
NtGdiAngleArc( HDC hdc
, INT x
, INT y
, DWORD radius
, FLOAT start_angle
,
54 BOOL WINAPI
NtGdiArcInternal( UINT type
, HDC hdc
, INT left
, INT top
, INT right
, INT bottom
,
55 INT xstart
, INT ystart
, INT xend
, INT yend
);
56 BOOL WINAPI
NtGdiBeginPath( HDC hdc
);
57 BOOL WINAPI
NtGdiCancelDC( HDC hdc
);
58 BOOL WINAPI
NtGdiCloseFigure( HDC hdc
);
59 INT WINAPI
NtGdiCombineRgn( HRGN dest
, HRGN src1
, HRGN src2
, INT mode
);
60 HBITMAP WINAPI
NtGdiCreateBitmap( INT width
, INT height
, UINT planes
,
61 UINT bpp
, const void *bits
);
62 HBRUSH WINAPI
NtGdiCreateHatchBrushInternal( INT style
, COLORREF color
, BOOL pen
);
63 BOOL WINAPI
NtGdiEllipse( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
);
64 INT WINAPI
NtGdiEndDoc(HDC hdc
);
65 BOOL WINAPI
NtGdiEndPath( HDC hdc
);
66 HANDLE WINAPI
NtGdiCreateClientObj( ULONG type
);
67 HFONT WINAPI
NtGdiHfontCreate( const ENUMLOGFONTEXDVW
*enumex
, ULONG unk2
, ULONG unk3
,
68 ULONG unk4
, void *data
);
69 HBRUSH WINAPI
NtGdiCreateDIBBrush( const void* data
, UINT coloruse
);
70 HBRUSH WINAPI
NtGdiCreatePatternBrushInternal( HBITMAP hbitmap
, BOOL pen
);
71 HPEN WINAPI
NtGdiCreatePen( INT style
, INT width
, COLORREF color
, HBRUSH brush
);
72 HRGN WINAPI
NtGdiCreateRectRgn( INT left
, INT top
, INT right
, INT bottom
);
73 HRGN WINAPI
NtGdiCreateRoundRectRgn( INT left
, INT top
, INT right
, INT bottom
,
74 INT ellipse_width
, INT ellipse_height
);
75 HBRUSH WINAPI
NtGdiCreateSolidBrush( COLORREF color
);
76 BOOL WINAPI
NtGdiDeleteObjectApp( HGDIOBJ obj
);
77 LONG WINAPI
NtGdiDoPalette( HGDIOBJ handle
, WORD start
, WORD count
, void *entries
,
78 DWORD func
, BOOL inbound
);
79 INT WINAPI
NtGdiEndPage( HDC hdc
);
80 HPEN WINAPI
NtGdiExtCreatePen( DWORD style
, DWORD width
, const LOGBRUSH
*brush
,
81 DWORD style_count
, const DWORD
*style_bits
);
82 HRGN WINAPI
NtGdiExtCreateRegion( const XFORM
*xform
, DWORD count
, const RGNDATA
*data
);
83 INT WINAPI
NtGdiExtGetObjectW( HGDIOBJ handle
, INT count
, void *buffer
);
84 INT WINAPI
NtGdiExtSelectClipRgn( HDC hdc
, HRGN region
, INT mode
);
85 BOOL WINAPI
NtGdiFillRgn( HDC hdc
, HRGN hrgn
, HBRUSH hbrush
);
86 INT WINAPI
NtGdiExtEscape( HDC hdc
, INT escape
, INT input_size
, const char *input
,
87 INT output_size
, char *output
);
88 BOOL WINAPI
NtGdiExtFloodFill( HDC hdc
, INT x
, INT y
, COLORREF color
, UINT type
);
89 BOOL WINAPI
NtGdiFrameRgn( HDC hdc
, HRGN hrgn
, HBRUSH brush
,
90 INT width
, INT height
);
91 BOOL WINAPI
NtGdiFillPath( HDC hdc
);
92 BOOL WINAPI
NtGdiGetAndSetDCDword( HDC hdc
, UINT method
, DWORD value
, DWORD
*result
);
93 INT WINAPI
NtGdiGetAppClipBox( HDC hdc
, RECT
*rect
);
94 BOOL WINAPI
NtGdiGetBitmapDimension( HBITMAP bitmap
, SIZE
*size
);
95 UINT WINAPI
NtGdiGetBoundsRect( HDC hdc
, RECT
*rect
, UINT flags
);
96 BOOL WINAPI
NtGdiGetCharABCWidthsW( HDC hdc
, UINT first_char
, UINT last_char
, ABC
*abc
);
97 BOOL WINAPI
NtGdiGetCharWidthW( HDC hdc
, UINT first_char
, UINT last_char
, INT
*buffer
);
98 BOOL WINAPI
NtGdiGetDCDword( HDC hdc
, UINT method
, DWORD
*result
);
99 BOOL WINAPI
NtGdiGetDCPoint( HDC hdc
, UINT method
, POINT
*result
);
100 INT WINAPI
NtGdiGetDeviceCaps( HDC hdc
, INT cap
);
101 BOOL WINAPI
NtGdiGetDeviceGammaRamp( HDC hdc
, void *ptr
);
102 BOOL WINAPI
NtGdiGetMiterLimit( HDC hdc
, FLOAT
*limit
);
103 COLORREF WINAPI
NtGdiGetNearestColor( HDC hdc
, COLORREF color
);
104 UINT WINAPI
NtGdiGetNearestPaletteIndex( HPALETTE hpalette
, COLORREF color
);
105 UINT WINAPI
NtGdiGetOutlineTextMetricsInternalW( HDC hdc
, UINT cbData
,
106 OUTLINETEXTMETRICW
*otm
, ULONG opts
);
107 INT WINAPI
NtGdiGetPath( HDC hdc
, POINT
*points
, BYTE
*types
, INT size
);
108 INT WINAPI
NtGdiGetRandomRgn( HDC hdc
, HRGN region
, INT code
);
109 DWORD WINAPI
NtGdiGetRegionData( HRGN hrgn
, DWORD count
, RGNDATA
*data
);
110 INT WINAPI
NtGdiGetRgnBox( HRGN hrgn
, RECT
*rect
);
111 UINT WINAPI
NtGdiGetTextCharsetInfo( HDC hdc
, FONTSIGNATURE
*fs
, DWORD flags
);
112 INT WINAPI
NtGdiGetTextFaceW( HDC hdc
, INT count
, WCHAR
*name
);
113 BOOL WINAPI
NtGdiGetTextMetricsW( HDC hdc
, TEXTMETRICW
*metrics
);
114 BOOL WINAPI
NtGdiGetTransform( HDC hdc
, DWORD which
, XFORM
*xform
);
115 BOOL WINAPI
NtGdiGradientFill( HDC hdc
, TRIVERTEX
*vert_array
, ULONG nvert
,
116 void *grad_array
, ULONG ngrad
, ULONG mode
);
117 BOOL WINAPI
NtGdiEqualRgn( HRGN hrgn1
, HRGN hrgn2
);
118 INT WINAPI
NtGdiExcludeClipRect( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
);
119 BOOL WINAPI
NtGdiFlattenPath( HDC hdc
);
120 BOOL WINAPI
NtGdiFontIsLinked( HDC hdc
);
121 INT WINAPI
NtGdiIntersectClipRect( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
);
122 BOOL WINAPI
NtGdiInvertRgn( HDC hdc
, HRGN hrgn
);
123 BOOL WINAPI
NtGdiLineTo( HDC hdc
, INT x
, INT y
);
124 BOOL WINAPI
NtGdiMoveTo( HDC hdc
, INT x
, INT y
, POINT
*pt
);
125 INT WINAPI
NtGdiOffsetClipRgn( HDC hdc
, INT x
, INT y
);
126 INT WINAPI
NtGdiOffsetRgn( HRGN hrgn
, INT x
, INT y
);
127 HRGN WINAPI
NtGdiPathToRegion( HDC hdc
);
128 BOOL WINAPI
NtGdiPolyDraw(HDC hdc
, const POINT
*points
, const BYTE
*types
, DWORD count
);
129 ULONG WINAPI
NtGdiPolyPolyDraw( HDC hdc
, const POINT
*points
, const UINT
*counts
,
130 DWORD count
, UINT function
);
131 BOOL WINAPI
NtGdiPtInRegion( HRGN hrgn
, INT x
, INT y
);
132 BOOL WINAPI
NtGdiPtVisible( HDC hdc
, INT x
, INT y
);
133 BOOL WINAPI
NtGdiRectInRegion( HRGN hrgn
, const RECT
*rect
);
134 BOOL WINAPI
NtGdiRectVisible( HDC hdc
, const RECT
*rect
);
135 BOOL WINAPI
NtGdiRectangle( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
);
136 HDC WINAPI
NtGdiResetDC( HDC hdc
, const DEVMODEW
*devmode
);
137 BOOL WINAPI
NtGdiRestoreDC( HDC hdc
, INT level
);
138 BOOL WINAPI
NtGdiRoundRect( HDC hdc
, INT left
, INT top
, INT right
,
139 INT bottom
, INT ell_width
, INT ell_height
);
140 INT WINAPI
NtGdiSaveDC( HDC hdc
);
141 BOOL WINAPI
NtGdiScaleViewportExtEx( HDC hdc
, INT x_num
, INT x_denom
,
142 INT y_num
, INT y_denom
, SIZE
*size
);
143 BOOL WINAPI
NtGdiScaleWindowExtEx( HDC hdc
, INT x_num
, INT x_denom
,
144 INT y_num
, INT y_denom
, SIZE
*size
);
145 HGDIOBJ WINAPI
NtGdiSelectBitmap( HDC hdc
, HGDIOBJ handle
);
146 HGDIOBJ WINAPI
NtGdiSelectBrush( HDC hdc
, HGDIOBJ handle
);
147 BOOL WINAPI
NtGdiSelectClipPath( HDC hdc
, INT mode
);
148 HGDIOBJ WINAPI
NtGdiSelectFont( HDC hdc
, HGDIOBJ handle
);
149 HGDIOBJ WINAPI
NtGdiSelectPen( HDC hdc
, HGDIOBJ handle
);
150 LONG WINAPI
NtGdiSetBitmapBits( HBITMAP hbitmap
, LONG count
, const void *bits
);
151 BOOL WINAPI
NtGdiSetBitmapDimension( HBITMAP hbitmap
, INT x
, INT y
, SIZE
*prev_size
);
152 BOOL WINAPI
NtGdiSetBrushOrg( HDC hdc
, INT x
, INT y
, POINT
*prev_org
);
153 UINT WINAPI
NtGdiSetBoundsRect( HDC hdc
, const RECT
*rect
, UINT flags
);
154 BOOL WINAPI
NtGdiSetDeviceGammaRamp( HDC hdc
, void *ptr
);
155 DWORD WINAPI
NtGdiSetLayout( HDC hdc
, DWORD layout
);
156 INT WINAPI
NtGdiSetMetaRgn( HDC hdc
);
157 BOOL WINAPI
NtGdiSetMiterLimit( HDC hdc
, FLOAT limit
, FLOAT
*prev_limit
);
158 COLORREF WINAPI
NtGdiSetPixel( HDC hdc
, INT x
, INT y
, COLORREF color
);
159 BOOL WINAPI
NtGdiSetPixelFormat( HDC hdc
, INT format
, const PIXELFORMATDESCRIPTOR
*descr
);
160 BOOL WINAPI
NtGdiSetRectRgn( HRGN hrgn
, INT left
, INT top
, INT right
, INT bottom
);
161 BOOL WINAPI
NtGdiSetTextJustification( HDC hdc
, INT extra
, INT breaks
);
162 BOOL WINAPI
NtGdiSetVirtualResolution( HDC hdc
, DWORD horz_res
, DWORD vert_res
,
163 DWORD horz_size
, DWORD vert_size
);
164 INT WINAPI
NtGdiStartDoc( HDC hdc
, const DOCINFOW
*doc
);
165 INT WINAPI
NtGdiStartPage( HDC hdc
);
166 BOOL WINAPI
NtGdiStrokePath( HDC hdc
);
167 BOOL WINAPI
NtGdiStrokeAndFillPath( HDC hdc
);
168 BOOL WINAPI
NtGdiTransformPoints( HDC hdc
, POINT
*points
, INT count
, UINT mode
);
169 BOOL WINAPI
NtGdiUnrealizeObject( HGDIOBJ obj
);
170 BOOL WINAPI
NtGdiWidenPath( HDC hdc
);