2 * Direct3D NT driver interface
5 #ifndef __DDK_D3DNTHAL_H
6 #define __DDK_D3DNTHAL_H
16 DEFINE_GUID(GUID_D3DCallbacks
, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
17 DEFINE_GUID(GUID_D3DCallbacks3
, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
18 DEFINE_GUID(GUID_D3DExtendedCaps
, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
19 DEFINE_GUID(GUID_D3DParseUnknownCommandCallback
, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
20 DEFINE_GUID(GUID_ZPixelFormats
, 0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
21 DEFINE_GUID(GUID_DDStereoMode
, 0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
23 typedef struct _D3DNTHAL_CONTEXTCREATEDATA
27 PDD_DIRECTDRAW_GLOBAL lpDDGbl
;
28 PDD_DIRECTDRAW_LOCAL lpDDLcl
;
32 PDD_SURFACE_LOCAL lpDDS
;
33 PDD_SURFACE_LOCAL lpDDSLcl
;
37 PDD_SURFACE_LOCAL lpDDSZ
;
38 PDD_SURFACE_LOCAL lpDDSZLcl
;
43 } D3DNTHAL_CONTEXTCREATEDATA
, *LPD3DNTHAL_CONTEXTCREATEDATA
;
45 typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
49 } D3DNTHAL_CONTEXTDESTROYDATA
, *LPD3DNTHAL_CONTEXTDESTROYDATA
;
51 typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
55 } D3DNTHAL_CONTEXTDESTROYALLDATA
, *LPD3DNTHAL_CONTEXTDESTROYALLDATA
;
57 typedef struct _D3DNTHAL_SCENECAPTUREDATA
62 } D3DNTHAL_SCENECAPTUREDATA
, *LPD3DNTHAL_SCENECAPTUREDATA
;
64 typedef struct _D3DNTHAL_TEXTURECREATEDATA
70 } D3DNTHAL_TEXTURECREATEDATA
, *LPD3DNTHAL_TEXTURECREATEDATA
;
72 typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
77 } D3DNTHAL_TEXTUREDESTROYDATA
, *LPD3DNTHAL_TEXTUREDESTROYDATA
;
79 typedef struct _D3DNTHAL_TEXTURESWAPDATA
85 } D3DNTHAL_TEXTURESWAPDATA
, *LPD3DNTHAL_TEXTURESWAPDATA
;
87 typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
93 } D3DNTHAL_TEXTUREGETSURFDATA
, *LPD3DNTHAL_TEXTUREGETSURFDATA
;
95 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTCREATECB
)(LPD3DNTHAL_CONTEXTCREATEDATA
);
96 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTDESTROYCB
)(LPD3DNTHAL_CONTEXTDESTROYDATA
);
97 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTDESTROYALLCB
)(LPD3DNTHAL_CONTEXTDESTROYALLDATA
);
98 typedef DWORD (APIENTRY
*LPD3DNTHAL_SCENECAPTURECB
)(LPD3DNTHAL_SCENECAPTUREDATA
);
99 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTURECREATECB
)(LPD3DNTHAL_TEXTURECREATEDATA
);
100 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTUREDESTROYCB
)(LPD3DNTHAL_TEXTUREDESTROYDATA
);
101 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTURESWAPCB
)(LPD3DNTHAL_TEXTURESWAPDATA
);
102 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTUREGETSURFCB
)(LPD3DNTHAL_TEXTUREGETSURFDATA
);
104 typedef struct _D3DNTHALDeviceDesc_V1
108 D3DCOLORMODEL dcmColorModel
;
110 D3DTRANSFORMCAPS dtcTransformCaps
;
112 D3DLIGHTINGCAPS dlcLightingCaps
;
113 D3DPRIMCAPS dpcLineCaps
;
114 D3DPRIMCAPS dpcTriCaps
;
115 DWORD dwDeviceRenderBitDepth
;
116 DWORD dwDeviceZBufferBitDepth
;
117 DWORD dwMaxBufferSize
;
118 DWORD dwMaxVertexCount
;
119 } D3DNTHALDEVICEDESC_V1
, *LPD3DNTHALDEVICEDESC_V1
;
121 typedef struct _D3DNTHAL_GLOBALDRIVERDATA
124 D3DNTHALDEVICEDESC_V1 hwCaps
;
126 DWORD dwNumClipVertices
;
127 DWORD dwNumTextureFormats
;
128 LPDDSURFACEDESC lpTextureFormats
;
129 } D3DNTHAL_GLOBALDRIVERDATA
, *LPD3DNTHAL_GLOBALDRIVERDATA
;
131 typedef struct _D3DNTHAL_CALLBACKS
134 LPD3DNTHAL_CONTEXTCREATECB ContextCreate
;
135 LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy
;
136 LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll
;
137 LPD3DNTHAL_SCENECAPTURECB SceneCapture
;
142 ULONG_PTR dwReserved
;
143 LPD3DNTHAL_TEXTURECREATECB TextureCreate
;
144 LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy
;
145 LPD3DNTHAL_TEXTURESWAPCB TextureSwap
;
146 LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf
;
158 ULONG_PTR dwReserved0
;
159 ULONG_PTR dwReserved1
;
160 ULONG_PTR dwReserved2
;
161 ULONG_PTR dwReserved3
;
162 ULONG_PTR dwReserved4
;
163 ULONG_PTR dwReserved5
;
164 ULONG_PTR dwReserved6
;
165 ULONG_PTR dwReserved7
;
166 ULONG_PTR dwReserved8
;
167 ULONG_PTR dwReserved9
;
168 } D3DNTHAL_CALLBACKS
, *LPD3DNTHAL_CALLBACKS
;
171 typedef struct _D3DNTHAL_SETRENDERTARGETDATA
173 ULONG_PTR dwhContext
;
174 PDD_SURFACE_LOCAL lpDDS
;
175 PDD_SURFACE_LOCAL lpDDSZ
;
177 } D3DNTHAL_SETRENDERTARGETDATA
;
178 typedef D3DNTHAL_SETRENDERTARGETDATA
*LPD3DNTHAL_SETRENDERTARGETDATA
;
180 typedef DWORD (APIENTRY
*LPD3DNTHAL_SETRENDERTARGETCB
)(LPD3DNTHAL_SETRENDERTARGETDATA
);
183 typedef struct _D3DNTHAL_CALLBACKS2
188 LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget
;
193 } D3DNTHAL_CALLBACKS2
, *LPD3DNTHAL_CALLBACKS2
;
196 typedef struct _D3DNTHAL_CLEAR2DATA
198 ULONG_PTR dwhContext
;
201 D3DVALUE dvFillDepth
;
206 } D3DNTHAL_CLEAR2DATA
;
207 typedef D3DNTHAL_CLEAR2DATA FAR
*LPD3DNTHAL_CLEAR2DATA
;
209 typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
211 ULONG_PTR dwhContext
;
213 ULONG_PTR dwReserved
;
216 } D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
, FAR
*LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
;
218 typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
220 ULONG_PTR dwhContext
;
223 PDD_SURFACE_LOCAL lpDDCommands
;
224 DWORD dwCommandOffset
;
225 DWORD dwCommandLength
;
228 PDD_SURFACE_LOCAL lpDDVertex
;
231 DWORD dwVertexOffset
;
232 DWORD dwVertexLength
;
233 DWORD dwReqVertexBufSize
;
234 DWORD dwReqCommandBufSize
;
242 } D3DNTHAL_DRAWPRIMITIVES2DATA
, FAR
*LPD3DNTHAL_DRAWPRIMITIVES2DATA
;
244 typedef DWORD (APIENTRY
*LPD3DNTHAL_CLEAR2CB
)(LPD3DNTHAL_CLEAR2DATA
);
245 typedef DWORD (APIENTRY
*LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB
)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
);
246 typedef DWORD (APIENTRY
*LPD3DNTHAL_DRAWPRIMITIVES2CB
)(LPD3DNTHAL_DRAWPRIMITIVES2DATA
);
248 typedef struct _D3DNTHAL_CALLBACKS3
253 LPD3DNTHAL_CLEAR2CB Clear2
;
255 LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState
;
256 LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2
;
257 } D3DNTHAL_CALLBACKS3
, *LPD3DNTHAL_CALLBACKS3
;
263 #endif /* __DDK_D3DNTHAL_H */