[ros-diffs] [greatlrd] 33593: 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,
greatlrd at svn.reactos.org
greatlrd at svn.reactos.org
Sun May 18 20:33:28 CEST 2008
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/win32k/ntgdityp.h?rev=33593&r1=33592&r2=33593&view=diff
==============================================================================
--- 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 at 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 at 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/win32k/ntddraw/d3dkmt.c?rev=33593&view=auto
==============================================================================
--- 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 at 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/win32k/stubs/stubs.c?rev=33593&r1=33592&r2=33593&view=diff
==============================================================================
--- 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/win32k/w32ksvc.db?rev=33593&r1=33592&r2=33593&view=diff
==============================================================================
--- 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
More information about the Ros-diffs
mailing list