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