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