mirror of
https://github.com/reactos/reactos.git
synced 2024-10-30 11:35:58 +00:00
9d6a449a8f
svn path=/branches/header-work/; revision=45694
1476 lines
51 KiB
C
1476 lines
51 KiB
C
/*
|
|
* DirectDraw NT driver interface
|
|
*/
|
|
|
|
#ifndef __DD_INCLUDED__
|
|
#define __DD_INCLUDED__
|
|
|
|
/* Helper macro to enable gcc's extension. */
|
|
#ifndef __GNU_EXTENSION
|
|
#ifdef __GNUC__
|
|
#define __GNU_EXTENSION __extension__
|
|
#else
|
|
#define __GNU_EXTENSION
|
|
#endif
|
|
#endif
|
|
|
|
DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
|
|
DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
|
|
DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
|
|
DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
|
|
DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
|
|
DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
|
|
DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
|
|
DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
|
|
DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
|
|
DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
|
|
DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
|
|
DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
|
|
DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
|
|
DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
|
|
DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
|
|
DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
|
|
DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
|
|
DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
|
|
DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
|
|
DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
|
|
DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
|
|
DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
|
|
DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
|
|
DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
|
|
|
|
|
|
#ifndef GUID_DEFS_ONLY
|
|
|
|
#ifndef _NO_DDRAWINT_NO_COM
|
|
#ifndef _NO_COM
|
|
#define _NO_COM
|
|
#include <ddraw.h>
|
|
#include <dvp.h>
|
|
#undef _NO_COM
|
|
#else
|
|
#include <ddraw.h>
|
|
#include <dvp.h>
|
|
#endif
|
|
#else
|
|
#include <ddraw.h>
|
|
#include <dvp.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
|
|
#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
|
|
#endif
|
|
|
|
#ifndef FLATPTR_DEFINED
|
|
typedef ULONG_PTR FLATPTR;
|
|
#define FLATPTR_DEFINED
|
|
#endif
|
|
|
|
typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL;
|
|
|
|
/************************************************************************/
|
|
/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */
|
|
/************************************************************************/
|
|
struct _DD_GETHEAPALIGNMENTDATA;
|
|
#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
|
|
typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
|
|
#define DD_GETHEAPALIGNMENTDATA_DECLARED
|
|
#endif
|
|
|
|
/************************************************************************/
|
|
/* Video memory info structures */
|
|
/************************************************************************/
|
|
|
|
typedef struct _VIDEOMEMORY
|
|
{
|
|
DWORD dwFlags;
|
|
FLATPTR fpStart;
|
|
__GNU_EXTENSION union
|
|
{
|
|
FLATPTR fpEnd;
|
|
DWORD dwWidth;
|
|
};
|
|
DDSCAPS ddsCaps;
|
|
DDSCAPS ddsCapsAlt;
|
|
__GNU_EXTENSION union
|
|
{
|
|
struct _VMEMHEAP *lpHeap;
|
|
DWORD dwHeight;
|
|
};
|
|
} VIDEOMEMORY, *PVIDEOMEMORY;
|
|
|
|
typedef struct _VIDEOMEMORYINFO
|
|
{
|
|
FLATPTR fpPrimary;
|
|
DWORD dwFlags;
|
|
DWORD dwDisplayWidth;
|
|
DWORD dwDisplayHeight;
|
|
LONG lDisplayPitch;
|
|
DDPIXELFORMAT ddpfDisplay;
|
|
DWORD dwOffscreenAlign;
|
|
DWORD dwOverlayAlign;
|
|
DWORD dwTextureAlign;
|
|
DWORD dwZBufferAlign;
|
|
DWORD dwAlphaAlign;
|
|
PVOID pvPrimary;
|
|
} VIDEOMEMORYINFO;
|
|
typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO;
|
|
|
|
typedef struct _DD_DIRECTDRAW_GLOBAL
|
|
{
|
|
PVOID dhpdev;
|
|
ULONG_PTR dwReserved1;
|
|
ULONG_PTR dwReserved2;
|
|
LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
|
|
} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
|
|
|
|
typedef struct _DD_DIRECTDRAW_LOCAL
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpGbl;
|
|
} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
|
|
|
|
|
|
typedef struct _DD_SURFACE_GLOBAL
|
|
{
|
|
__GNU_EXTENSION union
|
|
{
|
|
DWORD dwBlockSizeY;
|
|
LONG lSlicePitch;
|
|
};
|
|
|
|
__GNU_EXTENSION union
|
|
{
|
|
PVIDEOMEMORY lpVidMemHeap;
|
|
DWORD dwBlockSizeX;
|
|
DWORD dwUserMemSize;
|
|
};
|
|
|
|
FLATPTR fpVidMem;
|
|
__GNU_EXTENSION union
|
|
{
|
|
LONG lPitch;
|
|
DWORD dwLinearSize;
|
|
};
|
|
LONG yHint;
|
|
LONG xHint;
|
|
DWORD wHeight;
|
|
DWORD wWidth;
|
|
ULONG_PTR dwReserved1;
|
|
DDPIXELFORMAT ddpfSurface;
|
|
FLATPTR fpHeapOffset;
|
|
HANDLE hCreatorProcess;
|
|
} DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
|
|
|
|
typedef struct _DD_SURFACE_MORE
|
|
{
|
|
DWORD dwMipMapCount;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwOverlayFlags;
|
|
DDSCAPSEX ddsCapsEx;
|
|
DWORD dwSurfaceHandle;
|
|
} DD_SURFACE_MORE, *PDD_SURFACE_MORE;
|
|
|
|
typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
|
|
|
|
typedef struct _DD_SURFACE_LOCAL
|
|
{
|
|
PDD_SURFACE_GLOBAL lpGbl;
|
|
DWORD dwFlags;
|
|
DDSCAPS ddsCaps;
|
|
ULONG_PTR dwReserved1;
|
|
__GNU_EXTENSION union
|
|
{
|
|
DDCOLORKEY ddckCKSrcOverlay;
|
|
DDCOLORKEY ddckCKSrcBlt;
|
|
};
|
|
__GNU_EXTENSION union
|
|
{
|
|
DDCOLORKEY ddckCKDestOverlay;
|
|
DDCOLORKEY ddckCKDestBlt;
|
|
};
|
|
PDD_SURFACE_MORE lpSurfMore;
|
|
PDD_ATTACHLIST lpAttachList;
|
|
PDD_ATTACHLIST lpAttachListFrom;
|
|
RECT rcOverlaySrc;
|
|
} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
|
|
|
|
typedef struct _DD_ATTACHLIST
|
|
{
|
|
PDD_ATTACHLIST lpLink;
|
|
PDD_SURFACE_LOCAL lpAttached;
|
|
} DD_ATTACHLIST;
|
|
|
|
typedef struct _DD_SURFACE_INT
|
|
{
|
|
PDD_SURFACE_LOCAL lpLcl;
|
|
} DD_SURFACE_INT, *PDD_SURFACE_INT;
|
|
|
|
/************************************************************************/
|
|
/* DDI representation of the DirectDrawPalette object */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_PALETTE_GLOBAL
|
|
{
|
|
ULONG_PTR Reserved1;
|
|
} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
|
|
|
|
/************************************************************************/
|
|
/* DDI representation of the DirectDrawVideo object */
|
|
/************************************************************************/
|
|
|
|
typedef struct
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
GUID guid;
|
|
DWORD dwUncompWidth;
|
|
DWORD dwUncompHeight;
|
|
DDPIXELFORMAT ddUncompPixelFormat;
|
|
DWORD dwDriverReserved1;
|
|
DWORD dwDriverReserved2;
|
|
DWORD dwDriverReserved3;
|
|
LPVOID lpDriverReserved1;
|
|
LPVOID lpDriverReserved2;
|
|
LPVOID lpDriverReserved3;
|
|
} DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
|
|
|
|
|
|
typedef struct _DD_VIDEOPORT_LOCAL
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
DDVIDEOPORTDESC ddvpDesc;
|
|
DDVIDEOPORTINFO ddvpInfo;
|
|
PDD_SURFACE_INT lpSurface;
|
|
PDD_SURFACE_INT lpVBISurface;
|
|
DWORD dwNumAutoflip;
|
|
DWORD dwNumVBIAutoflip;
|
|
ULONG_PTR dwReserved1;
|
|
ULONG_PTR dwReserved2;
|
|
ULONG_PTR dwReserved3;
|
|
} DD_VIDEOPORT_LOCAL ;
|
|
|
|
/************************************************************************/
|
|
/* IDirectDrawSurface callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_LOCKDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD bHasRect;
|
|
RECTL rArea;
|
|
LPVOID lpSurfData;
|
|
HRESULT ddRVal;
|
|
PVOID Lock;
|
|
DWORD dwFlags;
|
|
FLATPTR fpProcess;
|
|
} DD_LOCKDATA, *PDD_LOCKDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
|
|
|
|
|
|
typedef struct _DD_UNLOCKDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
HRESULT ddRVal;
|
|
PVOID Unlock;
|
|
} DD_UNLOCKDATA, *PDD_UNLOCKDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
|
|
|
|
#define DDABLT_SRCOVERDEST 0x00000001
|
|
#define DDBLT_AFLAGS 0x80000000
|
|
|
|
|
|
|
|
typedef struct _DD_BLTDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDDestSurface;
|
|
RECTL rDest;
|
|
PDD_SURFACE_LOCAL lpDDSrcSurface;
|
|
RECTL rSrc;
|
|
DWORD dwFlags;
|
|
DWORD dwROPFlags;
|
|
DDBLTFX bltFX;
|
|
HRESULT ddRVal;
|
|
PVOID Blt;
|
|
BOOL IsClipped;
|
|
RECTL rOrigDest;
|
|
RECTL rOrigSrc;
|
|
DWORD dwRectCnt;
|
|
LPRECT prDestRects;
|
|
DWORD dwAFlags;
|
|
DDARGB ddargbScaleFactors;
|
|
} DD_BLTDATA, *PDD_BLTDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
|
|
|
|
typedef struct _DD_UPDATEOVERLAYDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDDestSurface;
|
|
RECTL rDest;
|
|
PDD_SURFACE_LOCAL lpDDSrcSurface;
|
|
RECTL rSrc;
|
|
DWORD dwFlags;
|
|
DDOVERLAYFX overlayFX;
|
|
HRESULT ddRVal;
|
|
PVOID UpdateOverlay;
|
|
} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
|
|
|
|
typedef struct _DD_SETOVERLAYPOSITIONDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSrcSurface;
|
|
PDD_SURFACE_LOCAL lpDDDestSurface;
|
|
LONG lXPos;
|
|
LONG lYPos;
|
|
HRESULT ddRVal;
|
|
PVOID SetOverlayPosition;
|
|
} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
|
|
|
|
typedef struct _DD_SETPALETTEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
PDD_PALETTE_GLOBAL lpDDPalette;
|
|
HRESULT ddRVal;
|
|
PVOID SetPalette;
|
|
BOOL Attach;
|
|
} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
|
|
|
|
typedef struct _DD_FLIPDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpSurfCurr;
|
|
PDD_SURFACE_LOCAL lpSurfTarg;
|
|
DWORD dwFlags;
|
|
HRESULT ddRVal;
|
|
PVOID Flip;
|
|
PDD_SURFACE_LOCAL lpSurfCurrLeft;
|
|
PDD_SURFACE_LOCAL lpSurfTargLeft;
|
|
} DD_FLIPDATA, *PDD_FLIPDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
|
|
|
|
typedef struct _DD_DESTROYSURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
HRESULT ddRVal;
|
|
PVOID DestroySurface;
|
|
} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
|
|
|
|
typedef struct _DD_SETCLIPLISTDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
HRESULT ddRVal;
|
|
PVOID SetClipList;
|
|
} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
|
|
|
|
typedef struct _DD_ADDATTACHEDSURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
PDD_SURFACE_LOCAL lpSurfAttached;
|
|
HRESULT ddRVal;
|
|
PVOID AddAttachedSurface;
|
|
} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
|
|
|
|
typedef struct _DD_SETCOLORKEYDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD dwFlags;
|
|
DDCOLORKEY ckNew;
|
|
HRESULT ddRVal;
|
|
PVOID SetColorKey;
|
|
} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
|
|
|
|
typedef struct _DD_GETBLTSTATUSDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD dwFlags;
|
|
HRESULT ddRVal;
|
|
PVOID GetBltStatus;
|
|
} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
|
|
|
|
typedef struct _DD_GETFLIPSTATUSDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD dwFlags;
|
|
HRESULT ddRVal;
|
|
PVOID GetFlipStatus;
|
|
} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
|
|
typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
|
|
|
|
typedef struct DD_SURFACECALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_SURFCB_DESTROYSURFACE DestroySurface;
|
|
PDD_SURFCB_FLIP Flip;
|
|
PDD_SURFCB_SETCLIPLIST SetClipList;
|
|
PDD_SURFCB_LOCK Lock;
|
|
PDD_SURFCB_UNLOCK Unlock;
|
|
PDD_SURFCB_BLT Blt;
|
|
PDD_SURFCB_SETCOLORKEY SetColorKey;
|
|
PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
|
|
PDD_SURFCB_GETBLTSTATUS GetBltStatus;
|
|
PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
|
|
PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
|
|
PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
|
|
PVOID reserved4;
|
|
PDD_SURFCB_SETPALETTE SetPalette;
|
|
} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
|
|
|
|
|
|
#define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
|
|
#define DDHAL_SURFCB32_FLIP 0x00000002
|
|
#define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
|
|
#define DDHAL_SURFCB32_LOCK 0x00000008
|
|
#define DDHAL_SURFCB32_UNLOCK 0x00000010
|
|
#define DDHAL_SURFCB32_BLT 0x00000020
|
|
#define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
|
|
#define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
|
|
#define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
|
|
#define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
|
|
#define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
|
|
#define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
|
|
#define DDHAL_SURFCB32_RESERVED4 0x00001000
|
|
#define DDHAL_SURFCB32_SETPALETTE 0x00002000
|
|
/************************************************************************/
|
|
/* IDirectDraw callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_CREATESURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DDSURFACEDESC *lpDDSurfaceDesc;
|
|
PDD_SURFACE_LOCAL *lplpSList;
|
|
DWORD dwSCnt;
|
|
HRESULT ddRVal;
|
|
PVOID CreateSurface;
|
|
} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
|
|
|
|
typedef struct _DD_DRVSETCOLORKEYDATA
|
|
{
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD dwFlags;
|
|
DDCOLORKEY ckNew;
|
|
HRESULT ddRVal;
|
|
PVOID SetColorKey;
|
|
} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
|
|
typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
|
|
|
|
#define DDWAITVB_I_TESTVB 0x80000006
|
|
|
|
typedef struct _DD_WAITFORVERTICALBLANKDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD dwFlags;
|
|
DWORD bIsInVB;
|
|
DWORD hEvent;
|
|
HRESULT ddRVal;
|
|
PVOID WaitForVerticalBlank;
|
|
} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
|
|
typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
|
|
|
|
typedef struct _DD_CANCREATESURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DDSURFACEDESC *lpDDSurfaceDesc;
|
|
DWORD bIsDifferentPixelFormat;
|
|
HRESULT ddRVal;
|
|
PVOID CanCreateSurface;
|
|
} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
|
|
|
|
typedef struct _DD_CREATEPALETTEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_PALETTE_GLOBAL lpDDPalette;
|
|
LPPALETTEENTRY lpColorTable;
|
|
HRESULT ddRVal;
|
|
PVOID CreatePalette;
|
|
BOOL is_excl;
|
|
} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
|
|
typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
|
|
|
|
typedef struct _DD_GETSCANLINEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD dwScanLine;
|
|
HRESULT ddRVal;
|
|
PVOID GetScanLine;
|
|
} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
|
|
typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
|
|
|
|
typedef struct _DD_MAPMEMORYDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
BOOL bMap;
|
|
HANDLE hProcess;
|
|
FLATPTR fpProcess;
|
|
HRESULT ddRVal;
|
|
} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
|
|
typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
|
|
|
|
|
|
|
|
|
|
typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
|
|
typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
|
|
|
|
typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
|
|
typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
|
|
|
|
typedef struct DD_CALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_DESTROYDRIVER DestroyDriver;
|
|
PDD_CREATESURFACE CreateSurface;
|
|
PDD_SETCOLORKEY SetColorKey;
|
|
PDD_SETMODE SetMode;
|
|
PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
|
|
PDD_CANCREATESURFACE CanCreateSurface;
|
|
PDD_CREATEPALETTE CreatePalette;
|
|
PDD_GETSCANLINE GetScanLine;
|
|
PDD_MAPMEMORY MapMemory;
|
|
} DD_CALLBACKS, *PDD_CALLBACKS;
|
|
|
|
|
|
|
|
#define DDHAL_CB32_DESTROYDRIVER 0x00000001l
|
|
#define DDHAL_CB32_CREATESURFACE 0x00000002l
|
|
#define DDHAL_CB32_SETCOLORKEY 0x00000004l
|
|
#define DDHAL_CB32_SETMODE 0x00000008l
|
|
#define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
|
|
#define DDHAL_CB32_CANCREATESURFACE 0x00000020l
|
|
#define DDHAL_CB32_CREATEPALETTE 0x00000040l
|
|
#define DDHAL_CB32_GETSCANLINE 0x00000080l
|
|
#define DDHAL_CB32_MAPMEMORY 0x80000000l
|
|
|
|
typedef struct _DD_GETAVAILDRIVERMEMORYDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DDSCAPS DDSCaps;
|
|
DWORD dwTotal;
|
|
DWORD dwFree;
|
|
HRESULT ddRVal;
|
|
PVOID GetAvailDriverMemory;
|
|
} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
|
|
typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
|
|
|
|
typedef struct _DD_MISCELLANEOUSCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
|
|
} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
|
|
|
|
#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
|
|
|
|
typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
|
|
|
|
typedef struct _DD_CREATESURFACEEXDATA
|
|
{
|
|
DWORD dwFlags;
|
|
PDD_DIRECTDRAW_LOCAL lpDDLcl;
|
|
PDD_SURFACE_LOCAL lpDDSLcl;
|
|
HRESULT ddRVal;
|
|
} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
|
|
typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
|
|
|
|
typedef struct _DD_GETDRIVERSTATEDATA
|
|
{
|
|
DWORD dwFlags;
|
|
__GNU_EXTENSION union
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD_PTR dwhContext;
|
|
};
|
|
LPDWORD lpdwStates;
|
|
DWORD dwLength;
|
|
HRESULT ddRVal;
|
|
} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
|
|
typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
|
|
|
|
typedef struct _DD_DESTROYDDLOCALDATA
|
|
{
|
|
DWORD dwFlags;
|
|
PDD_DIRECTDRAW_LOCAL pDDLcl;
|
|
HRESULT ddRVal;
|
|
} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
|
|
typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
|
|
|
|
|
|
|
|
typedef struct _DD_MISCELLANEOUS2CALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_ALPHABLT AlphaBlt;
|
|
PDD_CREATESURFACEEX CreateSurfaceEx;
|
|
PDD_GETDRIVERSTATE GetDriverState;
|
|
PDD_DESTROYDDLOCAL DestroyDDLocal;
|
|
} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
|
|
|
|
|
|
#define DDHAL_MISC2CB32_ALPHABLT 0x00000001
|
|
#define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
|
|
#define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
|
|
#define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
|
|
|
|
|
|
typedef struct _DD_FREEDRIVERMEMORYDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
HRESULT ddRVal;
|
|
PVOID FreeDriverMemory;
|
|
} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
|
|
typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
|
|
|
|
typedef struct _DD_SETEXCLUSIVEMODEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD dwEnterExcl;
|
|
DWORD dwReserved;
|
|
HRESULT ddRVal;
|
|
PVOID SetExclusiveMode;
|
|
} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
|
|
typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
|
|
|
|
typedef struct _DD_FLIPTOGDISURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD dwToGDI;
|
|
DWORD dwReserved;
|
|
HRESULT ddRVal;
|
|
PVOID FlipToGDISurface;
|
|
} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
|
|
|
|
|
|
|
|
typedef struct _DD_NTCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_FREEDRIVERMEMORY FreeDriverMemory;
|
|
PDD_SETEXCLUSIVEMODE SetExclusiveMode;
|
|
PDD_FLIPTOGDISURFACE FlipToGDISurface;
|
|
} DD_NTCALLBACKS, *PDD_NTCALLBACKS;
|
|
|
|
|
|
#define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
|
|
#define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
|
|
#define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
|
|
|
|
/************************************************************************/
|
|
/* IDirectDrawPalette callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_DESTROYPALETTEDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_PALETTE_GLOBAL lpDDPalette;
|
|
HRESULT ddRVal;
|
|
PVOID DestroyPalette;
|
|
} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
|
|
typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
|
|
|
|
typedef struct _DD_SETENTRIESDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_PALETTE_GLOBAL lpDDPalette;
|
|
DWORD dwBase;
|
|
DWORD dwNumEntries;
|
|
LPPALETTEENTRY lpEntries;
|
|
HRESULT ddRVal;
|
|
PVOID SetEntries;
|
|
} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
|
|
typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
|
|
|
|
typedef struct DD_PALETTECALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_PALCB_DESTROYPALETTE DestroyPalette;
|
|
PDD_PALCB_SETENTRIES SetEntries;
|
|
} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
|
|
|
|
#define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
|
|
#define DDHAL_PALCB32_SETENTRIES 0x00000002l
|
|
|
|
/************************************************************************/
|
|
/* IDirectDrawVideoport callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_CANCREATEVPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
LPDDVIDEOPORTDESC lpDDVideoPortDesc;
|
|
HRESULT ddRVal;
|
|
PVOID CanCreateVideoPort;
|
|
} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
|
|
|
|
typedef struct _DD_CREATEVPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
LPDDVIDEOPORTDESC lpDDVideoPortDesc;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
HRESULT ddRVal;
|
|
PVOID CreateVideoPort;
|
|
} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
|
|
|
|
typedef struct _DD_FLIPVPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
PDD_SURFACE_LOCAL lpSurfCurr;
|
|
PDD_SURFACE_LOCAL lpSurfTarg;
|
|
HRESULT ddRVal;
|
|
PVOID FlipVideoPort;
|
|
} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
|
|
|
|
typedef struct _DD_GETVPORTBANDWIDTHDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
LPDDPIXELFORMAT lpddpfFormat;
|
|
DWORD dwWidth;
|
|
DWORD dwHeight;
|
|
DWORD dwFlags;
|
|
LPDDVIDEOPORTBANDWIDTH lpBandwidth;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortBandwidth;
|
|
} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
|
|
|
|
typedef struct _DD_GETVPORTINPUTFORMATDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwFlags;
|
|
LPDDPIXELFORMAT lpddpfFormat;
|
|
DWORD dwNumFormats;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortInputFormats;
|
|
} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
|
|
|
|
typedef struct _DD_GETVPORTOUTPUTFORMATDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwFlags;
|
|
LPDDPIXELFORMAT lpddpfInputFormat;
|
|
LPDDPIXELFORMAT lpddpfOutputFormats;
|
|
DWORD dwNumFormats;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortInputFormats;
|
|
} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
|
|
|
|
typedef struct _DD_GETVPORTFIELDDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
BOOL bField;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortField;
|
|
} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
|
|
|
|
typedef struct _DD_GETVPORTLINEDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwLine;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortLine;
|
|
} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
|
|
|
|
typedef struct _DD_GETVPORTCONNECTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
DWORD dwPortId;
|
|
LPDDVIDEOPORTCONNECT lpConnect;
|
|
DWORD dwNumEntries;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortConnectInfo;
|
|
} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
|
|
|
|
typedef struct _DD_DESTROYVPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
HRESULT ddRVal;
|
|
PVOID DestroyVideoPort;
|
|
} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
|
|
|
|
typedef struct _DD_GETVPORTFLIPSTATUSDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
FLATPTR fpSurface;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoPortFlipStatus;
|
|
} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
|
|
|
|
|
|
|
|
typedef struct _DD_UPDATEVPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
PDD_SURFACE_INT *lplpDDSurface;
|
|
PDD_SURFACE_INT *lplpDDVBISurface;
|
|
LPDDVIDEOPORTINFO lpVideoInfo;
|
|
DWORD dwFlags;
|
|
DWORD dwNumAutoflip;
|
|
DWORD dwNumVBIAutoflip;
|
|
HRESULT ddRVal;
|
|
PVOID UpdateVideoPort;
|
|
} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
|
|
|
|
typedef struct _DD_WAITFORVPORTSYNCDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwFlags;
|
|
DWORD dwLine;
|
|
DWORD dwTimeOut;
|
|
HRESULT ddRVal;
|
|
PVOID UpdateVideoPort;
|
|
} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
|
|
|
|
typedef struct _DD_GETVPORTSIGNALDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwStatus;
|
|
HRESULT ddRVal;
|
|
PVOID GetVideoSignalStatus;
|
|
} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
|
|
|
|
|
|
|
|
typedef struct _DD_VPORTCOLORDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwFlags;
|
|
LPDDCOLORCONTROL lpColorData;
|
|
HRESULT ddRVal;
|
|
PVOID ColorControl;
|
|
} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
|
|
typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
|
|
|
|
|
|
typedef struct DD_VIDEOPORTCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
|
|
PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
|
|
PDD_VPORTCB_FLIP FlipVideoPort;
|
|
PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
|
|
PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
|
|
PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
|
|
PVOID lpReserved1;
|
|
PDD_VPORTCB_GETFIELD GetVideoPortField;
|
|
PDD_VPORTCB_GETLINE GetVideoPortLine;
|
|
PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
|
|
PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
|
|
PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
|
|
PDD_VPORTCB_UPDATE UpdateVideoPort;
|
|
PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
|
|
PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
|
|
PDD_VPORTCB_COLORCONTROL ColorControl;
|
|
} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
|
|
|
|
#define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
|
|
#define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
|
|
#define DDHAL_VPORT32_FLIP 0x00000004
|
|
#define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
|
|
#define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
|
|
#define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
|
|
#define DDHAL_VPORT32_GETFIELD 0x00000080
|
|
#define DDHAL_VPORT32_GETLINE 0x00000100
|
|
#define DDHAL_VPORT32_GETCONNECT 0x00000200
|
|
#define DDHAL_VPORT32_DESTROY 0x00000400
|
|
#define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
|
|
#define DDHAL_VPORT32_UPDATE 0x00001000
|
|
#define DDHAL_VPORT32_WAITFORSYNC 0x00002000
|
|
#define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
|
|
#define DDHAL_VPORT32_COLORCONTROL 0x00008000
|
|
|
|
|
|
/************************************************************************/
|
|
/* IDirectDrawColorControl callbacks */
|
|
/************************************************************************/
|
|
|
|
#define DDRAWI_GETCOLOR 0x0001
|
|
#define DDRAWI_SETCOLOR 0x0002
|
|
|
|
typedef struct _DD_COLORCONTROLDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
LPDDCOLORCONTROL lpColorData;
|
|
DWORD dwFlags;
|
|
HRESULT ddRVal;
|
|
PVOID ColorControl;
|
|
} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
|
|
typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
|
|
|
|
|
|
|
|
typedef struct _DD_COLORCONTROLCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_COLORCB_COLORCONTROL ColorControl;
|
|
} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
|
|
|
|
#define DDHAL_COLOR_COLORCONTROL 0x00000001
|
|
|
|
/************************************************************************/
|
|
/* IDirectDrawVideo callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_GETMOCOMPGUIDSDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
DWORD dwNumGuids;
|
|
GUID *lpGuids;
|
|
HRESULT ddRVal;
|
|
} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
|
|
|
|
typedef struct _DD_GETMOCOMPFORMATSDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
GUID *lpGuid;
|
|
DWORD dwNumFormats;
|
|
LPDDPIXELFORMAT lpFormats;
|
|
HRESULT ddRVal;
|
|
} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
|
|
|
|
typedef struct _DD_CREATEMOCOMPDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
GUID *lpGuid;
|
|
DWORD dwUncompWidth;
|
|
DWORD dwUncompHeight;
|
|
DDPIXELFORMAT ddUncompPixelFormat;
|
|
LPVOID lpData;
|
|
DWORD dwDataSize;
|
|
HRESULT ddRVal;
|
|
} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
|
|
|
|
typedef struct _DDCOMPBUFFERINFO
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwNumCompBuffers;
|
|
DWORD dwWidthToCreate;
|
|
DWORD dwHeightToCreate;
|
|
DWORD dwBytesToAllocate;
|
|
DDSCAPS2 ddCompCaps;
|
|
DDPIXELFORMAT ddPixelFormat;
|
|
} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
|
|
|
|
typedef struct _DD_GETMOCOMPCOMPBUFFDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
GUID *lpGuid;
|
|
DWORD dwWidth;
|
|
DWORD dwHeight;
|
|
DDPIXELFORMAT ddPixelFormat;
|
|
DWORD dwNumTypesCompBuffs;
|
|
LPDDCOMPBUFFERINFO lpCompBuffInfo;
|
|
HRESULT ddRVal;
|
|
} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
|
|
|
|
typedef struct _DD_GETINTERNALMOCOMPDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
GUID *lpGuid;
|
|
DWORD dwWidth;
|
|
DWORD dwHeight;
|
|
DDPIXELFORMAT ddPixelFormat;
|
|
DWORD dwScratchMemAlloc;
|
|
HRESULT ddRVal;
|
|
} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
|
|
|
|
typedef struct _DD_BEGINMOCOMPFRAMEDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
PDD_SURFACE_LOCAL lpDestSurface;
|
|
DWORD dwInputDataSize;
|
|
LPVOID lpInputData;
|
|
DWORD dwOutputDataSize;
|
|
LPVOID lpOutputData;
|
|
HRESULT ddRVal;
|
|
} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
|
|
|
|
typedef struct _DD_ENDMOCOMPFRAMEDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
LPVOID lpInputData;
|
|
DWORD dwInputDataSize;
|
|
HRESULT ddRVal;
|
|
} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
|
|
|
|
typedef struct _DDMOCOMPBUFFERINFO
|
|
{
|
|
DWORD dwSize;
|
|
PDD_SURFACE_LOCAL lpCompSurface;
|
|
DWORD dwDataOffset;
|
|
DWORD dwDataSize;
|
|
LPVOID lpPrivate;
|
|
} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
|
|
|
|
typedef struct _DD_RENDERMOCOMPDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
DWORD dwNumBuffers;
|
|
LPDDMOCOMPBUFFERINFO lpBufferInfo;
|
|
DWORD dwFunction;
|
|
LPVOID lpInputData;
|
|
DWORD dwInputDataSize;
|
|
LPVOID lpOutputData;
|
|
DWORD dwOutputDataSize;
|
|
HRESULT ddRVal;
|
|
} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
|
|
|
|
#define DDMCQUERY_READ 0x00000001
|
|
|
|
typedef struct _DD_QUERYMOCOMPSTATUSDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
PDD_SURFACE_LOCAL lpSurface;
|
|
DWORD dwFlags;
|
|
HRESULT ddRVal;
|
|
} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
|
|
|
|
typedef struct _DD_DESTROYMOCOMPDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_MOTIONCOMP_LOCAL lpMoComp;
|
|
HRESULT ddRVal;
|
|
} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
|
|
typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
|
|
|
|
|
|
|
|
typedef struct DD_MOTIONCOMPCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
|
|
PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
|
|
PDD_MOCOMPCB_CREATE CreateMoComp;
|
|
PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
|
|
PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
|
|
PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
|
|
PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
|
|
PDD_MOCOMPCB_RENDER RenderMoComp;
|
|
PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
|
|
PDD_MOCOMPCB_DESTROY DestroyMoComp;
|
|
} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
|
|
|
|
#define DDHAL_MOCOMP32_GETGUIDS 0x00000001
|
|
#define DDHAL_MOCOMP32_GETFORMATS 0x00000002
|
|
#define DDHAL_MOCOMP32_CREATE 0x00000004
|
|
#define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
|
|
#define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
|
|
#define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
|
|
#define DDHAL_MOCOMP32_ENDFRAME 0x00000040
|
|
#define DDHAL_MOCOMP32_RENDER 0x00000080
|
|
#define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
|
|
#define DDHAL_MOCOMP32_DESTROY 0x00000200
|
|
|
|
/************************************************************************/
|
|
/* D3D buffer callbacks */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_D3DBUFCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_CANCREATESURFACE CanCreateD3DBuffer;
|
|
PDD_CREATESURFACE CreateD3DBuffer;
|
|
PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
|
|
PDD_SURFCB_LOCK LockD3DBuffer;
|
|
PDD_SURFCB_UNLOCK UnlockD3DBuffer;
|
|
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
|
|
|
|
/************************************************************************/
|
|
/* DdGetDriverInfo callback */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DD_GETDRIVERINFODATA
|
|
{
|
|
// Input:
|
|
PVOID dhpdev;
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
GUID guidInfo;
|
|
DWORD dwExpectedSize;
|
|
PVOID lpvData;
|
|
// Output:
|
|
DWORD dwActualSize;
|
|
HRESULT ddRVal;
|
|
} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
|
|
typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
|
|
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
/* Driver info structures */
|
|
/************************************************************************/
|
|
|
|
typedef struct _DDNTCORECAPS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwCaps;
|
|
DWORD dwCaps2;
|
|
DWORD dwCKeyCaps;
|
|
DWORD dwFXCaps;
|
|
DWORD dwFXAlphaCaps;
|
|
DWORD dwPalCaps;
|
|
DWORD dwSVCaps;
|
|
DWORD dwAlphaBltConstBitDepths;
|
|
DWORD dwAlphaBltPixelBitDepths;
|
|
DWORD dwAlphaBltSurfaceBitDepths;
|
|
DWORD dwAlphaOverlayConstBitDepths;
|
|
DWORD dwAlphaOverlayPixelBitDepths;
|
|
DWORD dwAlphaOverlaySurfaceBitDepths;
|
|
DWORD dwZBufferBitDepths;
|
|
DWORD dwVidMemTotal;
|
|
DWORD dwVidMemFree;
|
|
DWORD dwMaxVisibleOverlays;
|
|
DWORD dwCurrVisibleOverlays;
|
|
DWORD dwNumFourCCCodes;
|
|
DWORD dwAlignBoundarySrc;
|
|
DWORD dwAlignSizeSrc;
|
|
DWORD dwAlignBoundaryDest;
|
|
DWORD dwAlignSizeDest;
|
|
DWORD dwAlignStrideAlign;
|
|
DWORD dwRops[DD_ROP_SPACE];
|
|
DDSCAPS ddsCaps;
|
|
DWORD dwMinOverlayStretch;
|
|
DWORD dwMaxOverlayStretch;
|
|
DWORD dwMinLiveVideoStretch;
|
|
DWORD dwMaxLiveVideoStretch;
|
|
DWORD dwMinHwCodecStretch;
|
|
DWORD dwMaxHwCodecStretch;
|
|
DWORD dwReserved1;
|
|
DWORD dwReserved2;
|
|
DWORD dwReserved3;
|
|
DWORD dwSVBCaps;
|
|
DWORD dwSVBCKeyCaps;
|
|
DWORD dwSVBFXCaps;
|
|
DWORD dwSVBRops[DD_ROP_SPACE];
|
|
DWORD dwVSBCaps;
|
|
DWORD dwVSBCKeyCaps;
|
|
DWORD dwVSBFXCaps;
|
|
DWORD dwVSBRops[DD_ROP_SPACE];
|
|
DWORD dwSSBCaps;
|
|
DWORD dwSSBCKeyCaps;
|
|
DWORD dwSSBFXCaps;
|
|
DWORD dwSSBRops[DD_ROP_SPACE];
|
|
DWORD dwMaxVideoPorts;
|
|
DWORD dwCurrVideoPorts;
|
|
DWORD dwSVBCaps2;
|
|
} DDNTCORECAPS, *PDDNTCORECAPS;
|
|
|
|
|
|
typedef struct _DD_HALINFO_V4
|
|
{
|
|
DWORD dwSize;
|
|
VIDEOMEMORYINFO vmiData;
|
|
DDNTCORECAPS ddCaps;
|
|
PDD_GETDRIVERINFO GetDriverInfo;
|
|
DWORD dwFlags;
|
|
} DD_HALINFO_V4, *PDD_HALINFO_V4;
|
|
|
|
typedef struct _DD_HALINFO
|
|
{
|
|
DWORD dwSize;
|
|
VIDEOMEMORYINFO vmiData;
|
|
DDNTCORECAPS ddCaps;
|
|
PDD_GETDRIVERINFO GetDriverInfo;
|
|
DWORD dwFlags;
|
|
PVOID lpD3DGlobalDriverData;
|
|
PVOID lpD3DHALCallbacks;
|
|
PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
|
|
} DD_HALINFO, *PDD_HALINFO;
|
|
|
|
|
|
|
|
typedef struct _DD_NONLOCALVIDMEMCAPS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwNLVBCaps;
|
|
DWORD dwNLVBCaps2;
|
|
DWORD dwNLVBCKeyCaps;
|
|
DWORD dwNLVBFXCaps;
|
|
DWORD dwNLVBRops[DD_ROP_SPACE];
|
|
} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
|
|
|
|
|
|
|
|
typedef struct _DD_MORESURFACECAPS
|
|
{
|
|
DWORD dwSize;
|
|
DDSCAPSEX ddsCapsMore;
|
|
struct tagNTExtendedHeapRestrictions
|
|
{
|
|
DDSCAPSEX ddsCapsEx;
|
|
DDSCAPSEX ddsCapsExAlt;
|
|
} ddsExtendedHeapRestrictions[1];
|
|
} DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
|
|
|
|
|
|
/*********************************************************/
|
|
/* Kernel Callbacks */
|
|
/*********************************************************/
|
|
typedef struct _DD_SYNCSURFACEDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_SURFACE_LOCAL lpDDSurface;
|
|
DWORD dwSurfaceOffset;
|
|
ULONG_PTR fpLockPtr;
|
|
LONG lPitch;
|
|
DWORD dwOverlayOffset;
|
|
ULONG dwDriverReserved1;
|
|
ULONG dwDriverReserved2;
|
|
ULONG dwDriverReserved3;
|
|
ULONG dwDriverReserved4;
|
|
HRESULT ddRVal;
|
|
} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
|
|
typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
|
|
|
|
typedef struct _DD_SYNCVIDEOPORTDATA
|
|
{
|
|
PDD_DIRECTDRAW_LOCAL lpDD;
|
|
PDD_VIDEOPORT_LOCAL lpVideoPort;
|
|
DWORD dwOriginOffset;
|
|
DWORD dwHeight;
|
|
DWORD dwVBIHeight;
|
|
ULONG dwDriverReserved1;
|
|
ULONG dwDriverReserved2;
|
|
ULONG dwDriverReserved3;
|
|
HRESULT ddRVal;
|
|
} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
|
|
typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
|
|
|
|
|
|
typedef struct DD_NTPRIVATEDRIVERCAPS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwPrivateCaps;
|
|
} DD_NTPRIVATEDRIVERCAPS;
|
|
|
|
typedef struct _DD_UPDATENONLOCALHEAPDATA
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDD;
|
|
DWORD dwHeap;
|
|
FLATPTR fpGARTLin;
|
|
FLATPTR fpGARTDev;
|
|
ULONG_PTR ulPolicyMaxBytes;
|
|
HRESULT ddRVal;
|
|
VOID* UpdateNonLocalHeap;
|
|
} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
|
|
|
|
typedef struct _DD_STEREOMODE
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwHeight;
|
|
DWORD dwWidth;
|
|
DWORD dwBpp;
|
|
DWORD dwRefreshRate;
|
|
BOOL bSupported;
|
|
} DD_STEREOMODE, *PDD_STEREOMODE;
|
|
|
|
typedef struct _DD_MORECAPS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwAlphaCaps;
|
|
DWORD dwSVBAlphaCaps;
|
|
DWORD dwVSBAlphaCaps;
|
|
DWORD dwSSBAlphaCaps;
|
|
DWORD dwFilterCaps;
|
|
DWORD dwSVBFilterCaps;
|
|
DWORD dwVSBFilterCaps;
|
|
DWORD dwSSBFilterCaps;
|
|
} DD_MORECAPS, *PDD_MORECAPS;
|
|
|
|
typedef struct _DD_CLIPPER_GLOBAL
|
|
{
|
|
ULONG_PTR dwReserved1;
|
|
} DD_CLIPPER_GLOBAL;
|
|
|
|
typedef struct _DD_CLIPPER_LOCAL
|
|
{
|
|
ULONG_PTR dwReserved1;
|
|
} DD_CLIPPER_LOCAL;
|
|
|
|
typedef struct _DD_PALETTE_LOCAL
|
|
{
|
|
ULONG dwReserved0;
|
|
ULONG_PTR dwReserved1;
|
|
} DD_PALETTE_LOCAL;
|
|
|
|
|
|
typedef struct DD_KERNELCALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
PDD_KERNELCB_SYNCSURFACE SyncSurfaceData;
|
|
PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
|
|
} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
|
|
|
|
|
|
#define MAX_AUTOFLIP_BUFFERS 10
|
|
#define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
|
|
#define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3
|
|
#define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4
|
|
#define DDPF_D3DFORMAT 0x00200000l
|
|
#define D3DFORMAT_OP_TEXTURE 0x00000001L
|
|
#define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
|
|
#define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
|
|
#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
|
|
#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
|
|
#define D3DFORMAT_OP_ZSTENCIL 0x00000040L
|
|
#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
|
|
#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
|
|
#define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
|
|
#define D3DFORMAT_OP_3DACCELERATION 0x00000800L
|
|
#define D3DFORMAT_OP_PIXELSIZE 0x00001000L
|
|
#define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
|
|
#define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
|
|
#define D3DFORMAT_OP_SRGBREAD 0x00008000L
|
|
#define D3DFORMAT_OP_BUMPMAP 0x00010000L
|
|
#define D3DFORMAT_OP_DMAP 0x00020000L
|
|
#define D3DFORMAT_OP_NOFILTER 0x00040000L
|
|
#define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
|
|
#define D3DFORMAT_OP_SRGBWRITE 0x00100000L
|
|
#define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
|
|
#define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
|
|
#define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
|
|
#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
|
|
#define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
|
|
#define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
|
|
|
|
|
|
#define VIDMEM_ISLINEAR 0x00000001l
|
|
#define VIDMEM_ISRECTANGULAR 0x00000002l
|
|
#define VIDMEM_ISHEAP 0x00000004l
|
|
#define VIDMEM_ISNONLOCAL 0x00000008l
|
|
#define VIDMEM_ISWC 0x00000010l
|
|
#define VIDMEM_HEAPDISABLED 0x00000020l
|
|
|
|
#define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
|
|
|
|
#define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
|
|
#define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
|
|
|
|
#define DDHAL_DRIVER_NOTHANDLED 0x00000000l
|
|
#define DDHAL_DRIVER_HANDLED 0x00000001l
|
|
#define DDHAL_DRIVER_NOCKEYHW 0x00000002l
|
|
|
|
#define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
|
|
#define DDRAWISURF_HASPIXELFORMAT 0x00002000L
|
|
#define DDRAWISURF_HASOVERLAYDATA 0x00004000L
|
|
#define DDRAWISURF_FRONTBUFFER 0x04000000L
|
|
#define DDRAWISURF_BACKBUFFER 0x08000000L
|
|
#define DDRAWISURF_INVALID 0x10000000L
|
|
#define DDRAWISURF_DRIVERMANAGED 0x40000000L
|
|
|
|
#define ROP_HAS_SOURCE 0x00000001l
|
|
#define ROP_HAS_PATTERN 0x00000002l
|
|
#define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
|
|
|
|
#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
|
|
#define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
|
|
#define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
|
|
#define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
|
|
#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
|
|
|
|
#define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF
|
|
#define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF
|
|
#define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF
|
|
#define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF
|
|
#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
|
|
|
|
#define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
|
|
#define DDHALINFO_MODEXILLEGAL 0x00000002
|
|
#define DDHALINFO_GETDRIVERINFOSET 0x00000004
|
|
#define DDHALINFO_GETDRIVERINFO2 0x00000008
|
|
|
|
#define DDRAWIVPORT_ON 0x00000001
|
|
#define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
|
|
#define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
|
|
|
|
#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
|
|
#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
|
|
#define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
|
|
|
|
#define DDRAWI_VPORTSTART 0x0001
|
|
#define DDRAWI_VPORTSTOP 0x0002
|
|
#define DDRAWI_VPORTUPDATE 0x0003
|
|
#define DDRAWI_VPORTGETCOLOR 0x0001
|
|
#define DDRAWI_VPORTSETCOLOR 0x0002
|
|
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* GUID_DEFS_ONLY */
|
|
|
|
#endif /* __DD_INCLUDED__ */
|