4 * Direct3D NT driver interface
7 * Created by Ge van Geldorp
9 * THIS SOFTWARE IS NOT COPYRIGHTED
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21 #ifndef __DDK_D3DNTHAL_H
22 #define __DDK_D3DNTHAL_H
32 DEFINE_GUID(GUID_D3DCallbacks
, 0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
33 DEFINE_GUID(GUID_D3DCallbacks3
, 0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
34 DEFINE_GUID(GUID_D3DExtendedCaps
, 0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
35 DEFINE_GUID(GUID_D3DParseUnknownCommandCallback
, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
36 DEFINE_GUID(GUID_ZPixelFormats
, 0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
37 DEFINE_GUID(GUID_DDStereoMode
, 0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
39 typedef struct _D3DNTHAL_CONTEXTCREATEDATA
{
40 __GNU_EXTENSION
union {
41 PDD_DIRECTDRAW_GLOBAL lpDDGbl
;
42 PDD_DIRECTDRAW_LOCAL lpDDLcl
;
44 __GNU_EXTENSION
union {
45 PDD_SURFACE_LOCAL lpDDS
;
46 PDD_SURFACE_LOCAL lpDDSLcl
;
48 __GNU_EXTENSION
union {
49 PDD_SURFACE_LOCAL lpDDSZ
;
50 PDD_SURFACE_LOCAL lpDDSZLcl
;
55 } D3DNTHAL_CONTEXTCREATEDATA
, *LPD3DNTHAL_CONTEXTCREATEDATA
;
57 typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
{
60 } D3DNTHAL_CONTEXTDESTROYDATA
, *LPD3DNTHAL_CONTEXTDESTROYDATA
;
62 typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
{
65 } D3DNTHAL_CONTEXTDESTROYALLDATA
, *LPD3DNTHAL_CONTEXTDESTROYALLDATA
;
67 typedef struct _D3DNTHAL_SCENECAPTUREDATA
{
71 } D3DNTHAL_SCENECAPTUREDATA
, *LPD3DNTHAL_SCENECAPTUREDATA
;
73 typedef struct _D3DNTHAL_TEXTURECREATEDATA
{
78 } D3DNTHAL_TEXTURECREATEDATA
, *LPD3DNTHAL_TEXTURECREATEDATA
;
80 typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
{
84 } D3DNTHAL_TEXTUREDESTROYDATA
, *LPD3DNTHAL_TEXTUREDESTROYDATA
;
86 typedef struct _D3DNTHAL_TEXTURESWAPDATA
{
91 } D3DNTHAL_TEXTURESWAPDATA
, *LPD3DNTHAL_TEXTURESWAPDATA
;
93 typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
{
98 } D3DNTHAL_TEXTUREGETSURFDATA
, *LPD3DNTHAL_TEXTUREGETSURFDATA
;
100 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTCREATECB
)(LPD3DNTHAL_CONTEXTCREATEDATA
);
101 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTDESTROYCB
)(LPD3DNTHAL_CONTEXTDESTROYDATA
);
102 typedef DWORD (APIENTRY
*LPD3DNTHAL_CONTEXTDESTROYALLCB
)(LPD3DNTHAL_CONTEXTDESTROYALLDATA
);
103 typedef DWORD (APIENTRY
*LPD3DNTHAL_SCENECAPTURECB
)(LPD3DNTHAL_SCENECAPTUREDATA
);
104 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTURECREATECB
)(LPD3DNTHAL_TEXTURECREATEDATA
);
105 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTUREDESTROYCB
)(LPD3DNTHAL_TEXTUREDESTROYDATA
);
106 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTURESWAPCB
)(LPD3DNTHAL_TEXTURESWAPDATA
);
107 typedef DWORD (APIENTRY
*LPD3DNTHAL_TEXTUREGETSURFCB
)(LPD3DNTHAL_TEXTUREGETSURFDATA
);
109 typedef struct _D3DNTHALDeviceDesc_V1
{
112 D3DCOLORMODEL dcmColorModel
;
114 D3DTRANSFORMCAPS dtcTransformCaps
;
116 D3DLIGHTINGCAPS dlcLightingCaps
;
117 D3DPRIMCAPS dpcLineCaps
;
118 D3DPRIMCAPS dpcTriCaps
;
119 DWORD dwDeviceRenderBitDepth
;
120 DWORD dwDeviceZBufferBitDepth
;
121 DWORD dwMaxBufferSize
;
122 DWORD dwMaxVertexCount
;
123 } D3DNTHALDEVICEDESC_V1
, *LPD3DNTHALDEVICEDESC_V1
;
125 typedef struct _D3DNTHAL_GLOBALDRIVERDATA
{
127 D3DNTHALDEVICEDESC_V1 hwCaps
;
129 DWORD dwNumClipVertices
;
130 DWORD dwNumTextureFormats
;
131 LPDDSURFACEDESC lpTextureFormats
;
132 } D3DNTHAL_GLOBALDRIVERDATA
, *LPD3DNTHAL_GLOBALDRIVERDATA
;
134 typedef struct _D3DNTHAL_CALLBACKS
{
136 LPD3DNTHAL_CONTEXTCREATECB ContextCreate
;
137 LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy
;
138 LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll
;
139 LPD3DNTHAL_SCENECAPTURECB SceneCapture
;
144 ULONG_PTR dwReserved
;
145 LPD3DNTHAL_TEXTURECREATECB TextureCreate
;
146 LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy
;
147 LPD3DNTHAL_TEXTURESWAPCB TextureSwap
;
148 LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf
;
160 ULONG_PTR dwReserved0
;
161 ULONG_PTR dwReserved1
;
162 ULONG_PTR dwReserved2
;
163 ULONG_PTR dwReserved3
;
164 ULONG_PTR dwReserved4
;
165 ULONG_PTR dwReserved5
;
166 ULONG_PTR dwReserved6
;
167 ULONG_PTR dwReserved7
;
168 ULONG_PTR dwReserved8
;
169 ULONG_PTR dwReserved9
;
170 } D3DNTHAL_CALLBACKS
, *LPD3DNTHAL_CALLBACKS
;
172 typedef struct _D3DNTHAL_SETRENDERTARGETDATA
{
173 ULONG_PTR dwhContext
;
174 PDD_SURFACE_LOCAL lpDDS
;
175 PDD_SURFACE_LOCAL lpDDSZ
;
177 } D3DNTHAL_SETRENDERTARGETDATA
, *LPD3DNTHAL_SETRENDERTARGETDATA
;
179 typedef DWORD (APIENTRY
*LPD3DNTHAL_SETRENDERTARGETCB
)(LPD3DNTHAL_SETRENDERTARGETDATA
);
181 typedef struct _D3DNTHAL_CALLBACKS2
{
184 LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget
;
189 } D3DNTHAL_CALLBACKS2
, *LPD3DNTHAL_CALLBACKS2
;
191 typedef struct _D3DNTHAL_CLEAR2DATA
{
192 ULONG_PTR dwhContext
;
195 D3DVALUE dvFillDepth
;
200 } D3DNTHAL_CLEAR2DATA
, FAR
*LPD3DNTHAL_CLEAR2DATA
;
202 typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
{
203 ULONG_PTR dwhContext
;
205 ULONG_PTR dwReserved
;
208 } D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
, FAR
*LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
;
210 typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
{
211 ULONG_PTR dwhContext
;
214 PDD_SURFACE_LOCAL lpDDCommands
;
215 DWORD dwCommandOffset
;
216 DWORD dwCommandLength
;
217 __GNU_EXTENSION
union {
218 PDD_SURFACE_LOCAL lpDDVertex
;
221 DWORD dwVertexOffset
;
222 DWORD dwVertexLength
;
223 DWORD dwReqVertexBufSize
;
224 DWORD dwReqCommandBufSize
;
226 __GNU_EXTENSION
union {
231 } D3DNTHAL_DRAWPRIMITIVES2DATA
, FAR
*LPD3DNTHAL_DRAWPRIMITIVES2DATA
;
233 typedef DWORD (APIENTRY
*LPD3DNTHAL_CLEAR2CB
)(LPD3DNTHAL_CLEAR2DATA
);
234 typedef DWORD (APIENTRY
*LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB
)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
);
235 typedef DWORD (APIENTRY
*LPD3DNTHAL_DRAWPRIMITIVES2CB
)(LPD3DNTHAL_DRAWPRIMITIVES2DATA
);
237 typedef struct _D3DNTHAL_CALLBACKS3
{
240 LPD3DNTHAL_CLEAR2CB Clear2
;
242 LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState
;
243 LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2
;
244 } D3DNTHAL_CALLBACKS3
, *LPD3DNTHAL_CALLBACKS3
;
250 #endif /* __DDK_D3DNTHAL_H */