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