| /* | |
| * d3dnthal.h | |
| * | |
| * Direct3D NT driver interface | |
| * | |
| * Contributors: | |
| * Created by Ge van Geldorp | |
| * | |
| * THIS SOFTWARE IS NOT COPYRIGHTED | |
| * | |
| * This source code is offered for use in the public domain. You may | |
| * use, modify or distribute it freely. | |
| * | |
| * This code is distributed in the hope that it will be useful but | |
| * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| * DISCLAIMED. This includes but is not limited to warranties of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| * | |
| */ | |
| #ifndef __DDK_D3DNTHAL_H | |
| #define __DDK_D3DNTHAL_H | |
| #include <ddrawint.h> | |
| #include <d3dtypes.h> | |
| #include <d3dcaps.h> | |
| #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; | |
| WINBOOL 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 */ | |