Author: jimtabor
Date: Sat Dec 1 02:52:25 2007
New Revision: 30923
URL:
http://svn.reactos.org/svn/reactos?rev=30923&view=rev
Log:
Reorder drv function and added missing items. One update to winddi.h.
Modified:
trunk/reactos/include/ddk/winddi.h
trunk/reactos/include/reactos/win32k/ntgdityp.h
Modified: trunk/reactos/include/ddk/winddi.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/winddi.h?rev=3…
==============================================================================
--- trunk/reactos/include/ddk/winddi.h (original)
+++ trunk/reactos/include/ddk/winddi.h Sat Dec 1 02:52:25 2007
@@ -3779,6 +3779,12 @@
IN POINTL *pptlBrushOrg,
IN MIX mix);
+typedef VOID
+(APIENTRY *PFN_DrvMovePanning)(
+ IN LONG x,
+ IN LONG y,
+ IN FLONG fl);
+
typedef BOOL
(APIENTRY *PFN_DrvPlgBlt)(
IN SURFOBJ *psoTrg,
Modified: trunk/reactos/include/reactos/win32k/ntgdityp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/win32k/ntg…
==============================================================================
--- trunk/reactos/include/reactos/win32k/ntgdityp.h (original)
+++ trunk/reactos/include/reactos/win32k/ntgdityp.h Sat Dec 1 02:52:25 2007
@@ -1,437 +1,467 @@
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)
- * FILE: include/win32k/ntgdityp.h
- * PURPOSE: Win32 Shared GDI Types for NtGdi*
- * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net)
- */
-
-/* INCLUDES ******************************************************************/
-
-#ifndef _NTGDITYP_
-#define _NTGDITYP_
-
-/* ENUMERATIONS **************************************************************/
-
-typedef enum _ARCTYPE
-{
- GdiTypeArc,
- GdiTypeArcTo,
- GdiTypeChord,
- GdiTypePie,
-} ARCTYPE, *PARCTYPE;
-
-typedef enum _PALFUNCTYPE
-{
- GdiPalAnimate,
- GdiPalSetEntries,
- GdiPalGetEntries,
- GdiPalGetSystemEntries,
- GdiPalSetColorTable,
- GdiPalGetColorTable,
-} PALFUNCTYPE, *PPALFUNCTYPE;
-
-typedef enum _POLYFUNCTYPE
-{
- GdiPolyPolygon = 1,
- GdiPolyPolyLine,
- GdiPolyBezier,
- GdiPolyLineTo,
- GdiPolyBezierTo,
- GdiPolyPolyRgn,
-} POLYFUNCTYPE, *PPOLYFUNCTYPE;
-
-typedef enum _GETDCDWORD
-{
- GdiGetJournal,
- GdiGetRelAbs,
- GdiGetBreakExtra,
- GdiGerCharBreak,
- GdiGetArcDirection,
- GdiGetEMFRestorDc,
- GdiGetFontLanguageInfo,
- GdiGetIsMemDc,
- GdiGetMapMode,
- GdiGetTextCharExtra,
-} GETDCDWORD, *PGETDCDWORD;
-
-typedef enum _GETSETDCDWORD
-{
- GdtGetSetCopyCount = 2,
- GdiGetSetTextAlign,
- GdiGetSetRelAbs,
- GdiGetSetTextCharExtra,
- GdiGetSetSelectFont,
- GdiGetSetMapperFlagsInternal,
- GdiGetSetMapMode,
- GdiGetSetArcDirection,
-} GETSETDCDWORD, *PGETSETDCDWORD;
-
-typedef enum _GETDCPOINT
-{
- GdiGetViewPortExt = 1,
- GdiGetWindowExt,
- GdiGetViewPortOrg,
- GdiGetWindowOrg,
- GdiGetAspectRatioFilter,
- GdiGetDCOrg = 6,
-} GETDCPOINT, *PGETDCPOINT;
-
-
-typedef enum _GDIBATCHCMD
-{
- GdiBCPatBlt,
- GdiBCPolyPatBlt,
- GdiBCTextOut,
- GdiBCExtTextOut,
- GdiBCSetBrushOrg,
- GdiBCExtSelClipRgn,
- GdiBCSelObj,
- GdiBCDelObj,
- GdiBCDelRgn,
-} GDIBATCHCMD, *PGDIBATCHCMD;
-
-typedef enum _TRANSFORMTYPE
-{
- GdiDpToLp,
- GdiLpToDp,
-} TRANSFORMTYPE, *PTRANSFORMTYPE;
-
-#define GdiWorldSpaceToPageSpace 0x203
-
-/* FIXME: Unknown */
-typedef DWORD FULLSCREENCONTROL;
-typedef DWORD LFTYPE;
-
-/* DEFINES *******************************************************************/
-
-#define GDIBATCHBUFSIZE 0x136*4
-#define GDI_BATCH_LIMIT 20
-
-// NtGdiGetCharWidthW Flags
-#define GCW_WIN32 0x0001
-#define GCW_NOFLOAT 0x0002
-#define GCW_INDICES 0x0008
-
-// NtGdiGetCharABCWidthW Flags
-#define GCABCW_NOFLOAT 0x0001
-#define GCABCW_INDICES 0x0002
-
-
-/* TYPES *********************************************************************/
-
-typedef PVOID KERNEL_PVOID;
-typedef DWORD UNIVERSAL_FONT_ID;
-typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
-typedef DWORD CHWIDTHINFO;
-typedef CHWIDTHINFO *PCHWIDTHINFO;
-typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
-typedef LONG FIX;
-
-/* FIXME: Unknown; easy to guess, usually based on public types and converted */
-typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;
-typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;
-typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
-
-/* Font Structures */
-typedef struct _TMDIFF
-{
- ULONG cjotma;
- CHAR chFirst;
- CHAR chLast;
- CHAR ChDefault;
- CHAR ChBreak;
-} TMDIFF, *PTMDIFF;
-
-typedef struct _TMW_INTERNAL
-{
- TEXTMETRICW TextMetric;
- TMDIFF Diff;
-} TMW_INTERNAL, *PTMW_INTERNAL;
-
-typedef struct _NTMW_INTERNAL
-{
- TMDIFF tmd;
- NEWTEXTMETRICEXW ntmw;
-} NTMW_INTERNAL, *PNTMW_INTERNAL;
-
-typedef struct _ENUMFONTDATAW
-{
- ULONG cbSize;
- ULONG ulNtmwiOffset;
- DWORD dwFontType;
- ENUMLOGFONTEXDVW elfexdv; /* variable size! */
- /* NTMW_INTERNAL ntmwi; use ulNtwmOffset */
-} ENUMFONTDATAW, *PENUMFONTDATAW;
-
-/* Number Representation */
-typedef struct _EFLOAT_S
-{
- LONG lMant;
- LONG lExp;
-} EFLOAT_S;
-
-/* XFORM Structures */
-typedef struct _MATRIX_S
-{
- EFLOAT_S efM11;
- EFLOAT_S efM12;
- EFLOAT_S efM21;
- EFLOAT_S efM22;
- EFLOAT_S efDx;
- EFLOAT_S efDy;
- FIX fxDx;
- FIX fxDy;
- FLONG flAccel;
-} MATRIX_S;
-
-/* Gdi XForm storage union */
-typedef union
-{
- FLOAT f;
- ULONG l;
-} gxf_long;
-
-//
-// GDI Batch structures.
-//
-typedef struct _GDIBATCHHDR
-{
- SHORT Size;
- SHORT Cmd;
-} GDIBATCHHDR, *PGDIBATCHHDR;
-
-typedef struct _GDIBSPATBLT
-{
- GDIBATCHHDR gbHdr;
- int nXLeft;
- int nYLeft;
- int nWidth;
- int nHeight;
- HANDLE hbrush;
- DWORD dwRop;
- COLORREF crForegroundClr;
- COLORREF crBackgroundClr;
- COLORREF crBrushClr;
- INT IcmBrushColor;
- POINTL ptlViewportOrg;
- ULONG ulForegroundClr;
- ULONG ulBackgroundClr;
- ULONG ulBrushClr;
-} GDIBSPATBLT, *PGDIBSPATBLT;
-
-#ifndef _NTUSRTYP_
-typedef struct _PATRECT
-{
- RECT r;
- HBRUSH hBrush;
-} PATRECT, * PPATRECT;
-#endif
-
-typedef struct _GDIBSPPATBLT
-{
- GDIBATCHHDR gbHdr;
- DWORD rop4;
- DWORD Mode;
- DWORD Count;
- COLORREF crForegroundClr;
- COLORREF crBackgroundClr;
- COLORREF crBrushClr;
- ULONG ulForegroundClr;
- ULONG ulBackgroundClr;
- ULONG ulBrushClr;
- POINTL ptlViewportOrg;
- PATRECT pRect[1]; // POLYPATBLT
-} GDIBSPPATBLT, *PGDIBSPPATBLT;
-
-typedef struct _GDIBSTEXTOUT
-{
- GDIBATCHHDR gbHdr;
- COLORREF crForegroundClr;
- COLORREF crBackgroundClr;
- LONG lmBkMode;
- ULONG ulForegroundClr;
- ULONG ulBackgroundClr;
- int x;
- int y;
- UINT Options;
- RECT Rect;
- DWORD iCS_CP;
- UINT cbCount;
- UINT Size;
- HANDLE hlfntNew;
- FLONG flTextAlign;
- POINTL ptlViewportOrg;
- WCHAR String[2];
-} GDIBSTEXTOUT, *PGDIBSTEXTOUT;
-
-typedef struct _GDIBSEXTTEXTOUT
-{
- GDIBATCHHDR gbHdr;
- UINT Count;
- UINT Options;
- RECT Rect;
- POINTL ptlViewportOrg;
- ULONG ulBackgroundClr;
-} GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT;
-
-typedef struct _GDIBSSETBRHORG
-{
- GDIBATCHHDR gbHdr;
- POINTL ptlBrushOrigin;
-} GDIBSSETBRHORG, *PGDIBSSETBRHORG;
-
-typedef struct _GDIBSEXTSELCLPRGN
-{
- GDIBATCHHDR gbHdr;
- int fnMode;
- LONG right;
- LONG bottom;
- LONG left;
- LONG top;
-} GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
-//
-// Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
-typedef struct _GDIBSOBJECT
-{
- GDIBATCHHDR gbHdr;
- HGDIOBJ hgdiobj;
-} GDIBSOBJECT, *PGDIBSOBJECT;
-
-//
-// Driver Functions
-//
-typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
-typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW *, LPWSTR, ULONG, HSURF *, ULONG, ULONG
*, ULONG, DEVINFO *, LPWSTR, LPWSTR, HANDLE);
-typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
-typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV);
-typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);
-typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);
-typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);
-typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
-typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);
-typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);
-typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
-typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF);
-typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, BLENDOBJ*);
-typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,
XLATEOBJ*, ULONG);
-typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
-typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*,
POINTL*, PLINEATTRS, MIX);
-typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX,
ULONG);
-typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,
BRUSHOBJ*, PLINEATTRS, BRUSHOBJ*, POINTL*, MIX, ULONG);
-typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
-typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, POINTL*, POINTL*, BRUSHOBJ*, POINTL*, ROP4);
-typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, ULONG, ULONG);
-typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
POINTL*);
-typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG);
-typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG, BRUSHOBJ*, DWORD);
-typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
-typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, RECTL*,
BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
-typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
-typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, PVOID *);
-typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
-typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
-typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,
PVOID, ULONG);
-typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*, LONG,
LONG, LONG, LONG, RECTL*, ULONG);
-typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
-typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, LONG,
RECTL*, MIX);
-typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);
-typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);
-typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);
-typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
-typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
-typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
-typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
-typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
-typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);
-typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);
-typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);
-typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
-typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);
-typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID, ULONG,
PVOID);
-typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,
PBYTE);
-typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,
GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
-typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
-typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
-typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, PVOID *,
ULONG);
-typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
-typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,
PPIXELFORMATDESCRIPTOR);
-typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
-typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
-typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
-typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*,
PDWORD, PDWORD);
-typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS,
PDD_PALETTECALLBACKS);
-typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);
-typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
-typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG,
PVOID, ULONG, RECTL*, POINTL*, ULONG);
-typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
-
-typedef struct _DRIVER_FUNCTIONS
-{
- PGD_ENABLEDRIVER EnableDriver;
- PGD_ENABLEPDEV EnablePDEV;
- PGD_COMPLETEPDEV CompletePDEV;
- PGD_DISABLEPDEV DisablePDEV;
- PGD_ENABLESURFACE EnableSurface;
- PGD_DISABLESURFACE DisableSurface;
- PGD_ASSERTMODE AssertMode;
- PGD_OFFSET Offset;
- PGD_RESETPDEV ResetPDEV;
- PGD_DISABLEDRIVER DisableDriver;
- PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;
- PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;
- PGD_REALIZEBRUSH RealizeBrush;
- PGD_DITHERCOLOR DitherColor;
- PGD_STROKEPATH StrokePath;
- PGD_FILLPATH FillPath;
- PGD_STROKEANDFILLPATH StrokeAndFillPath;
- PGD_PAINT Paint;
- PGD_BITBLT BitBlt;
- PGD_TRANSPARENTBLT TransparentBlt;
- PGD_COPYBITS CopyBits;
- PGD_STRETCHBLT StretchBlt;
- PGD_STRETCHBLTROP StretchBltROP;
- PGD_SETPALETTE SetPalette;
- PGD_TEXTOUT TextOut;
- PGD_ESCAPE Escape;
- PGD_DRAWESCAPE DrawEscape;
- PGD_QUERYFONT QueryFont;
- PGD_QUERYFONTTREE QueryFontTree;
- PGD_QUERYFONTDATA QueryFontData;
- PGD_SETPOINTERSHAPE SetPointerShape;
- PGD_MOVEPOINTER MovePointer;
- PGD_LINETO LineTo;
- PGD_SENDPAGE SendPage;
- PGD_STARTPAGE StartPage;
- PGD_ENDDOC EndDoc;
- PGD_STARTDOC StartDoc;
- PGD_GETGLYPHMODE GetGlyphMode;
- PGD_SYNCHRONIZE Synchronize;
- PGD_SAVESCREENBITS SaveScreenBits;
- PGD_GETMODES GetModes;
- PGD_FREE Free;
- PGD_DESTROYFONT DestroyFont;
- PGD_QUERYFONTCAPS QueryFontCaps;
- PGD_LOADFONTFILE LoadFontFile;
- PGD_UNLOADFONTFILE UnloadFontFile;
- PGD_FONTMANAGEMENT FontManagement;
- PGD_QUERYTRUETYPETABLE QueryTrueTypeTable;
- PGD_QUERYTRUETYPEOUTLINE QueryTrueTypeOutline;
- PGD_GETTRUETYPEFILE GetTrueTypeFile;
- PGD_QUERYFONTFILE QueryFontFile;
- PGD_QUERYADVANCEWIDTHS QueryAdvanceWidths;
- PGD_SETPIXELFORMAT SetPixelFormat;
- PGD_DESCRIBEPIXELFORMAT DescribePixelFormat;
- PGD_SWAPBUFFERS SwapBuffers;
- PGD_STARTBANDING StartBanding;
- PGD_NEXTBAND NextBand;
- PGD_GETDIRECTDRAWINFO GetDirectDrawInfo;
- PGD_ENABLEDIRECTDRAW EnableDirectDraw;
- PGD_DISABLEDIRECTDRAW DisableDirectDraw;
- PGD_QUERYSPOOLTYPE QuerySpoolType;
- PGD_GRADIENTFILL GradientFill;
- PGD_SYNCHRONIZESURFACE SynchronizeSurface;
- PGD_ALPHABLEND AlphaBlend;
-} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
-
-#endif
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)
+ * FILE: include/win32k/ntgdityp.h
+ * PURPOSE: Win32 Shared GDI Types for NtGdi*
+ * PROGRAMMER: Alex Ionescu (alex(a)relsoft.net)
+ */
+
+/* INCLUDES ******************************************************************/
+
+#ifndef _NTGDITYP_
+#define _NTGDITYP_
+
+/* ENUMERATIONS **************************************************************/
+
+typedef enum _ARCTYPE
+{
+ GdiTypeArc,
+ GdiTypeArcTo,
+ GdiTypeChord,
+ GdiTypePie,
+} ARCTYPE, *PARCTYPE;
+
+typedef enum _PALFUNCTYPE
+{
+ GdiPalAnimate,
+ GdiPalSetEntries,
+ GdiPalGetEntries,
+ GdiPalGetSystemEntries,
+ GdiPalSetColorTable,
+ GdiPalGetColorTable,
+} PALFUNCTYPE, *PPALFUNCTYPE;
+
+typedef enum _POLYFUNCTYPE
+{
+ GdiPolyPolygon = 1,
+ GdiPolyPolyLine,
+ GdiPolyBezier,
+ GdiPolyLineTo,
+ GdiPolyBezierTo,
+ GdiPolyPolyRgn,
+} POLYFUNCTYPE, *PPOLYFUNCTYPE;
+
+typedef enum _GETDCDWORD
+{
+ GdiGetJournal,
+ GdiGetRelAbs,
+ GdiGetBreakExtra,
+ GdiGerCharBreak,
+ GdiGetArcDirection,
+ GdiGetEMFRestorDc,
+ GdiGetFontLanguageInfo,
+ GdiGetIsMemDc,
+ GdiGetMapMode,
+ GdiGetTextCharExtra,
+} GETDCDWORD, *PGETDCDWORD;
+
+typedef enum _GETSETDCDWORD
+{
+ GdtGetSetCopyCount = 2,
+ GdiGetSetTextAlign,
+ GdiGetSetRelAbs,
+ GdiGetSetTextCharExtra,
+ GdiGetSetSelectFont,
+ GdiGetSetMapperFlagsInternal,
+ GdiGetSetMapMode,
+ GdiGetSetArcDirection,
+} GETSETDCDWORD, *PGETSETDCDWORD;
+
+typedef enum _GETDCPOINT
+{
+ GdiGetViewPortExt = 1,
+ GdiGetWindowExt,
+ GdiGetViewPortOrg,
+ GdiGetWindowOrg,
+ GdiGetAspectRatioFilter,
+ GdiGetDCOrg = 6,
+} GETDCPOINT, *PGETDCPOINT;
+
+
+typedef enum _GDIBATCHCMD
+{
+ GdiBCPatBlt,
+ GdiBCPolyPatBlt,
+ GdiBCTextOut,
+ GdiBCExtTextOut,
+ GdiBCSetBrushOrg,
+ GdiBCExtSelClipRgn,
+ GdiBCSelObj,
+ GdiBCDelObj,
+ GdiBCDelRgn,
+} GDIBATCHCMD, *PGDIBATCHCMD;
+
+typedef enum _TRANSFORMTYPE
+{
+ GdiDpToLp,
+ GdiLpToDp,
+} TRANSFORMTYPE, *PTRANSFORMTYPE;
+
+#define GdiWorldSpaceToPageSpace 0x203
+
+/* FIXME: Unknown */
+typedef DWORD FULLSCREENCONTROL;
+typedef DWORD LFTYPE;
+
+/* DEFINES *******************************************************************/
+
+#define GDIBATCHBUFSIZE 0x136*4
+#define GDI_BATCH_LIMIT 20
+
+// NtGdiGetCharWidthW Flags
+#define GCW_WIN32 0x0001
+#define GCW_NOFLOAT 0x0002
+#define GCW_INDICES 0x0008
+
+// NtGdiGetCharABCWidthW Flags
+#define GCABCW_NOFLOAT 0x0001
+#define GCABCW_INDICES 0x0002
+
+
+/* TYPES *********************************************************************/
+
+typedef PVOID KERNEL_PVOID;
+typedef DWORD UNIVERSAL_FONT_ID;
+typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
+typedef DWORD CHWIDTHINFO;
+typedef CHWIDTHINFO *PCHWIDTHINFO;
+typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
+typedef LONG FIX;
+
+/* FIXME: Unknown; easy to guess, usually based on public types and converted */
+typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;
+typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;
+typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;
+
+/* Font Structures */
+typedef struct _TMDIFF
+{
+ ULONG cjotma;
+ CHAR chFirst;
+ CHAR chLast;
+ CHAR ChDefault;
+ CHAR ChBreak;
+} TMDIFF, *PTMDIFF;
+
+typedef struct _TMW_INTERNAL
+{
+ TEXTMETRICW TextMetric;
+ TMDIFF Diff;
+} TMW_INTERNAL, *PTMW_INTERNAL;
+
+typedef struct _NTMW_INTERNAL
+{
+ TMDIFF tmd;
+ NEWTEXTMETRICEXW ntmw;
+} NTMW_INTERNAL, *PNTMW_INTERNAL;
+
+typedef struct _ENUMFONTDATAW
+{
+ ULONG cbSize;
+ ULONG ulNtmwiOffset;
+ DWORD dwFontType;
+ ENUMLOGFONTEXDVW elfexdv; /* variable size! */
+ /* NTMW_INTERNAL ntmwi; use ulNtwmOffset */
+} ENUMFONTDATAW, *PENUMFONTDATAW;
+
+/* Number Representation */
+typedef struct _EFLOAT_S
+{
+ LONG lMant;
+ LONG lExp;
+} EFLOAT_S;
+
+/* XFORM Structures */
+typedef struct _MATRIX_S
+{
+ EFLOAT_S efM11;
+ EFLOAT_S efM12;
+ EFLOAT_S efM21;
+ EFLOAT_S efM22;
+ EFLOAT_S efDx;
+ EFLOAT_S efDy;
+ FIX fxDx;
+ FIX fxDy;
+ FLONG flAccel;
+} MATRIX_S;
+
+/* Gdi XForm storage union */
+typedef union
+{
+ FLOAT f;
+ ULONG l;
+} gxf_long;
+
+//
+// GDI Batch structures.
+//
+typedef struct _GDIBATCHHDR
+{
+ SHORT Size;
+ SHORT Cmd;
+} GDIBATCHHDR, *PGDIBATCHHDR;
+
+typedef struct _GDIBSPATBLT
+{
+ GDIBATCHHDR gbHdr;
+ int nXLeft;
+ int nYLeft;
+ int nWidth;
+ int nHeight;
+ HANDLE hbrush;
+ DWORD dwRop;
+ COLORREF crForegroundClr;
+ COLORREF crBackgroundClr;
+ COLORREF crBrushClr;
+ INT IcmBrushColor;
+ POINTL ptlViewportOrg;
+ ULONG ulForegroundClr;
+ ULONG ulBackgroundClr;
+ ULONG ulBrushClr;
+} GDIBSPATBLT, *PGDIBSPATBLT;
+
+#ifndef _NTUSRTYP_
+typedef struct _PATRECT
+{
+ RECT r;
+ HBRUSH hBrush;
+} PATRECT, * PPATRECT;
+#endif
+
+typedef struct _GDIBSPPATBLT
+{
+ GDIBATCHHDR gbHdr;
+ DWORD rop4;
+ DWORD Mode;
+ DWORD Count;
+ COLORREF crForegroundClr;
+ COLORREF crBackgroundClr;
+ COLORREF crBrushClr;
+ ULONG ulForegroundClr;
+ ULONG ulBackgroundClr;
+ ULONG ulBrushClr;
+ POINTL ptlViewportOrg;
+ PATRECT pRect[1]; // POLYPATBLT
+} GDIBSPPATBLT, *PGDIBSPPATBLT;
+
+typedef struct _GDIBSTEXTOUT
+{
+ GDIBATCHHDR gbHdr;
+ COLORREF crForegroundClr;
+ COLORREF crBackgroundClr;
+ LONG lmBkMode;
+ ULONG ulForegroundClr;
+ ULONG ulBackgroundClr;
+ int x;
+ int y;
+ UINT Options;
+ RECT Rect;
+ DWORD iCS_CP;
+ UINT cbCount;
+ UINT Size;
+ HANDLE hlfntNew;
+ FLONG flTextAlign;
+ POINTL ptlViewportOrg;
+ WCHAR String[2];
+} GDIBSTEXTOUT, *PGDIBSTEXTOUT;
+
+typedef struct _GDIBSEXTTEXTOUT
+{
+ GDIBATCHHDR gbHdr;
+ UINT Count;
+ UINT Options;
+ RECT Rect;
+ POINTL ptlViewportOrg;
+ ULONG ulBackgroundClr;
+} GDIBSEXTTEXTOUT, *PGDIBSEXTTEXTOUT;
+
+typedef struct _GDIBSSETBRHORG
+{
+ GDIBATCHHDR gbHdr;
+ POINTL ptlBrushOrigin;
+} GDIBSSETBRHORG, *PGDIBSSETBRHORG;
+
+typedef struct _GDIBSEXTSELCLPRGN
+{
+ GDIBATCHHDR gbHdr;
+ int fnMode;
+ LONG right;
+ LONG bottom;
+ LONG left;
+ LONG top;
+} GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
+//
+// Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
+typedef struct _GDIBSOBJECT
+{
+ GDIBATCHHDR gbHdr;
+ HGDIOBJ hgdiobj;
+} GDIBSOBJECT, *PGDIBSOBJECT;
+
+//
+// Driver Functions
+//
+typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
+typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW *, LPWSTR, ULONG, HSURF *, ULONG, ULONG
*, ULONG, DEVINFO *, LPWSTR, LPWSTR, HANDLE);
+typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
+typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV);
+typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);
+typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);
+typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);
+typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
+typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);
+typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);
+typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
+typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF);
+typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, BLENDOBJ*);
+typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,
XLATEOBJ*, ULONG);
+typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
+typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, BRUSHOBJ*,
POINTL*, PLINEATTRS, MIX);
+typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX,
ULONG);
+typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,
BRUSHOBJ*, PLINEATTRS, BRUSHOBJ*, POINTL*, MIX, ULONG);
+typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
+typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
RECTL*, POINTL*, POINTL*, BRUSHOBJ*, POINTL*, ROP4);
+typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
RECTL*, ULONG, ULONG);
+typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*,
POINTL*);
+typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG);
+typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
XLATEOBJ*, COLORADJUSTMENT*, POINTL*, RECTL*, RECTL*, POINTL*, ULONG, BRUSHOBJ*, DWORD);
+typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
+typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, RECTL*,
BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
+typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
+typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, PVOID *);
+typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
+typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
+typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,
PVOID, ULONG);
+typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*, LONG,
LONG, LONG, LONG, RECTL*, ULONG);
+typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
+typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, LONG,
RECTL*, MIX);
+typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);
+typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);
+typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);
+typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
+typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
+typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
+typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
+typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
+typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);
+typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);
+typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);
+typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
+typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);
+typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID, ULONG,
PVOID);
+typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,
PBYTE);
+typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,
GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
+typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
+typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
+typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, PVOID *,
ULONG);
+typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
+typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,
PPIXELFORMATDESCRIPTOR);
+typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
+typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
+typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
+typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*,
PDWORD, PDWORD);
+typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS,
PDD_PALETTECALLBACKS);
+typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);
+typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
+typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG,
PVOID, ULONG, RECTL*, POINTL*, ULONG);
+typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
+
+//
+// Most of these are definded in ddk/winddi.h
+//
+typedef struct _DRIVER_FUNCTIONS
+{
+ PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
+ PGD_ENABLEPDEV EnablePDEV;
+ PGD_COMPLETEPDEV CompletePDEV;
+ PGD_DISABLEPDEV DisablePDEV;
+ PGD_ENABLESURFACE EnableSurface;
+ PGD_DISABLESURFACE DisableSurface;
+ PGD_ASSERTMODE AssertMode;
+ PGD_OFFSET Offset;
+ PGD_RESETPDEV ResetPDEV;
+ PGD_DISABLEDRIVER DisableDriver;
+ PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;
+ PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;
+ PGD_REALIZEBRUSH RealizeBrush;
+ PGD_DITHERCOLOR DitherColor;
+ PGD_STROKEPATH StrokePath;
+ PGD_FILLPATH FillPath;
+ PGD_STROKEANDFILLPATH StrokeAndFillPath;
+ PGD_PAINT Paint;
+ PGD_BITBLT BitBlt;
+ PGD_COPYBITS CopyBits;
+ PGD_STRETCHBLT StretchBlt;
+ PGD_SETPALETTE SetPalette;
+ PGD_TEXTOUT TextOut;
+ PGD_ESCAPE Escape;
+ PGD_DRAWESCAPE DrawEscape;
+ PGD_QUERYFONT QueryFont;
+ PGD_QUERYFONTTREE QueryFontTree;
+ PGD_QUERYFONTDATA QueryFontData;
+ PGD_SETPOINTERSHAPE SetPointerShape;
+ PGD_MOVEPOINTER MovePointer;
+ PGD_LINETO LineTo;
+ PGD_SENDPAGE SendPage;
+ PGD_STARTPAGE StartPage;
+ PGD_ENDDOC EndDoc;
+ PGD_STARTDOC StartDoc;
+ PGD_GETGLYPHMODE GetGlyphMode;
+ PGD_SYNCHRONIZE Synchronize;
+ PGD_SAVESCREENBITS SaveScreenBits;
+ PGD_GETMODES GetModes;
+ PGD_FREE Free;
+ PGD_DESTROYFONT DestroyFont;
+ PGD_QUERYFONTCAPS QueryFontCaps;
+ PGD_LOADFONTFILE LoadFontFile;
+ PGD_UNLOADFONTFILE UnloadFontFile;
+ PGD_FONTMANAGEMENT FontManagement;
+ PGD_QUERYTRUETYPETABLE QueryTrueTypeTable;
+ PGD_QUERYTRUETYPEOUTLINE QueryTrueTypeOutline;
+ PGD_GETTRUETYPEFILE GetTrueTypeFile;
+ PGD_QUERYFONTFILE QueryFontFile;
+ PFN_DrvMovePanning MovePanning;
+ PGD_QUERYADVANCEWIDTHS QueryAdvanceWidths;
+ PGD_SETPIXELFORMAT SetPixelFormat;
+ PGD_DESCRIBEPIXELFORMAT DescribePixelFormat;
+ PGD_SWAPBUFFERS SwapBuffers;
+ PGD_STARTBANDING StartBanding;
+ PGD_NEXTBAND NextBand;
+ PGD_GETDIRECTDRAWINFO GetDirectDrawInfo;
+ PGD_ENABLEDIRECTDRAW EnableDirectDraw;
+ PGD_DISABLEDIRECTDRAW DisableDirectDraw;
+ PGD_QUERYSPOOLTYPE QuerySpoolType;
+ PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
+ PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
+ PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
+ PFN_DrvIcmSetDeviceGammaRamp IcmSetDeviceGammaRamp;
+ PGD_GRADIENTFILL GradientFill;
+ PGD_STRETCHBLTROP StretchBltROP;
+ PFN_DrvPlgBlt PlgBlt;
+ PGD_ALPHABLEND AlphaBlend;
+// PFN_DrvSynthesizeFont SynthesizeFont;
+ PVOID Unknown1;
+// PFN_DrvGetSynthesizedFontFiles GetSynthesizedFontFiles;
+ PVOID Unknown2;
+ PGD_TRANSPARENTBLT TransparentBlt;
+ PFN_DrvQueryPerBandInfo QueryPerBandInfo;
+ PFN_DrvQueryDeviceSupport QueryDeviceSupport;
+ PVOID Reserved1;
+ PVOID Reserved2;
+ PVOID Reserved3;
+ PVOID Reserved4;
+ PVOID Reserved5;
+ PVOID Reserved6;
+ PVOID Reserved7;
+ PVOID Reserved8;
+ PFN_DrvDeriveSurface DeriveSurface;
+ PFN_DrvQueryGlyphAttrs QueryGlyphAttrs;
+ PFN_DrvNotify Notify;
+ PGD_SYNCHRONIZESURFACE SynchronizeSurface;
+ PFN_DrvResetDevice ResetDevice;
+ PVOID Reserved9;
+ PVOID Reserved10;
+ PVOID Reserved11;
+} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
+
+#endif