d3d8types.h (39441B) - Raw
1 /* 2 * Copyright (C) 2002 Jason Edmeades 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19 #ifndef __WINE_D3D8TYPES_H 20 #define __WINE_D3D8TYPES_H 21 22 #ifdef __i386__ 23 #pragma pack(push,4) 24 #endif 25 26 /***************************************************************************** 27 * Direct 3D v8 #defines 28 */ 29 30 #define D3DCLEAR_TARGET 1 31 #define D3DCLEAR_ZBUFFER 2 32 #define D3DCLEAR_STENCIL 4 33 34 #define D3DCLIPPLANE0 (1 << 0) 35 #define D3DCLIPPLANE1 (1 << 1) 36 #define D3DCLIPPLANE2 (1 << 2) 37 #define D3DCLIPPLANE3 (1 << 3) 38 #define D3DCLIPPLANE4 (1 << 4) 39 #define D3DCLIPPLANE5 (1 << 5) 40 41 #define D3DCOLOR_ARGB(a,r,g,b) ((D3DCOLOR)((((a)&0xffu)<<24)|(((r)&0xffu)<<16)|(((g)&0xffu)<<8)|((b)&0xffu))) 42 #define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f)) 43 #define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b) 44 #define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b) 45 46 #define D3DCS_LEFT 0x001 47 #define D3DCS_RIGHT 0x002 48 #define D3DCS_TOP 0x004 49 #define D3DCS_BOTTOM 0x008 50 #define D3DCS_FRONT 0x010 51 #define D3DCS_BACK 0x020 52 #define D3DCS_PLANE0 0x040 53 #define D3DCS_PLANE1 0x080 54 #define D3DCS_PLANE2 0x100 55 #define D3DCS_PLANE3 0x200 56 #define D3DCS_PLANE4 0x400 57 #define D3DCS_PLANE5 0x800 58 #define D3DCS_ALL 0xFFF 59 60 #define D3DFVF_TEXTUREFORMAT1 3 61 #define D3DFVF_TEXTUREFORMAT2 0 62 #define D3DFVF_TEXTUREFORMAT3 1 63 #define D3DFVF_TEXTUREFORMAT4 2 64 #define D3DFVF_TEXCOORDSIZE1(CoordIndex) (D3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16)) 65 #define D3DFVF_TEXCOORDSIZE2(CoordIndex) (D3DFVF_TEXTUREFORMAT2) 66 #define D3DFVF_TEXCOORDSIZE3(CoordIndex) (D3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16)) 67 #define D3DFVF_TEXCOORDSIZE4(CoordIndex) (D3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16)) 68 69 #define D3DLOCK_READONLY 0x0010 70 #define D3DLOCK_NOSYSLOCK 0x0800 71 #define D3DLOCK_NOOVERWRITE 0x1000 72 #define D3DLOCK_DISCARD 0x2000 73 #define D3DLOCK_NO_DIRTY_UPDATE 0x8000 74 75 #define D3DMAXUSERCLIPPLANES 32 76 77 #define D3DRENDERSTATE_WRAPBIAS 0x80 78 79 #define D3DTSS_TCI_PASSTHRU 0x00000 80 #define D3DTSS_TCI_CAMERASPACENORMAL 0x10000 81 #define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000 82 #define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000 83 84 85 #define D3DTS_WORLD D3DTS_WORLDMATRIX(0) 86 #define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1) 87 #define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2) 88 #define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3) 89 #define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256) 90 91 #define D3DUSAGE_RENDERTARGET 0x01 92 #define D3DUSAGE_DEPTHSTENCIL 0x02 93 #define D3DUSAGE_WRITEONLY 0x08 94 #define D3DUSAGE_SOFTWAREPROCESSING 0x10 95 #define D3DUSAGE_DONOTCLIP 0x20 96 #define D3DUSAGE_POINTS 0x40 97 #define D3DUSAGE_RTPATCHES 0x80 98 #define D3DUSAGE_NPATCHES 0x100 99 #define D3DUSAGE_DYNAMIC 0x200 100 101 #define D3DWRAP_U 1 102 #define D3DWRAP_V 2 103 #define D3DWRAP_W 4 104 #define D3DWRAPCOORD_0 1 105 #define D3DWRAPCOORD_1 2 106 #define D3DWRAPCOORD_2 4 107 #define D3DWRAPCOORD_3 8 108 109 #define MAX_DEVICE_IDENTIFIER_STRING 512 110 111 #define D3DFVF_RESERVED0 0x0001 112 #define D3DFVF_POSITION_MASK 0x000E 113 #define D3DFVF_XYZ 0x0002 114 #define D3DFVF_XYZRHW 0x0004 115 #define D3DFVF_XYZB1 0x0006 116 #define D3DFVF_XYZB2 0x0008 117 #define D3DFVF_XYZB3 0x000a 118 #define D3DFVF_XYZB4 0x000c 119 #define D3DFVF_XYZB5 0x000e 120 #define D3DFVF_NORMAL 0x0010 121 #define D3DFVF_PSIZE 0x0020 122 #define D3DFVF_DIFFUSE 0x0040 123 #define D3DFVF_SPECULAR 0x0080 124 #define D3DFVF_TEXCOUNT_MASK 0x0f00 125 #define D3DFVF_TEXCOUNT_SHIFT 8 126 #define D3DFVF_TEX0 0x0000 127 #define D3DFVF_TEX1 0x0100 128 #define D3DFVF_TEX2 0x0200 129 #define D3DFVF_TEX3 0x0300 130 #define D3DFVF_TEX4 0x0400 131 #define D3DFVF_TEX5 0x0500 132 #define D3DFVF_TEX6 0x0600 133 #define D3DFVF_TEX7 0x0700 134 #define D3DFVF_TEX8 0x0800 135 #define D3DFVF_LASTBETA_UBYTE4 0x1000 136 #define D3DFVF_RESERVED2 0xE000 137 138 #define D3DTA_SELECTMASK 0x0000000f 139 #define D3DTA_DIFFUSE 0x00000000 140 #define D3DTA_CURRENT 0x00000001 141 #define D3DTA_TEXTURE 0x00000002 142 #define D3DTA_TFACTOR 0x00000003 143 #define D3DTA_SPECULAR 0x00000004 144 #define D3DTA_COMPLEMENT 0x00000010 145 #define D3DTA_ALPHAREPLICATE 0x00000020 146 #define D3DTA_TEMP 0x00000005 147 148 #define D3DCOLORWRITEENABLE_RED (__MSABI_LONG(1)<<0) 149 #define D3DCOLORWRITEENABLE_GREEN (__MSABI_LONG(1)<<1) 150 #define D3DCOLORWRITEENABLE_BLUE (__MSABI_LONG(1)<<2) 151 #define D3DCOLORWRITEENABLE_ALPHA (__MSABI_LONG(1)<<3) 152 153 #define D3DDEVINFOID_RESOURCEMANAGER 5 154 #define D3DDEVINFOID_VERTEXSTATS 6 155 156 157 #ifndef MAKEFOURCC 158 #define MAKEFOURCC(ch0, ch1, ch2, ch3) \ 159 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ 160 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) 161 #endif 162 163 /**************************** 164 * Vertex Shaders Declaration 165 */ 166 167 typedef enum _D3DVSD_TOKENTYPE { 168 D3DVSD_TOKEN_NOP = 0, 169 D3DVSD_TOKEN_STREAM = 1, 170 D3DVSD_TOKEN_STREAMDATA = 2, 171 D3DVSD_TOKEN_TESSELLATOR = 3, 172 D3DVSD_TOKEN_CONSTMEM = 4, 173 D3DVSD_TOKEN_EXT = 5, 174 /* RESERVED = 6 */ 175 D3DVSD_TOKEN_END = 7, 176 D3DVSD_FORCE_DWORD = 0x7FFFFFFF 177 } D3DVSD_TOKENTYPE; 178 179 /** input registers for vertex shaders functions */ 180 /* 181 #define D3DVSDE_POSITION 0 182 #define D3DVSDE_BLENDWEIGHT 1 183 #define D3DVSDE_BLENDINDICES 2 184 #define D3DVSDE_NORMAL 3 185 #define D3DVSDE_PSIZE 4 186 #define D3DVSDE_DIFFUSE 5 187 #define D3DVSDE_SPECULAR 6 188 #define D3DVSDE_TEXCOORD0 7 189 #define D3DVSDE_TEXCOORD1 8 190 #define D3DVSDE_TEXCOORD2 9 191 #define D3DVSDE_TEXCOORD3 10 192 #define D3DVSDE_TEXCOORD4 11 193 #define D3DVSDE_TEXCOORD5 12 194 #define D3DVSDE_TEXCOORD6 13 195 #define D3DVSDE_TEXCOORD7 14 196 #define D3DVSDE_POSITION2 15 197 #define D3DVSDE_NORMAL2 16 198 */ 199 /** Address of the vertex register. 0 - 16 */ 200 typedef enum _D3DVSDE_REGISTER { 201 D3DVSDE_POSITION = 0, 202 D3DVSDE_BLENDWEIGHT = 1, 203 D3DVSDE_BLENDINDICES = 2, 204 D3DVSDE_NORMAL = 3, 205 D3DVSDE_PSIZE = 4, 206 D3DVSDE_DIFFUSE = 5, 207 D3DVSDE_SPECULAR = 6, 208 D3DVSDE_TEXCOORD0 = 7, 209 D3DVSDE_TEXCOORD1 = 8, 210 D3DVSDE_TEXCOORD2 = 9, 211 D3DVSDE_TEXCOORD3 = 10, 212 D3DVSDE_TEXCOORD4 = 11, 213 D3DVSDE_TEXCOORD5 = 12, 214 D3DVSDE_TEXCOORD6 = 13, 215 D3DVSDE_TEXCOORD7 = 14, 216 D3DVSDE_POSITION2 = 15, 217 D3DVSDE_NORMAL2 = 16 218 } D3DVSDE_REGISTER; 219 220 /** bit-field declaration for VertexRegister Type */ 221 /* 222 #define D3DVSDT_FLOAT1 0x00 223 #define D3DVSDT_FLOAT2 0x01 224 #define D3DVSDT_FLOAT3 0x02 225 #define D3DVSDT_FLOAT4 0x03 226 #define D3DVSDT_D3DCOLOR 0x04 227 #define D3DVSDT_UBYTE4 0x05 228 #define D3DVSDT_SHORT2 0x06 229 #define D3DVSDT_SHORT4 0x07 230 */ 231 typedef enum _D3DVSDT_TYPE { 232 D3DVSDT_FLOAT1 = 0x00, 233 D3DVSDT_FLOAT2 = 0x01, 234 D3DVSDT_FLOAT3 = 0x02, 235 D3DVSDT_FLOAT4 = 0x03, 236 D3DVSDT_D3DCOLOR = 0x04, 237 D3DVSDT_UBYTE4 = 0x05, 238 D3DVSDT_SHORT2 = 0x06, 239 D3DVSDT_SHORT4 = 0x07 240 } D3DVSDT_TYPE; 241 242 243 #define D3DVSD_CONSTADDRESSSHIFT 0 244 #define D3DVSD_EXTINFOSHIFT 0 245 #define D3DVSD_STREAMNUMBERSHIFT 0 246 #define D3DVSD_VERTEXREGSHIFT 0 247 #define D3DVSD_CONSTRSSHIFT 16 248 #define D3DVSD_DATATYPESHIFT 16 249 #define D3DVSD_SKIPCOUNTSHIFT 16 250 #define D3DVSD_VERTEXREGINSHIFT 20 251 #define D3DVSD_EXTCOUNTSHIFT 24 252 #define D3DVSD_CONSTCOUNTSHIFT 25 253 #define D3DVSD_DATALOADTYPESHIFT 28 254 #define D3DVSD_STREAMTESSSHIFT 28 255 #define D3DVSD_TOKENTYPESHIFT 29 256 257 #define D3DVSD_CONSTADDRESSMASK (0x7F << D3DVSD_CONSTADDRESSSHIFT) 258 #define D3DVSD_EXTINFOMASK (0xFFFFFF << D3DVSD_EXTINFOSHIFT) 259 #define D3DVSD_STREAMNUMBERMASK (0xF << D3DVSD_STREAMNUMBERSHIFT) 260 #define D3DVSD_VERTEXREGMASK (0x1F << D3DVSD_VERTEXREGSHIFT) 261 #define D3DVSD_CONSTRSMASK (0x1FFF << D3DVSD_CONSTRSSHIFT) 262 #define D3DVSD_DATATYPEMASK (0xF << D3DVSD_DATATYPESHIFT) 263 #define D3DVSD_SKIPCOUNTMASK (0xF << D3DVSD_SKIPCOUNTSHIFT) 264 #define D3DVSD_EXTCOUNTMASK (0x1F << D3DVSD_EXTCOUNTSHIFT) 265 #define D3DVSD_VERTEXREGINMASK (0xF << D3DVSD_VERTEXREGINSHIFT) 266 #define D3DVSD_CONSTCOUNTMASK (0xF << D3DVSD_CONSTCOUNTSHIFT) 267 #define D3DVSD_DATALOADTYPEMASK (0x1 << D3DVSD_DATALOADTYPESHIFT) 268 #define D3DVSD_STREAMTESSMASK (0x1 << D3DVSD_STREAMTESSSHIFT) 269 #define D3DVSD_TOKENTYPEMASK (0x7u << D3DVSD_TOKENTYPESHIFT) 270 271 272 #define D3DVSD_MAKETOKENTYPE(TokenType) \ 273 (((unsigned)TokenType << D3DVSD_TOKENTYPESHIFT) & D3DVSD_TOKENTYPEMASK) 274 275 #define D3DVSD_CONST(ConstantAddress, Count) \ 276 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress)) 277 278 #define D3DVSD_END() 0xFFFFFFFF 279 280 #define D3DVSD_NOP() 0x00000000 281 282 #define D3DVSD_REG(VertexRegister, Type) \ 283 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister)) 284 285 #define D3DVSD_SKIP(Count) \ 286 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | 0x10000000 | ((Count) << D3DVSD_SKIPCOUNTSHIFT)) 287 288 #define D3DVSD_STREAM(StreamNumber) \ 289 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (StreamNumber)) 290 291 #define D3DVSD_STREAM_TESS() \ 292 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAM) | (D3DVSD_STREAMTESSMASK)) 293 294 #define D3DVSD_TESSNORMAL(RegisterIn, RegisterOut) \ 295 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut)) 296 297 #define D3DVSD_TESSUV(Register) \ 298 (D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register)) 299 300 301 /******************************** 302 * Pixel/Vertex Shaders Functions 303 */ 304 305 /** Maximum number of supported texture coordinates sets operation */ 306 #define D3DDP_MAXTEXCOORD 8 307 308 /** opcode token mask */ 309 #define D3DSI_OPCODE_MASK 0x0000FFFF 310 311 /** opcodes types for PS and VS */ 312 typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE { 313 D3DSIO_NOP = 0, 314 D3DSIO_MOV = 1, 315 D3DSIO_ADD = 2, 316 D3DSIO_SUB = 3, 317 D3DSIO_MAD = 4, 318 D3DSIO_MUL = 5, 319 D3DSIO_RCP = 6, 320 D3DSIO_RSQ = 7, 321 D3DSIO_DP3 = 8, 322 D3DSIO_DP4 = 9, 323 D3DSIO_MIN = 10, 324 D3DSIO_MAX = 11, 325 D3DSIO_SLT = 12, 326 D3DSIO_SGE = 13, 327 D3DSIO_EXP = 14, 328 D3DSIO_LOG = 15, 329 D3DSIO_LIT = 16, 330 D3DSIO_DST = 17, 331 D3DSIO_LRP = 18, 332 D3DSIO_FRC = 19, 333 D3DSIO_M4x4 = 20, 334 D3DSIO_M4x3 = 21, 335 D3DSIO_M3x4 = 22, 336 D3DSIO_M3x3 = 23, 337 D3DSIO_M3x2 = 24, 338 339 D3DSIO_TEXCOORD = 64, 340 D3DSIO_TEXKILL = 65, 341 D3DSIO_TEX = 66, 342 D3DSIO_TEXBEM = 67, 343 D3DSIO_TEXBEML = 68, 344 D3DSIO_TEXREG2AR = 69, 345 D3DSIO_TEXREG2GB = 70, 346 D3DSIO_TEXM3x2PAD = 71, 347 D3DSIO_TEXM3x2TEX = 72, 348 D3DSIO_TEXM3x3PAD = 73, 349 D3DSIO_TEXM3x3TEX = 74, 350 D3DSIO_TEXM3x3DIFF = 75, 351 D3DSIO_TEXM3x3SPEC = 76, 352 D3DSIO_TEXM3x3VSPEC = 77, 353 D3DSIO_EXPP = 78, 354 D3DSIO_LOGP = 79, 355 D3DSIO_CND = 80, 356 D3DSIO_DEF = 81, 357 D3DSIO_TEXREG2RGB = 82, 358 D3DSIO_TEXDP3TEX = 83, 359 D3DSIO_TEXM3x2DEPTH = 84, 360 D3DSIO_TEXDP3 = 85, 361 D3DSIO_TEXM3x3 = 86, 362 D3DSIO_TEXDEPTH = 87, 363 D3DSIO_CMP = 88, 364 D3DSIO_BEM = 89, 365 366 D3DSIO_PHASE = 0xFFFD, 367 D3DSIO_COMMENT = 0xFFFE, 368 D3DSIO_END = 0XFFFF, 369 370 D3DSIO_FORCE_DWORD = 0X7FFFFFFF /** for 32-bit alignment */ 371 } D3DSHADER_INSTRUCTION_OPCODE_TYPE; 372 373 /** for parallelism */ 374 #define D3DSI_COISSUE 0x40000000 375 376 /** destination parameter modifiers (.xyzw) */ 377 #define D3DSP_WRITEMASK_0 0x00010000 /* .x r */ 378 #define D3DSP_WRITEMASK_1 0x00020000 /* .y g */ 379 #define D3DSP_WRITEMASK_2 0x00040000 /* .z b */ 380 #define D3DSP_WRITEMASK_3 0x00080000 /* .w a */ 381 #define D3DSP_WRITEMASK_ALL 0x000F0000 /* all */ 382 383 #define D3DSP_DSTMOD_SHIFT 20 384 #define D3DSP_DSTMOD_MASK (0xF << D3DSP_DSTMOD_SHIFT) 385 386 typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE { 387 D3DSPDM_NONE = 0 << D3DSP_DSTMOD_SHIFT, 388 D3DSPDM_SATURATE = 1 << D3DSP_DSTMOD_SHIFT, 389 D3DSPDM_FORCE_DWORD = 0X7FFFFFFF 390 } D3DSHADER_PARAM_DSTMOD_TYPE; 391 392 /** destination param */ 393 #define D3DSP_DSTSHIFT_SHIFT 24 394 #define D3DSP_DSTSHIFT_MASK (0xF << D3DSP_DSTSHIFT_SHIFT) 395 396 /** destination/source reg type */ 397 #define D3DSP_REGTYPE_SHIFT 28 398 #define D3DSP_REGTYPE_MASK (0x7 << D3DSP_REGTYPE_SHIFT) 399 400 typedef enum _D3DSHADER_PARAM_REGISTER_TYPE { 401 D3DSPR_TEMP = 0 << D3DSP_REGTYPE_SHIFT, 402 D3DSPR_INPUT = 1 << D3DSP_REGTYPE_SHIFT, 403 D3DSPR_CONST = 2 << D3DSP_REGTYPE_SHIFT, 404 D3DSPR_ADDR = 3 << D3DSP_REGTYPE_SHIFT, 405 D3DSPR_TEXTURE = 3 << D3DSP_REGTYPE_SHIFT, 406 D3DSPR_RASTOUT = 4 << D3DSP_REGTYPE_SHIFT, 407 D3DSPR_ATTROUT = 5 << D3DSP_REGTYPE_SHIFT, 408 D3DSPR_TEXCRDOUT = 6 << D3DSP_REGTYPE_SHIFT, 409 D3DSPR_FORCE_DWORD = 0x7FFFFFFF 410 } D3DSHADER_PARAM_REGISTER_TYPE; 411 412 typedef enum _D3DVS_RASTOUT_OFFSETS { 413 D3DSRO_POSITION = 0, 414 D3DSRO_FOG = 1, 415 D3DSRO_POINT_SIZE = 2, 416 D3DSRO_FORCE_DWORD = 0x7FFFFFFF 417 } D3DVS_RASTOUT_OFFSETS; 418 419 #define D3DVS_ADDRESSMODE_SHIFT 13 420 #define D3DVS_ADDRESSMODE_MASK (0x1 << D3DVS_ADDRESSMODE_SHIFT) 421 422 typedef enum _D3DVS_ADDRESSMODE_TYPE { 423 D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT, 424 D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT, 425 D3DVS_ADDRMODE_FORCE_DWORD = 0x7FFFFFFF 426 } D3DVS_ADDRESSMODE_TYPE; 427 428 #define D3DVS_SWIZZLE_SHIFT 16 429 #define D3DVS_SWIZZLE_MASK (0xFF << D3DVS_SWIZZLE_SHIFT) 430 431 #define D3DSP_SWIZZLE_SHIFT 16 432 #define D3DSP_SWIZZLE_MASK (0xFF << D3DSP_SWIZZLE_SHIFT) 433 434 #define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT) 435 #define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT) 436 #define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT) 437 #define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT) 438 439 #define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2)) 440 #define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2)) 441 #define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2)) 442 #define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2)) 443 444 #define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4)) 445 #define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4)) 446 #define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4)) 447 #define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4)) 448 449 #define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6)) 450 #define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6)) 451 #define D3DVS_W_Z (2 << (D3DVS_SWIZZLE_SHIFT + 6)) 452 #define D3DVS_W_W (3 << (D3DVS_SWIZZLE_SHIFT + 6)) 453 454 #define D3DVS_NOSWIZZLE (D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W) 455 456 #define D3DSP_NOSWIZZLE \ 457 ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6))) 458 459 #define D3DSP_SRCMOD_SHIFT 24 460 #define D3DSP_SRCMOD_MASK (0xF << D3DSP_SRCMOD_SHIFT) 461 462 typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE { 463 D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT, 464 D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT, 465 D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT, 466 D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT, 467 D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT, 468 D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT, 469 D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT, 470 D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT, 471 D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT, 472 D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT, 473 D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT, 474 D3DSPSM_FORCE_DWORD = 0x7FFFFFFF 475 } D3DSHADER_PARAM_SRCMOD_TYPE; 476 477 #define D3DPS_VERSION(major, minor) (0xFFFF0000 | ((major) << 8) | (minor)) 478 #define D3DVS_VERSION(major, minor) (0xFFFE0000 | ((major) << 8) | (minor)) 479 #define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xFF) 480 #define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xFF) 481 482 #define D3DSI_COMMENTSIZE_SHIFT 16 483 #define D3DSI_COMMENTSIZE_MASK (0x7FFF << D3DSI_COMMENTSIZE_SHIFT) 484 485 #define D3DSHADER_COMMENT(commentSize) \ 486 ((((commentSize) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT) 487 488 #define D3DPS_END() 0x0000FFFF 489 #define D3DVS_END() 0x0000FFFF 490 491 492 /***************************************************************************** 493 * Direct 3D v8 enumerated types 494 */ 495 typedef enum _D3DBACKBUFFER_TYPE { 496 D3DBACKBUFFER_TYPE_MONO = 0, 497 D3DBACKBUFFER_TYPE_LEFT = 1, 498 D3DBACKBUFFER_TYPE_RIGHT = 2, 499 500 D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff 501 } D3DBACKBUFFER_TYPE; 502 503 typedef enum _D3DBASISTYPE{ 504 D3DBASIS_BEZIER = 0, 505 D3DBASIS_BSPLINE = 1, 506 D3DBASIS_INTERPOLATE = 2, 507 508 D3DBASIS_FORCE_DWORD = 0x7fffffff 509 } D3DBASISTYPE; 510 511 typedef enum _D3DBLEND { 512 D3DBLEND_ZERO = 1, 513 D3DBLEND_ONE = 2, 514 D3DBLEND_SRCCOLOR = 3, 515 D3DBLEND_INVSRCCOLOR = 4, 516 D3DBLEND_SRCALPHA = 5, 517 D3DBLEND_INVSRCALPHA = 6, 518 D3DBLEND_DESTALPHA = 7, 519 D3DBLEND_INVDESTALPHA = 8, 520 D3DBLEND_DESTCOLOR = 9, 521 D3DBLEND_INVDESTCOLOR = 10, 522 D3DBLEND_SRCALPHASAT = 11, 523 D3DBLEND_BOTHSRCALPHA = 12, 524 D3DBLEND_BOTHINVSRCALPHA = 13, 525 526 D3DBLEND_FORCE_DWORD = 0x7fffffff 527 } D3DBLEND; 528 529 typedef enum _D3DBLENDOP { 530 D3DBLENDOP_ADD = 1, 531 D3DBLENDOP_SUBTRACT = 2, 532 D3DBLENDOP_REVSUBTRACT = 3, 533 D3DBLENDOP_MIN = 4, 534 D3DBLENDOP_MAX = 5, 535 536 D3DBLENDOP_FORCE_DWORD = 0x7fffffff 537 } D3DBLENDOP; 538 539 typedef enum _D3DCMPFUNC { 540 D3DCMP_NEVER = 1, 541 D3DCMP_LESS = 2, 542 D3DCMP_EQUAL = 3, 543 D3DCMP_LESSEQUAL = 4, 544 D3DCMP_GREATER = 5, 545 D3DCMP_NOTEQUAL = 6, 546 D3DCMP_GREATEREQUAL = 7, 547 D3DCMP_ALWAYS = 8, 548 549 D3DCMP_FORCE_DWORD = 0x7fffffff 550 } D3DCMPFUNC; 551 552 typedef enum _D3DCUBEMAP_FACES { 553 D3DCUBEMAP_FACE_POSITIVE_X = 0, 554 D3DCUBEMAP_FACE_NEGATIVE_X = 1, 555 D3DCUBEMAP_FACE_POSITIVE_Y = 2, 556 D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 557 D3DCUBEMAP_FACE_POSITIVE_Z = 4, 558 D3DCUBEMAP_FACE_NEGATIVE_Z = 5, 559 560 D3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff 561 } D3DCUBEMAP_FACES; 562 563 typedef enum _D3DCULL { 564 D3DCULL_NONE = 1, 565 D3DCULL_CW = 2, 566 D3DCULL_CCW = 3, 567 568 D3DCULL_FORCE_DWORD = 0x7fffffff 569 } D3DCULL; 570 571 typedef enum _D3DDEBUGMONITORTOKENS { 572 D3DDMT_ENABLE = 0, 573 D3DDMT_DISABLE = 1, 574 575 D3DDMT_FORCE_DWORD = 0x7fffffff 576 } D3DDEBUGMONITORTOKENS; 577 578 typedef enum _D3DDEVTYPE { 579 D3DDEVTYPE_HAL = 1, 580 D3DDEVTYPE_REF = 2, 581 D3DDEVTYPE_SW = 3, 582 583 D3DDEVTYPE_FORCE_DWORD = 0xffffffff 584 } D3DDEVTYPE; 585 586 typedef enum _D3DFILLMODE { 587 D3DFILL_POINT = 1, 588 D3DFILL_WIREFRAME = 2, 589 D3DFILL_SOLID = 3, 590 591 D3DFILL_FORCE_DWORD = 0x7fffffff 592 } D3DFILLMODE; 593 594 typedef enum _D3DFOGMODE { 595 D3DFOG_NONE = 0, 596 D3DFOG_EXP = 1, 597 D3DFOG_EXP2 = 2, 598 D3DFOG_LINEAR = 3, 599 600 D3DFOG_FORCE_DWORD = 0x7fffffff 601 } D3DFOGMODE; 602 603 typedef enum _D3DFORMAT { 604 D3DFMT_UNKNOWN = 0, 605 606 D3DFMT_R8G8B8 = 20, 607 D3DFMT_A8R8G8B8 = 21, 608 D3DFMT_X8R8G8B8 = 22, 609 D3DFMT_R5G6B5 = 23, 610 D3DFMT_X1R5G5B5 = 24, 611 D3DFMT_A1R5G5B5 = 25, 612 D3DFMT_A4R4G4B4 = 26, 613 D3DFMT_R3G3B2 = 27, 614 D3DFMT_A8 = 28, 615 D3DFMT_A8R3G3B2 = 29, 616 D3DFMT_X4R4G4B4 = 30, 617 D3DFMT_A2B10G10R10 = 31, 618 D3DFMT_G16R16 = 34, 619 620 D3DFMT_A8P8 = 40, 621 D3DFMT_P8 = 41, 622 623 D3DFMT_L8 = 50, 624 D3DFMT_A8L8 = 51, 625 D3DFMT_A4L4 = 52, 626 627 D3DFMT_V8U8 = 60, 628 D3DFMT_L6V5U5 = 61, 629 D3DFMT_X8L8V8U8 = 62, 630 D3DFMT_Q8W8V8U8 = 63, 631 D3DFMT_V16U16 = 64, 632 D3DFMT_W11V11U10 = 65, 633 D3DFMT_A2W10V10U10 = 67, 634 635 D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'), 636 D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'), 637 D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'), 638 D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'), 639 D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'), 640 D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'), 641 D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'), 642 643 D3DFMT_D16_LOCKABLE = 70, 644 D3DFMT_D32 = 71, 645 D3DFMT_D15S1 = 73, 646 D3DFMT_D24S8 = 75, 647 D3DFMT_D16 = 80, 648 D3DFMT_D24X8 = 77, 649 D3DFMT_D24X4S4 = 79, 650 651 D3DFMT_VERTEXDATA = 100, 652 D3DFMT_INDEX16 = 101, 653 D3DFMT_INDEX32 = 102, 654 655 D3DFMT_FORCE_DWORD = 0xFFFFFFFF 656 } D3DFORMAT; 657 658 typedef enum _D3DLIGHTTYPE { 659 D3DLIGHT_POINT = 1, 660 D3DLIGHT_SPOT = 2, 661 D3DLIGHT_DIRECTIONAL = 3, 662 663 D3DLIGHT_FORCE_DWORD = 0x7fffffff 664 } D3DLIGHTTYPE; 665 666 typedef enum _D3DMATERIALCOLORSOURCE { 667 D3DMCS_MATERIAL = 0, 668 D3DMCS_COLOR1 = 1, 669 D3DMCS_COLOR2 = 2, 670 671 D3DMCS_FORCE_DWORD = 0x7fffffff 672 } D3DMATERIALCOLORSOURCE; 673 674 typedef enum _D3DMULTISAMPLE_TYPE { 675 D3DMULTISAMPLE_NONE = 0, 676 D3DMULTISAMPLE_2_SAMPLES = 2, 677 D3DMULTISAMPLE_3_SAMPLES = 3, 678 D3DMULTISAMPLE_4_SAMPLES = 4, 679 D3DMULTISAMPLE_5_SAMPLES = 5, 680 D3DMULTISAMPLE_6_SAMPLES = 6, 681 D3DMULTISAMPLE_7_SAMPLES = 7, 682 D3DMULTISAMPLE_8_SAMPLES = 8, 683 D3DMULTISAMPLE_9_SAMPLES = 9, 684 D3DMULTISAMPLE_10_SAMPLES = 10, 685 D3DMULTISAMPLE_11_SAMPLES = 11, 686 D3DMULTISAMPLE_12_SAMPLES = 12, 687 D3DMULTISAMPLE_13_SAMPLES = 13, 688 D3DMULTISAMPLE_14_SAMPLES = 14, 689 D3DMULTISAMPLE_15_SAMPLES = 15, 690 D3DMULTISAMPLE_16_SAMPLES = 16, 691 692 D3DMULTISAMPLE_FORCE_DWORD = 0x7fffffff 693 } D3DMULTISAMPLE_TYPE; 694 695 typedef enum _D3DORDERTYPE { 696 D3DORDER_LINEAR = 1, 697 D3DORDER_QUADRATIC = 2, 698 D3DORDER_CUBIC = 3, 699 D3DORDER_QUINTIC = 5, 700 701 D3DORDER_FORCE_DWORD = 0x7fffffff 702 } D3DORDERTYPE; 703 704 typedef enum _D3DPATCHEDGESTYLE { 705 D3DPATCHEDGE_DISCRETE = 0, 706 D3DPATCHEDGE_CONTINUOUS = 1, 707 708 D3DPATCHEDGE_FORCE_DWORD = 0x7fffffff, 709 } D3DPATCHEDGESTYLE; 710 711 typedef enum _D3DPOOL { 712 D3DPOOL_DEFAULT = 0, 713 D3DPOOL_MANAGED = 1, 714 D3DPOOL_SYSTEMMEM = 2, 715 D3DPOOL_SCRATCH = 3, 716 717 D3DPOOL_FORCE_DWORD = 0x7fffffff 718 } D3DPOOL; 719 720 typedef enum _D3DPRIMITIVETYPE { 721 D3DPT_POINTLIST = 1, 722 D3DPT_LINELIST = 2, 723 D3DPT_LINESTRIP = 3, 724 D3DPT_TRIANGLELIST = 4, 725 D3DPT_TRIANGLESTRIP = 5, 726 D3DPT_TRIANGLEFAN = 6, 727 728 D3DPT_FORCE_DWORD = 0x7fffffff 729 } D3DPRIMITIVETYPE; 730 731 typedef enum _D3DRENDERSTATETYPE { 732 D3DRS_ZENABLE = 7, 733 D3DRS_FILLMODE = 8, 734 D3DRS_SHADEMODE = 9, 735 D3DRS_LINEPATTERN = 10, 736 D3DRS_ZWRITEENABLE = 14, 737 D3DRS_ALPHATESTENABLE = 15, 738 D3DRS_LASTPIXEL = 16, 739 D3DRS_SRCBLEND = 19, 740 D3DRS_DESTBLEND = 20, 741 D3DRS_CULLMODE = 22, 742 D3DRS_ZFUNC = 23, 743 D3DRS_ALPHAREF = 24, 744 D3DRS_ALPHAFUNC = 25, 745 D3DRS_DITHERENABLE = 26, 746 D3DRS_ALPHABLENDENABLE = 27, 747 D3DRS_FOGENABLE = 28, 748 D3DRS_SPECULARENABLE = 29, 749 D3DRS_ZVISIBLE = 30, 750 D3DRS_FOGCOLOR = 34, 751 D3DRS_FOGTABLEMODE = 35, 752 D3DRS_FOGSTART = 36, 753 D3DRS_FOGEND = 37, 754 D3DRS_FOGDENSITY = 38, 755 D3DRS_EDGEANTIALIAS = 40, 756 D3DRS_ZBIAS = 47, 757 D3DRS_RANGEFOGENABLE = 48, 758 D3DRS_STENCILENABLE = 52, 759 D3DRS_STENCILFAIL = 53, 760 D3DRS_STENCILZFAIL = 54, 761 D3DRS_STENCILPASS = 55, 762 D3DRS_STENCILFUNC = 56, 763 D3DRS_STENCILREF = 57, 764 D3DRS_STENCILMASK = 58, 765 D3DRS_STENCILWRITEMASK = 59, 766 D3DRS_TEXTUREFACTOR = 60, 767 D3DRS_WRAP0 = 128, 768 D3DRS_WRAP1 = 129, 769 D3DRS_WRAP2 = 130, 770 D3DRS_WRAP3 = 131, 771 D3DRS_WRAP4 = 132, 772 D3DRS_WRAP5 = 133, 773 D3DRS_WRAP6 = 134, 774 D3DRS_WRAP7 = 135, 775 D3DRS_CLIPPING = 136, 776 D3DRS_LIGHTING = 137, 777 D3DRS_AMBIENT = 139, 778 D3DRS_FOGVERTEXMODE = 140, 779 D3DRS_COLORVERTEX = 141, 780 D3DRS_LOCALVIEWER = 142, 781 D3DRS_NORMALIZENORMALS = 143, 782 D3DRS_DIFFUSEMATERIALSOURCE = 145, 783 D3DRS_SPECULARMATERIALSOURCE = 146, 784 D3DRS_AMBIENTMATERIALSOURCE = 147, 785 D3DRS_EMISSIVEMATERIALSOURCE = 148, 786 D3DRS_VERTEXBLEND = 151, 787 D3DRS_CLIPPLANEENABLE = 152, 788 D3DRS_SOFTWAREVERTEXPROCESSING = 153, 789 D3DRS_POINTSIZE = 154, 790 D3DRS_POINTSIZE_MIN = 155, 791 D3DRS_POINTSPRITEENABLE = 156, 792 D3DRS_POINTSCALEENABLE = 157, 793 D3DRS_POINTSCALE_A = 158, 794 D3DRS_POINTSCALE_B = 159, 795 D3DRS_POINTSCALE_C = 160, 796 D3DRS_MULTISAMPLEANTIALIAS = 161, 797 D3DRS_MULTISAMPLEMASK = 162, 798 D3DRS_PATCHEDGESTYLE = 163, 799 D3DRS_PATCHSEGMENTS = 164, 800 D3DRS_DEBUGMONITORTOKEN = 165, 801 D3DRS_POINTSIZE_MAX = 166, 802 D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 803 D3DRS_COLORWRITEENABLE = 168, 804 D3DRS_TWEENFACTOR = 170, 805 D3DRS_BLENDOP = 171, 806 D3DRS_POSITIONORDER = 172, 807 D3DRS_NORMALORDER = 173, 808 809 D3DRS_FORCE_DWORD = 0x7fffffff 810 } D3DRENDERSTATETYPE; 811 812 typedef enum _D3DRESOURCETYPE { 813 D3DRTYPE_SURFACE = 1, 814 D3DRTYPE_VOLUME = 2, 815 D3DRTYPE_TEXTURE = 3, 816 D3DRTYPE_VOLUMETEXTURE = 4, 817 D3DRTYPE_CUBETEXTURE = 5, 818 D3DRTYPE_VERTEXBUFFER = 6, 819 D3DRTYPE_INDEXBUFFER = 7, 820 821 D3DRTYPE_FORCE_DWORD = 0x7fffffff 822 } D3DRESOURCETYPE; 823 824 typedef enum _D3DSHADEMODE { 825 D3DSHADE_FLAT = 1, 826 D3DSHADE_GOURAUD = 2, 827 D3DSHADE_PHONG = 3, 828 829 D3DSHADE_FORCE_DWORD = 0x7fffffff 830 } D3DSHADEMODE; 831 832 typedef enum _D3DSTATEBLOCKTYPE { 833 D3DSBT_ALL = 1, 834 D3DSBT_PIXELSTATE = 2, 835 D3DSBT_VERTEXSTATE = 3, 836 837 D3DSBT_FORCE_DWORD = 0xffffffff 838 } D3DSTATEBLOCKTYPE; 839 840 typedef enum _D3DSTENCILOP { 841 D3DSTENCILOP_KEEP = 1, 842 D3DSTENCILOP_ZERO = 2, 843 D3DSTENCILOP_REPLACE = 3, 844 D3DSTENCILOP_INCRSAT = 4, 845 D3DSTENCILOP_DECRSAT = 5, 846 D3DSTENCILOP_INVERT = 6, 847 D3DSTENCILOP_INCR = 7, 848 D3DSTENCILOP_DECR = 8, 849 850 D3DSTENCILOP_FORCE_DWORD = 0x7fffffff 851 } D3DSTENCILOP; 852 853 typedef enum _D3DSWAPEFFECT { 854 D3DSWAPEFFECT_DISCARD = 1, 855 D3DSWAPEFFECT_FLIP = 2, 856 D3DSWAPEFFECT_COPY = 3, 857 D3DSWAPEFFECT_COPY_VSYNC = 4, 858 859 D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF 860 } D3DSWAPEFFECT; 861 862 typedef enum _D3DTEXTUREADDRESS { 863 D3DTADDRESS_WRAP = 1, 864 D3DTADDRESS_MIRROR = 2, 865 D3DTADDRESS_CLAMP = 3, 866 D3DTADDRESS_BORDER = 4, 867 D3DTADDRESS_MIRRORONCE = 5, 868 869 D3DTADDRESS_FORCE_DWORD = 0x7fffffff 870 } D3DTEXTUREADDRESS; 871 872 typedef enum _D3DTEXTUREFILTERTYPE { 873 D3DTEXF_NONE = 0, 874 D3DTEXF_POINT = 1, 875 D3DTEXF_LINEAR = 2, 876 D3DTEXF_ANISOTROPIC = 3, 877 D3DTEXF_FLATCUBIC = 4, 878 D3DTEXF_GAUSSIANCUBIC = 5, 879 880 D3DTEXF_FORCE_DWORD = 0x7fffffff 881 } D3DTEXTUREFILTERTYPE; 882 883 typedef enum _D3DTEXTUREOP { 884 D3DTOP_DISABLE = 1, 885 D3DTOP_SELECTARG1 = 2, 886 D3DTOP_SELECTARG2 = 3, 887 D3DTOP_MODULATE = 4, 888 D3DTOP_MODULATE2X = 5, 889 D3DTOP_MODULATE4X = 6, 890 D3DTOP_ADD = 7, 891 D3DTOP_ADDSIGNED = 8, 892 D3DTOP_ADDSIGNED2X = 9, 893 D3DTOP_SUBTRACT = 10, 894 D3DTOP_ADDSMOOTH = 11, 895 D3DTOP_BLENDDIFFUSEALPHA = 12, 896 D3DTOP_BLENDTEXTUREALPHA = 13, 897 D3DTOP_BLENDFACTORALPHA = 14, 898 D3DTOP_BLENDTEXTUREALPHAPM = 15, 899 D3DTOP_BLENDCURRENTALPHA = 16, 900 D3DTOP_PREMODULATE = 17, 901 D3DTOP_MODULATEALPHA_ADDCOLOR = 18, 902 D3DTOP_MODULATECOLOR_ADDALPHA = 19, 903 D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, 904 D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, 905 D3DTOP_BUMPENVMAP = 22, 906 D3DTOP_BUMPENVMAPLUMINANCE = 23, 907 D3DTOP_DOTPRODUCT3 = 24, 908 D3DTOP_MULTIPLYADD = 25, 909 D3DTOP_LERP = 26, 910 911 D3DTOP_FORCE_DWORD = 0x7fffffff, 912 } D3DTEXTUREOP; 913 914 typedef enum _D3DTEXTURESTAGESTATETYPE { 915 D3DTSS_COLOROP = 1, 916 D3DTSS_COLORARG1 = 2, 917 D3DTSS_COLORARG2 = 3, 918 D3DTSS_ALPHAOP = 4, 919 D3DTSS_ALPHAARG1 = 5, 920 D3DTSS_ALPHAARG2 = 6, 921 D3DTSS_BUMPENVMAT00 = 7, 922 D3DTSS_BUMPENVMAT01 = 8, 923 D3DTSS_BUMPENVMAT10 = 9, 924 D3DTSS_BUMPENVMAT11 = 10, 925 D3DTSS_TEXCOORDINDEX = 11, 926 D3DTSS_ADDRESSU = 13, 927 D3DTSS_ADDRESSV = 14, 928 D3DTSS_BORDERCOLOR = 15, 929 D3DTSS_MAGFILTER = 16, 930 D3DTSS_MINFILTER = 17, 931 D3DTSS_MIPFILTER = 18, 932 D3DTSS_MIPMAPLODBIAS = 19, 933 D3DTSS_MAXMIPLEVEL = 20, 934 D3DTSS_MAXANISOTROPY = 21, 935 D3DTSS_BUMPENVLSCALE = 22, 936 D3DTSS_BUMPENVLOFFSET = 23, 937 D3DTSS_TEXTURETRANSFORMFLAGS = 24, 938 D3DTSS_ADDRESSW = 25, 939 D3DTSS_COLORARG0 = 26, 940 D3DTSS_ALPHAARG0 = 27, 941 D3DTSS_RESULTARG = 28, 942 943 D3DTSS_FORCE_DWORD = 0x7fffffff 944 } D3DTEXTURESTAGESTATETYPE; 945 946 typedef enum _D3DTEXTURETRANSFORMFLAGS { 947 D3DTTFF_DISABLE = 0, 948 D3DTTFF_COUNT1 = 1, 949 D3DTTFF_COUNT2 = 2, 950 D3DTTFF_COUNT3 = 3, 951 D3DTTFF_COUNT4 = 4, 952 D3DTTFF_PROJECTED = 256, 953 954 D3DTTFF_FORCE_DWORD = 0x7fffffff 955 } D3DTEXTURETRANSFORMFLAGS; 956 957 typedef enum _D3DTRANSFORMSTATETYPE { 958 D3DTS_VIEW = 2, 959 D3DTS_PROJECTION = 3, 960 D3DTS_TEXTURE0 = 16, 961 D3DTS_TEXTURE1 = 17, 962 D3DTS_TEXTURE2 = 18, 963 D3DTS_TEXTURE3 = 19, 964 D3DTS_TEXTURE4 = 20, 965 D3DTS_TEXTURE5 = 21, 966 D3DTS_TEXTURE6 = 22, 967 D3DTS_TEXTURE7 = 23, 968 969 D3DTS_FORCE_DWORD = 0x7fffffff 970 } D3DTRANSFORMSTATETYPE; 971 972 typedef enum _D3DVERTEXBLENDFLAGS { 973 D3DVBF_DISABLE = 0, 974 D3DVBF_1WEIGHTS = 1, 975 D3DVBF_2WEIGHTS = 2, 976 D3DVBF_3WEIGHTS = 3, 977 D3DVBF_TWEENING = 255, 978 D3DVBF_0WEIGHTS = 256 979 } D3DVERTEXBLENDFLAGS; 980 981 typedef enum _D3DZBUFFERTYPE { 982 D3DZB_FALSE = 0, 983 D3DZB_TRUE = 1, 984 D3DZB_USEW = 2, 985 986 D3DZB_FORCE_DWORD = 0x7fffffff 987 } D3DZBUFFERTYPE; 988 989 990 /***************************************************************************** 991 * Direct 3D v8 typedefs 992 */ 993 typedef DWORD D3DCOLOR; 994 995 /***************************************************************************** 996 * Direct 3D v8 structures 997 */ 998 typedef struct _D3DADAPTER_IDENTIFIER8 { 999 char Driver[MAX_DEVICE_IDENTIFIER_STRING]; 1000 char Description[MAX_DEVICE_IDENTIFIER_STRING]; 1001 1002 LARGE_INTEGER DriverVersion; 1003 DWORD VendorId; 1004 DWORD DeviceId; 1005 DWORD SubSysId; 1006 DWORD Revision; 1007 1008 GUID DeviceIdentifier; 1009 1010 DWORD WHQLLevel; 1011 } D3DADAPTER_IDENTIFIER8; 1012 1013 typedef struct _D3DBOX { 1014 UINT Left; 1015 UINT Top; 1016 UINT Right; 1017 UINT Bottom; 1018 UINT Front; 1019 UINT Back; 1020 } D3DBOX; 1021 1022 typedef struct _D3DCLIPSTATUS8 { 1023 DWORD ClipUnion; 1024 DWORD ClipIntersection; 1025 } D3DCLIPSTATUS8; 1026 1027 typedef struct _D3DCOLORVALUE { 1028 float r; 1029 float g; 1030 float b; 1031 float a; 1032 } D3DCOLORVALUE; 1033 1034 typedef struct _D3DDEVICE_CREATION_PARAMETERS { 1035 UINT AdapterOrdinal; 1036 D3DDEVTYPE DeviceType; 1037 HWND hFocusWindow; 1038 DWORD BehaviorFlags; 1039 } D3DDEVICE_CREATION_PARAMETERS; 1040 1041 typedef struct _D3DDISPLAYMODE { 1042 UINT Width; 1043 UINT Height; 1044 UINT RefreshRate; 1045 D3DFORMAT Format; 1046 } D3DDISPLAYMODE; 1047 1048 typedef struct _D3DGAMMARAMP { 1049 WORD red [256]; 1050 WORD green[256]; 1051 WORD blue [256]; 1052 } D3DGAMMARAMP; 1053 1054 typedef struct _D3DINDEXBUFFER_DESC { 1055 D3DFORMAT Format; 1056 D3DRESOURCETYPE Type; 1057 DWORD Usage; 1058 D3DPOOL Pool; 1059 UINT Size; 1060 } D3DINDEXBUFFER_DESC; 1061 1062 #ifndef D3DVECTOR_DEFINED 1063 typedef struct _D3DVECTOR { 1064 float x; 1065 float y; 1066 float z; 1067 } D3DVECTOR; 1068 #define D3DVECTOR_DEFINED 1069 #endif 1070 1071 typedef struct _D3DLIGHT8 { 1072 D3DLIGHTTYPE Type; 1073 D3DCOLORVALUE Diffuse; 1074 D3DCOLORVALUE Specular; 1075 D3DCOLORVALUE Ambient; 1076 D3DVECTOR Position; 1077 D3DVECTOR Direction; 1078 float Range; 1079 float Falloff; 1080 float Attenuation0; 1081 float Attenuation1; 1082 float Attenuation2; 1083 float Theta; 1084 float Phi; 1085 } D3DLIGHT8; 1086 1087 typedef struct _D3DLINEPATTERN { 1088 WORD wRepeatFactor; 1089 WORD wLinePattern; 1090 } D3DLINEPATTERN; 1091 1092 typedef struct _D3DLOCKED_BOX { 1093 INT RowPitch; 1094 INT SlicePitch; 1095 void* pBits; 1096 } D3DLOCKED_BOX; 1097 1098 typedef struct _D3DLOCKED_RECT { 1099 INT Pitch; 1100 void* pBits; 1101 } D3DLOCKED_RECT; 1102 1103 typedef struct _D3DMATERIAL8 { 1104 D3DCOLORVALUE Diffuse; 1105 D3DCOLORVALUE Ambient; 1106 D3DCOLORVALUE Specular; 1107 D3DCOLORVALUE Emissive; 1108 float Power; 1109 } D3DMATERIAL8; 1110 1111 typedef struct _D3DMATRIX { 1112 union { 1113 struct { 1114 float _11, _12, _13, _14; 1115 float _21, _22, _23, _24; 1116 float _31, _32, _33, _34; 1117 float _41, _42, _43, _44; 1118 } DUMMYSTRUCTNAME; 1119 float m[4][4]; 1120 } DUMMYUNIONNAME; 1121 } D3DMATRIX; 1122 1123 #define D3DPRESENT_RATE_DEFAULT 0 1124 #define D3DPRESENT_RATE_UNLIMITED 0x7fffffff 1125 1126 typedef struct _D3DPRESENT_PARAMETERS_ { 1127 UINT BackBufferWidth; 1128 UINT BackBufferHeight; 1129 D3DFORMAT BackBufferFormat; 1130 UINT BackBufferCount; 1131 1132 D3DMULTISAMPLE_TYPE MultiSampleType; 1133 1134 D3DSWAPEFFECT SwapEffect; 1135 HWND hDeviceWindow; 1136 WINBOOL Windowed; 1137 WINBOOL EnableAutoDepthStencil; 1138 D3DFORMAT AutoDepthStencilFormat; 1139 DWORD Flags; 1140 1141 UINT FullScreen_RefreshRateInHz; 1142 UINT FullScreen_PresentationInterval; 1143 1144 } D3DPRESENT_PARAMETERS; 1145 1146 #define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 1147 1148 typedef struct _D3DRANGE { 1149 UINT Offset; 1150 UINT Size; 1151 } D3DRANGE; 1152 1153 typedef struct _D3DRASTER_STATUS { 1154 WINBOOL InVBlank; 1155 UINT ScanLine; 1156 } D3DRASTER_STATUS; 1157 1158 typedef struct _D3DRECT { 1159 LONG x1; 1160 LONG y1; 1161 LONG x2; 1162 LONG y2; 1163 } D3DRECT; 1164 1165 typedef struct _D3DRECTPATCH_INFO { 1166 UINT StartVertexOffsetWidth; 1167 UINT StartVertexOffsetHeight; 1168 UINT Width; 1169 UINT Height; 1170 UINT Stride; 1171 D3DBASISTYPE Basis; 1172 D3DORDERTYPE Order; 1173 } D3DRECTPATCH_INFO; 1174 1175 typedef struct _D3DSURFACE_DESC { 1176 D3DFORMAT Format; 1177 D3DRESOURCETYPE Type; 1178 DWORD Usage; 1179 D3DPOOL Pool; 1180 UINT Size; 1181 D3DMULTISAMPLE_TYPE MultiSampleType; 1182 UINT Width; 1183 UINT Height; 1184 } D3DSURFACE_DESC; 1185 1186 typedef struct _D3DTRIPATCH_INFO { 1187 UINT StartVertexOffset; 1188 UINT NumVertices; 1189 D3DBASISTYPE Basis; 1190 D3DORDERTYPE Order; 1191 } D3DTRIPATCH_INFO; 1192 1193 typedef struct _D3DVERTEXBUFFER_DESC { 1194 D3DFORMAT Format; 1195 D3DRESOURCETYPE Type; 1196 DWORD Usage; 1197 D3DPOOL Pool; 1198 UINT Size; 1199 DWORD FVF; 1200 } D3DVERTEXBUFFER_DESC; 1201 1202 typedef struct _D3DVIEWPORT8 { 1203 DWORD X; 1204 DWORD Y; 1205 DWORD Width; 1206 DWORD Height; 1207 float MinZ; 1208 float MaxZ; 1209 } D3DVIEWPORT8; 1210 1211 typedef struct _D3DVOLUME_DESC { 1212 D3DFORMAT Format; 1213 D3DRESOURCETYPE Type; 1214 DWORD Usage; 1215 D3DPOOL Pool; 1216 UINT Size; 1217 UINT Width; 1218 UINT Height; 1219 UINT Depth; 1220 } D3DVOLUME_DESC; 1221 1222 #ifdef __i386__ 1223 #pragma pack(pop) 1224 #endif 1225 1226 #endif /* __WINE_D3D8TYPES_H */