Author: greatlrd
Date: Tue Oct 23 03:38:11 2007
New Revision: 29804
URL:
http://svn.reactos.org/svn/reactos?rev=29804&view=rev
Log:
move in DC/PDC to ntgdihdl and all neasry struct that are need it.
Modified:
branches/reactx/reactos/include/reactos/win32k/ntgdihdl.h
branches/reactx/reactos/subsystems/win32/win32k/include/dc.h
branches/reactx/reactos/subsystems/win32/win32k/include/driver.h
Modified: branches/reactx/reactos/include/reactos/win32k/ntgdihdl.h
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/include/reactos/…
==============================================================================
--- branches/reactx/reactos/include/reactos/win32k/ntgdihdl.h (original)
+++ branches/reactx/reactos/include/reactos/win32k/ntgdihdl.h Tue Oct 23 03:38:11 2007
@@ -10,6 +10,8 @@
#ifndef _NTGDIHDL_
#define _NTGDIHDL_
+
+#include <winddi.h>
/* DEFINES *******************************************************************/
@@ -145,22 +147,22 @@
#define DC_FLAG_SHAREACCESS 0x4000
/* DC_ATTR Dirty Flags */
-#define DIRTY_FILL 0x00000001
-#define DIRTY_LINE 0x00000002
-#define DIRTY_TEXT 0x00000004
-#define DIRTY_BACKGROUND 0x00000008
-#define DIRTY_CHARSET 0x00000010
-#define SLOW_WIDTHS 0x00000020
-#define DC_CACHED_TM_VALID 0x00000040
-#define DISPLAY_DC 0x00000080
-#define DIRTY_PTLCURRENT 0x00000100
-#define DIRTY_PTFXCURRENT 0x00000200
-#define DIRTY_STYLESTATE 0x00000400
-#define DC_PLAYMETAFILE 0x00000800
-#define DC_BRUSH_DIRTY 0x00001000
-#define DC_PEN_DIRTY 0x00002000
-#define DC_DIBSECTION 0x00004000
-#define DC_LAST_CLIPRGN_VALID 0x00008000
+#define DIRTY_FILL 0x00000001
+#define DIRTY_LINE 0x00000002
+#define DIRTY_TEXT 0x00000004
+#define DIRTY_BACKGROUND 0x00000008
+#define DIRTY_CHARSET 0x00000010
+#define SLOW_WIDTHS 0x00000020
+#define DC_CACHED_TM_VALID 0x00000040
+#define DISPLAY_DC 0x00000080
+#define DIRTY_PTLCURRENT 0x00000100
+#define DIRTY_PTFXCURRENT 0x00000200
+#define DIRTY_STYLESTATE 0x00000400
+#define DC_PLAYMETAFILE 0x00000800
+#define DC_BRUSH_DIRTY 0x00001000
+#define DC_PEN_DIRTY 0x00002000
+#define DC_DIBSECTION 0x00004000
+#define DC_LAST_CLIPRGN_VALID 0x00008000
#define DC_PRIMARY_DISPLAY 0x00010000
#define DC_MODE_DIRTY 0x00200000
#define DC_FONTTEXT_DIRTY 0x00400000
@@ -201,11 +203,11 @@
PVOID UserData; /* Points to the user mode structure, usually NULL though */
} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
-typedef struct _RGNATTR
-{
- ULONG AttrFlags;
- ULONG Flags;
- RECTL Rect;
+typedef struct _RGNATTR
+{
+ ULONG AttrFlags;
+ ULONG Flags;
+ RECTL Rect;
} RGNATTR,*PRGNATTR;
// Local DC structure (_DC_ATTR) PVOID pvLDC;
@@ -223,64 +225,281 @@
typedef struct _DC_ATTR
{
- PVOID pvLDC;
- ULONG ulDirty_;
- HANDLE hbrush;
- HANDLE hpen;
- COLORREF crBackgroundClr;
- ULONG ulBackgroundClr;
- COLORREF crForegroundClr;
- ULONG ulForegroundClr;
- COLORREF crBrushClr;
- ULONG ulBrushClr;
- COLORREF crPenClr;
- ULONG ulPenClr;
- DWORD iCS_CP;
- INT iGraphicsMode;
- BYTE jROP2;
- BYTE jBkMode;
- BYTE jFillMode;
- BYTE jStretchBltMode;
- POINTL ptlCurrent;
- POINTL ptfxCurrent;
- LONG lBkMode;
- LONG lFillMode;
- LONG lStretchBltMode;
- FLONG flFontMapper;
- LONG lIcmMode;
- HANDLE hcmXform;
- HCOLORSPACE hColorSpace;
+ PVOID pvLDC;
+ ULONG ulDirty_;
+ HANDLE hbrush;
+ HANDLE hpen;
+ COLORREF crBackgroundClr;
+ ULONG ulBackgroundClr;
+ COLORREF crForegroundClr;
+ ULONG ulForegroundClr;
+ COLORREF crBrushClr;
+ ULONG ulBrushClr;
+ COLORREF crPenClr;
+ ULONG ulPenClr;
+ DWORD iCS_CP;
+ INT iGraphicsMode;
+ BYTE jROP2;
+ BYTE jBkMode;
+ BYTE jFillMode;
+ BYTE jStretchBltMode;
+ POINTL ptlCurrent;
+ POINTL ptfxCurrent;
+ LONG lBkMode;
+ LONG lFillMode;
+ LONG lStretchBltMode;
+ FLONG flFontMapper;
+ LONG lIcmMode;
+ HANDLE hcmXform;
+ HCOLORSPACE hColorSpace;
FLONG flIcmFlags;
- INT IcmBrushColor;
+ INT IcmBrushColor;
INT IcmPenColor;
- PVOID pvLIcm;
- FLONG flTextAlign;
- LONG lTextAlign;
- LONG lTextExtra;
- LONG lRelAbs;
- LONG lBreakExtra;
- LONG cBreak;
- HANDLE hlfntNew;
- MATRIX_S mxWorldToDevice;
- MATRIX_S mxDevicetoWorld;
- MATRIX_S mxWorldToPage;
+ PVOID pvLIcm;
+ FLONG flTextAlign;
+ LONG lTextAlign;
+ LONG lTextExtra;
+ LONG lRelAbs;
+ LONG lBreakExtra;
+ LONG cBreak;
+ HANDLE hlfntNew;
+ MATRIX_S mxWorldToDevice;
+ MATRIX_S mxDevicetoWorld;
+ MATRIX_S mxWorldToPage;
EFLOAT_S efM11PtoD;
EFLOAT_S efM22PtoD;
EFLOAT_S efDxPtoD;
EFLOAT_S efDyPtoD;
- INT iMapMode;
- DWORD dwLayout;
- LONG lWindowOrgx;
- POINTL ptlWindowOrg;
- SIZEL szlWindowExt;
- POINTL ptlViewportOrg;
- SIZEL szlViewportExt;
- FLONG flXform;
- SIZEL szlVirtualDevicePixel;
+ INT iMapMode;
+ DWORD dwLayout;
+ LONG lWindowOrgx;
+ POINTL ptlWindowOrg;
+ SIZEL szlWindowExt;
+ POINTL ptlViewportOrg;
+ SIZEL szlViewportExt;
+ FLONG flXform;
+ SIZEL szlVirtualDevicePixel;
SIZEL szlVirtualDeviceMm;
- SIZEL szlVirtualDeviceSize;
- POINTL ptlBrushOrigin;
+ SIZEL szlVirtualDeviceSize;
+ POINTL ptlBrushOrigin;
RGNATTR VisRectRegion;
} DC_ATTR, *PDC_ATTR;
+typedef enum tagGdiPathState
+{
+ PATH_Null,
+ PATH_Open,
+ PATH_Closed
+} GdiPathState;
+
+typedef struct tagGdiPath
+{
+ GdiPathState state;
+ POINT *pPoints;
+ BYTE *pFlags;
+ int numEntriesUsed, numEntriesAllocated;
+ BOOL newStroke;
+} GdiPath;
+
+typedef struct _WIN_DC_INFO
+{
+ int flags;
+ HRGN hClipRgn; /* Clip region (may be 0) */
+ HRGN hVisRgn; /* Visible region (must never be 0) */
+ HRGN hGCClipRgn; /* GC clip region (ClipRgn AND VisRgn) */
+ HBITMAP hBitmap;
+ HBITMAP hFirstBitmap; /* Bitmap selected at creation of the DC */
+
+/* #if 0 */
+ HANDLE hDevice;
+ HPALETTE hPalette;
+
+ GdiPath path;
+/* #endif */
+
+ RECT totalExtent;
+ BYTE bitsPerPixel;
+
+ INT DCOrgX; /* DC origin */
+ INT DCOrgY;
+ INT ArcDirection;
+
+ XFORM xformWorld2Wnd; /* World-to-window transformation */
+ XFORM xformWorld2Vport; /* World-to-viewport transformation */
+ XFORM xformVport2World; /* Inverse of the above transformation */
+ BOOL vport2WorldValid; /* Is xformVport2World valid? */
+} WIN_DC_INFO;
+
+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;
+
+typedef struct _DC
+{
+ HGDIOBJ hHmgr;
+ PVOID pvEntry;
+ ULONG lucExcLock;
+ ULONG Tid;
+
+ DHPDEV PDev;
+ INT DC_Type;
+ INT DC_Flags;
+ PDC_ATTR pDc_Attr;
+ DC_ATTR Dc_Attr;
+
+ HDC hSelf;
+ HDC hNext;
+ HSURF FillPatternSurfaces[HS_DDI_MAX];
+ PGDIINFO GDIInfo;
+ PDEVINFO DevInfo;
+ HDEV GDIDevice;
+
+ DRIVER_FUNCTIONS DriverFunctions;
+ UNICODE_STRING DriverName;
+ HANDLE DeviceDriver;
+
+ CLIPOBJ *CombinedClip;
+
+ XLATEOBJ *XlateBrush;
+ XLATEOBJ *XlatePen;
+
+ INT saveLevel;
+ BOOL IsIC;
+
+ HPALETTE PalIndexed;
+
+ WIN_DC_INFO w;
+
+ HANDLE hFile;
+ LPENHMETAHEADER emh;
+} DC, *PDC;
#endif
Modified: branches/reactx/reactos/subsystems/win32/win32k/include/dc.h
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/subsystems/win32…
==============================================================================
--- branches/reactx/reactos/subsystems/win32/win32k/include/dc.h (original)
+++ branches/reactx/reactos/subsystems/win32/win32k/include/dc.h Tue Oct 23 03:38:11 2007
@@ -4,50 +4,9 @@
#include "driver.h"
-typedef enum tagGdiPathState
-{
- PATH_Null,
- PATH_Open,
- PATH_Closed
-} GdiPathState;
-typedef struct tagGdiPath
-{
- GdiPathState state;
- POINT *pPoints;
- BYTE *pFlags;
- int numEntriesUsed, numEntriesAllocated;
- BOOL newStroke;
-} GdiPath;
-typedef struct _WIN_DC_INFO
-{
- int flags;
- HRGN hClipRgn; /* Clip region (may be 0) */
- HRGN hVisRgn; /* Visible region (must never be 0) */
- HRGN hGCClipRgn; /* GC clip region (ClipRgn AND VisRgn) */
- HBITMAP hBitmap;
- HBITMAP hFirstBitmap; /* Bitmap selected at creation of the DC */
-/* #if 0 */
- HANDLE hDevice;
- HPALETTE hPalette;
-
- GdiPath path;
-/* #endif */
-
- RECT totalExtent;
- BYTE bitsPerPixel;
-
- INT DCOrgX; /* DC origin */
- INT DCOrgY;
- INT ArcDirection;
-
- XFORM xformWorld2Wnd; /* World-to-window transformation */
- XFORM xformWorld2Vport; /* World-to-viewport transformation */
- XFORM xformVport2World; /* Inverse of the above transformation */
- BOOL vport2WorldValid; /* Is xformVport2World valid? */
-} WIN_DC_INFO;
/* DC flags */
#define DC_MEMORY 0x0001 /* It is a memory DC */
@@ -57,45 +16,7 @@
#define GDI_DC_TYPE (1)
-typedef struct _DC
-{
- HGDIOBJ hHmgr;
- PVOID pvEntry;
- ULONG lucExcLock;
- ULONG Tid;
- DHPDEV PDev;
- INT DC_Type;
- INT DC_Flags;
- PDC_ATTR pDc_Attr;
- DC_ATTR Dc_Attr;
-
- HDC hSelf;
- HDC hNext;
- HSURF FillPatternSurfaces[HS_DDI_MAX];
- PGDIINFO GDIInfo;
- PDEVINFO DevInfo;
- HDEV GDIDevice;
-
- DRIVER_FUNCTIONS DriverFunctions;
- UNICODE_STRING DriverName;
- HANDLE DeviceDriver;
-
- CLIPOBJ *CombinedClip;
-
- XLATEOBJ *XlateBrush;
- XLATEOBJ *XlatePen;
-
- INT saveLevel;
- BOOL IsIC;
-
- HPALETTE PalIndexed;
-
- WIN_DC_INFO w;
-
- HANDLE hFile;
- LPENHMETAHEADER emh;
-} DC, *PDC;
typedef struct _GDIPOINTER /* should stay private to ENG */
{
Modified: branches/reactx/reactos/subsystems/win32/win32k/include/driver.h
URL:
http://svn.reactos.org/svn/reactos/branches/reactx/reactos/subsystems/win32…
==============================================================================
--- branches/reactx/reactos/subsystems/win32/win32k/include/driver.h (original)
+++ branches/reactx/reactos/subsystems/win32/win32k/include/driver.h Tue Oct 23 03:38:11
2007
@@ -4,176 +4,11 @@
#include <winddi.h>
-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;
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);
PGD_ENABLEDRIVER DRIVER_FindExistingDDIDriver(LPCWSTR Name);