| /* |
| * 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 */ |
| |