Author: greatlrd
Date: Sun May 18 13:33:27 2008
New Revision: 33593
URL:
http://svn.reactos.org/svn/reactos?rev=33593&view=rev
Log:
adding 1 new syscall from vista : NtGdiCreateOPMProtectedOutputs
Adding 62 new syscall from vista, they are known as D3DKMT for the graphic drv and
gdi32.dll, I have not fix the protype for I do not known if it same as the drv prototype
or not, yet.
NtGdiDdDDICheckExclusiveOwnership,NtGdiDdDDICheckMonitorPowerState,NtGdiDdDDICheckOcclusion,NtGdiDdDDICloseAdapter,
NtGdiDdDDICreateAllocation, NtGdiDdDDICreateContext, NtGdiDdDDICreateDCFromMemory,
NtGdiDdDDICreateDevice, NtGdiDdDDICreateOverlay, NtGdiDdDDICreateSynchronizationObject,
NtGdiDdDDIDestroyAllocation, NtGdiDdDDIDestroyContext, NtGdiDdDDIDestroyDCFromMemory,
NtGdiDdDDIDestroyDevice, NtGdiDdDDIDestroyOverlay, NtGdiDdDDIDestroySynchronizationObject,
NtGdiDdDDIEscape, NtGdiDdDDIFlipOverlay, NtGdiDdDDIGetContextSchedulingPriority,
NtGdiDdDDIGetDeviceState, NtGdiDdDDIGetDisplayModeList,
NtGdiDdDDIGetMultisampleMethodList, NtGdiDdDDIGetPresentHistory,
NtGdiDdDDIGetProcessSchedulingPriorityClass, NtGdiDdDDIGetRuntimeData,
NtGdiDdDDIGetScanLine, NtGdiDdDDIGetSharedPrimaryHandle, NtGdiDdDDIInvalidateActiveVidPn,
NtGdiDdDDILock, NtGdiDdDDIOpenAdapterFromDeviceName, NtGdiDdDDIOpenAdapterFromHdc,
NtGdiDdDDIOpenResource, NtGdiDdDDIPollDisplayChildren, NtGdiDdDDIPresent,
NtGdiDdDDIQueryAdapterInfo, NtGdiDdDDIQueryAllocationResidency,
NtGdiDdDDIQueryResourceInfo, NtGdiDdDDIQueryStatistics,
NtGdiDdDDIReleaseProcessVidPnSourceOwners, NtGdiDdDDIRender,
NtGdiDdDDISetAllocationPriority, NtGdiDdDDISetContextSchedulingPriority,
NtGdiDdDDISetDisplayMode, NtGdiDdDDISetDisplayPrivateDriverFormat, NtGdiDdDDISetGammaRamp,
NtGdiDdDDISetProcessSchedulingPriorityClass, NtGdiDdDDISetQueuedLimit,
NtGdiDdDDISetVidPnSourceOwner, NtGdiDdDDISharedPrimaryLockNotification,
NtGdiDdDDISharedPrimaryUnLockNotification, NtGdiDdDDISignalSynchronizationObject,
NtGdiDdDDIUnlock, NtGdiDdDDIUpdateOverlay, NtGdiDdDDIWaitForIdle,
NtGdiDdDDIWaitForSynchronizationObject, NtGdiDdDDIWaitForVerticalBlankEvent,
NtGdiDDCCIGetCapabilitiesString, NtGdiDDCCIGetCapabilitiesStringLength,
NtGdiDDCCIGetTimingReport, NtGdiDDCCIGetVCPFeature, NtGdiDDCCISaveCurrentSettings,
NtGdiDDCCISetVCPFeature,
Added:
branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c (with props)
Modified:
branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h
branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c
branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db
Modified: branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h
URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/include/reactos/w…
==============================================================================
--- branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h [iso-8859-1] (original)
+++ branches/win32k-gdi-dx/include/reactos/win32k/ntgdityp.h [iso-8859-1] Sun May 18
13:33:27 2008
@@ -1,667 +1,738 @@
-/*
- * 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
-{
- GdiGetSetCopyCount = 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;
-
-typedef enum GDIObjType
-{
- GDIObjType_DEF_TYPE = 0x00,
- GDIObjType_DC_TYPE = 0x01,
- GDIObjType_UNUSED1_TYPE = 0x02,
- GDIObjType_UNUSED2_TYPE = 0x03,
- GDIObjType_RGN_TYPE = 0x04,
- GDIObjType_SURF_TYPE = 0x05,
- GDIObjType_CLIENTOBJ_TYPE = 0x06,
- GDIObjType_PATH_TYPE = 0x07,
- GDIObjType_PAL_TYPE = 0x08,
- GDIObjType_ICMLCS_TYPE = 0x09,
- GDIObjType_LFONT_TYPE = 0x0a,
- GDIObjType_RFONT_TYPE = 0x0b,
- GDIObjType_PFE_TYPE = 0x0c,
- GDIObjType_PFT_TYPE = 0x0d,
- GDIObjType_ICMCXF_TYPE = 0x0e,
- GDIObjType_SPRITE_TYPE = 0x0f,
- GDIObjType_BRUSH_TYPE = 0x10,
- GDIObjType_UMPD_TYPE = 0x11,
- GDIObjType_UNUSED4_TYPE = 0x12,
- GDIObjType_SPACE_TYPE = 0x13,
- GDIObjType_UNUSED5_TYPE = 0x14,
- GDIObjType_META_TYPE = 0x15,
- GDIObjType_EFSTATE_TYPE = 0x16,
- GDIObjType_BMFD_TYPE = 0x17,
- GDIObjType_VTFD_TYPE = 0x18,
- GDIObjType_TTFD_TYPE = 0x19,
- GDIObjType_RC_TYPE = 0x1a,
- GDIObjType_TEMP_TYPE = 0x1b,
- GDIObjType_DRVOBJ_TYPE = 0x1c,
- GDIObjType_DCIOBJ_TYPE = 0x1d,
- GDIObjType_SPOOL_TYPE = 0x1e,
- GDIObjType_MAX_TYPE = 0x1e,
- GDIObjTypeTotal = 0x1f,
-} GDIOBJTYPE, *PGDIOBJTYPE;
-
-typedef enum GDILoObjType
-{
- GDILoObjType_LO_BRUSH_TYPE = 0x100000,
- GDILoObjType_LO_DC_TYPE = 0x10000,
- GDILoObjType_LO_BITMAP_TYPE = 0x50000,
- GDILoObjType_LO_PALETTE_TYPE = 0x80000,
- GDILoObjType_LO_FONT_TYPE = 0xa0000,
- GDILoObjType_LO_REGION_TYPE = 0x40000,
- GDILoObjType_LO_ICMLCS_TYPE = 0x90000,
- GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000,
- GDILoObjType_LO_ALTDC_TYPE = 0x210000,
- GDILoObjType_LO_PEN_TYPE = 0x300000,
- GDILoObjType_LO_EXTPEN_TYPE = 0x500000,
- GDILoObjType_LO_DIBSECTION_TYPE = 0x250000,
- GDILoObjType_LO_METAFILE16_TYPE = 0x260000,
- GDILoObjType_LO_METAFILE_TYPE = 0x460000,
- GDILoObjType_LO_METADC16_TYPE = 0x660000
-} GDILOOBJTYPE, *PGDILOOBJTYPE;
-
-#define GdiWorldSpaceToPageSpace 0x203
-
-/* FIXME: Unknown */
-typedef DWORD FULLSCREENCONTROL;
-typedef DWORD LFTYPE;
-
-/* Public LAST_STOCK = 19, plus 2 more internal entries */
-#define NB_STOCK_OBJECTS 22
-
-/* extra stock object: default 1x1 bitmap for memory DCs */
-#define DEFAULT_BITMAP (21)
-
-
-/* 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
-
-/* CAPS1 support */
-//#define C1_TRANSPARENT 0x0001
-#define TC_TT_ABLE 0x0002
-#define C1_TT_CR_ANY 0x0004
-#define C1_EMF_COMPLIANT 0x0008
-#define C1_DIBENGINE 0x0010
-#define C1_GAMMA_RAMP 0x0040
-#define C1_REINIT_ABLE 0x0080
-#define C1_GLYPH_INDEX 0x0100
-#define C1_BIT_PACKED 0x0200
-#define C1_BYTE_PACKED 0x0400
-#define C1_COLORCURSOR 0x0800
-#define C1_CMYK_ABLE 0x1000
-#define C1_SLOW_CARD 0x2000
-
-/* TYPES *********************************************************************/
-
-typedef PVOID KERNEL_PVOID;
-typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
-typedef LONG FIX;
-
-typedef struct _CHWIDTHINFO
-{
- LONG lMaxNegA;
- LONG lMaxNegC;
- LONG lMinWidthD;
-} CHWIDTHINFO, *PCHWIDTHINFO;
-
-typedef struct _UNIVERSAL_FONT_ID
-{
- DWORD dwUfid[2];
-} UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
-
-typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
-{
- DWORD dwCsbDefault[2];
- DWORD dwCsbSupported0;
-} REALIZATION_INFO, *PREALIZATION_INFO;
-
-typedef struct _WIDTHDATA
-{
- USHORT sOverhang;
- USHORT sHeight;
- USHORT sCharInc;
- USHORT sBreak;
- BYTE jFirst;
- BYTE jLast;
- BYTE jBreak;
- BYTE jDefault;
- USHORT sDBCSInc;
- USHORT sDefaultInc;
-} WIDTHDATA, *PWIDTHDATA;
-
-typedef struct _DEVCAPS // Very similar to GDIINFO
-{
- ULONG ulVersion;
- ULONG ulTechnology;
- ULONG ulHorzSizeM;
- ULONG ulVertSizeM;
- ULONG ulHorzSize;
- ULONG ulVertSize;
- ULONG ulHorzRes;
- ULONG ulVertRes;
- ULONG ulBitsPixel;
- ULONG ulPlanes;
- ULONG ulNumPens;
- ULONG ulNumFonts;
- ULONG ulNumColors;
- ULONG ulRasterCaps;
- ULONG ulAspectX;
- ULONG ulAspectY;
- ULONG ulAspectXY;
- ULONG ulLogPixelsX;
- ULONG ulLogPixelsY;
- ULONG ulSizePalette;
- ULONG ulColorRes;
- ULONG ulPhysicalWidth;
- ULONG ulPhysicalHeight;
- ULONG ulPhysicalOffsetX;
- ULONG ulPhysicalOffsetY;
- ULONG ulTextCaps;
- ULONG ulVRefresh;
- ULONG ulDesktopHorzRes;
- ULONG ulDesktopVertRes;
- ULONG ulBltAlignment;
- ULONG ulReserved[4];
- ULONG ulShadeBlend;
- ULONG ulColorMgmtCaps;
-} DEVCAPS, *PDEVCAPS;
-
-/* Gdi Handle Cache Types and Structures */
-#define GDI_CACHED_HADNLE_TYPES 4
-#define CACHE_BRUSH_ENTRIES 10
-#define CACHE_PEN_ENTRIES 8
-#define CACHE_REGION_ENTRIES 8
-#define CACHE_LFONT_ENTRIES 1
-
-typedef enum _HANDLECACHETYPE
-{
- hctBrushHandle,
- hctPenHandle,
- hctRegionHandle,
- hctLFontHandle
-} HANDLECACHETYPE,*PHANDLECACHETYPE;
-
-typedef struct _GDIHANDLECACHE
-{
- ULONG ulLock;
- ULONG ulNumHandles[GDI_CACHED_HADNLE_TYPES];
- HANDLE
Handle[CACHE_BRUSH_ENTRIES+CACHE_PEN_ENTRIES+CACHE_REGION_ENTRIES+CACHE_LFONT_ENTRIES];
-} GDIHANDLECACHE, *PGDIHANDLECACHE;
-
-/* 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;
-
-typedef struct _CFONT
-{
- struct _CFONT *pcfNext;
- HFONT hf;
- ULONG cRef; // Count of all pointers to this CFONT.
- FLONG fl;
- LONG lHeight; // Precomputed logical height.
- HDC hdc; // HDC of realization. 0 for display.
- EFLOAT_S efM11; // efM11 of WtoD of DC of realization
- EFLOAT_S efM22; // efM22 of WtoD of DC of realization
- EFLOAT_S efDtoWBaseline; // Precomputed back transform. (FXtoL)
- EFLOAT_S efDtoWAscent; // Precomputed back transform. (FXtoL)
- WIDTHDATA wd;
- FLONG flInfo;
- USHORT sWidth[256]; // Widths in pels.
- ULONG ulAveWidth; // bogus average used by USER
- TMW_INTERNAL tmw; // cached metrics
- LOCALESIGNATURE lsLocSig; // font signature information
-} CFONT, *PCFONT;
-
-//
-// 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;
-
-typedef struct _W32CLIENTINFO
-{
- ULONG CI_flags;
- ULONG cSpins;
- ULONG ulWindowsVersion;
- ULONG ulAppCompatFlags;
- ULONG ulAppCompatFlags2;
- ULONG W32ClientInfo[57];
-} W32CLIENTINFO, *PW32CLIENTINFO;
-#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_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;
- PVOID Unknown1;
- 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;
- PVOID Unknown2;
- 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;
- PVOID Unknown3;
- PGD_GETGLYPHMODE GetGlyphMode;
- PGD_SYNCHRONIZE Synchronize;
- PVOID Unknown4;
- 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;
- PVOID Unknown5;
- PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
- PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
- PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
- PFN_DrvIcmSetDeviceGammaRamp IcmSetDeviceGammaRamp;
- PGD_GRADIENTFILL GradientFill;
- PGD_STRETCHBLTROP StretchBltROP;
- PFN_DrvPlgBlt PlgBlt;
- PGD_ALPHABLEND AlphaBlend;
- PVOID SynthesizeFont;
- PVOID GetSynthesizedFontFiles;
- 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; /* 92 */
-
- /* ReactOS specify */
- PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
-} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
-
-/* FIXME move to more proper place, Vista syscall */
-DWORD
-STDCALL
-NtGdiConfigureOPMProtectedOutput(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
-
-
-#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
+{
+ GdiGetSetCopyCount = 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;
+
+typedef enum GDIObjType
+{
+ GDIObjType_DEF_TYPE = 0x00,
+ GDIObjType_DC_TYPE = 0x01,
+ GDIObjType_UNUSED1_TYPE = 0x02,
+ GDIObjType_UNUSED2_TYPE = 0x03,
+ GDIObjType_RGN_TYPE = 0x04,
+ GDIObjType_SURF_TYPE = 0x05,
+ GDIObjType_CLIENTOBJ_TYPE = 0x06,
+ GDIObjType_PATH_TYPE = 0x07,
+ GDIObjType_PAL_TYPE = 0x08,
+ GDIObjType_ICMLCS_TYPE = 0x09,
+ GDIObjType_LFONT_TYPE = 0x0a,
+ GDIObjType_RFONT_TYPE = 0x0b,
+ GDIObjType_PFE_TYPE = 0x0c,
+ GDIObjType_PFT_TYPE = 0x0d,
+ GDIObjType_ICMCXF_TYPE = 0x0e,
+ GDIObjType_SPRITE_TYPE = 0x0f,
+ GDIObjType_BRUSH_TYPE = 0x10,
+ GDIObjType_UMPD_TYPE = 0x11,
+ GDIObjType_UNUSED4_TYPE = 0x12,
+ GDIObjType_SPACE_TYPE = 0x13,
+ GDIObjType_UNUSED5_TYPE = 0x14,
+ GDIObjType_META_TYPE = 0x15,
+ GDIObjType_EFSTATE_TYPE = 0x16,
+ GDIObjType_BMFD_TYPE = 0x17,
+ GDIObjType_VTFD_TYPE = 0x18,
+ GDIObjType_TTFD_TYPE = 0x19,
+ GDIObjType_RC_TYPE = 0x1a,
+ GDIObjType_TEMP_TYPE = 0x1b,
+ GDIObjType_DRVOBJ_TYPE = 0x1c,
+ GDIObjType_DCIOBJ_TYPE = 0x1d,
+ GDIObjType_SPOOL_TYPE = 0x1e,
+ GDIObjType_MAX_TYPE = 0x1e,
+ GDIObjTypeTotal = 0x1f,
+} GDIOBJTYPE, *PGDIOBJTYPE;
+
+typedef enum GDILoObjType
+{
+ GDILoObjType_LO_BRUSH_TYPE = 0x100000,
+ GDILoObjType_LO_DC_TYPE = 0x10000,
+ GDILoObjType_LO_BITMAP_TYPE = 0x50000,
+ GDILoObjType_LO_PALETTE_TYPE = 0x80000,
+ GDILoObjType_LO_FONT_TYPE = 0xa0000,
+ GDILoObjType_LO_REGION_TYPE = 0x40000,
+ GDILoObjType_LO_ICMLCS_TYPE = 0x90000,
+ GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000,
+ GDILoObjType_LO_ALTDC_TYPE = 0x210000,
+ GDILoObjType_LO_PEN_TYPE = 0x300000,
+ GDILoObjType_LO_EXTPEN_TYPE = 0x500000,
+ GDILoObjType_LO_DIBSECTION_TYPE = 0x250000,
+ GDILoObjType_LO_METAFILE16_TYPE = 0x260000,
+ GDILoObjType_LO_METAFILE_TYPE = 0x460000,
+ GDILoObjType_LO_METADC16_TYPE = 0x660000
+} GDILOOBJTYPE, *PGDILOOBJTYPE;
+
+#define GdiWorldSpaceToPageSpace 0x203
+
+/* FIXME: Unknown */
+typedef DWORD FULLSCREENCONTROL;
+typedef DWORD LFTYPE;
+
+/* Public LAST_STOCK = 19, plus 2 more internal entries */
+#define NB_STOCK_OBJECTS 22
+
+/* extra stock object: default 1x1 bitmap for memory DCs */
+#define DEFAULT_BITMAP (21)
+
+
+/* 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
+
+/* CAPS1 support */
+//#define C1_TRANSPARENT 0x0001
+#define TC_TT_ABLE 0x0002
+#define C1_TT_CR_ANY 0x0004
+#define C1_EMF_COMPLIANT 0x0008
+#define C1_DIBENGINE 0x0010
+#define C1_GAMMA_RAMP 0x0040
+#define C1_REINIT_ABLE 0x0080
+#define C1_GLYPH_INDEX 0x0100
+#define C1_BIT_PACKED 0x0200
+#define C1_BYTE_PACKED 0x0400
+#define C1_COLORCURSOR 0x0800
+#define C1_CMYK_ABLE 0x1000
+#define C1_SLOW_CARD 0x2000
+
+/* TYPES *********************************************************************/
+
+typedef PVOID KERNEL_PVOID;
+typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;
+typedef LONG FIX;
+
+typedef struct _CHWIDTHINFO
+{
+ LONG lMaxNegA;
+ LONG lMaxNegC;
+ LONG lMinWidthD;
+} CHWIDTHINFO, *PCHWIDTHINFO;
+
+typedef struct _UNIVERSAL_FONT_ID
+{
+ DWORD dwUfid[2];
+} UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
+
+typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
+{
+ DWORD dwCsbDefault[2];
+ DWORD dwCsbSupported0;
+} REALIZATION_INFO, *PREALIZATION_INFO;
+
+typedef struct _WIDTHDATA
+{
+ USHORT sOverhang;
+ USHORT sHeight;
+ USHORT sCharInc;
+ USHORT sBreak;
+ BYTE jFirst;
+ BYTE jLast;
+ BYTE jBreak;
+ BYTE jDefault;
+ USHORT sDBCSInc;
+ USHORT sDefaultInc;
+} WIDTHDATA, *PWIDTHDATA;
+
+typedef struct _DEVCAPS // Very similar to GDIINFO
+{
+ ULONG ulVersion;
+ ULONG ulTechnology;
+ ULONG ulHorzSizeM;
+ ULONG ulVertSizeM;
+ ULONG ulHorzSize;
+ ULONG ulVertSize;
+ ULONG ulHorzRes;
+ ULONG ulVertRes;
+ ULONG ulBitsPixel;
+ ULONG ulPlanes;
+ ULONG ulNumPens;
+ ULONG ulNumFonts;
+ ULONG ulNumColors;
+ ULONG ulRasterCaps;
+ ULONG ulAspectX;
+ ULONG ulAspectY;
+ ULONG ulAspectXY;
+ ULONG ulLogPixelsX;
+ ULONG ulLogPixelsY;
+ ULONG ulSizePalette;
+ ULONG ulColorRes;
+ ULONG ulPhysicalWidth;
+ ULONG ulPhysicalHeight;
+ ULONG ulPhysicalOffsetX;
+ ULONG ulPhysicalOffsetY;
+ ULONG ulTextCaps;
+ ULONG ulVRefresh;
+ ULONG ulDesktopHorzRes;
+ ULONG ulDesktopVertRes;
+ ULONG ulBltAlignment;
+ ULONG ulReserved[4];
+ ULONG ulShadeBlend;
+ ULONG ulColorMgmtCaps;
+} DEVCAPS, *PDEVCAPS;
+
+/* Gdi Handle Cache Types and Structures */
+#define GDI_CACHED_HADNLE_TYPES 4
+#define CACHE_BRUSH_ENTRIES 10
+#define CACHE_PEN_ENTRIES 8
+#define CACHE_REGION_ENTRIES 8
+#define CACHE_LFONT_ENTRIES 1
+
+typedef enum _HANDLECACHETYPE
+{
+ hctBrushHandle,
+ hctPenHandle,
+ hctRegionHandle,
+ hctLFontHandle
+} HANDLECACHETYPE,*PHANDLECACHETYPE;
+
+typedef struct _GDIHANDLECACHE
+{
+ ULONG ulLock;
+ ULONG ulNumHandles[GDI_CACHED_HADNLE_TYPES];
+ HANDLE
Handle[CACHE_BRUSH_ENTRIES+CACHE_PEN_ENTRIES+CACHE_REGION_ENTRIES+CACHE_LFONT_ENTRIES];
+} GDIHANDLECACHE, *PGDIHANDLECACHE;
+
+/* 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;
+
+typedef struct _CFONT
+{
+ struct _CFONT *pcfNext;
+ HFONT hf;
+ ULONG cRef; // Count of all pointers to this CFONT.
+ FLONG fl;
+ LONG lHeight; // Precomputed logical height.
+ HDC hdc; // HDC of realization. 0 for display.
+ EFLOAT_S efM11; // efM11 of WtoD of DC of realization
+ EFLOAT_S efM22; // efM22 of WtoD of DC of realization
+ EFLOAT_S efDtoWBaseline; // Precomputed back transform. (FXtoL)
+ EFLOAT_S efDtoWAscent; // Precomputed back transform. (FXtoL)
+ WIDTHDATA wd;
+ FLONG flInfo;
+ USHORT sWidth[256]; // Widths in pels.
+ ULONG ulAveWidth; // bogus average used by USER
+ TMW_INTERNAL tmw; // cached metrics
+ LOCALESIGNATURE lsLocSig; // font signature information
+} CFONT, *PCFONT;
+
+//
+// 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;
+
+typedef struct _W32CLIENTINFO
+{
+ ULONG CI_flags;
+ ULONG cSpins;
+ ULONG ulWindowsVersion;
+ ULONG ulAppCompatFlags;
+ ULONG ulAppCompatFlags2;
+ ULONG W32ClientInfo[57];
+} W32CLIENTINFO, *PW32CLIENTINFO;
+#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_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;
+ PVOID Unknown1;
+ 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;
+ PVOID Unknown2;
+ 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;
+ PVOID Unknown3;
+ PGD_GETGLYPHMODE GetGlyphMode;
+ PGD_SYNCHRONIZE Synchronize;
+ PVOID Unknown4;
+ 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;
+ PVOID Unknown5;
+ PFN_DrvIcmCreateColorTransform IcmCreateColorTransform;
+ PFN_DrvIcmDeleteColorTransform IcmDeleteColorTransform;
+ PFN_DrvIcmCheckBitmapBits IcmCheckBitmapBits;
+ PFN_DrvIcmSetDeviceGammaRamp IcmSetDeviceGammaRamp;
+ PGD_GRADIENTFILL GradientFill;
+ PGD_STRETCHBLTROP StretchBltROP;
+ PFN_DrvPlgBlt PlgBlt;
+ PGD_ALPHABLEND AlphaBlend;
+ PVOID SynthesizeFont;
+ PVOID GetSynthesizedFontFiles;
+ 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; /* 92 */
+
+ /* ReactOS specify */
+ PGD_ENABLEDRIVER EnableDriver; //ReactOS Extra
+} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
+
+/* FIXME move to more proper place, Vista syscall */
+DWORD STDCALL NtGdiConfigureOPMProtectedOutput(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
+DWORD STDCALL NtGdiCreateOPMProtectedOutputs(DWORD x1, DWORD x2, DWORD x3, DWORD x4,
DWORD x5);
+
+/* Doc exists in msdn see ReactOS def file which D3DKMT* it is, rember I have not check
if the doc are correct,
+ * it is for the drv, which api it should export.
+ * comucate way
+ * gdi32.dll -- Direcly syscall --> win33k.sys
+ * win33k.sys -- doing direct call to -->dxkrnl.sys (note dxkrnl doing allot work
here)
+ * dxkrnl.sys (note dxkrnl doing allot work here) -- the drv export function -->
graphic drv,
+ * this api should move to more proper place later.
+ */
+DWORD STDCALL NtGdiDdDDICheckExclusiveOwnership();
+DWORD STDCALL NtGdiDdDDICheckMonitorPowerState(DWORD x1);
+DWORD STDCALL NtGdiDdDDICheckOcclusion(DWORD x1);
+DWORD STDCALL NtGdiDdDDICloseAdapter(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateAllocation(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateContext(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateDCFromMemory(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateDevice(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateOverlay(DWORD x1);
+DWORD STDCALL NtGdiDdDDICreateSynchronizationObject(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroyAllocation(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroyContext(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroyDCFromMemory(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroyDevice(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroyOverlay(DWORD x1);
+DWORD STDCALL NtGdiDdDDIDestroySynchronizationObject(DWORD x1);
+DWORD STDCALL NtGdiDdDDIEscape(DWORD x1);
+DWORD STDCALL NtGdiDdDDIFlipOverlay(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetContextSchedulingPriority(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetDeviceState(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetDisplayModeList(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetMultisampleMethodList(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetPresentHistory(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetProcessSchedulingPriorityClass(DWORD x1, DWORD x2);
+DWORD STDCALL NtGdiDdDDIGetRuntimeData(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetScanLine(DWORD x1);
+DWORD STDCALL NtGdiDdDDIGetSharedPrimaryHandle(DWORD x1);
+DWORD STDCALL NtGdiDdDDIInvalidateActiveVidPn(DWORD x1);
+DWORD STDCALL NtGdiDdDDILock(DWORD x1);
+DWORD STDCALL NtGdiDdDDIOpenAdapterFromDeviceName(DWORD x1);
+DWORD STDCALL NtGdiDdDDIOpenAdapterFromHdc(DWORD x1);
+DWORD STDCALL NtGdiDdDDIOpenResource(DWORD x1);
+DWORD STDCALL NtGdiDdDDIPollDisplayChildren(DWORD x1);
+DWORD STDCALL NtGdiDdDDIPresent(DWORD x1);
+DWORD STDCALL NtGdiDdDDIQueryAdapterInfo(DWORD x1);
+DWORD STDCALL NtGdiDdDDIQueryAllocationResidency(DWORD x1);
+DWORD STDCALL NtGdiDdDDIQueryResourceInfo(DWORD x1);
+DWORD STDCALL NtGdiDdDDIQueryStatistics(DWORD x1);
+DWORD STDCALL NtGdiDdDDIReleaseProcessVidPnSourceOwners(DWORD x1);
+DWORD STDCALL NtGdiDdDDIRender(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetAllocationPriority(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetContextSchedulingPriority(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetDisplayMode(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetDisplayPrivateDriverFormat(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetGammaRamp(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetProcessSchedulingPriorityClass(DWORD x1, x2);
+DWORD STDCALL NtGdiDdDDISetQueuedLimit(DWORD x1);
+DWORD STDCALL NtGdiDdDDISetVidPnSourceOwner(DWORD x1);
+DWORD STDCALL NtGdiDdDDISharedPrimaryLockNotification(DWORD x1);
+DWORD STDCALL NtGdiDdDDISharedPrimaryUnLockNotification(DWORD x1);
+DWORD STDCALL NtGdiDdDDISignalSynchronizationObject(DWORD x1);
+DWORD STDCALL NtGdiDdDDIUnlock(DWORD x1);
+DWORD STDCALL NtGdiDdDDIUpdateOverlay(DWORD x1);
+DWORD STDCALL NtGdiDdDDIWaitForIdle(DWORD x1);
+DWORD STDCALL NtGdiDdDDIWaitForSynchronizationObject(DWORD x1);
+DWORD STDCALL NtGdiDdDDIWaitForVerticalBlankEvent(DWORD x1);
+DWORD STDCALL NtGdiDDCCIGetCapabilitiesString(DWORD x1, DWORD x2, DWORD x3);
+DWORD STDCALL NtGdiDDCCIGetCapabilitiesStringLength(DWORD x1, DWORD x2);
+DWORD STDCALL NtGdiDDCCIGetTimingReport(DWORD x1, DWORD x2);
+DWORD STDCALL NtGdiDDCCIGetVCPFeature(DWORD x1, DWORD x2, DWORD x3, DWORD x4);
+DWORD STDCALL NtGdiDDCCISaveCurrentSettings(DWORD x1);
+DWORD STDCALL NtGdiDDCCISetVCPFeature(DWORD x1, DWORD x2, DWORD x3);
+
+
+
+#endif
Added: branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c
URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
==============================================================================
--- branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c (added)
+++ branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c [iso-8859-1] Sun May
18 13:33:27 2008
@@ -1,0 +1,507 @@
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * PURPOSE: Native DirectDraw implementation
+ * FILE: subsys/win32k/ntddraw/d3d.c
+ * PROGRAMER: Magnus olsen (magnus(a)greatlord.com)
+ * REVISION HISTORY:
+ * 18/5-2008 Magnus Olsen
+ */
+
+
+#include <w32k.h>
+#include <debug.h>
+
+DWORD
+STDCALL
+NtGdiDdDDICheckExclusiveOwnership()
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICheckMonitorPowerState(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICheckOcclusion(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICloseAdapter(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateAllocation(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateContext(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateDCFromMemory(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateDevice(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateOverlay(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDICreateSynchronizationObject(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIDestroyAllocation(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+NtGdiDdDDIDestroyContext(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIDestroyDCFromMemory(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIDestroyDevice(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIDestroyOverlay(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIDestroySynchronizationObject(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIEscape(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIFlipOverlay(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetContextSchedulingPriority(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetDeviceState(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetDisplayModeList(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetMultisampleMethodList(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetPresentHistory(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetProcessSchedulingPriorityClass
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetRuntimeData(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetScanLine(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIGetSharedPrimaryHandle(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIInvalidateActiveVidPn(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDILock(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIOpenAdapterFromDeviceName(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIOpenAdapterFromHdc(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIOpenResource(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIPollDisplayChildren(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIPresent(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIQueryAdapterInfo(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIQueryAllocationResidency(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIQueryResourceInfo(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIQueryStatistics(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIReleaseProcessVidPnSourceOwners(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIRender(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetAllocationPriority(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetContextSchedulingPriority(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetDisplayMode(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetDisplayPrivateDriverFormat(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetGammaRamp(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetProcessSchedulingPriorityClass(DWORD x1, x2)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetQueuedLimit(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISetVidPnSourceOwner(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISharedPrimaryLockNotification(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISharedPrimaryUnLockNotification(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDISignalSynchronizationObject(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIUnlock(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIUpdateOverlay(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIWaitForIdle(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIWaitForSynchronizationObject(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDdDDIWaitForVerticalBlankEvent(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCIGetCapabilitiesString(DWORD x1, DWORD x2, DWORD x3)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCIGetCapabilitiesStringLength(DWORD x1, DWORD x2)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCIGetTimingReport(DWORD x1, DWORD x2)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCIGetVCPFeature(DWORD x1, DWORD x2, DWORD x3, DWORD x4)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCISaveCurrentSettings(DWORD x1)
+{
+ UNIMPLEMENTED;
+ return 0
+}
+
+DWORD
+STDCALL
+NtGdiDDCCISetVCPFeature(DWORD x1, DWORD x2, DWORD x3)
+{
+ UNIMPLEMENTED;
+ return 0
+}
Propchange: branches/win32k-gdi-dx/subsystems/win32/win32k/ntddraw/d3dkmt.c
------------------------------------------------------------------------------
svn:eol-style = native
Modified: branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c
URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
==============================================================================
--- branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c [iso-8859-1] (original)
+++ branches/win32k-gdi-dx/subsystems/win32/win32k/stubs/stubs.c [iso-8859-1] Sun May 18
13:33:27 2008
@@ -2974,3 +2974,11 @@
UNIMPLEMENTED;
return 0
}
+
+DWORD
+STDCALL
+NtGdiCreateOPMProtectedOutputs(DWORD x1, DWORD x2, DWORD x3, DWORD x4, DWORD x5)
+{
+ UNIMPLEMENTED;
+ return 0
+}
Modified: branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db
URL:
http://svn.reactos.org/svn/reactos/branches/win32k-gdi-dx/subsystems/win32/…
==============================================================================
--- branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db [iso-8859-1] (original)
+++ branches/win32k-gdi-dx/subsystems/win32/win32k/w32ksvc.db [iso-8859-1] Sun May 18
13:33:27 2008
@@ -674,7 +674,70 @@
#
#
# Vista Syscall add on
-NtGdiConfigureOPMProtectedOutput 4
+NtGdiConfigureOPMProtectedOutput 4
+NtGdiCreateOPMProtectedOutputs 5
+NtGdiDdDDICheckExclusiveOwnership 0
+NtGdiDdDDICheckMonitorPowerState 1
+NtGdiDdDDICheckOcclusion 1
+NtGdiDdDDICloseAdapter 1
+NtGdiDdDDICreateAllocation 1
+NtGdiDdDDICreateContext 1
+NtGdiDdDDICreateDCFromMemory 1
+NtGdiDdDDICreateDevice 1
+NtGdiDdDDICreateOverlay 1
+NtGdiDdDDICreateSynchronizationObject 1
+NtGdiDdDDIDestroyAllocation 1
+NtGdiDdDDIDestroyContext 1
+NtGdiDdDDIDestroyDCFromMemory 1
+NtGdiDdDDIDestroyDevice 1
+NtGdiDdDDIDestroyOverlay 1
+NtGdiDdDDIDestroySynchronizationObject 1
+NtGdiDdDDIEscape 1
+NtGdiDdDDIFlipOverlay 1
+NtGdiDdDDIGetContextSchedulingPriority 1
+NtGdiDdDDIGetDeviceState 1
+NtGdiDdDDIGetDisplayModeList 1
+NtGdiDdDDIGetMultisampleMethodList 1
+NtGdiDdDDIGetPresentHistory 1
+NtGdiDdDDIGetProcessSchedulingPriorityClass 2
+NtGdiDdDDIGetRuntimeData 1
+NtGdiDdDDIGetScanLine 1
+NtGdiDdDDIGetSharedPrimaryHandle 1
+NtGdiDdDDIInvalidateActiveVidPn 1
+NtGdiDdDDILock 1
+NtGdiDdDDIOpenAdapterFromDeviceName 1
+NtGdiDdDDIOpenAdapterFromHdc 1
+NtGdiDdDDIOpenResource 1
+NtGdiDdDDIPollDisplayChildren 1
+NtGdiDdDDIPresent 1
+NtGdiDdDDIQueryAdapterInfo 1
+NtGdiDdDDIQueryAllocationResidency 1
+NtGdiDdDDIQueryResourceInfo 1
+NtGdiDdDDIQueryStatistics 1
+NtGdiDdDDIReleaseProcessVidPnSourceOwners 1
+NtGdiDdDDIRender 1
+NtGdiDdDDISetAllocationPriority 1
+NtGdiDdDDISetContextSchedulingPriority 1
+NtGdiDdDDISetDisplayMode 1
+NtGdiDdDDISetDisplayPrivateDriverFormat 1
+NtGdiDdDDISetGammaRamp 1
+NtGdiDdDDISetProcessSchedulingPriorityClass 1
+NtGdiDdDDISetQueuedLimit 1
+NtGdiDdDDISetVidPnSourceOwner 1
+NtGdiDdDDISharedPrimaryLockNotification 1
+NtGdiDdDDISharedPrimaryUnLockNotification 1
+NtGdiDdDDISignalSynchronizationObject 1
+NtGdiDdDDIUnlock 1
+NtGdiDdDDIUpdateOverlay 1
+NtGdiDdDDIWaitForIdle 1
+NtGdiDdDDIWaitForSynchronizationObject 1
+NtGdiDdDDIWaitForVerticalBlankEvent 1
+NtGdiDDCCIGetCapabilitiesString 3
+NtGdiDDCCIGetCapabilitiesStringLength 2
+NtGdiDDCCIGetTimingReport 2
+NtGdiDDCCIGetVCPFeature 4
+NtGdiDDCCISaveCurrentSettings 1
+NtGdiDDCCISetVCPFeature 3
#
#
#ReactOS specific syscalls