comctl32/tests: Use CRT allocation functions.
[wine.git] / include / ntgdi.h
blobc2cb1924730170000f5a745ae782900ed1841e54
1 /*
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
19 #ifndef _NTGDI_
20 #define _NTGDI_
22 #include <wingdi.h>
23 #include <winternl.h>
24 #include <winspool.h>
25 #include <ddk/d3dkmthk.h>
27 #ifndef W32KAPI
28 # if defined(_WIN32U_) || defined(WINE_UNIX_LIB)
29 # define W32KAPI DECLSPEC_EXPORT
30 # else
31 # define W32KAPI DECLSPEC_IMPORT
32 # endif
33 #endif
35 typedef struct _GDI_HANDLE_ENTRY
37 UINT64 Object;
38 union
40 struct
42 USHORT ProcessId;
43 USHORT Lock : 1;
44 USHORT Count : 15;
46 ULONG Value;
47 } Owner;
48 union
50 struct
52 UCHAR ExtType : 7;
53 UCHAR StockFlag : 1;
54 UCHAR Generation;
56 USHORT Unique;
58 UCHAR Type;
59 UCHAR Flags;
60 UINT64 UserPointer;
61 } GDI_HANDLE_ENTRY, *PGDI_HANDLE_ENTRY;
63 #define GDI_MAX_HANDLE_COUNT 0x10000
65 #define NTGDI_OBJ_DC 0x010000
66 #define NTGDI_OBJ_ENHMETADC 0x210000
67 #define NTGDI_OBJ_REGION 0x040000
68 #define NTGDI_OBJ_SURF 0x050000
69 #define NTGDI_OBJ_METAFILE 0x260000
70 #define NTGDI_OBJ_ENHMETAFILE 0x460000
71 #define NTGDI_OBJ_METADC 0x660000
72 #define NTGDI_OBJ_PAL 0x080000
73 #define NTGDI_OBJ_BITMAP 0x090000
74 #define NTGDI_OBJ_FONT 0x0a0000
75 #define NTGDI_OBJ_BRUSH 0x100000
76 #define NTGDI_OBJ_PEN 0x300000
77 #define NTGDI_OBJ_EXTPEN 0x500000
79 /* Wine extension, native uses NTGDI_OBJ_DC */
80 #define NTGDI_OBJ_MEMDC 0x410000
82 #define NTGDI_HANDLE_TYPE_SHIFT 16
83 #define NTGDI_HANDLE_TYPE_MASK 0x007f0000
84 #define NTGDI_HANDLE_STOCK_OBJECT 0x00800000
86 typedef struct _GDI_SHARED_MEMORY
88 GDI_HANDLE_ENTRY Handles[GDI_MAX_HANDLE_COUNT];
89 } GDI_SHARED_MEMORY, *PGDI_SHARED_MEMORY;
91 enum
93 NtGdiArc,
94 NtGdiArcTo,
95 NtGdiChord,
96 NtGdiPie,
99 enum
101 NtGdiPolyPolygon = 1,
102 NtGdiPolyPolyline,
103 NtGdiPolyBezier,
104 NtGdiPolyBezierTo,
105 NtGdiPolylineTo,
106 NtGdiPolyPolygonRgn,
109 enum
111 NtGdiLPtoDP,
112 NtGdiDPtoLP,
115 enum
117 NtGdiSetMapMode = 8,
118 /* not compatible with Windows */
119 NtGdiSetBkColor = 100,
120 NtGdiSetBkMode,
121 NtGdiSetTextColor,
122 NtGdiSetDCBrushColor,
123 NtGdiSetDCPenColor,
124 NtGdiSetGraphicsMode,
125 NtGdiSetROP2,
126 NtGdiSetTextAlign,
129 /* NtGdiGetDCDword parameter, not compatible with Windows */
130 enum
132 NtGdiGetArcDirection,
133 NtGdiGetBkColor,
134 NtGdiGetBkMode,
135 NtGdiGetDCBrushColor,
136 NtGdiGetDCPenColor,
137 NtGdiGetGraphicsMode,
138 NtGdiGetLayout,
139 NtGdiGetPolyFillMode,
140 NtGdiGetROP2,
141 NtGdiGetTextColor,
142 NtGdiIsMemDC,
145 /* NtGdiGetDCPoint parameter, not compatible with Windows */
146 enum
148 NtGdiGetBrushOrgEx,
149 NtGdiGetCurrentPosition,
150 NtGdiGetDCOrg,
153 enum
155 NtGdiAnimatePalette,
156 NtGdiSetPaletteEntries,
157 NtGdiGetPaletteEntries,
158 NtGdiGetSystemPaletteEntries,
159 NtGdiGetDIBColorTable,
160 NtGdiSetDIBColorTable,
163 #define NTGDI_GETCHARWIDTH_INT 0x02
164 #define NTGDI_GETCHARWIDTH_INDICES 0x08
166 #define NTGDI_GETCHARABCWIDTHS_INT 0x01
167 #define NTGDI_GETCHARABCWIDTHS_INDICES 0x02
169 #define MWT_SET 4
171 /* structs not compatible with native Windows */
172 #ifdef __WINESRC__
174 typedef struct DC_ATTR
176 UINT hdc; /* handle to self */
177 LONG disabled; /* disabled flag, controlled by DCHF_(DISABLE|ENABLE)DC */
178 int save_level;
179 COLORREF background_color;
180 COLORREF brush_color;
181 COLORREF pen_color;
182 COLORREF text_color;
183 POINT cur_pos;
184 INT graphics_mode;
185 INT arc_direction;
186 DWORD layout;
187 WORD text_align;
188 WORD background_mode;
189 WORD poly_fill_mode;
190 WORD rop_mode;
191 WORD rel_abs_mode;
192 WORD stretch_blt_mode;
193 INT map_mode;
194 INT char_extra;
195 DWORD mapper_flags; /* font mapper flags */
196 RECT vis_rect; /* visible rectangle in screen coords */
197 FLOAT miter_limit;
198 POINT brush_org; /* brush origin */
199 POINT wnd_org; /* window origin */
200 SIZE wnd_ext; /* window extent */
201 POINT vport_org; /* viewport origin */
202 SIZE vport_ext; /* viewport extent */
203 SIZE virtual_res;
204 SIZE virtual_size;
205 UINT font_code_page;
206 RECTL emf_bounds;
207 UINT64 emf; /* client EMF record pointer */
208 UINT64 abort_proc; /* AbortProc for printing */
209 UINT64 print; /* client printer info pointer */
210 } DC_ATTR;
212 struct font_enum_entry
214 DWORD type;
215 ENUMLOGFONTEXW lf;
216 NEWTEXTMETRICEXW tm;
219 /* flag for NtGdiGetRandomRgn to respect LAYOUT_RTL */
220 #define NTGDI_RGN_MIRROR_RTL 0x80000000
222 /* magic driver version that we use for win16 DCs with DIB surfaces */
223 #define NTGDI_WIN16_DIB 0xfafa000
225 #endif /* __WINESRC__ */
227 struct font_realization_info
229 DWORD size; /* could be 16 or 24 */
230 DWORD flags; /* 1 for bitmap fonts, 3 for scalable fonts */
231 DWORD cache_num; /* keeps incrementing */
232 DWORD instance_id; /* identifies a realized font instance */
233 DWORD file_count; /* number of files that make up this font */
234 WORD face_index; /* face index in case of font collections */
235 WORD simulations; /* 0 bit - bold simulation, 1 bit - oblique simulation */
238 struct char_width_info
240 INT lsb; /* minimum left side bearing */
241 INT rsb; /* minimum right side bearing */
242 INT unk; /* unknown */
245 struct font_fileinfo
247 FILETIME writetime;
248 LARGE_INTEGER size;
249 WCHAR path[1];
253 W32KAPI INT WINAPI NtGdiAbortDoc( HDC hdc );
254 W32KAPI BOOL WINAPI NtGdiAbortPath( HDC hdc );
255 W32KAPI HANDLE WINAPI NtGdiAddFontMemResourceEx( void *ptr, DWORD size, void *dv, ULONG dv_size,
256 DWORD *count );
257 W32KAPI INT WINAPI NtGdiAddFontResourceW( const WCHAR *str, ULONG size, ULONG files, DWORD flags,
258 DWORD tid, void *dv );
259 W32KAPI BOOL WINAPI NtGdiAlphaBlend( HDC hdc_dst, int x_dst, int y_dst, int width_dst, int height_dst,
260 HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
261 DWORD blend_function, HANDLE xform );
262 W32KAPI BOOL WINAPI NtGdiAngleArc( HDC hdc, INT x, INT y, DWORD radius, DWORD start_angle,
263 DWORD sweep_angle );
264 W32KAPI BOOL WINAPI NtGdiArcInternal( UINT type, HDC hdc, INT left, INT top, INT right, INT bottom,
265 INT xstart, INT ystart, INT xend, INT yend );
266 W32KAPI BOOL WINAPI NtGdiBeginPath( HDC hdc );
267 W32KAPI BOOL WINAPI NtGdiBitBlt( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src,
268 INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl );
269 W32KAPI BOOL WINAPI NtGdiCancelDC( HDC hdc );
270 W32KAPI BOOL WINAPI NtGdiCloseFigure( HDC hdc );
271 W32KAPI INT WINAPI NtGdiCombineRgn( HRGN dest, HRGN src1, HRGN src2, INT mode );
272 W32KAPI BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc );
273 W32KAPI HBITMAP WINAPI NtGdiCreateBitmap( INT width, INT height, UINT planes,
274 UINT bpp, const void *bits );
275 W32KAPI HANDLE WINAPI NtGdiCreateClientObj( ULONG type );
276 W32KAPI HBITMAP WINAPI NtGdiCreateCompatibleBitmap( HDC hdc, INT width, INT height );
277 W32KAPI HDC WINAPI NtGdiCreateCompatibleDC( HDC hdc );
278 W32KAPI HBRUSH WINAPI NtGdiCreateDIBBrush( const void *data, UINT coloruse, UINT size,
279 BOOL is_8x8, BOOL pen, const void *client );
280 W32KAPI HBITMAP WINAPI NtGdiCreateDIBSection( HDC hdc, HANDLE section, DWORD offset, const BITMAPINFO *bmi,
281 UINT usage, UINT header_size, ULONG flags,
282 ULONG_PTR color_space, void **bits );
283 W32KAPI HBITMAP WINAPI NtGdiCreateDIBitmapInternal( HDC hdc, INT width, INT height, DWORD init,
284 const void *bits, const BITMAPINFO *data,
285 UINT coloruse, UINT max_info, UINT max_bits,
286 ULONG flags, HANDLE xform );
287 W32KAPI HRGN WINAPI NtGdiCreateEllipticRgn( INT left, INT top, INT right, INT bottom );
288 W32KAPI HPALETTE WINAPI NtGdiCreateHalftonePalette( HDC hdc );
289 W32KAPI HBRUSH WINAPI NtGdiCreateHatchBrushInternal( INT style, COLORREF color, BOOL pen );
290 W32KAPI HDC WINAPI NtGdiCreateMetafileDC( HDC hdc );
291 W32KAPI HPALETTE WINAPI NtGdiCreatePaletteInternal( const LOGPALETTE *palette, UINT count );
292 W32KAPI HBRUSH WINAPI NtGdiCreatePatternBrushInternal( HBITMAP hbitmap, BOOL pen, BOOL is_8x8 );
293 W32KAPI HPEN WINAPI NtGdiCreatePen( INT style, INT width, COLORREF color, HBRUSH brush );
294 W32KAPI HRGN WINAPI NtGdiCreateRectRgn( INT left, INT top, INT right, INT bottom );
295 W32KAPI HRGN WINAPI NtGdiCreateRoundRectRgn( INT left, INT top, INT right, INT bottom,
296 INT ellipse_width, INT ellipse_height );
297 W32KAPI HBRUSH WINAPI NtGdiCreateSolidBrush( COLORREF color, HBRUSH brush );
298 W32KAPI BOOL WINAPI NtGdiDeleteClientObj( HGDIOBJ obj );
299 W32KAPI BOOL WINAPI NtGdiDeleteObjectApp( HGDIOBJ obj );
300 W32KAPI INT WINAPI NtGdiDescribePixelFormat( HDC hdc, INT format, UINT size,
301 PIXELFORMATDESCRIPTOR *descr );
302 W32KAPI LONG WINAPI NtGdiDoPalette( HGDIOBJ handle, WORD start, WORD count, void *entries,
303 DWORD func, BOOL inbound );
304 W32KAPI BOOL WINAPI NtGdiDrawStream( HDC hdc, ULONG in, void *pvin );
305 W32KAPI BOOL WINAPI NtGdiEllipse( HDC hdc, INT left, INT top, INT right, INT bottom );
306 W32KAPI INT WINAPI NtGdiEndDoc( HDC hdc );
307 W32KAPI BOOL WINAPI NtGdiEndPath( HDC hdc );
308 W32KAPI INT WINAPI NtGdiEndPage( HDC hdc );
309 W32KAPI BOOL WINAPI NtGdiEnumFonts( HDC hdc, ULONG type, ULONG win32_compat, ULONG face_name_len,
310 const WCHAR *face_name, ULONG charset, ULONG *count, void *buf );
311 W32KAPI BOOL WINAPI NtGdiEqualRgn( HRGN hrgn1, HRGN hrgn2 );
312 W32KAPI INT WINAPI NtGdiExcludeClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
313 W32KAPI HPEN WINAPI NtGdiExtCreatePen( DWORD style, DWORD width, ULONG brush_style, ULONG color,
314 ULONG_PTR client_hatch, ULONG_PTR hatch, DWORD style_count,
315 const DWORD *style_bits, ULONG dib_size, BOOL old_style,
316 HBRUSH brush );
317 W32KAPI INT WINAPI NtGdiExtEscape( HDC hdc, WCHAR *driver, INT driver_id, INT escape, INT input_size,
318 const char *input, INT output_size, char *output );
319 W32KAPI BOOL WINAPI NtGdiExtFloodFill( HDC hdc, INT x, INT y, COLORREF color, UINT type );
320 W32KAPI BOOL WINAPI NtGdiExtTextOutW( HDC hdc, INT x, INT y, UINT flags, const RECT *rect,
321 const WCHAR *str, UINT count, const INT *dx, DWORD cp );
322 W32KAPI HRGN WINAPI NtGdiExtCreateRegion( const XFORM *xform, DWORD count, const RGNDATA *data );
323 W32KAPI INT WINAPI NtGdiExtGetObjectW( HGDIOBJ handle, INT count, void *buffer );
324 W32KAPI INT WINAPI NtGdiExtSelectClipRgn( HDC hdc, HRGN region, INT mode );
325 W32KAPI BOOL WINAPI NtGdiFillPath( HDC hdc );
326 W32KAPI BOOL WINAPI NtGdiFillRgn( HDC hdc, HRGN hrgn, HBRUSH hbrush );
327 W32KAPI BOOL WINAPI NtGdiFlattenPath( HDC hdc );
328 W32KAPI BOOL WINAPI NtGdiFontIsLinked( HDC hdc );
329 W32KAPI BOOL WINAPI NtGdiFlush(void);
330 W32KAPI BOOL WINAPI NtGdiFrameRgn( HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height );
331 W32KAPI BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *result );
332 W32KAPI INT WINAPI NtGdiGetAppClipBox( HDC hdc, RECT *rect );
333 W32KAPI LONG WINAPI NtGdiGetBitmapBits( HBITMAP bitmap, LONG count, void *bits );
334 W32KAPI BOOL WINAPI NtGdiGetBitmapDimension( HBITMAP bitmap, SIZE *size );
335 W32KAPI UINT WINAPI NtGdiGetBoundsRect( HDC hdc, RECT *rect, UINT flags );
336 W32KAPI BOOL WINAPI NtGdiGetCharABCWidthsW( HDC hdc, UINT first, UINT last, WCHAR *chars,
337 ULONG flags, void *buffer );
338 W32KAPI BOOL WINAPI NtGdiGetCharWidthW( HDC hdc, UINT first_char, UINT last_char, WCHAR *chars,
339 ULONG flags, void *buffer );
340 W32KAPI BOOL WINAPI NtGdiGetCharWidthInfo( HDC hdc, struct char_width_info *info );
341 W32KAPI BOOL WINAPI NtGdiGetColorAdjustment( HDC hdc, COLORADJUSTMENT *ca );
342 W32KAPI BOOL WINAPI NtGdiGetDCDword( HDC hdc, UINT method, DWORD *result );
343 W32KAPI HANDLE WINAPI NtGdiGetDCObject( HDC hdc, UINT type );
344 W32KAPI BOOL WINAPI NtGdiGetDCPoint( HDC hdc, UINT method, POINT *result );
345 W32KAPI INT WINAPI NtGdiGetDIBitsInternal( HDC hdc, HBITMAP hbitmap, UINT startscan, UINT lines,
346 void *bits, BITMAPINFO *info, UINT coloruse,
347 UINT max_bits, UINT max_info );
348 W32KAPI INT WINAPI NtGdiGetDeviceCaps( HDC hdc, INT cap );
349 W32KAPI BOOL WINAPI NtGdiGetDeviceGammaRamp( HDC hdc, void *ptr );
350 W32KAPI DWORD WINAPI NtGdiGetFontData( HDC hdc, DWORD table, DWORD offset, void *buffer, DWORD length );
351 W32KAPI BOOL WINAPI NtGdiGetFontFileData( DWORD instance_id, DWORD file_index, UINT64 *offset,
352 void *buff, SIZE_T buff_size );
353 W32KAPI BOOL WINAPI NtGdiGetFontFileInfo( DWORD instance_id, DWORD file_index, struct font_fileinfo *info,
354 SIZE_T size, SIZE_T *needed );
355 W32KAPI DWORD WINAPI NtGdiGetFontUnicodeRanges( HDC hdc, GLYPHSET *lpgs );
356 W32KAPI DWORD WINAPI NtGdiGetGlyphIndicesW( HDC hdc, const WCHAR *str, INT count,
357 WORD *indices, DWORD flags );
358 W32KAPI DWORD WINAPI NtGdiGetGlyphOutline( HDC hdc, UINT ch, UINT format, GLYPHMETRICS *metrics,
359 DWORD size, void *buffer, const MAT2 *mat2,
360 BOOL ignore_rotation );
361 W32KAPI DWORD WINAPI NtGdiGetKerningPairs( HDC hdc, DWORD count, KERNINGPAIR *kern_pair );
362 W32KAPI BOOL WINAPI NtGdiGetMiterLimit( HDC hdc, DWORD *limit );
363 W32KAPI COLORREF WINAPI NtGdiGetNearestColor( HDC hdc, COLORREF color );
364 W32KAPI UINT WINAPI NtGdiGetNearestPaletteIndex( HPALETTE hpalette, COLORREF color );
365 W32KAPI UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData,
366 OUTLINETEXTMETRICW *otm, ULONG opts );
367 W32KAPI INT WINAPI NtGdiGetPath( HDC hdc, POINT *points, BYTE *types, INT size );
368 W32KAPI COLORREF WINAPI NtGdiGetPixel( HDC hdc, INT x, INT y );
369 W32KAPI INT WINAPI NtGdiGetRandomRgn( HDC hdc, HRGN region, INT code );
370 W32KAPI BOOL WINAPI NtGdiGetRasterizerCaps( RASTERIZER_STATUS *status, UINT size );
371 W32KAPI BOOL WINAPI NtGdiGetRealizationInfo( HDC hdc, struct font_realization_info *info );
372 W32KAPI DWORD WINAPI NtGdiGetRegionData( HRGN hrgn, DWORD count, RGNDATA *data );
373 W32KAPI INT WINAPI NtGdiGetRgnBox( HRGN hrgn, RECT *rect );
374 W32KAPI DWORD WINAPI NtGdiGetSpoolMessage( void *ptr1, DWORD data2, void *ptr3, DWORD data4 );
375 W32KAPI UINT WINAPI NtGdiGetSystemPaletteUse( HDC hdc );
376 W32KAPI UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags );
377 W32KAPI BOOL WINAPI NtGdiGetTextExtentExW( HDC hdc, const WCHAR *str, INT count, INT max_ext,
378 INT *nfit, INT *dxs, SIZE *size, UINT flags );
379 W32KAPI INT WINAPI NtGdiGetTextFaceW( HDC hdc, INT count, WCHAR *name, BOOL alias_name );
380 W32KAPI BOOL WINAPI NtGdiGetTextMetricsW( HDC hdc, TEXTMETRICW *metrics, ULONG flags );
381 W32KAPI BOOL WINAPI NtGdiGetTransform( HDC hdc, DWORD which, XFORM *xform );
382 W32KAPI BOOL WINAPI NtGdiGradientFill( HDC hdc, TRIVERTEX *vert_array, ULONG nvert,
383 void *grad_array, ULONG ngrad, ULONG mode );
384 W32KAPI HFONT WINAPI NtGdiHfontCreate( const void *logfont, ULONG unk2, ULONG unk3,
385 ULONG unk4, void *data );
386 W32KAPI BOOL WINAPI NtGdiIcmBrushInfo( HDC hdc, HBRUSH handle, BITMAPINFO *info, void *bits,
387 ULONG *bits_size, UINT *usage, BOOL *unk, UINT mode );
388 W32KAPI DWORD WINAPI NtGdiInitSpool(void);
389 W32KAPI INT WINAPI NtGdiIntersectClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
390 W32KAPI BOOL WINAPI NtGdiInvertRgn( HDC hdc, HRGN hrgn );
391 W32KAPI BOOL WINAPI NtGdiLineTo( HDC hdc, INT x, INT y );
392 W32KAPI BOOL WINAPI NtGdiMaskBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
393 HDC hdc_src, INT x_src, INT y_src, HBITMAP mask,
394 INT x_mask, INT y_mask, DWORD rop, DWORD bk_color );
395 W32KAPI BOOL WINAPI NtGdiModifyWorldTransform( HDC hdc, const XFORM *xform, DWORD mode );
396 W32KAPI BOOL WINAPI NtGdiMoveTo( HDC hdc, INT x, INT y, POINT *pt );
397 W32KAPI INT WINAPI NtGdiOffsetClipRgn( HDC hdc, INT x, INT y );
398 W32KAPI INT WINAPI NtGdiOffsetRgn( HRGN hrgn, INT x, INT y );
399 W32KAPI HDC WINAPI NtGdiOpenDCW( UNICODE_STRING *device, const DEVMODEW *devmode,
400 UNICODE_STRING *output, ULONG type, BOOL is_display,
401 HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev );
402 W32KAPI BOOL WINAPI NtGdiPatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
403 W32KAPI HRGN WINAPI NtGdiPathToRegion( HDC hdc );
404 W32KAPI BOOL WINAPI NtGdiPlgBlt( HDC hdc, const POINT *point, HDC hdc_src, INT x_src, INT y_src,
405 INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
406 DWORD bk_color );
407 W32KAPI BOOL WINAPI NtGdiPolyDraw(HDC hdc, const POINT *points, const BYTE *types, DWORD count );
408 W32KAPI ULONG WINAPI NtGdiPolyPolyDraw( HDC hdc, const POINT *points, const ULONG *counts,
409 DWORD count, UINT function );
410 W32KAPI BOOL WINAPI NtGdiPtInRegion( HRGN hrgn, INT x, INT y );
411 W32KAPI BOOL WINAPI NtGdiPtVisible( HDC hdc, INT x, INT y );
412 W32KAPI BOOL WINAPI NtGdiRectInRegion( HRGN hrgn, const RECT *rect );
413 W32KAPI BOOL WINAPI NtGdiRectVisible( HDC hdc, const RECT *rect );
414 W32KAPI BOOL WINAPI NtGdiRectangle( HDC hdc, INT left, INT top, INT right, INT bottom );
415 W32KAPI BOOL WINAPI NtGdiRemoveFontMemResourceEx( HANDLE handle );
416 W32KAPI BOOL WINAPI NtGdiRemoveFontResourceW( const WCHAR *str, ULONG size, ULONG files,
417 DWORD flags, DWORD tid, void *dv );
418 W32KAPI BOOL WINAPI NtGdiResetDC( HDC hdc, const DEVMODEW *devmode, BOOL *banding,
419 DRIVER_INFO_2W *driver_info, void *dev );
420 W32KAPI BOOL WINAPI NtGdiResizePalette( HPALETTE palette, UINT count );
421 W32KAPI BOOL WINAPI NtGdiRestoreDC( HDC hdc, INT level );
422 W32KAPI BOOL WINAPI NtGdiRoundRect( HDC hdc, INT left, INT top, INT right,
423 INT bottom, INT ell_width, INT ell_height );
424 W32KAPI INT WINAPI NtGdiSaveDC( HDC hdc );
425 W32KAPI BOOL WINAPI NtGdiScaleViewportExtEx( HDC hdc, INT x_num, INT x_denom,
426 INT y_num, INT y_denom, SIZE *size );
427 W32KAPI BOOL WINAPI NtGdiScaleWindowExtEx( HDC hdc, INT x_num, INT x_denom,
428 INT y_num, INT y_denom, SIZE *size );
429 W32KAPI HGDIOBJ WINAPI NtGdiSelectBitmap( HDC hdc, HGDIOBJ handle );
430 W32KAPI HGDIOBJ WINAPI NtGdiSelectBrush( HDC hdc, HGDIOBJ handle );
431 W32KAPI BOOL WINAPI NtGdiSelectClipPath( HDC hdc, INT mode );
432 W32KAPI HGDIOBJ WINAPI NtGdiSelectFont( HDC hdc, HGDIOBJ handle );
433 W32KAPI HGDIOBJ WINAPI NtGdiSelectPen( HDC hdc, HGDIOBJ handle );
434 W32KAPI LONG WINAPI NtGdiSetBitmapBits( HBITMAP hbitmap, LONG count, const void *bits );
435 W32KAPI BOOL WINAPI NtGdiSetBitmapDimension( HBITMAP hbitmap, INT x, INT y, SIZE *prev_size );
436 W32KAPI BOOL WINAPI NtGdiSetBrushOrg( HDC hdc, INT x, INT y, POINT *prev_org );
437 W32KAPI UINT WINAPI NtGdiSetBoundsRect( HDC hdc, const RECT *rect, UINT flags );
438 W32KAPI BOOL WINAPI NtGdiSetColorAdjustment( HDC hdc, const COLORADJUSTMENT *ca );
439 W32KAPI INT WINAPI NtGdiSetDIBitsToDeviceInternal( HDC hdc, INT x_dst, INT y_dst, DWORD cx,
440 DWORD cy, INT x_src, INT y_src, UINT startscan,
441 UINT lines, const void *bits, const BITMAPINFO *bmi,
442 UINT coloruse, UINT max_bits, UINT max_info,
443 BOOL xform_coords, HANDLE xform );
444 W32KAPI BOOL WINAPI NtGdiSetDeviceGammaRamp( HDC hdc, void *ptr );
445 W32KAPI DWORD WINAPI NtGdiSetLayout( HDC hdc, LONG wox, DWORD layout );
446 W32KAPI BOOL WINAPI NtGdiSetMagicColors( HDC hdc, DWORD magic, ULONG index );
447 W32KAPI INT WINAPI NtGdiSetMetaRgn( HDC hdc );
448 W32KAPI BOOL WINAPI NtGdiSetMiterLimit( HDC hdc, DWORD limit, DWORD *prev_limit );
449 W32KAPI COLORREF WINAPI NtGdiSetPixel( HDC hdc, INT x, INT y, COLORREF color );
450 W32KAPI BOOL WINAPI NtGdiSetPixelFormat( HDC hdc, INT format );
451 W32KAPI BOOL WINAPI NtGdiSetRectRgn( HRGN hrgn, INT left, INT top, INT right, INT bottom );
452 W32KAPI UINT WINAPI NtGdiSetSystemPaletteUse( HDC hdc, UINT use );
453 W32KAPI BOOL WINAPI NtGdiSetTextJustification( HDC hdc, INT extra, INT breaks );
454 W32KAPI BOOL WINAPI NtGdiSetVirtualResolution( HDC hdc, DWORD horz_res, DWORD vert_res,
455 DWORD horz_size, DWORD vert_size );
456 W32KAPI INT WINAPI NtGdiStartDoc( HDC hdc, const DOCINFOW *doc, BOOL *banding, INT job );
457 W32KAPI INT WINAPI NtGdiStartPage( HDC hdc );
458 W32KAPI BOOL WINAPI NtGdiStretchBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
459 HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src,
460 DWORD rop, COLORREF bk_color );
461 W32KAPI INT WINAPI NtGdiStretchDIBitsInternal( HDC hdc, INT x_dst, INT y_dst, INT width_dst,
462 INT height_dst, INT x_src, INT y_src, INT width_src,
463 INT height_src, const void *bits, const BITMAPINFO *bmi,
464 UINT coloruse, DWORD rop, UINT max_info, UINT max_bits,
465 HANDLE xform );
466 W32KAPI BOOL WINAPI NtGdiStrokeAndFillPath( HDC hdc );
467 W32KAPI BOOL WINAPI NtGdiStrokePath( HDC hdc );
468 W32KAPI BOOL WINAPI NtGdiSwapBuffers( HDC hdc );
469 W32KAPI BOOL WINAPI NtGdiTransparentBlt( HDC hdc, int x_dst, int y_dst, int width_dst, int height_dst,
470 HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
471 UINT color );
472 W32KAPI BOOL WINAPI NtGdiTransformPoints( HDC hdc, const POINT *points_in, POINT *points_out,
473 INT count, UINT mode );
474 W32KAPI BOOL WINAPI NtGdiUnrealizeObject( HGDIOBJ obj );
475 W32KAPI BOOL WINAPI NtGdiUpdateColors( HDC hdc );
476 W32KAPI BOOL WINAPI NtGdiWidenPath( HDC hdc );
478 W32KAPI NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc );
479 W32KAPI NTSTATUS WINAPI NtGdiDdDDICloseAdapter( const D3DKMT_CLOSEADAPTER *desc );
480 W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDCFromMemory( D3DKMT_CREATEDCFROMMEMORY *desc );
481 W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDevice( D3DKMT_CREATEDEVICE *desc );
482 W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDCFromMemory( const D3DKMT_DESTROYDCFROMMEMORY *desc );
483 W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDevice( const D3DKMT_DESTROYDEVICE *desc );
484 W32KAPI NTSTATUS WINAPI NtGdiDdDDIEscape( const D3DKMT_ESCAPE *desc );
485 W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC *desc );
486 W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromDeviceName( D3DKMT_OPENADAPTERFROMDEVICENAME *desc );
487 W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc );
488 W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryAdapterInfo( D3DKMT_QUERYADAPTERINFO *desc );
489 W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryStatistics( D3DKMT_QUERYSTATISTICS *stats );
490 W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc );
491 W32KAPI NTSTATUS WINAPI NtGdiDdDDISetQueuedLimit( D3DKMT_SETQUEUEDLIMIT *desc );
492 W32KAPI NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER *desc );
494 /* Wine extensions */
495 W32KAPI const struct vulkan_funcs * __wine_get_vulkan_driver(UINT version);
496 W32KAPI const struct opengl_funcs *__wine_get_wgl_driver( HDC hdc, UINT version );
497 W32KAPI BOOL WINAPI __wine_get_icm_profile( HDC hdc, BOOL allow_default, DWORD *size, WCHAR *filename );
498 W32KAPI BOOL WINAPI __wine_get_file_outline_text_metric( const WCHAR *path, TEXTMETRICW *otm,
499 UINT *em_square, WCHAR *face_name );
501 #endif /* _NTGDI_ */