mirror of
https://github.com/reactos/reactos.git
synced 2024-08-16 16:39:08 +00:00
273 lines
7.8 KiB
C
273 lines
7.8 KiB
C
/*
|
|
* Direct3D NT driver interface
|
|
*/
|
|
|
|
#ifndef __DDK_D3DNTHAL_H
|
|
#define __DDK_D3DNTHAL_H
|
|
|
|
#include <ddrawint.h>
|
|
#include <d3dtypes.h>
|
|
#include <d3dcaps.h>
|
|
|
|
/* Helper macro to enable gcc's extension. */
|
|
#ifndef __GNU_EXTENSION
|
|
#ifdef __GNUC__
|
|
#define __GNU_EXTENSION __extension__
|
|
#else
|
|
#define __GNU_EXTENSION
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
DEFINE_GUID(GUID_D3DCallbacks, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
|
|
DEFINE_GUID(GUID_D3DCallbacks3, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
|
|
DEFINE_GUID(GUID_D3DExtendedCaps, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
|
|
DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
|
|
DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
|
|
DEFINE_GUID(GUID_DDStereoMode, 0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
|
|
|
|
typedef struct _D3DNTHAL_CONTEXTCREATEDATA
|
|
{
|
|
__GNU_EXTENSION union
|
|
{
|
|
PDD_DIRECTDRAW_GLOBAL lpDDGbl;
|
|
PDD_DIRECTDRAW_LOCAL lpDDLcl;
|
|
};
|
|
__GNU_EXTENSION union
|
|
{
|
|
PDD_SURFACE_LOCAL lpDDS;
|
|
PDD_SURFACE_LOCAL lpDDSLcl;
|
|
};
|
|
__GNU_EXTENSION union
|
|
{
|
|
PDD_SURFACE_LOCAL lpDDSZ;
|
|
PDD_SURFACE_LOCAL lpDDSZLcl;
|
|
};
|
|
DWORD dwPID;
|
|
ULONG_PTR dwhContext;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
|
|
|
|
typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
|
|
|
|
typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
|
|
{
|
|
DWORD dwPID;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
|
|
|
|
typedef struct _D3DNTHAL_SCENECAPTUREDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
DWORD dwFlag;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
|
|
|
|
typedef struct _D3DNTHAL_TEXTURECREATEDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
HANDLE hDDS;
|
|
ULONG_PTR dwHandle;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
|
|
|
|
typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
ULONG_PTR dwHandle;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
|
|
|
|
typedef struct _D3DNTHAL_TEXTURESWAPDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
ULONG_PTR dwHandle1;
|
|
ULONG_PTR dwHandle2;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
|
|
|
|
typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
HANDLE hDDS;
|
|
ULONG_PTR dwHandle;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
|
|
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
|
|
|
|
typedef struct _D3DNTHALDeviceDesc_V1
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
D3DCOLORMODEL dcmColorModel;
|
|
DWORD dwDevCaps;
|
|
D3DTRANSFORMCAPS dtcTransformCaps;
|
|
BOOL bClipping;
|
|
D3DLIGHTINGCAPS dlcLightingCaps;
|
|
D3DPRIMCAPS dpcLineCaps;
|
|
D3DPRIMCAPS dpcTriCaps;
|
|
DWORD dwDeviceRenderBitDepth;
|
|
DWORD dwDeviceZBufferBitDepth;
|
|
DWORD dwMaxBufferSize;
|
|
DWORD dwMaxVertexCount;
|
|
} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
|
|
|
|
typedef struct _D3DNTHAL_GLOBALDRIVERDATA
|
|
{
|
|
DWORD dwSize;
|
|
D3DNTHALDEVICEDESC_V1 hwCaps;
|
|
DWORD dwNumVertices;
|
|
DWORD dwNumClipVertices;
|
|
DWORD dwNumTextureFormats;
|
|
LPDDSURFACEDESC lpTextureFormats;
|
|
} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
|
|
|
|
typedef struct _D3DNTHAL_CALLBACKS
|
|
{
|
|
DWORD dwSize;
|
|
LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
|
|
LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
|
|
LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
|
|
LPD3DNTHAL_SCENECAPTURECB SceneCapture;
|
|
LPVOID dwReserved10;
|
|
LPVOID dwReserved11;
|
|
LPVOID dwReserved22;
|
|
LPVOID dwReserved23;
|
|
ULONG_PTR dwReserved;
|
|
LPD3DNTHAL_TEXTURECREATECB TextureCreate;
|
|
LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
|
|
LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
|
|
LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
|
|
LPVOID dwReserved12;
|
|
LPVOID dwReserved13;
|
|
LPVOID dwReserved14;
|
|
LPVOID dwReserved15;
|
|
LPVOID dwReserved16;
|
|
LPVOID dwReserved17;
|
|
LPVOID dwReserved18;
|
|
LPVOID dwReserved19;
|
|
LPVOID dwReserved20;
|
|
LPVOID dwReserved21;
|
|
LPVOID dwReserved24;
|
|
ULONG_PTR dwReserved0;
|
|
ULONG_PTR dwReserved1;
|
|
ULONG_PTR dwReserved2;
|
|
ULONG_PTR dwReserved3;
|
|
ULONG_PTR dwReserved4;
|
|
ULONG_PTR dwReserved5;
|
|
ULONG_PTR dwReserved6;
|
|
ULONG_PTR dwReserved7;
|
|
ULONG_PTR dwReserved8;
|
|
ULONG_PTR dwReserved9;
|
|
} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
|
|
|
|
|
|
typedef struct _D3DNTHAL_SETRENDERTARGETDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
PDD_SURFACE_LOCAL lpDDS;
|
|
PDD_SURFACE_LOCAL lpDDSZ;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_SETRENDERTARGETDATA;
|
|
typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
|
|
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
|
|
|
|
|
|
typedef struct _D3DNTHAL_CALLBACKS2
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
|
|
LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
|
|
LPVOID dwReserved1;
|
|
LPVOID dwReserved2;
|
|
LPVOID dwReserved3;
|
|
LPVOID dwReserved4;
|
|
} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
|
|
|
|
|
|
typedef struct _D3DNTHAL_CLEAR2DATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
DWORD dwFlags;
|
|
DWORD dwFillColor;
|
|
D3DVALUE dvFillDepth;
|
|
DWORD dwFillStencil;
|
|
LPD3DRECT lpRects;
|
|
DWORD dwNumRects;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_CLEAR2DATA;
|
|
typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
|
|
|
|
typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
DWORD dwFlags;
|
|
ULONG_PTR dwReserved;
|
|
DWORD dwNumPasses;
|
|
HRESULT ddrval;
|
|
} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
|
|
|
|
typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
|
|
{
|
|
ULONG_PTR dwhContext;
|
|
DWORD dwFlags;
|
|
DWORD dwVertexType;
|
|
PDD_SURFACE_LOCAL lpDDCommands;
|
|
DWORD dwCommandOffset;
|
|
DWORD dwCommandLength;
|
|
__GNU_EXTENSION union
|
|
{
|
|
PDD_SURFACE_LOCAL lpDDVertex;
|
|
LPVOID lpVertices;
|
|
};
|
|
DWORD dwVertexOffset;
|
|
DWORD dwVertexLength;
|
|
DWORD dwReqVertexBufSize;
|
|
DWORD dwReqCommandBufSize;
|
|
LPDWORD lpdwRStates;
|
|
__GNU_EXTENSION union
|
|
{
|
|
DWORD dwVertexSize;
|
|
HRESULT ddrval;
|
|
};
|
|
DWORD dwErrorOffset;
|
|
} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
|
|
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
|
|
typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
|
|
|
|
typedef struct _D3DNTHAL_CALLBACKS3
|
|
{
|
|
DWORD dwSize;
|
|
DWORD dwFlags;
|
|
|
|
LPD3DNTHAL_CLEAR2CB Clear2;
|
|
LPVOID lpvReserved;
|
|
LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
|
|
LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
|
|
} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* __DDK_D3DNTHAL_H */
|