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 26 extern "C" { 27 #endif 28 29 #include <d3d.h> 30 31 /***************************************************************************** 32 * device info structures 33 */ 34 typedef 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 50 typedef 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 59 typedef 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 */ 95 typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA; 96 typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA; 97 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA; 98 typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA; 99 typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA; 100 typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA; 101 typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA; 102 typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA; 103 typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA; 104 typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA; 105 typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA; 106 107 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA); 108 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA); 109 typedef DWORD (PASCAL *LPD3DHAL_CONTEXTDESTROYALLCB)(LPD3DHAL_CONTEXTDESTROYALLDATA); 110 typedef DWORD (PASCAL *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA); 111 typedef DWORD (PASCAL *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA); 112 typedef DWORD (PASCAL *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA); 113 typedef DWORD (PASCAL *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA); 114 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA); 115 typedef DWORD (PASCAL *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA); 116 typedef DWORD (PASCAL *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA); 117 typedef DWORD (PASCAL *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA); 118 119 typedef 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 159 typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA; 160 typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA; 161 typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA; 162 typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA; 163 typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA; 164 165 typedef DWORD (PASCAL *LPD3DHAL_SETRENDERTARGETCB) (LPD3DHAL_SETRENDERTARGETDATA); 166 typedef DWORD (PASCAL *LPD3DHAL_CLEARCB) (LPD3DHAL_CLEARDATA); 167 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEPRIMITIVECB) (LPD3DHAL_DRAWONEPRIMITIVEDATA); 168 typedef DWORD (PASCAL *LPD3DHAL_DRAWONEINDEXEDPRIMITIVECB)(LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA); 169 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVESCB) (LPD3DHAL_DRAWPRIMITIVESDATA); 170 171 typedef 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 181 typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA; 182 typedef struct _D3DHAL_VALIDATETEXTURESTAGESTATEDATA *LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA; 183 typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA; 184 185 typedef DWORD (PASCAL *LPD3DHAL_CLEAR2CB) (LPD3DHAL_CLEAR2DATA); 186 typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA); 187 typedef DWORD (PASCAL *LPD3DHAL_DRAWPRIMITIVES2CB) (LPD3DHAL_DRAWPRIMITIVES2DATA); 188 189 typedef 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 */ 201 typedef 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 222 typedef struct _D3DHAL_CONTEXTDESTROYDATA { 223 ULONG_PTR dwhContext; 224 HRESULT ddrval; 225 } D3DHAL_CONTEXTDESTROYDATA; 226 227 typedef struct _D3DHAL_CONTEXTDESTROYALLDATA { 228 DWORD dwPID; 229 HRESULT ddrval; 230 } D3DHAL_CONTEXTDESTROYALLDATA; 231 232 typedef 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 241 typedef 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 254 typedef 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 */ 289 typedef 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 298 typedef 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 340 typedef struct _D3DHAL_POINTS { 341 WORD wCount; 342 WORD wVStart; 343 } D3DHAL_DP2POINTS,*LPD3DHAL_DP2POINTS; 344 345 /* line primitives */ 346 347 typedef struct _D3DHAL_DP2STARTVERTEX { 348 WORD wVStart; 349 } D3DHAL_DP2STARTVERTEX,*LPD3DHAL_DP2STARTVERTEX; 350 351 typedef struct _D3DHAL_DP2LINELIST { 352 WORD wVStart; 353 } D3DHAL_DP2LINELIST,*LPD3DHAL_DP2LINELIST; 354 355 typedef struct _D3DHAL_DP2INDEXEDLINELIST { 356 WORD wV1; 357 WORD wV2; 358 } D3DHAL_DP2INDEXEDLINELIST,*LPD3DHAL_DP2INDEXEDLINELIST; 359 360 typedef struct _D3DHAL_DP2LINESTRIP { 361 WORD wVStart; 362 } D3DHAL_DP2LINESTRIP,*LPD3DHAL_DP2LINESTRIP; 363 364 typedef struct _D3DHAL_DP2INDEXEDLINESTRIP { 365 WORD wV[2]; 366 } D3DHAL_DP2INDEXEDLINESTRIP,*LPD3DHAL_DP2INDEXEDLINESTRIP; 367 368 /* triangle primitives */ 369 370 typedef struct _D3DHAL_DP2TRIANGLELIST { 371 WORD wVStart; 372 } D3DHAL_DP2TRIANGLELIST,*LPD3DHAL_DP2TRIANGLELIST; 373 374 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST { 375 WORD wV1; 376 WORD wV2; 377 WORD wV3; 378 WORD wFlags; 379 } D3DHAL_DP2INDEXEDTRIANGLELIST,*LPD3DHAL_DP2INDEXEDTRIANGLELIST; 380 381 typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 { 382 WORD wV1; 383 WORD wV2; 384 WORD wV3; 385 } D3DHAL_DP2INDEXEDTRIANGLELIST2,*LPD3DHAL_DP2INDEXEDTRIANGLELIST2; 386 387 typedef struct _D3DHAL_DP2TRIANGLESTRIP { 388 WORD wVStart; 389 } D3DHAL_DP2TRIANGLESTRIP,*LPD3DHAL_DP2TRIANGLESTRIP; 390 391 typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP { 392 WORD wV[3]; 393 } D3DHAL_DP2INDEXEDTRIANGLESTRIP,*LPD3DHAL_DP2INDEXEDTRIANGLESTRIP; 394 395 typedef struct _D3DHAL_DP2TRIANGLEFAN { 396 WORD wVStart; 397 } D3DHAL_DP2TRIANGLEFAN,*LPD3DHAL_DP2TRIANGLEFAN; 398 399 typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN { 400 WORD wV[3]; 401 } D3DHAL_DP2INDEXEDTRIANGLEFAN,*LPD3DHAL_DP2INDEXEDTRIANGLEFAN; 402 403 typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM { 404 DWORD dwEdgeFlags; 405 } D3DHAL_DP2TRIANGLEFAN_IMM,*LPD3DHAL_DP2TRIANGLEFAN_IMM; 406 407 /* render states */ 408 typedef struct _D3DHAL_DP2RENDERSTATE { 409 D3DRENDERSTATETYPE RenderState; 410 union { 411 D3DVALUE dvState; 412 DWORD dwState; 413 } DUMMYUNIONNAME; 414 } D3DHAL_DP2RENDERSTATE,*LPD3DHAL_DP2RENDERSTATE; 415 416 typedef struct _D3DHAL_DP2TEXTURESTAGESTATE { 417 WORD wStage; 418 WORD TSState; 419 DWORD dwValue; 420 } D3DHAL_DP2TEXTURESTAGESTATE,*LPD3DHAL_DP2TEXTURESTAGESTATE; 421 422 #define D3DTSS_TEXTUREMAP 0 423 424 typedef struct _D3DHAL_DP2VIEWPORTINFO { 425 DWORD dwX; 426 DWORD dwY; 427 DWORD dwWidth; 428 DWORD dwHeight; 429 } D3DHAL_DP2VIEWPORTINFO,*LPD3DHAL_DP2VIEWPORTINFO; 430 431 typedef struct _D3DHAL_DP2WINFO { 432 D3DVALUE dwWNear; 433 D3DVALUE dwWFar; 434 } D3DHAL_DP2WINFO,*LPD3DHAL_DP2WINFO; 435 436 typedef struct _D3DHAL_DP2SETPALETTE { 437 DWORD dwPaletteHandle; 438 DWORD dwPaletteFlags; 439 DWORD dwSurfaceHandle; 440 } D3DHAL_DP2SETPALETTE,*LPD3DHAL_DP2SETPALETTE; 441 442 typedef struct _D3DHAL_DP2UPDATEPALETTE { 443 DWORD dwPaletteHandle; 444 WORD wStartIndex; 445 WORD wNumEntries; 446 } D3DHAL_DP2UPDATEPALETTE,*LPD3DHAL_DP2UPDATEPALETTE; 447 448 typedef struct _D3DHAL_DP2ZRANGE { 449 D3DVALUE dvMinZ; 450 D3DVALUE dvMaxZ; 451 } D3DHAL_DP2ZRANGE,*LPD3DHAL_DP2ZRANGE; 452 453 typedef D3DMATERIAL7 D3DHAL_DP2SETMATERIAL,*LPD3DHAL_DP2SETMATERIAL; 454 455 typedef 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 464 typedef struct _D3DHAL_DP2CREATELIGHT { 465 DWORD dwIndex; 466 } D3DHAL_DP2CREATELIGHT,*LPD3DHAL_DP2CREATELIGHT; 467 468 typedef struct _D3DHAL_DP2SETTRANSFORM { 469 D3DTRANSFORMSTATETYPE xfrmType; 470 D3DMATRIX matrix; 471 } D3DHAL_DP2SETTRANSFORM,*LPD3DHAL_DP2SETTRANSFORM; 472 473 typedef struct _D3DHAL_DP2TEXBLT { 474 DWORD dwDDDestSurface; 475 DWORD dwDDSrcSurface; 476 POINT pDest; 477 RECTL rSrc; 478 DWORD dwFlags; 479 } D3DHAL_DP2TEXBLT,*LPD3DHAL_DP2TEXBLT; 480 481 typedef 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 493 typedef struct _D3DHAL_DP2SETPRIORITY { 494 DWORD dwDDSurface; 495 DWORD dwPriority; 496 } D3DHAL_DP2SETPRIORITY,*LPD3DHAL_DP2SETPRIORITY; 497 498 typedef struct _D3DHAL_DP2SETRENDERTARGET { 499 DWORD hRenderTarget; 500 DWORD hZBuffer; 501 } D3DHAL_DP2SETRENDERTARGET,*LPD3DHAL_DP2SETRENDERTARGET; 502 503 typedef 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 511 typedef 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