2 * Direct3D driver interface
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31 #define D3DERR_COMMAND_UNPARSED 0x88760BB8;
33 /*****************************************************************************
34 * device info structures
36 typedef struct _D3DDeviceDesc_V1
{
39 D3DCOLORMODEL dcmColorModel
;
41 D3DTRANSFORMCAPS dtcTransformCaps
;
43 D3DLIGHTINGCAPS dlcLightingCaps
;
44 D3DPRIMCAPS dpcLineCaps
;
45 D3DPRIMCAPS dpcTriCaps
;
46 DWORD dwDeviceRenderBitDepth
;
47 DWORD dwDeviceZBufferBitDepth
;
48 DWORD dwMaxBufferSize
;
49 DWORD dwMaxVertexCount
;
50 } D3DDEVICEDESC_V1
,*LPD3DDEVICEDESC_V1
;
52 /* this is to allow keeping the bulk of our OpenGL code out of x11drv */
53 #define D3DDD_WINE_OPENGL_DEVICE 0x00008000
55 typedef struct _D3DHAL_GLOBALDRIVERDATA
{
57 D3DDEVICEDESC_V1 hwCaps
;
59 DWORD dwNumClipVertices
;
60 DWORD dwNumTextureFormats
;
61 LPDDSURFACEDESC lpTextureFormats
;
62 } D3DHAL_GLOBALDRIVERDATA
,*LPD3DHAL_GLOBALDRIVERDATA
;
64 typedef struct _D3DHAL_D3DEXTENDEDCAPS
{
67 DWORD dwMinTextureWidth
, dwMaxTextureWidth
;
68 DWORD dwMinTextureHeight
, dwMaxTextureHeight
;
69 DWORD dwMinStippleWidth
, dwMaxStippleWidth
;
70 DWORD dwMinStippleHeight
, dwMaxStippleHeight
;
72 DWORD dwMaxTextureRepeat
;
73 DWORD dwMaxTextureAspectRatio
;
74 DWORD dwMaxAnisotropy
;
75 D3DVALUE dvGuardBandLeft
;
76 D3DVALUE dvGuardBandTop
;
77 D3DVALUE dvGuardBandRight
;
78 D3DVALUE dvGuardBandBottom
;
79 D3DVALUE dvExtentsAdjust
;
82 DWORD dwTextureOpCaps
;
83 WORD wMaxTextureBlendStages
;
84 WORD wMaxSimultaneousTextures
;
86 DWORD dwMaxActiveLights
;
87 D3DVALUE dvMaxVertexW
;
88 WORD wMaxUserClipPlanes
;
89 WORD wMaxVertexBlendMatrices
;
90 DWORD dwVertexProcessingCaps
;
95 } D3DHAL_D3DEXTENDEDCAPS
,*LPD3DHAL_D3DEXTENDEDCAPS
;
97 /*****************************************************************************
98 * d3d->driver callbacks
100 typedef struct _D3DHAL_CONTEXTCREATEDATA
*LPD3DHAL_CONTEXTCREATEDATA
;
101 typedef struct _D3DHAL_CONTEXTDESTROYDATA
*LPD3DHAL_CONTEXTDESTROYDATA
;
102 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA
*LPD3DHAL_CONTEXTDESTROYALLDATA
;
103 typedef struct _D3DHAL_SCENECAPTUREDATA
*LPD3DHAL_SCENECAPTUREDATA
;
104 typedef struct _D3DHAL_RENDERSTATEDATA
*LPD3DHAL_RENDERSTATEDATA
;
105 typedef struct _D3DHAL_RENDERPRIMITIVEDATA
*LPD3DHAL_RENDERPRIMITIVEDATA
;
106 typedef struct _D3DHAL_TEXTURECREATEDATA
*LPD3DHAL_TEXTURECREATEDATA
;
107 typedef struct _D3DHAL_TEXTUREDESTROYDATA
*LPD3DHAL_TEXTUREDESTROYDATA
;
108 typedef struct _D3DHAL_TEXTURESWAPDATA
*LPD3DHAL_TEXTURESWAPDATA
;
109 typedef struct _D3DHAL_TEXTUREGETSURFDATA
*LPD3DHAL_TEXTUREGETSURFDATA
;
110 typedef struct _D3DHAL_GETSTATEDATA
*LPD3DHAL_GETSTATEDATA
;
112 typedef DWORD (PASCAL
*LPD3DHAL_CONTEXTCREATECB
) (LPD3DHAL_CONTEXTCREATEDATA
);
113 typedef DWORD (PASCAL
*LPD3DHAL_CONTEXTDESTROYCB
) (LPD3DHAL_CONTEXTDESTROYDATA
);
114 typedef DWORD (PASCAL
*LPD3DHAL_CONTEXTDESTROYALLCB
)(LPD3DHAL_CONTEXTDESTROYALLDATA
);
115 typedef DWORD (PASCAL
*LPD3DHAL_SCENECAPTURECB
) (LPD3DHAL_SCENECAPTUREDATA
);
116 typedef DWORD (PASCAL
*LPD3DHAL_RENDERSTATECB
) (LPD3DHAL_RENDERSTATEDATA
);
117 typedef DWORD (PASCAL
*LPD3DHAL_RENDERPRIMITIVECB
) (LPD3DHAL_RENDERPRIMITIVEDATA
);
118 typedef DWORD (PASCAL
*LPD3DHAL_TEXTURECREATECB
) (LPD3DHAL_TEXTURECREATEDATA
);
119 typedef DWORD (PASCAL
*LPD3DHAL_TEXTUREDESTROYCB
) (LPD3DHAL_TEXTUREDESTROYDATA
);
120 typedef DWORD (PASCAL
*LPD3DHAL_TEXTURESWAPCB
) (LPD3DHAL_TEXTURESWAPDATA
);
121 typedef DWORD (PASCAL
*LPD3DHAL_TEXTUREGETSURFCB
) (LPD3DHAL_TEXTUREGETSURFDATA
);
122 typedef DWORD (PASCAL
*LPD3DHAL_GETSTATECB
) (LPD3DHAL_GETSTATEDATA
);
124 typedef struct _D3DHAL_CALLBACKS
{
126 LPD3DHAL_CONTEXTCREATECB ContextCreate
;
127 LPD3DHAL_CONTEXTDESTROYCB ContextDestroy
;
128 LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll
;
129 LPD3DHAL_SCENECAPTURECB SceneCapture
;
132 LPD3DHAL_RENDERSTATECB RenderState
;
133 LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive
;
135 LPD3DHAL_TEXTURECREATECB TextureCreate
;
136 LPD3DHAL_TEXTUREDESTROYCB TextureDestroy
;
137 LPD3DHAL_TEXTURESWAPCB TextureSwap
;
138 LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf
;
139 /* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
140 * all these reserved fields were available? we may never know */
151 LPD3DHAL_GETSTATECB GetState
;
162 } D3DHAL_CALLBACKS
,*LPD3DHAL_CALLBACKS
;
164 typedef struct _D3DHAL_SETRENDERTARGETDATA
*LPD3DHAL_SETRENDERTARGETDATA
;
165 typedef struct _D3DHAL_CLEARDATA
*LPD3DHAL_CLEARDATA
;
166 typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA
*LPD3DHAL_DRAWONEPRIMITIVEDATA
;
167 typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA
*LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA
;
168 typedef struct _D3DHAL_DRAWPRIMITIVESDATA
*LPD3DHAL_DRAWPRIMITIVESDATA
;
170 typedef DWORD (PASCAL
*LPD3DHAL_SETRENDERTARGETCB
) (LPD3DHAL_SETRENDERTARGETDATA
);
171 typedef DWORD (PASCAL
*LPD3DHAL_CLEARCB
) (LPD3DHAL_CLEARDATA
);
172 typedef DWORD (PASCAL
*LPD3DHAL_DRAWONEPRIMITIVECB
) (LPD3DHAL_DRAWONEPRIMITIVEDATA
);
173 typedef DWORD (PASCAL
*LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB
)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA
);
174 typedef DWORD (PASCAL
*LPD3DHAL_DRAWPRIMITIVESCB
) (LPD3DHAL_DRAWPRIMITIVESDATA
);
176 typedef struct _D3DHAL_CALLBACKS2
{
179 LPD3DHAL_SETRENDERTARGETCB SetRenderTarget
;
180 LPD3DHAL_CLEARCB Clear
;
181 LPD3DHAL_DRAWONEPRIMITIVECB DrawOnePrimitive
;
182 LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB DrawOneIndexedPrimitive
;
183 LPD3DHAL_DRAWPRIMITIVESCB DrawPrimitives
;
184 } D3DHAL_CALLBACKS2
,*LPD3DHAL_CALLBACKS2
;
186 typedef struct _D3DHAL_CLEAR2DATA
*LPD3DHAL_CLEAR2DATA
;
187 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA
*LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA
;
188 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA
*LPD3DHAL_DRAWPRIMITIVES2DATA
;
190 typedef DWORD (PASCAL
*LPD3DHAL_CLEAR2CB
) (LPD3DHAL_CLEAR2DATA
);
191 typedef DWORD (PASCAL
*LPD3DHAL_VALIDATETEXTURESTAGESTATECB
)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA
);
192 typedef DWORD (PASCAL
*LPD3DHAL_DRAWPRIMITIVES2CB
) (LPD3DHAL_DRAWPRIMITIVES2DATA
);
194 typedef struct _D3DHAL_CALLBACKS3
{
197 LPD3DHAL_CLEAR2CB Clear2
;
199 LPD3DHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState
;
200 LPD3DHAL_DRAWPRIMITIVES2CB DrawPrimitives2
;
201 } D3DHAL_CALLBACKS3
,*LPD3DHAL_CALLBACKS3
;
203 /*****************************************************************************
204 * parameter structures
206 typedef struct _D3DHAL_CONTEXTCREATEDATA
{
208 LPDDRAWI_DIRECTDRAW_GBL lpDDGbl
; /* pre-DirectX 7 */
209 LPDDRAWI_DIRECTDRAW_LCL lpDDLcl
; /* DirectX 7 */
212 LPDIRECTDRAWSURFACE lpDDS
;
213 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl
; /* DirectX 7 */
216 LPDIRECTDRAWSURFACE lpDDSZ
;
217 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl
; /* DirectX 7 */
223 ULONG_PTR dwhContext
;
225 } D3DHAL_CONTEXTCREATEDATA
;
227 typedef struct _D3DHAL_CONTEXTDESTROYDATA
{
228 ULONG_PTR dwhContext
;
230 } D3DHAL_CONTEXTDESTROYDATA
;
232 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA
{
235 } D3DHAL_CONTEXTDESTROYALLDATA
;
237 typedef struct _D3DHAL_SCENECAPTUREDATA
{
238 ULONG_PTR dwhContext
;
241 } D3DHAL_SCENECAPTUREDATA
;
243 #define D3DHAL_SCENE_CAPTURE_START 0x00000000
244 #define D3DHAL_SCENE_CAPTURE_END 0x00000001
246 typedef struct _D3DHAL_SETRENDERTARGETDATA
{
247 ULONG_PTR dwhContext
;
249 LPDIRECTDRAWSURFACE lpDDS
;
250 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl
;
253 LPDIRECTDRAWSURFACE lpDDSZ
;
254 LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl
;
257 } D3DHAL_SETRENDERTARGETDATA
;
259 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA
{
260 ULONG_PTR dwhContext
;
263 LPDDRAWI_DDRAWSURFACE_LCL lpDDCommands
;
264 DWORD dwCommandOffset
;
265 DWORD dwCommandLength
;
267 LPDDRAWI_DDRAWSURFACE_LCL lpDDVertex
;
270 DWORD dwVertexOffset
;
271 DWORD dwVertexLength
;
272 DWORD dwReqVertexBufSize
;
273 DWORD dwReqCommandBufSize
;
280 } D3DHAL_DRAWPRIMITIVES2DATA
;
282 #define D3DHALDP2_USERMEMVERTICES 0x00000001
283 #define D3DHALDP2_EXECUTEBUFFER 0x00000002
284 #define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
285 #define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
286 #define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
287 #define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
288 #define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
289 #define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
291 /*****************************************************************************
292 * DrawPrimitives2 command structures
294 typedef struct _D3DHAL_DP2COMMAND
{
298 WORD wPrimitiveCount
;
301 } D3DHAL_DP2COMMAND
,*LPD3DHAL_DP2COMMAND
;
303 typedef enum _D3DHAL_DP2OPERATION
{
305 D3DDP2OP_INDEXEDLINELIST
= 2,
306 D3DDP2OP_INDEXEDTRIANGLELIST
= 3,
307 D3DDP2OP_RENDERSTATE
= 8,
308 D3DDP2OP_LINELIST
= 15,
309 D3DDP2OP_LINESTRIP
= 16,
310 D3DDP2OP_INDEXEDLINESTRIP
= 17,
311 D3DDP2OP_TRIANGLELIST
= 18,
312 D3DDP2OP_TRIANGLESTRIP
= 19,
313 D3DDP2OP_INDEXEDTRIANGLESTRIP
= 20,
314 D3DDP2OP_TRIANGLEFAN
= 21,
315 D3DDP2OP_INDEXEDTRIANGLEFAN
= 22,
316 D3DDP2OP_TRIANGLEFAN_IMM
= 23,
317 D3DDP2OP_LINELIST_IMM
= 24,
318 D3DDP2OP_TEXTURESTAGESTATE
= 25,
319 D3DDP2OP_INDEXEDTRIANGLELIST2
= 26,
320 D3DDP2OP_INDEXEDLINELIST2
= 27,
321 D3DDP2OP_VIEWPORTINFO
= 28,
323 /* pre-DirectX 7 interfaces */
324 D3DDP2OP_SETPALETTE
= 30,
325 D3DDP2OP_UPDATEPALETTE
= 31,
326 /* DirectX 7 interfaces */
327 D3DDP2OP_ZRANGE
= 32,
328 D3DDP2OP_SETMATERIAL
= 33,
329 D3DDP2OP_SETLIGHT
= 34,
330 D3DDP2OP_CREATELIGHT
= 35,
331 D3DDP2OP_SETTRANSFORM
= 36,
332 D3DDP2OP_TEXBLT
= 38,
333 D3DDP2OP_STATESET
= 39,
334 D3DDP2OP_SETPRIORITY
= 40,
336 D3DDP2OP_SETRENDERTARGET
= 41,
338 /* DirectX 7 interfaces */
339 D3DDP2OP_SETTEXLOD
= 43,
340 D3DPP2OP_SETCLIPPLANE
= 44,
341 #if(DIRECT3D_VERSION >= 0x0800)
342 D3DDP2OP_CREATEVERTEXSHADER
= 45,
343 D3DDP2OP_DELETEVERTEXSHADER
= 46,
344 D3DDP2OP_SETVERTEXSHADER
= 47,
345 D3DDP2OP_SETVERTEXSHADERCONST
= 48,
346 D3DDP2OP_SETSTREAMSOURCE
= 49,
347 D3DDP2OP_SETSTREAMSOURCEUM
= 50,
348 D3DDP2OP_SETINDICES
= 51,
349 D3DDP2OP_DRAWPRIMITIVE
= 52,
350 D3DDP2OP_DRAWINDEXEDPRIMITIVE
= 53,
351 D3DDP2OP_CREATEPIXELSHADER
= 54,
352 D3DDP2OP_DELETEPIXELSHADER
= 55,
353 D3DDP2OP_SETPIXELSHADER
= 56,
354 D3DDP2OP_SETPIXELSHADERCONST
= 57,
355 D3DDP2OP_CLIPPEDTRIANGLEFAN
= 58,
356 D3DDP2OP_DRAWPRIMITIVE2
= 59,
357 D3DDP2OP_DRAWINDEXEDPRIMITIVE2
= 60,
358 D3DDP2OP_DRAWRECTPATCH
= 61,
359 D3DDP2OP_DRAWTRIPATCH
= 62,
360 D3DDP2OP_VOLUMEBLT
= 63,
361 D3DDP2OP_BUFFERBLT
= 64,
362 D3DDP2OP_MULTIPLYTRANSFORM
= 65,
363 D3DDP2OP_ADDDIRTYRECT
= 66,
364 D3DDP2OP_ADDDIRTYBOX
= 67,
366 #if(DIRECT3D_VERSION >= 0x0900)
367 D3DDP2OP_CREATEVERTEXSHADERDECL
= 71,
368 D3DDP2OP_DELETEVERTEXSHADERDECL
= 72,
369 D3DDP2OP_SETVERTEXSHADERDECL
= 73,
370 D3DDP2OP_CREATEVERTEXSHADERFUNC
= 74,
371 D3DDP2OP_DELETEVERTEXSHADERFUNC
= 75,
372 D3DDP2OP_SETVERTEXSHADERFUNC
= 76,
373 D3DDP2OP_SETVERTEXSHADERCONSTI
= 77,
374 D3DDP2OP_SETSCISSORRECT
= 79,
375 D3DDP2OP_SETSTREAMSOURCE2
= 80,
377 D3DDP2OP_COLORFILL
= 82,
378 D3DDP2OP_SETVERTEXSHADERCONSTB
= 83,
379 D3DDP2OP_CREATEQUERY
= 84,
380 D3DDP2OP_SETRENDERTARGET2
= 85,
381 D3DDP2OP_SETDEPTHSTENCIL
= 86,
382 D3DDP2OP_RESPONSECONTINUE
= 87,
383 D3DDP2OP_RESPONSEQUERY
= 88,
384 D3DDP2OP_GENERATEMIPSUBLEVELS
= 89,
385 D3DDP2OP_DELETEQUERY
= 90,
386 D3DDP2OP_ISSUEQUERY
= 91,
387 D3DDP2OP_SETPIXELSHADERCONSTI
= 93,
388 D3DDP2OP_SETPIXELSHADERCONSTB
= 94,
389 D3DDP2OP_SETSTREAMSOURCEFREQ
= 95,
390 D3DDP2OP_SURFACEBLT
= 96
392 } D3DHAL_DP2OPERATION
;
394 /* point primitives */
396 typedef struct _D3DHAL_POINTS
{
399 } D3DHAL_DP2POINTS
,*LPD3DHAL_DP2POINTS
;
401 /* line primitives */
403 typedef struct _D3DHAL_DP2STARTVERTEX
{
405 } D3DHAL_DP2STARTVERTEX
,*LPD3DHAL_DP2STARTVERTEX
;
407 typedef struct _D3DHAL_DP2LINELIST
{
409 } D3DHAL_DP2LINELIST
,*LPD3DHAL_DP2LINELIST
;
411 typedef struct _D3DHAL_DP2INDEXEDLINELIST
{
414 } D3DHAL_DP2INDEXEDLINELIST
,*LPD3DHAL_DP2INDEXEDLINELIST
;
416 typedef struct _D3DHAL_DP2LINESTRIP
{
418 } D3DHAL_DP2LINESTRIP
,*LPD3DHAL_DP2LINESTRIP
;
420 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP
{
422 } D3DHAL_DP2INDEXEDLINESTRIP
,*LPD3DHAL_DP2INDEXEDLINESTRIP
;
424 /* triangle primitives */
426 typedef struct _D3DHAL_DP2TRIANGLELIST
{
428 } D3DHAL_DP2TRIANGLELIST
,*LPD3DHAL_DP2TRIANGLELIST
;
430 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST
{
435 } D3DHAL_DP2INDEXEDTRIANGLELIST
,*LPD3DHAL_DP2INDEXEDTRIANGLELIST
;
437 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2
{
441 } D3DHAL_DP2INDEXEDTRIANGLELIST2
,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2
;
443 typedef struct _D3DHAL_DP2TRIANGLESTRIP
{
445 } D3DHAL_DP2TRIANGLESTRIP
,*LPD3DHAL_DP2TRIANGLESTRIP
;
447 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP
{
449 } D3DHAL_DP2INDEXEDTRIANGLESTRIP
,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP
;
451 typedef struct _D3DHAL_DP2TRIANGLEFAN
{
453 } D3DHAL_DP2TRIANGLEFAN
,*LPD3DHAL_DP2TRIANGLEFAN
;
455 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN
{
457 } D3DHAL_DP2INDEXEDTRIANGLEFAN
,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN
;
459 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM
{
461 } D3DHAL_DP2TRIANGLEFAN_IMM
,*LPD3DHAL_DP2TRIANGLEFAN_IMM
;
464 typedef struct _D3DHAL_DP2RENDERSTATE
{
465 D3DRENDERSTATETYPE RenderState
;
470 } D3DHAL_DP2RENDERSTATE
,*LPD3DHAL_DP2RENDERSTATE
;
472 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE
{
476 } D3DHAL_DP2TEXTURESTAGESTATE
,*LPD3DHAL_DP2TEXTURESTAGESTATE
;
478 #define D3DTSS_TEXTUREMAP 0
480 typedef struct _D3DHAL_DP2VIEWPORTINFO
{
485 } D3DHAL_DP2VIEWPORTINFO
,*LPD3DHAL_DP2VIEWPORTINFO
;
487 typedef struct _D3DHAL_DP2WINFO
{
490 } D3DHAL_DP2WINFO
,*LPD3DHAL_DP2WINFO
;
492 typedef struct _D3DHAL_DP2SETPALETTE
{
493 DWORD dwPaletteHandle
;
494 DWORD dwPaletteFlags
;
495 DWORD dwSurfaceHandle
;
496 } D3DHAL_DP2SETPALETTE
,*LPD3DHAL_DP2SETPALETTE
;
498 typedef struct _D3DHAL_DP2UPDATEPALETTE
{
499 DWORD dwPaletteHandle
;
502 } D3DHAL_DP2UPDATEPALETTE
,*LPD3DHAL_DP2UPDATEPALETTE
;
504 typedef struct _D3DHAL_DP2ZRANGE
{
507 } D3DHAL_DP2ZRANGE
,*LPD3DHAL_DP2ZRANGE
;
509 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL
,*LPD3DHAL_DP2SETMATERIAL
;
511 typedef struct _D3DHAL_DP2SETLIGHT
{
514 } D3DHAL_DP2SETLIGHT
,*LPD3DHAL_DP2SETLIGHT
;
516 #define D3DHAL_SETLIGHT_ENABLE 0
517 #define D3DHAL_SETLIGHT_DISABLE 1
518 #define D3DHAL_SETLIGHT_DATA 2
520 typedef struct _D3DHAL_DP2CREATELIGHT
{
522 } D3DHAL_DP2CREATELIGHT
,*LPD3DHAL_DP2CREATELIGHT
;
524 typedef struct _D3DHAL_DP2SETTRANSFORM
{
525 D3DTRANSFORMSTATETYPE xfrmType
;
527 } D3DHAL_DP2SETTRANSFORM
,*LPD3DHAL_DP2SETTRANSFORM
;
529 typedef struct _D3DHAL_DP2TEXBLT
{
530 DWORD dwDDDestSurface
;
531 DWORD dwDDSrcSurface
;
535 } D3DHAL_DP2TEXBLT
,*LPD3DHAL_DP2TEXBLT
;
537 typedef struct _D3DHAL_DP2STATESET
{
540 D3DSTATEBLOCKTYPE sbType
;
541 } D3DHAL_DP2STATESET
,*LPD3DHAL_DP2STATESET
;
543 #define D3DHAL_STATESETBEGIN 0
544 #define D3DHAL_STATESETEND 1
545 #define D3DHAL_STATESETDELETE 2
546 #define D3DHAL_STATESETEXECUTE 3
547 #define D3DHAL_STATESETCAPTURE 4
549 typedef struct _D3DHAL_DP2SETPRIORITY
{
552 } D3DHAL_DP2SETPRIORITY
,*LPD3DHAL_DP2SETPRIORITY
;
554 typedef struct _D3DHAL_DP2SETRENDERTARGET
{
557 } D3DHAL_DP2SETRENDERTARGET
,*LPD3DHAL_DP2SETRENDERTARGET
;
559 typedef struct _D3DHAL_DP2CLEAR
{
562 D3DVALUE dvFillDepth
;
565 } D3DHAL_DP2CLEAR
,*LPD3DHAL_DP2CLEAR
;
567 typedef struct _D3DHAL_DP2SETTEXLOD
{
570 } D3DHAL_DP2SETTEXLOD
,*LPD3DHAL_DP2SETTEXLOD
;
576 #endif /* _D3DHAL_H_ */