Fix CHWIDTHINFO size.
[reactos.git] / reactos / include / reactos / win32k / ntgdityp.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)
4 * FILE: include/win32k/ntgdityp.h
5 * PURPOSE: Win32 Shared GDI Types for NtGdi*
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #ifndef _NTGDITYP_
12 #define _NTGDITYP_
13
14 /* ENUMERATIONS **************************************************************/
15
16 typedef enum _ARCTYPE
17 {
18 GdiTypeArc,
19 GdiTypeArcTo,
20 GdiTypeChord,
21 GdiTypePie,
22 } ARCTYPE, *PARCTYPE;
23
24 typedef enum _PALFUNCTYPE
25 {
26 GdiPalAnimate,
27 GdiPalSetEntries,
28 GdiPalGetEntries,
29 GdiPalGetSystemEntries,
30 GdiPalSetColorTable,
31 GdiPalGetColorTable,
32 } PALFUNCTYPE, *PPALFUNCTYPE;
33
34 typedef enum _POLYFUNCTYPE
35 {
36 GdiPolyPolygon = 1,
37 GdiPolyPolyLine,
38 GdiPolyBezier,
39 GdiPolyLineTo,
40 GdiPolyBezierTo,
41 GdiPolyPolyRgn,
42 } POLYFUNCTYPE, *PPOLYFUNCTYPE;
43
44 typedef enum _GETDCDWORD
45 {
46 GdiGetJournal,
47 GdiGetRelAbs,
48 GdiGetBreakExtra,
49 GdiGerCharBreak,
50 GdiGetArcDirection,
51 GdiGetEMFRestorDc,
52 GdiGetFontLanguageInfo,
53 GdiGetIsMemDc,
54 GdiGetMapMode,
55 GdiGetTextCharExtra,
56 } GETDCDWORD, *PGETDCDWORD;
57
58 typedef enum _GETSETDCDWORD
59 {
60 GdtGetSetCopyCount = 2,
61 GdiGetSetTextAlign,
62 GdiGetSetRelAbs,
63 GdiGetSetTextCharExtra,
64 GdiGetSetSelectFont,
65 GdiGetSetMapperFlagsInternal,
66 GdiGetSetMapMode,
67 GdiGetSetArcDirection,
68 } GETSETDCDWORD, *PGETSETDCDWORD;
69
70 typedef enum _GETDCPOINT
71 {
72 GdiGetViewPortExt = 1,
73 GdiGetWindowExt,
74 GdiGetViewPortOrg,
75 GdiGetWindowOrg,
76 GdiGetAspectRatioFilter,
77 GdiGetDCOrg = 6,
78 } GETDCPOINT, *PGETDCPOINT;
79
80
81 typedef enum _GDIBATCHCMD
82 {
83 GdiBCPatBlt,
84 GdiBCPolyPatBlt,
85 GdiBCTextOut,
86 GdiBCExtTextOut,
87 GdiBCSetBrushOrg,
88 GdiBCExtSelClipRgn,
89 GdiBCSelObj,
90 GdiBCDelObj,
91 GdiBCDelRgn,
92 } GDIBATCHCMD, *PGDIBATCHCMD;
93
94 typedef enum _TRANSFORMTYPE
95 {
96 GdiDpToLp,
97 GdiLpToDp,
98 } TRANSFORMTYPE, *PTRANSFORMTYPE;
99
100 #define GdiWorldSpaceToPageSpace 0x203
101
102 /* FIXME: Unknown */
103 typedef DWORD FULLSCREENCONTROL;
104 typedef DWORD LFTYPE;
105
106 /* DEFINES *******************************************************************/
107
108 #define GDIBATCHBUFSIZE 0x136*4
109 #define GDI_BATCH_LIMIT 20
110
111 // NtGdiGetCharWidthW Flags
112 #define GCW_WIN32 0x0001
113 #define GCW_NOFLOAT 0x0002
114 #define GCW_INDICES 0x0008
115
116 // NtGdiGetCharABCWidthW Flags
117 #define GCABCW_NOFLOAT 0x0001
118 #define GCABCW_INDICES 0x0002
119
120 /* CAPS1 support */
121 //#define C1_TRANSPARENT 0x0001
122 #define TC_TT_ABLE 0x0002
123 #define C1_TT_CR_ANY 0x0004
124 #define C1_EMF_COMPLIANT 0x0008
125 #define C1_DIBENGINE 0x0010
126 #define C1_GAMMA_RAMP 0x0040
127 #define C1_REINIT_ABLE 0x0080
128 #define C1_GLYPH_INDEX 0x0100
129 #define C1_BIT_PACKED 0x0200
130 #define C1_BYTE_PACKED 0x0400
131 #define C1_COLORCURSOR 0x0800
132 #define C1_CMYK_ABLE 0x1000
133 #define C1_SLOW_CARD 0x2000
134
135 /* TYPES *********************************************************************/
136
137 typedef PVOID KERNEL_PVOID;
138 typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
139 typedef LONG FIX;
140
141 typedef struct _CHWIDTHINFO
142 {
143 LONG lMaxNegA;
144 LONG lMaxNegC;
145 LONG lMinWidthD;
146 } CHWIDTHINFO, *PCHWIDTHINFO;
147
148 typedef struct _UNIVERSAL_FONT_ID
149 {
150 DWORD dwUfid[2];
151 } UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
152
153 typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
154 {
155 DWORD dwCsbDefault[2];
156 DWORD dwCsbSupported0;
157 } REALIZATION_INFO, *PREALIZATION_INFO;
158
159 typedef struct _WIDTHDATA
160 {
161 USHORT sOverhang;
162 USHORT sHeight;
163 USHORT sCharInc;
164 USHORT sBreak;
165 BYTE jFirst;
166 BYTE jLast;
167 BYTE jBreak;
168 BYTE jDefault;
169 USHORT sDBCSInc;
170 USHORT sDefaultInc;
171 } WIDTHDATA, *PWIDTHDATA;
172
173 typedef struct _DEVCAPS // Very similar to GDIINFO
174 {
175 ULONG ulVersion;
176 ULONG ulTechnology;
177 ULONG ulHorzSizeM;
178 ULONG ulVertSizeM;
179 ULONG ulHorzSize;
180 ULONG ulVertSize;
181 ULONG ulHorzRes;
182 ULONG ulVertRes;
183 ULONG ulBitsPixel;
184 ULONG ulPlanes;
185 ULONG ulNumPens;
186 ULONG ulNumFonts;
187 ULONG ulNumColors;
188 ULONG ulRasterCaps;
189 ULONG ulAspectX;
190 ULONG ulAspectY;
191 ULONG ulAspectXY;
192 ULONG ulLogPixelsX;
193 ULONG ulLogPixelsY;
194 ULONG ulSizePalette;
195 ULONG ulColorRes;
196 ULONG ulPhysicalWidth;
197 ULONG ulPhysicalHeight;
198 ULONG ulPhysicalOffsetX;
199 ULONG ulPhysicalOffsetY;
200 ULONG ulTextCaps;
201 ULONG ulVRefresh;
202 ULONG ulDesktopHorzRes;
203 ULONG ulDesktopVertRes;
204 ULONG ulBltAlignment;
205 ULONG ulReserved[4];
206 ULONG ulShadeBlend;
207 ULONG ulColorMgmtCaps;
208 } DEVCAPS, *PDEVCAPS;
209
210 /* Font Structures */
211 typedef struct _TMDIFF
212 {
213 ULONG cjotma;
214 CHAR chFirst;
215 CHAR chLast;
216 CHAR ChDefault;
217 CHAR ChBreak;
218 } TMDIFF, *PTMDIFF;
219
220 typedef struct _TMW_INTERNAL
221 {
222 TEXTMETRICW TextMetric;
223 TMDIFF Diff;
224 } TMW_INTERNAL, *PTMW_INTERNAL;
225
226 typedef struct _NTMW_INTERNAL
227 {
228 TMDIFF tmd;
229 NEWTEXTMETRICEXW ntmw;
230 } NTMW_INTERNAL, *PNTMW_INTERNAL;
231
232 typedef struct _ENUMFONTDATAW
233 {
234 ULONG cbSize;
235 ULONG ulNtmwiOffset;
236 DWORD dwFontType;
237 ENUMLOGFONTEXDVW elfexdv; /* variable size! */
238 /* NTMW_INTERNAL ntmwi; use ulNtwmOffset */
239 } ENUMFONTDATAW, *PENUMFONTDATAW;
240
241 /* Number Representation */
242 typedef struct _EFLOAT_S
243 {
244 LONG lMant;
245 LONG lExp;
246 } EFLOAT_S;
247
248 /* XFORM Structures */
249 typedef struct _MATRIX_S
250 {
251 EFLOAT_S efM11;
252 EFLOAT_S efM12;
253 EFLOAT_S efM21;
254 EFLOAT_S efM22;
255 EFLOAT_S efDx;
256 EFLOAT_S efDy;
257 FIX fxDx;
258 FIX fxDy;
259 FLONG flAccel;
260 } MATRIX_S;
261
262 /* Gdi XForm storage union */
263 typedef union
264 {
265 FLOAT f;
266 ULONG l;
267 } gxf_long;
268
269 typedef struct _CFONT
270 {
271 struct _CFONT *pcfNext;
272 HFONT hf;
273 ULONG cRef; // Count of all pointers to this CFONT.
274 FLONG fl;
275 LONG lHeight; // Precomputed logical height.
276 HDC hdc; // HDC of realization. 0 for display.
277 EFLOAT_S efM11; // efM11 of WtoD of DC of realization
278 EFLOAT_S efM22; // efM22 of WtoD of DC of realization
279 EFLOAT_S efDtoWBaseline; // Precomputed back transform. (FXtoL)
280 EFLOAT_S efDtoWAscent; // Precomputed back transform. (FXtoL)
281 WIDTHDATA wd;
282 FLONG flInfo;
283 USHORT sWidth[256]; // Widths in pels.
284 ULONG ulAveWidth; // bogus average used by USER
285 TMW_INTERNAL tmw; // cached metrics
286 LOCALESIGNATURE lsLocSig; // font signature information
287 } CFONT, *PCFONT;
288
289 //
290 // GDI Batch structures.
291 //
292 typedef struct _GDIBATCHHDR
293 {
294 SHORT Size;
295 SHORT Cmd;
296 } GDIBATCHHDR, *PGDIBATCHHDR;
297
298 typedef struct _GDIBSPATBLT
299 {
300 GDIBATCHHDR gbHdr;
301 int nXLeft;
302 int nYLeft;
303 int nWidth;
304 int nHeight;
305 HANDLE hbrush;
306 DWORD dwRop;
307 COLORREF crForegroundClr;
308 COLORREF crBackgroundClr;
309 COLORREF crBrushClr;
310 INT IcmBrushColor;
311 POINTL ptlViewportOrg;
312 ULONG ulForegroundClr;
313 ULONG ulBackgroundClr;
314 ULONG ulBrushClr;
315 } GDIBSPATBLT, *PGDIBSPATBLT;
316
317 #ifndef _NTUSRTYP_
318 typedef struct _PATRECT
319 {
320 RECT r;
321 HBRUSH hBrush;
322 } PATRECT, * PPATRECT;
323 #endif
324
325 typedef struct _GDIBSPPATBLT
326 {
327 GDIBATCHHDR gbHdr;
328 DWORD rop4;
329 DWORD Mode;
330 DWORD Count;
331 COLORREF crForegroundClr;
332 COLORREF crBackgroundClr;
333 COLORREF crBrushClr;
334 ULONG ulForegroundClr;
335 ULONG ulBackgroundClr;
336 ULONG ulBrushClr;
337 POINTL ptlViewportOrg;
338 PATRECT pRect[1]; // POLYPATBLT
339 } GDIBSPPATBLT, *PGDIBSPPATBLT;
340
341 typedef struct _GDIBSTEXTOUT
342 {
343 GDIBATCHHDR gbHdr;
344 COLORREF crForegroundClr;
345 COLORREF crBackgroundClr;
346 LONG lmBkMode;
347 ULONG ulForegroundClr;
348 ULONG ulBackgroundClr;
349 int x;
350 int y;
351 UINT Options;
352 RECT Rect;
353 DWORD iCS_CP;
354 UINT cbCount;
355 UINT Size;
356 HANDLE hlfntNew;
357 FLONG flTextAlign;
358 POINTL ptlViewportOrg;
359 WCHAR String[2];
360 } GDIBSTEXTOUT, *PGDIBSTEXTOUT;
361
362 typedef struct _GDIBSEXTTEXTOUT
363 {
364 GDIBATCHHDR gbHdr;
365 UINT Count;
366 UINT Options;
367 RECT Rect;
368 POINTL ptlViewportOrg;
369 ULONG ulBackgroundClr;
370 } GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT;
371
372 typedef struct _GDIBSSETBRHORG
373 {
374 GDIBATCHHDR gbHdr;
375 POINTL ptlBrushOrigin;
376 } GDIBSSETBRHORG, *PGDIBSSETBRHORG;
377
378 typedef struct _GDIBSEXTSELCLPRGN
379 {
380 GDIBATCHHDR gbHdr;
381 int fnMode;
382 LONG right;
383 LONG bottom;
384 LONG left;
385 LONG top;
386 } GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
387 //
388 // Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
389 typedef struct _GDIBSOBJECT
390 {
391 GDIBATCHHDR gbHdr;
392 HGDIOBJ hgdiobj;
393 } GDIBSOBJECT, *PGDIBSOBJECT;
394
395 //
396 // Driver Functions
397 //
398 typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
399 typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW *, LPWSTR, ULONG, HSURF *, ULONG, ULONG *, ULONG, DEVINFO *, LPWSTR, LPWSTR, HANDLE);
400 typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
401 typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV);
402 typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);
403 typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);
404 typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);
405 typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
406 typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);
407 typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);
408 typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
409 typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF);
410 typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, RECTL*, BLENDOBJ*);
411 typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*, ULONG);
412 typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
413 typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*, POINTL*, PLINEATTRS, MIX);
414 typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX, ULONG);
415 typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*, PLINEATTRS, BRUSHOBJ*, POINTL*, MIX, ULONG);
416 typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
417 typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, POINTL*, POINTL*, BRUSHOBJ*, POINTL*, ROP4);
418 typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, RECTL*, ULONG, ULONG);
419 typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, POINTL*);
420 typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG);
421 typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG, BRUSHOBJ*, DWORD);
422 typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
423 typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, RECTL*, BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
424 typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
425 typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, PVOID *);
426 typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
427 typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
428 typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*, PVOID, ULONG);
429 typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*, LONG, LONG, LONG, LONG, RECTL*, ULONG);
430 typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
431 typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, LONG, RECTL*, MIX);
432 typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);
433 typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);
434 typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);
435 typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
436 typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
437 typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
438 typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
439 typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
440 typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);
441 typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);
442 typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);
443 typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
444 typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);
445 typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID, ULONG, PVOID);
446 typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG, PBYTE);
447 typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL, GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
448 typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
449 typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
450 typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, PVOID *, ULONG);
451 typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
452 typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG, PPIXELFORMATDESCRIPTOR);
453 typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
454 typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
455 typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
456 typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*, PDWORD, PDWORD);
457 typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS, PDD_PALETTECALLBACKS);
458 typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);
459 typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
460 typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);
461 typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
462
463 //
464 // Most of these are definded in ddk/winddi.h
465 //
466 typedef struct _DRIVER_FUNCTIONS
467 {
468 PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
469 PGD_ENABLEPDEV EnablePDEV;
470 PGD_COMPLETEPDEV CompletePDEV;
471 PGD_DISABLEPDEV DisablePDEV;
472 PGD_ENABLESURFACE EnableSurface;
473 PGD_DISABLESURFACE DisableSurface;
474 PGD_ASSERTMODE AssertMode;
475 PGD_OFFSET Offset;
476 PGD_RESETPDEV ResetPDEV;
477 PGD_DISABLEDRIVER DisableDriver;
478 PVOID Unknown0;
479 PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;
480 PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;
481 PGD_REALIZEBRUSH RealizeBrush;
482 PGD_DITHERCOLOR DitherColor;
483 PGD_STROKEPATH StrokePath;
484 PGD_FILLPATH FillPath;
485 PGD_STROKEANDFILLPATH StrokeAndFillPath;
486 PGD_PAINT Paint;
487 PGD_BITBLT BitBlt;
488 PGD_COPYBITS CopyBits;
489 PGD_STRETCHBLT StretchBlt;
490 PVOID Unknown1;
491 PGD_SETPALETTE SetPalette;
492 PGD_TEXTOUT TextOut;
493 PGD_ESCAPE Escape;
494 PGD_DRAWESCAPE DrawEscape;
495 PGD_QUERYFONT QueryFont;
496 PGD_QUERYFONTTREE QueryFontTree;
497 PGD_QUERYFONTDATA QueryFontData;
498 PGD_SETPOINTERSHAPE SetPointerShape;
499 PGD_MOVEPOINTER MovePointer;
500 PGD_LINETO LineTo;
501 PGD_SENDPAGE SendPage;
502 PGD_STARTPAGE StartPage;
503 PGD_ENDDOC EndDoc;
504 PGD_STARTDOC StartDoc;
505 PVOID Unknown2;
506 PGD_GETGLYPHMODE GetGlyphMode;
507 PGD_SYNCHRONIZE Synchronize;
508 PVOID Unknown3;
509 PGD_SAVESCREENBITS SaveScreenBits;
510 PGD_GETMODES GetModes;
511 PGD_FREE Free;
512 PGD_DESTROYFONT DestroyFont;
513 PGD_QUERYFONTCAPS QueryFontCaps;
514 PGD_LOADFONTFILE LoadFontFile;
515 PGD_UNLOADFONTFILE UnloadFontFile;
516 PGD_FONTMANAGEMENT FontManagement;
517 PGD_QUERYTRUETYPETABLE QueryTrueTypeTable;
518 PGD_QUERYTRUETYPEOUTLINE QueryTrueTypeOutline;
519 PGD_GETTRUETYPEFILE GetTrueTypeFile;
520 PGD_QUERYFONTFILE QueryFontFile;
521 PFN_DrvMovePanning MovePanning;
522 PGD_QUERYADVANCEWIDTHS QueryAdvanceWidths;
523 PGD_SETPIXELFORMAT SetPixelFormat;
524 PGD_DESCRIBEPIXELFORMAT DescribePixelFormat;
525 PGD_SWAPBUFFERS SwapBuffers;
526 PGD_STARTBANDING StartBanding;
527 PGD_NEXTBAND NextBand;
528 PGD_GETDIRECTDRAWINFO GetDirectDrawInfo;
529 PGD_ENABLEDIRECTDRAW EnableDirectDraw;
530 PGD_DISABLEDIRECTDRAW DisableDirectDraw;
531 PGD_QUERYSPOOLTYPE QuerySpoolType;
532 PVOID Unknown4;
533 PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
534 PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
535 PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
536 PFN_DrvIcmSetDeviceGammaRamp IcmSetDeviceGammaRamp;
537 PGD_GRADIENTFILL GradientFill;
538 PGD_STRETCHBLTROP StretchBltROP;
539 PFN_DrvPlgBlt PlgBlt;
540 PGD_ALPHABLEND AlphaBlend;
541 // PFN_DrvSynthesizeFont SynthesizeFont;
542 PVOID Unknown5;
543 // PFN_DrvGetSynthesizedFontFiles GetSynthesizedFontFiles;
544 PVOID Unknown6;
545 PGD_TRANSPARENTBLT TransparentBlt;
546 PFN_DrvQueryPerBandInfo QueryPerBandInfo;
547 PFN_DrvQueryDeviceSupport QueryDeviceSupport;
548 PVOID Reserved1;
549 PVOID Reserved2;
550 PVOID Reserved3;
551 PVOID Reserved4;
552 PVOID Reserved5;
553 PVOID Reserved6;
554 PVOID Reserved7;
555 PVOID Reserved8;
556 PFN_DrvDeriveSurface DeriveSurface;
557 PFN_DrvQueryGlyphAttrs QueryGlyphAttrs;
558 PFN_DrvNotify Notify;
559 PGD_SYNCHRONIZESURFACE SynchronizeSurface;
560 PFN_DrvResetDevice ResetDevice;
561 PVOID Reserved9;
562 PVOID Reserved10;
563 PVOID Reserved11;
564 } DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
565
566 #endif