windowscodecs/tests: Fix a memory leak (Valgrind).
[wine.git] / include / d3dhal.h
blob409cbfdf83bb65ec7b0c081bc422a36931355dd8
1 /*
2 * Direct3D driver interface
3 * (DirectX 7 version)
5 * Copyright (C) 2001 Ove Kaaven
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef __WINE_D3DHAL_H
23 #define __WINE_D3DHAL_H
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
29 #include <d3d.h>
31 /*****************************************************************************
32 * device info structures
34 typedef struct _D3DDeviceDesc_V1 {
35 DWORD dwSize;
36 DWORD dwFlags;
37 D3DCOLORMODEL dcmColorModel;
38 DWORD dwDevCaps;
39 D3DTRANSFORMCAPS dtcTransformCaps;
40 BOOL bClipping;
41 D3DLIGHTINGCAPS dlcLightingCaps;
42 D3DPRIMCAPS dpcLineCaps;
43 D3DPRIMCAPS dpcTriCaps;
44 DWORD dwDeviceRenderBitDepth;
45 DWORD dwDeviceZBufferBitDepth;
46 DWORD dwMaxBufferSize;
47 DWORD dwMaxVertexCount;
48 } D3DDEVICEDESC_V1,*LPD3DDEVICEDESC_V1;
50 typedef struct _D3DDeviceDesc_V2
52 DWORD dwSize;
53 DWORD dwFlags;
54 D3DCOLORMODEL dcmColorModel;
55 DWORD dwDevCaps;
56 D3DTRANSFORMCAPS dtcTransformCaps;
57 BOOL bClipping;
58 D3DLIGHTINGCAPS dlcLightingCaps;
59 D3DPRIMCAPS dpcLineCaps;
60 D3DPRIMCAPS dpcTriCaps;
61 DWORD dwDeviceRenderBitDepth;
62 DWORD dwDeviceZBufferBitDepth;
63 DWORD dwMaxBufferSize;
64 DWORD dwMaxVertexCount;
66 /* DirectX 5 */
67 DWORD dwMinTextureWidth;
68 DWORD dwMinTextureHeight;
69 DWORD dwMaxTextureWidth;
70 DWORD dwMaxTextureHeight;
71 DWORD dwMinStippleWidth;
72 DWORD dwMaxStippleWidth;
73 DWORD dwMinStippleHeight;
74 DWORD dwMaxStippleHeight;
75 } D3DDEVICEDESC_V2, *LPD3DDEVICEDESC_V2;
77 typedef struct _D3DDeviceDesc_V3
79 DWORD dwSize;
80 DWORD dwFlags;
81 D3DCOLORMODEL dcmColorModel;
82 DWORD dwDevCaps;
83 D3DTRANSFORMCAPS dtcTransformCaps;
84 BOOL bClipping;
85 D3DLIGHTINGCAPS dlcLightingCaps;
86 D3DPRIMCAPS dpcLineCaps;
87 D3DPRIMCAPS dpcTriCaps;
88 DWORD dwDeviceRenderBitDepth;
89 DWORD dwDeviceZBufferBitDepth;
90 DWORD dwMaxBufferSize;
91 DWORD dwMaxVertexCount;
93 /* DirectX 5 */
94 DWORD dwMinTextureWidth;
95 DWORD dwMinTextureHeight;
96 DWORD dwMaxTextureWidth;
97 DWORD dwMaxTextureHeight;
98 DWORD dwMinStippleWidth;
99 DWORD dwMaxStippleWidth;
100 DWORD dwMinStippleHeight;
101 DWORD dwMaxStippleHeight;
103 /* DirectX 6 */
104 DWORD dwMaxTextureRepeat;
105 DWORD dwMaxTextureAspectRatio;
106 DWORD dwMaxAnisotropy;
107 D3DVALUE dvGuardBandLeft;
108 D3DVALUE dvGuardBandTop;
109 D3DVALUE dvGuardBandRight;
110 D3DVALUE dvGuardBandBottom;
111 D3DVALUE dvExtentsAdjust;
112 DWORD dwStencilCaps;
113 DWORD dwFVFCaps;
114 DWORD dwTextureOpCaps;
115 WORD wMaxTextureBlendStages;
116 WORD wMaxSimultaneousTextures;
117 } D3DDEVICEDESC_V3, *LPD3DDEVICEDESC_V3;
119 typedef struct _D3DHAL_GLOBALDRIVERDATA {
120 DWORD dwSize;
121 D3DDEVICEDESC_V1 hwCaps;
122 DWORD dwNumVertices;
123 DWORD dwNumClipVertices;
124 DWORD dwNumTextureFormats;
125 LPDDSURFACEDESC lpTextureFormats;
126 } D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
128 typedef struct _D3DHAL_D3DEXTENDEDCAPS {
129 DWORD dwSize;
130 /* DirectX 5 */
131 DWORD dwMinTextureWidth, dwMaxTextureWidth;
132 DWORD dwMinTextureHeight, dwMaxTextureHeight;
133 DWORD dwMinStippleWidth, dwMaxStippleWidth;
134 DWORD dwMinStippleHeight, dwMaxStippleHeight;
135 /* DirectX 6 */
136 DWORD dwMaxTextureRepeat;
137 DWORD dwMaxTextureAspectRatio;
138 DWORD dwMaxAnisotropy;
139 D3DVALUE dvGuardBandLeft;
140 D3DVALUE dvGuardBandTop;
141 D3DVALUE dvGuardBandRight;
142 D3DVALUE dvGuardBandBottom;
143 D3DVALUE dvExtentsAdjust;
144 DWORD dwStencilCaps;
145 DWORD dwFVFCaps;
146 DWORD dwTextureOpCaps;
147 WORD wMaxTextureBlendStages;
148 WORD wMaxSimultaneousTextures;
149 /* DirectX 7 */
150 DWORD dwMaxActiveLights;
151 D3DVALUE dvMaxVertexW;
152 WORD wMaxUserClipPlanes;
153 WORD wMaxVertexBlendMatrices;
154 DWORD dwVertexProcessingCaps;
155 DWORD dwReserved1;
156 DWORD dwReserved2;
157 DWORD dwReserved3;
158 DWORD dwReserved4;
159 } D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
161 /*****************************************************************************
162 * d3d->driver callbacks
164 typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
165 typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
166 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
167 typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
168 typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
169 typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
170 typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
171 typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
172 typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
173 typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
174 typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
176 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
177 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
178 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
179 typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
180 typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
181 typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
182 typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
183 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
184 typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
185 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
186 typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
188 typedef struct _D3DHAL_CALLBACKS {
189 DWORD dwSize;
190 LPD3DHAL_CONTEXTCREATECB ContextCreate;
191 LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
192 LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
193 LPD3DHAL_SCENECAPTURECB SceneCapture;
194 LPVOID lpReserved10;
195 LPVOID lpReserved11;
196 LPD3DHAL_RENDERSTATECB RenderState;
197 LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
198 DWORD dwReserved;
199 LPD3DHAL_TEXTURECREATECB TextureCreate;
200 LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
201 LPD3DHAL_TEXTURESWAPCB TextureSwap;
202 LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
203 /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
204 * all these reserved fields were available? we may never know */
205 LPVOID lpReserved12;
206 LPVOID lpReserved13;
207 LPVOID lpReserved14;
208 LPVOID lpReserved15;
209 LPVOID lpReserved16;
210 LPVOID lpReserved17;
211 LPVOID lpReserved18;
212 LPVOID lpReserved19;
213 LPVOID lpReserved20;
214 LPVOID lpReserved21;
215 LPD3DHAL_GETSTATECB GetState;
216 DWORD dwReserved0;
217 DWORD dwReserved1;
218 DWORD dwReserved2;
219 DWORD dwReserved3;
220 DWORD dwReserved4;
221 DWORD dwReserved5;
222 DWORD dwReserved6;
223 DWORD dwReserved7;
224 DWORD dwReserved8;
225 DWORD dwReserved9;
226 } D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
228 typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
229 typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
230 typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
231 typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
232 typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
234 typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
235 typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
236 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
237 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
238 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
240 typedef struct _D3DHAL_CALLBACKS2 {
241 DWORD dwSize;
242 DWORD dwFlags;
243 LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
244 LPD3DHAL_CLEARCB Clear;
245 LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
246 LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
247 LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
248 } D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
250 typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
251 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
252 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
254 typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
255 typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
256 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
258 typedef struct _D3DHAL_CALLBACKS3 {
259 DWORD dwSize;
260 DWORD dwFlags;
261 LPD3DHAL_CLEAR2CB Clear2;
262 LPVOID lpvReserved;
263 LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
264 LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
265 } D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
267 /*****************************************************************************
268 * parameter structures
270 typedef struct _D3DHAL_CONTEXTCREATEDATA {
271 union {
272 LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
273 LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
274 } DUMMYUNIONNAME1;
275 union {
276 LPDIRECTDRAWSURFACE lpDDS;
277 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
278 } DUMMYUNIONNAME2;
279 union {
280 LPDIRECTDRAWSURFACE lpDDSZ;
281 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
282 } DUMMYUNIONNAME3;
283 union {
284 DWORD dwPID;
285 ULONG_PTR dwrstates;
286 } DUMMYUNIONNAME4;
287 ULONG_PTR dwhContext;
288 HRESULT ddrval;
289 } D3DHAL_CONTEXTCREATEDATA;
291 typedef struct _D3DHAL_CONTEXTDESTROYDATA {
292 ULONG_PTR dwhContext;
293 HRESULT ddrval;
294 } D3DHAL_CONTEXTDESTROYDATA;
296 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
297 DWORD dwPID;
298 HRESULT ddrval;
299 } D3DHAL_CONTEXTDESTROYALLDATA;
301 typedef struct _D3DHAL_SCENECAPTUREDATA {
302 ULONG_PTR dwhContext;
303 DWORD dwFlag;
304 HRESULT ddrval;
305 } D3DHAL_SCENECAPTUREDATA;
307 #define D3DHAL_SCENE_CAPTURE_START 0x00000000
308 #define D3DHAL_SCENE_CAPTURE_END 0x00000001
310 typedef struct _D3DHAL_SETRENDERTARGETDATA {
311 ULONG_PTR dwhContext;
312 union {
313 LPDIRECTDRAWSURFACE lpDDS;
314 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
315 } DUMMYUNIONNAME1;
316 union {
317 LPDIRECTDRAWSURFACE lpDDSZ;
318 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
319 } DUMMYUNIONNAME2;
320 HRESULT ddrval;
321 } D3DHAL_SETRENDERTARGETDATA;
323 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
324 ULONG_PTR dwhContext;
325 DWORD dwFlags;
326 DWORD dwVertexType;
327 LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
328 DWORD dwCommandOffset;
329 DWORD dwCommandLength;
330 union {
331 LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
332 LPVOID lpVertices;
333 } DUMMYUNIONNAME1;
334 DWORD dwVertexOffset;
335 DWORD dwVertexLength;
336 DWORD dwReqVertexBufSize;
337 DWORD dwReqCommandBufSize;
338 LPDWORD lpdwRStates;
339 union {
340 DWORD dwVertexSize;
341 HRESULT ddrval;
342 } DUMMYUNIONNAME2;
343 DWORD dwErrorOffset;
344 } D3DHAL_DRAWPRIMITIVES2DATA;
346 #define D3DHALDP2_USERMEMVERTICES 0x00000001
347 #define D3DHALDP2_EXECUTEBUFFER 0x00000002
348 #define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
349 #define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
350 #define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
351 #define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
352 #define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
353 #define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
355 /*****************************************************************************
356 * DrawPrimitives2 command structures
358 typedef struct _D3DHAL_DP2COMMAND {
359 BYTE bCommand;
360 BYTE bReserved;
361 union {
362 WORD wPrimitiveCount;
363 WORD wStateCount;
364 } DUMMYUNIONNAME;
365 } D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
367 typedef enum _D3DHAL_DP2OPERATION {
368 D3DDP2OP_POINTS = 1,
369 D3DDP2OP_INDEXEDLINELIST = 2,
370 D3DDP2OP_INDEXEDTRIANGLELIST = 3,
371 D3DDP2OP_RENDERSTATE = 8,
372 D3DDP2OP_LINELIST = 15,
373 D3DDP2OP_LINESTRIP = 16,
374 D3DDP2OP_INDEXEDLINESTRIP = 17,
375 D3DDP2OP_TRIANGLELIST = 18,
376 D3DDP2OP_TRIANGLESTRIP = 19,
377 D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
378 D3DDP2OP_TRIANGLEFAN = 21,
379 D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
380 D3DDP2OP_TRIANGLEFAN_IMM = 23,
381 D3DDP2OP_LINELIST_IMM = 24,
382 D3DDP2OP_TEXTURESTAGESTATE = 25,
383 D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
384 D3DDP2OP_INDEXEDLINELIST2 = 27,
385 D3DDP2OP_VIEWPORTINFO = 28,
386 D3DDP2OP_WINFO = 29,
387 /* pre-DirectX 7 interfaces */
388 D3DDP2OP_SETPALETTE = 30,
389 D3DDP2OP_UPDATEPALETTE = 31,
390 /* DirectX 7 interfaces */
391 D3DDP2OP_ZRANGE = 32,
392 D3DDP2OP_SETMATERIAL = 33,
393 D3DDP2OP_SETLIGHT = 34,
394 D3DDP2OP_CREATELIGHT = 35,
395 D3DDP2OP_SETTRANSFORM = 36,
396 D3DDP2OP_TEXBLT = 38,
397 D3DDP2OP_STATESET = 39,
398 D3DDP2OP_SETPRIORITY = 40,
399 /* all interfaces */
400 D3DDP2OP_SETRENDERTARGET = 41,
401 D3DDP2OP_CLEAR = 42,
402 /* DirectX 7 interfaces */
403 D3DDP2OP_SETTEXLOD = 43,
404 D3DPP2OP_SETCLIPPLANE = 44
405 } D3DHAL_DP2OPERATION;
407 /* point primitives */
409 typedef struct _D3DHAL_POINTS {
410 WORD wCount;
411 WORD wVStart;
412 } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
414 /* line primitives */
416 typedef struct _D3DHAL_DP2STARTVERTEX {
417 WORD wVStart;
418 } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
420 typedef struct _D3DHAL_DP2LINELIST {
421 WORD wVStart;
422 } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
424 typedef struct _D3DHAL_DP2INDEXEDLINELIST {
425 WORD wV1;
426 WORD wV2;
427 } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
429 typedef struct _D3DHAL_DP2LINESTRIP {
430 WORD wVStart;
431 } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
433 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
434 WORD wV[2];
435 } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
437 /* triangle primitives */
439 typedef struct _D3DHAL_DP2TRIANGLELIST {
440 WORD wVStart;
441 } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
443 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
444 WORD wV1;
445 WORD wV2;
446 WORD wV3;
447 WORD wFlags;
448 } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
450 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
451 WORD wV1;
452 WORD wV2;
453 WORD wV3;
454 } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
456 typedef struct _D3DHAL_DP2TRIANGLESTRIP {
457 WORD wVStart;
458 } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
460 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
461 WORD wV[3];
462 } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
464 typedef struct _D3DHAL_DP2TRIANGLEFAN {
465 WORD wVStart;
466 } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
468 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
469 WORD wV[3];
470 } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
472 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
473 DWORD dwEdgeFlags;
474 } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
476 /* render states */
477 typedef struct _D3DHAL_DP2RENDERSTATE {
478 D3DRENDERSTATETYPE RenderState;
479 union {
480 D3DVALUE dvState;
481 DWORD dwState;
482 } DUMMYUNIONNAME;
483 } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
485 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
486 WORD wStage;
487 WORD TSState;
488 DWORD dwValue;
489 } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
491 #define D3DTSS_TEXTUREMAP 0
493 typedef struct _D3DHAL_DP2VIEWPORTINFO {
494 DWORD dwX;
495 DWORD dwY;
496 DWORD dwWidth;
497 DWORD dwHeight;
498 } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
500 typedef struct _D3DHAL_DP2WINFO {
501 D3DVALUE dwWNear;
502 D3DVALUE dwWFar;
503 } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
505 typedef struct _D3DHAL_DP2SETPALETTE {
506 DWORD dwPaletteHandle;
507 DWORD dwPaletteFlags;
508 DWORD dwSurfaceHandle;
509 } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
511 typedef struct _D3DHAL_DP2UPDATEPALETTE {
512 DWORD dwPaletteHandle;
513 WORD wStartIndex;
514 WORD wNumEntries;
515 } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
517 typedef struct _D3DHAL_DP2ZRANGE {
518 D3DVALUE dvMinZ;
519 D3DVALUE dvMaxZ;
520 } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
522 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
524 typedef struct _D3DHAL_DP2SETLIGHT {
525 DWORD dwIndex;
526 DWORD dwDataType;
527 } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
529 #define D3DHAL_SETLIGHT_ENABLE 0
530 #define D3DHAL_SETLIGHT_DISABLE 1
531 #define D3DHAL_SETLIGHT_DATA 2
533 typedef struct _D3DHAL_DP2CREATELIGHT {
534 DWORD dwIndex;
535 } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
537 typedef struct _D3DHAL_DP2SETTRANSFORM {
538 D3DTRANSFORMSTATETYPE xfrmType;
539 D3DMATRIX matrix;
540 } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
542 typedef struct _D3DHAL_DP2TEXBLT {
543 DWORD dwDDDestSurface;
544 DWORD dwDDSrcSurface;
545 POINT pDest;
546 RECTL rSrc;
547 DWORD dwFlags;
548 } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
550 typedef struct _D3DHAL_DP2STATESET {
551 DWORD dwOperation;
552 DWORD dwParam;
553 D3DSTATEBLOCKTYPE sbType;
554 } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
556 #define D3DHAL_STATESETBEGIN 0
557 #define D3DHAL_STATESETEND 1
558 #define D3DHAL_STATESETDELETE 2
559 #define D3DHAL_STATESETEXECUTE 3
560 #define D3DHAL_STATESETCAPTURE 4
562 typedef struct _D3DHAL_DP2SETPRIORITY {
563 DWORD dwDDSurface;
564 DWORD dwPriority;
565 } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
567 typedef struct _D3DHAL_DP2SETRENDERTARGET {
568 DWORD hRenderTarget;
569 DWORD hZBuffer;
570 } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
572 typedef struct _D3DHAL_DP2CLEAR {
573 DWORD dwFlags;
574 DWORD dwFillColor;
575 D3DVALUE dvFillDepth;
576 DWORD dwFillStencil;
577 RECT Rects[1];
578 } D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
580 typedef struct _D3DHAL_DP2SETTEXLOD {
581 DWORD dwDDSurface;
582 DWORD dwLOD;
583 } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
585 #ifdef __cplusplus
586 } /* extern "C" */
587 #endif
589 #endif /* __WINE_D3DHAL_H */