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/w... ============================================================================== --- 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);