blob: 6c68d4a03fd69b4913db411eb4c33c631011fab3 [file] [log] [blame]
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00001/*
2 * Direct3D driver interface
3 * (DirectX 7 version)
4 *
5 * Copyright (C) 2001 Ove Kaaven
6 *
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.
11 *
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.
16 *
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
Jonathan Ernst360a3f92006-05-18 14:49:52 +020019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Alexandre Julliard0799c1a2002-03-09 23:29:33 +000020 */
Ove Kaaven692cc5e2001-04-16 19:01:38 +000021
22#ifndef __WINE_D3DHAL_H
23#define __WINE_D3DHAL_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
Dimitrie O. Paun53f9c212003-08-28 21:43:34 +000029#include <d3d.h>
Ove Kaaven692cc5e2001-04-16 19:01:38 +000030
31/*****************************************************************************
32 * device info structures
33 */
34typedef 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;
49
50/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
51#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
52
53typedef struct _D3DHAL_GLOBALDRIVERDATA {
54 DWORD dwSize;
55 D3DDEVICEDESC_V1 hwCaps;
56 DWORD dwNumVertices;
57 DWORD dwNumClipVertices;
58 DWORD dwNumTextureFormats;
59 LPDDSURFACEDESC lpTextureFormats;
60} D3DHAL_GLOBALDRIVERDATA,*LPD3DHAL_GLOBALDRIVERDATA;
61
62typedef struct _D3DHAL_D3DEXTENDEDCAPS {
63 DWORD dwSize;
64 /* DirectX 5 */
65 DWORD dwMinTextureWidth, dwMaxTextureWidth;
66 DWORD dwMinTextureHeight, dwMaxTextureHeight;
67 DWORD dwMinStippleWidth, dwMaxStippleWidth;
68 DWORD dwMinStippleHeight, dwMaxStippleHeight;
69 /* DirectX 6 */
70 DWORD dwMaxTextureRepeat;
71 DWORD dwMaxTextureAspectRatio;
72 DWORD dwMaxAnisotropy;
73 D3DVALUE dvGuardBandLeft;
74 D3DVALUE dvGuardBandTop;
75 D3DVALUE dvGuardBandRight;
76 D3DVALUE dvGuardBandBottom;
77 D3DVALUE dvExtentsAdjust;
78 DWORD dwStencilCaps;
79 DWORD dwFVFCaps;
80 DWORD dwTextureOpCaps;
81 WORD wMaxTextureBlendStages;
82 WORD wMaxSimultaneousTextures;
83 /* DirectX 7 */
84 DWORD dwMaxActiveLights;
85 D3DVALUE dvMaxVertexW;
86 WORD wMaxUserClipPlanes;
87 WORD wMaxVertexBlendMatrices;
88 DWORD dwVertexProcessingCaps;
89 DWORD dwReserved1;
90 DWORD dwReserved2;
91 DWORD dwReserved3;
92 DWORD dwReserved4;
93} D3DHAL_D3DEXTENDEDCAPS,*LPD3DHAL_D3DEXTENDEDCAPS;
94
95/*****************************************************************************
96 * d3d->driver callbacks
97 */
98typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
99typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
100typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
101typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
102typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
103typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
104typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
105typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
106typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
107typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
108typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
109
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000110typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
111typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
112typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA);
113typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
114typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
115typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
116typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
117typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
118typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
119typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
120typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
Ove Kaaven692cc5e2001-04-16 19:01:38 +0000121
122typedef struct _D3DHAL_CALLBACKS {
123 DWORD dwSize;
124 LPD3DHAL_CONTEXTCREATECB ContextCreate;
125 LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
126 LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
127 LPD3DHAL_SCENECAPTURECB SceneCapture;
128 LPVOID lpReserved10;
129 LPVOID lpReserved11;
130 LPD3DHAL_RENDERSTATECB RenderState;
131 LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
132 DWORD dwReserved;
133 LPD3DHAL_TEXTURECREATECB TextureCreate;
134 LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
135 LPD3DHAL_TEXTURESWAPCB TextureSwap;
136 LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
137 /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
138 * all these reserved fields were available? we may never know */
139 LPVOID lpReserved12;
140 LPVOID lpReserved13;
141 LPVOID lpReserved14;
142 LPVOID lpReserved15;
143 LPVOID lpReserved16;
144 LPVOID lpReserved17;
145 LPVOID lpReserved18;
146 LPVOID lpReserved19;
147 LPVOID lpReserved20;
148 LPVOID lpReserved21;
149 LPD3DHAL_GETSTATECB GetState;
150 DWORD dwReserved0;
151 DWORD dwReserved1;
152 DWORD dwReserved2;
153 DWORD dwReserved3;
154 DWORD dwReserved4;
155 DWORD dwReserved5;
156 DWORD dwReserved6;
157 DWORD dwReserved7;
158 DWORD dwReserved8;
159 DWORD dwReserved9;
160} D3DHAL_CALLBACKS,*LPD3DHAL_CALLBACKS;
161
162typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
163typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
164typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
165typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
166typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
167
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000168typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA);
169typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA);
170typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA);
171typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA);
172typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA);
Ove Kaaven692cc5e2001-04-16 19:01:38 +0000173
174typedef struct _D3DHAL_CALLBACKS2 {
175 DWORD dwSize;
176 DWORD dwFlags;
177 LPD3DHAL_SETRENDERTARGETCB SetRenderTarget;
178 LPD3DHAL_CLEARCB Clear;
179 LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive;
180 LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive;
181 LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives;
182} D3DHAL_CALLBACKS2,*LPD3DHAL_CALLBACKS2;
183
184typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
185typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
186typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
187
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000188typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA);
189typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
190typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA);
Ove Kaaven692cc5e2001-04-16 19:01:38 +0000191
192typedef struct _D3DHAL_CALLBACKS3 {
193 DWORD dwSize;
194 DWORD dwFlags;
195 LPD3DHAL_CLEAR2CB Clear2;
196 LPVOID lpvReserved;
197 LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
198 LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
199} D3DHAL_CALLBACKS3,*LPD3DHAL_CALLBACKS3;
200
201/*****************************************************************************
202 * parameter structures
203 */
204typedef struct _D3DHAL_CONTEXTCREATEDATA {
205 union {
206 LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; /* pre-DirectX 7 */
207 LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; /* DirectX 7 */
208 } DUMMYUNIONNAME1;
209 union {
210 LPDIRECTDRAWSURFACE lpDDS;
211 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; /* DirectX 7 */
212 } DUMMYUNIONNAME2;
213 union {
214 LPDIRECTDRAWSURFACE lpDDSZ;
215 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl; /* DirectX 7 */
216 } DUMMYUNIONNAME3;
217 union {
218 DWORD dwPID;
219 ULONG_PTR dwrstates;
220 } DUMMYUNIONNAME4;
221 ULONG_PTR dwhContext;
222 HRESULT ddrval;
223} D3DHAL_CONTEXTCREATEDATA;
224
225typedef struct _D3DHAL_CONTEXTDESTROYDATA {
226 ULONG_PTR dwhContext;
227 HRESULT ddrval;
228} D3DHAL_CONTEXTDESTROYDATA;
229
230typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
231 DWORD dwPID;
232 HRESULT ddrval;
233} D3DHAL_CONTEXTDESTROYALLDATA;
234
235typedef struct _D3DHAL_SCENECAPTUREDATA {
236 ULONG_PTR dwhContext;
237 DWORD dwFlag;
238 HRESULT ddrval;
239} D3DHAL_SCENECAPTUREDATA;
240
241#define D3DHAL_SCENE_CAPTURE_START 0x00000000
242#define D3DHAL_SCENE_CAPTURE_END 0x00000001
243
244typedef struct _D3DHAL_SETRENDERTARGETDATA {
245 ULONG_PTR dwhContext;
246 union {
247 LPDIRECTDRAWSURFACE lpDDS;
248 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
249 } DUMMYUNIONNAME1;
250 union {
251 LPDIRECTDRAWSURFACE lpDDSZ;
252 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
253 } DUMMYUNIONNAME2;
254 HRESULT ddrval;
255} D3DHAL_SETRENDERTARGETDATA;
256
257typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
258 ULONG_PTR dwhContext;
259 DWORD dwFlags;
260 DWORD dwVertexType;
261 LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands;
262 DWORD dwCommandOffset;
263 DWORD dwCommandLength;
264 union {
265 LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex;
266 LPVOID lpVertices;
267 } DUMMYUNIONNAME1;
268 DWORD dwVertexOffset;
269 DWORD dwVertexLength;
270 DWORD dwReqVertexBufSize;
271 DWORD dwReqCommandBufSize;
272 LPDWORD lpdwRStates;
273 union {
274 DWORD dwVertexSize;
275 HRESULT ddrval;
276 } DUMMYUNIONNAME2;
277 DWORD dwErrorOffset;
278} D3DHAL_DRAWPRIMITIVES2DATA;
279
280#define D3DHALDP2_USERMEMVERTICES 0x00000001
281#define D3DHALDP2_EXECUTEBUFFER 0x00000002
282#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
283#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
284#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
285#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
286#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
287#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
288
289/*****************************************************************************
290 * DrawPrimitives2 command structures
291 */
292typedef struct _D3DHAL_DP2COMMAND {
293 BYTE bCommand;
294 BYTE bReserved;
295 union {
296 WORD wPrimitiveCount;
297 WORD wStateCount;
298 } DUMMYUNIONNAME;
299} D3DHAL_DP2COMMAND,*LPD3DHAL_DP2COMMAND;
300
301typedef enum _D3DHAL_DP2OPERATION {
302 D3DDP2OP_POINTS = 1,
303 D3DDP2OP_INDEXEDLINELIST = 2,
304 D3DDP2OP_INDEXEDTRIANGLELIST = 3,
Ove Kaaven692cc5e2001-04-16 19:01:38 +0000305 D3DDP2OP_RENDERSTATE = 8,
306 D3DDP2OP_LINELIST = 15,
307 D3DDP2OP_LINESTRIP = 16,
308 D3DDP2OP_INDEXEDLINESTRIP = 17,
309 D3DDP2OP_TRIANGLELIST = 18,
310 D3DDP2OP_TRIANGLESTRIP = 19,
311 D3DDP2OP_INDEXEDTRIANGLESTRIP = 20,
312 D3DDP2OP_TRIANGLEFAN = 21,
313 D3DDP2OP_INDEXEDTRIANGLEFAN = 22,
314 D3DDP2OP_TRIANGLEFAN_IMM = 23,
315 D3DDP2OP_LINELIST_IMM = 24,
316 D3DDP2OP_TEXTURESTAGESTATE = 25,
317 D3DDP2OP_INDEXEDTRIANGLELIST2 = 26,
318 D3DDP2OP_INDEXEDLINELIST2 = 27,
319 D3DDP2OP_VIEWPORTINFO = 28,
320 D3DDP2OP_WINFO = 29,
321 /* pre-DirectX 7 interfaces */
322 D3DDP2OP_SETPALETTE = 30,
323 D3DDP2OP_UPDATEPALETTE = 31,
324 /* DirectX 7 interfaces */
325 D3DDP2OP_ZRANGE = 32,
326 D3DDP2OP_SETMATERIAL = 33,
327 D3DDP2OP_SETLIGHT = 34,
328 D3DDP2OP_CREATELIGHT = 35,
329 D3DDP2OP_SETTRANSFORM = 36,
Ove Kaaven692cc5e2001-04-16 19:01:38 +0000330 D3DDP2OP_TEXBLT = 38,
331 D3DDP2OP_STATESET = 39,
332 D3DDP2OP_SETPRIORITY = 40,
333 /* all interfaces */
334 D3DDP2OP_SETRENDERTARGET = 41,
335 D3DDP2OP_CLEAR = 42,
336 /* DirectX 7 interfaces */
337 D3DDP2OP_SETTEXLOD = 43,
338 D3DPP2OP_SETCLIPPLANE = 44
339} D3DHAL_DP2OPERATION;
340
341/* point primitives */
342
343typedef struct _D3DHAL_POINTS {
344 WORD wCount;
345 WORD wVStart;
346} D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
347
348/* line primitives */
349
350typedef struct _D3DHAL_DP2STARTVERTEX {
351 WORD wVStart;
352} D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
353
354typedef struct _D3DHAL_DP2LINELIST {
355 WORD wVStart;
356} D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
357
358typedef struct _D3DHAL_DP2INDEXEDLINELIST {
359 WORD wV1;
360 WORD wV2;
361} D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
362
363typedef struct _D3DHAL_DP2LINESTRIP {
364 WORD wVStart;
365} D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
366
367typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
368 WORD wV[2];
369} D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
370
371/* triangle primitives */
372
373typedef struct _D3DHAL_DP2TRIANGLELIST {
374 WORD wVStart;
375} D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
376
377typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
378 WORD wV1;
379 WORD wV2;
380 WORD wV3;
381 WORD wFlags;
382} D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
383
384typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
385 WORD wV1;
386 WORD wV2;
387 WORD wV3;
388} D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
389
390typedef struct _D3DHAL_DP2TRIANGLESTRIP {
391 WORD wVStart;
392} D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
393
394typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
395 WORD wV[3];
396} D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
397
398typedef struct _D3DHAL_DP2TRIANGLEFAN {
399 WORD wVStart;
400} D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
401
402typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
403 WORD wV[3];
404} D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
405
406typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
407 DWORD dwEdgeFlags;
408} D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
409
410/* render states */
411typedef struct _D3DHAL_DP2RENDERSTATE {
412 D3DRENDERSTATETYPE RenderState;
413 union {
414 D3DVALUE dvState;
415 DWORD dwState;
416 } DUMMYUNIONNAME;
417} D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE;
418
419typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
420 WORD wStage;
421 WORD TSState;
422 DWORD dwValue;
423} D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
424
425#define D3DTSS_TEXTUREMAP 0
426
427typedef struct _D3DHAL_DP2VIEWPORTINFO {
428 DWORD dwX;
429 DWORD dwY;
430 DWORD dwWidth;
431 DWORD dwHeight;
432} D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
433
434typedef struct _D3DHAL_DP2WINFO {
435 D3DVALUE dwWNear;
436 D3DVALUE dwWFar;
437} D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
438
439typedef struct _D3DHAL_DP2SETPALETTE {
440 DWORD dwPaletteHandle;
441 DWORD dwPaletteFlags;
442 DWORD dwSurfaceHandle;
443} D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
444
445typedef struct _D3DHAL_DP2UPDATEPALETTE {
446 DWORD dwPaletteHandle;
447 WORD wStartIndex;
448 WORD wNumEntries;
449} D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
450
451typedef struct _D3DHAL_DP2ZRANGE {
452 D3DVALUE dvMinZ;
453 D3DVALUE dvMaxZ;
454} D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
455
456typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
457
458typedef struct _D3DHAL_DP2SETLIGHT {
459 DWORD dwIndex;
460 DWORD dwDataType;
461} D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
462
463#define D3DHAL_SETLIGHT_ENABLE 0
464#define D3DHAL_SETLIGHT_DISABLE 1
465#define D3DHAL_SETLIGHT_DATA 2
466
467typedef struct _D3DHAL_DP2CREATELIGHT {
468 DWORD dwIndex;
469} D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
470
471typedef struct _D3DHAL_DP2SETTRANSFORM {
472 D3DTRANSFORMSTATETYPE xfrmType;
473 D3DMATRIX matrix;
474} D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
475
476typedef struct _D3DHAL_DP2TEXBLT {
477 DWORD dwDDDestSurface;
478 DWORD dwDDSrcSurface;
479 POINT pDest;
480 RECTL rSrc;
481 DWORD dwFlags;
482} D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT;
483
484typedef struct _D3DHAL_DP2STATESET {
485 DWORD dwOperation;
486 DWORD dwParam;
487 D3DSTATEBLOCKTYPE sbType;
488} D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
489
490#define D3DHAL_STATESETBEGIN 0
491#define D3DHAL_STATESETEND 1
492#define D3DHAL_STATESETDELETE 2
493#define D3DHAL_STATESETEXECUTE 3
494#define D3DHAL_STATESETCAPTURE 4
495
496typedef struct _D3DHAL_DP2SETPRIORITY {
497 DWORD dwDDSurface;
498 DWORD dwPriority;
499} D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
500
501typedef struct _D3DHAL_DP2SETRENDERTARGET {
502 DWORD hRenderTarget;
503 DWORD hZBuffer;
504} D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
505
506typedef struct _D3DHAL_DP2CLEAR {
507 DWORD dwFlags;
508 DWORD dwFillColor;
509 D3DVALUE dvFillDepth;
510 DWORD dwFillStencil;
511 RECT Rects[1];
512} D3DHAL_DP2CLEAR,*LPD3DHAL_DP2CLEAR;
513
514typedef struct _D3DHAL_DP2SETTEXLOD {
515 DWORD dwDDSurface;
516 DWORD dwLOD;
517} D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
518
519#ifdef __cplusplus
520} /* extern "C" */
521#endif
522
Jacek Caban5cbc4e82010-11-05 13:38:45 +0100523#endif /* __WINE_D3DHAL_H */