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/wi... ============================================================================== --- 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@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@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/w... ============================================================================== --- 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@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/w... ============================================================================== --- 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/w... ============================================================================== --- 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