Implemented OleCreatePropertyFrame and
[wine] / include / d3dhal.h
1 /* Direct3D driver interface */
2 /* (DirectX 7 version) */
3
4 #ifndef __WINE_D3DHAL_H
5 #define __WINE_D3DHAL_H
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #include "d3d.h"
12
13 /*****************************************************************************
14  * device info structures
15  */
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;
31
32 /* this is to allow keeping the bulk of our OpenGL code out of x11drv */
33 #define D3DDD_WINE_OPENGL_DEVICE 0x00008000
34
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;
43
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;
76
77 /*****************************************************************************
78  * d3d->driver callbacks
79  */
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;
91
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);
103
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;
143
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;
149
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);
155
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;
165
166 typedef struct _D3DHAL_CLEAR2DATA                       *LPD3DHAL_CLEAR2DATA;
167 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA    *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA;
168 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA              *LPD3DHAL_DRAWPRIMITIVES2DATA;
169
170 typedef DWORD PASCAL (*LPD3DHAL_CLEAR2CB)                 (LPD3DHAL_CLEAR2DATA);
171 typedef DWORD PASCAL (*LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
172 typedef DWORD PASCAL (*LPD3DHAL_DRAWPRIMITIVES2CB)        (LPD3DHAL_DRAWPRIMITIVES2DATA);
173
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;
182
183 /*****************************************************************************
184  * parameter structures
185  */
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;
206
207 typedef struct _D3DHAL_CONTEXTDESTROYDATA {
208   ULONG_PTR                     dwhContext;
209   HRESULT                       ddrval;
210 } D3DHAL_CONTEXTDESTROYDATA;
211
212 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
213   DWORD                         dwPID;
214   HRESULT                       ddrval;
215 } D3DHAL_CONTEXTDESTROYALLDATA;
216
217 typedef struct _D3DHAL_SCENECAPTUREDATA {
218   ULONG_PTR                     dwhContext;
219   DWORD                         dwFlag;
220   HRESULT                       ddrval;
221 } D3DHAL_SCENECAPTUREDATA;
222
223 #define D3DHAL_SCENE_CAPTURE_START      0x00000000
224 #define D3DHAL_SCENE_CAPTURE_END        0x00000001
225
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;
238
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;
261
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
270
271 /*****************************************************************************
272  * DrawPrimitives2 command structures
273  */
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;
282
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;
324
325 /* point primitives */
326
327 typedef struct _D3DHAL_POINTS {
328   WORD wCount;
329   WORD wVStart;
330 } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS;
331
332 /* line primitives */
333
334 typedef struct _D3DHAL_DP2STARTVERTEX {
335   WORD wVStart;
336 } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX;
337
338 typedef struct _D3DHAL_DP2LINELIST {
339   WORD wVStart;
340 } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST;
341
342 typedef struct _D3DHAL_DP2INDEXEDLINELIST {
343   WORD wV1;
344   WORD wV2;
345 } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST;
346
347 typedef struct _D3DHAL_DP2LINESTRIP {
348   WORD wVStart;
349 } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP;
350
351 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
352   WORD wV[2];
353 } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP;
354
355 /* triangle primitives */
356
357 typedef struct _D3DHAL_DP2TRIANGLELIST {
358   WORD wVStart;
359 } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST;
360
361 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
362   WORD wV1;
363   WORD wV2;
364   WORD wV3;
365   WORD wFlags;
366 } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST;
367
368 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
369   WORD wV1;
370   WORD wV2;
371   WORD wV3;
372 } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2;
373
374 typedef struct _D3DHAL_DP2TRIANGLESTRIP {
375   WORD wVStart;
376 } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP;
377
378 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
379   WORD wV[3];
380 } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
381
382 typedef struct _D3DHAL_DP2TRIANGLEFAN {
383   WORD wVStart;
384 } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN;
385
386 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
387   WORD wV[3];
388 } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN;
389
390 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
391   DWORD dwEdgeFlags;
392 } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM;
393
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;
402
403 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
404   WORD  wStage;
405   WORD  TSState;
406   DWORD dwValue;
407 } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE;
408
409 #define D3DTSS_TEXTUREMAP 0
410
411 typedef struct _D3DHAL_DP2VIEWPORTINFO {
412   DWORD dwX;
413   DWORD dwY;
414   DWORD dwWidth;
415   DWORD dwHeight;
416 } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO;
417
418 typedef struct _D3DHAL_DP2WINFO {
419   D3DVALUE dwWNear;
420   D3DVALUE dwWFar;
421 } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO;
422
423 typedef struct _D3DHAL_DP2SETPALETTE {
424   DWORD dwPaletteHandle;
425   DWORD dwPaletteFlags;
426   DWORD dwSurfaceHandle;
427 } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE;
428
429 typedef struct _D3DHAL_DP2UPDATEPALETTE {
430   DWORD dwPaletteHandle;
431   WORD  wStartIndex;
432   WORD  wNumEntries;
433 } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE;
434
435 typedef struct _D3DHAL_DP2ZRANGE {
436   D3DVALUE dvMinZ;
437   D3DVALUE dvMaxZ;
438 } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE;
439
440 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL;
441
442 typedef struct _D3DHAL_DP2SETLIGHT {
443   DWORD dwIndex;
444   DWORD dwDataType;
445 } D3DHAL_DP2SETLIGHT,*LPD3DHAL_DP2SETLIGHT;
446
447 #define D3DHAL_SETLIGHT_ENABLE  0
448 #define D3DHAL_SETLIGHT_DISABLE 1
449 #define D3DHAL_SETLIGHT_DATA    2
450
451 typedef struct _D3DHAL_DP2CREATELIGHT {
452   DWORD dwIndex;
453 } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT;
454
455 typedef struct _D3DHAL_DP2SETTRANSFORM {
456   D3DTRANSFORMSTATETYPE xfrmType;
457   D3DMATRIX             matrix;
458 } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM;
459
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;
467
468 typedef struct _D3DHAL_DP2STATESET {
469   DWORD               dwOperation;
470   DWORD               dwParam;
471   D3DSTATEBLOCKTYPE   sbType;
472 } D3DHAL_DP2STATESET,*LPD3DHAL_DP2STATESET;
473
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
479
480 typedef struct _D3DHAL_DP2SETPRIORITY {
481   DWORD dwDDSurface;
482   DWORD dwPriority;
483 } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY;
484
485 typedef struct _D3DHAL_DP2SETRENDERTARGET {
486   DWORD hRenderTarget;
487   DWORD hZBuffer;
488 } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET;
489
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;
497
498 typedef struct _D3DHAL_DP2SETTEXLOD {
499   DWORD dwDDSurface;
500   DWORD dwLOD;
501 } D3DHAL_DP2SETTEXLOD,*LPD3DHAL_DP2SETTEXLOD;
502
503 #ifdef __cplusplus
504 } /* extern "C" */
505 #endif
506
507 #endif /* __WINE_DDRAWI_H */