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