1 /** 2 * @file d3d9types.h 3 * Copyright 2012, 2013 MinGW.org project 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the next 13 * paragraph) shall be included in all copies or substantial portions of the 14 * Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22 * DEALINGS IN THE SOFTWARE. 23 */ 24 /* Written by Filip Navara <xnavara@volny.cz> */ 25 #ifndef _D3D9_TYPES_H 26 #define _D3D9_TYPES_H 27 #pragma GCC system_header 28 #include <_mingw.h> 29 30 #ifndef DIRECT3D_VERSION 31 #define DIRECT3D_VERSION 0x0900 32 #endif 33 34 #if (DIRECT3D_VERSION >= 0x0900) 35 36 #include <pshpack4.h> 37 38 #define D3DCLEAR_TARGET 0x01 39 #define D3DCLEAR_ZBUFFER 0x02 40 #define D3DCLEAR_STENCIL 0x04 41 #define D3DCLIPPLANE0 0x01 42 #define D3DCLIPPLANE1 0x02 43 #define D3DCLIPPLANE2 0x04 44 #define D3DCLIPPLANE3 0x08 45 #define D3DCLIPPLANE4 0x10 46 #define D3DCLIPPLANE5 0x20 47 #define D3DCOLOR_ARGB(a,r,g,b) ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff))) 48 #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)) 49 #define D3DCOLOR_RGBA(r,g,b,a) D3DCOLOR_ARGB(a,r,g,b) 50 #define D3DCOLOR_XRGB(r,g,b) D3DCOLOR_ARGB(0xff,r,g,b) 51 #define D3DCOLOR_XYUV(y,u,v) D3DCOLOR_ARGB(0xff,y,u,v) 52 #define D3DCOLOR_AYUV(a,y,u,v) D3DCOLOR_ARGB(a,y,u,v) 53 #define D3DCOLORWRITEENABLE_RED 0x01 54 #define D3DCOLORWRITEENABLE_GREEN 0x02 55 #define D3DCOLORWRITEENABLE_BLUE 0x04 56 #define D3DCOLORWRITEENABLE_ALPHA 0x08 57 #define D3DCS_LEFT 0x01 58 #define D3DCS_RIGHT 0x02 59 #define D3DCS_TOP 0x04 60 #define D3DCS_BOTTOM 0x08 61 #define D3DCS_FRONT 0x10 62 #define D3DCS_BACK 0x20 63 #define D3DCS_PLANE0 0x40 64 #define D3DCS_PLANE1 0x80 65 #define D3DCS_PLANE2 0x100 66 #define D3DCS_PLANE3 0x200 67 #define D3DCS_PLANE4 0x400 68 #define D3DCS_PLANE5 0x800 69 #define D3DCS_ALL (D3DCS_LEFT|D3DCS_RIGHT|D3DCS_TOP|D3DCS_BOTTOM|D3DCS_FRONT|D3DCS_BACK|D3DCS_PLANE0|D3DCS_PLANE1|D3DCS_PLANE2|D3DCS_PLANE3|D3DCS_PLANE4|D3DCS_PLANE5) 70 #define D3DDECL_END() {0xff,0,D3DDECLTYPE_UNUSED,0,0,0} 71 #define D3DDP_MAXTEXCOORD 8 72 #define D3DPV_DONOTCOPYDATA 0x01 73 #define D3DTA_SELECTMASK 0x0f 74 #define D3DTA_DIFFUSE 0x00 75 #define D3DTA_CURRENT 0x01 76 #define D3DTA_TEXTURE 0x02 77 #define D3DTA_TFACTOR 0x03 78 #define D3DTA_SPECULAR 0x04 79 #define D3DTA_TEMP 0x05 80 #define D3DTA_CONSTANT 0x06 81 #define D3DTA_COMPLEMENT 0x10 82 #define D3DTA_ALPHAREPLICATE 0x20 83 #define D3DFVF_RESERVED0 0x01 84 #define D3DFVF_POSITION_MASK 0x4000E 85 #define D3DFVF_XYZ 0x02 86 #define D3DFVF_XYZRHW 0x04 87 #define D3DFVF_XYZB1 0x06 88 #define D3DFVF_XYZB2 0x08 89 #define D3DFVF_XYZB3 0x0a 90 #define D3DFVF_XYZB4 0x0c 91 #define D3DFVF_XYZB5 0x0e 92 #define D3DFVF_XYZW 0x4002 93 #define D3DFVF_NORMAL 0x10 94 #define D3DFVF_PSIZE 0x20 95 #define D3DFVF_DIFFUSE 0x40 96 #define D3DFVF_SPECULAR 0x80 97 #define D3DFVF_TEXCOUNT_MASK 0xf00 98 #define D3DFVF_TEXCOUNT_SHIFT 8 99 #define D3DFVF_TEX0 0x0000 100 #define D3DFVF_TEX1 0x0100 101 #define D3DFVF_TEX2 0x0200 102 #define D3DFVF_TEX3 0x0300 103 #define D3DFVF_TEX4 0x0400 104 #define D3DFVF_TEX5 0x0500 105 #define D3DFVF_TEX6 0x0600 106 #define D3DFVF_TEX7 0x0700 107 #define D3DFVF_TEX8 0x0800 108 #define D3DFVF_TEXCOORDSIZE1(i) (D3DFVF_TEXTUREFORMAT1 << (i * 2 + 16)) 109 #define D3DFVF_TEXCOORDSIZE2(i) (D3DFVF_TEXTUREFORMAT2) 110 #define D3DFVF_TEXCOORDSIZE3(i) (D3DFVF_TEXTUREFORMAT3 << (i * 2 + 16)) 111 #define D3DFVF_TEXCOORDSIZE4(i) (D3DFVF_TEXTUREFORMAT4 << (i * 2 + 16)) 112 #define D3DFVF_TEXTUREFORMAT1 3 113 #define D3DFVF_TEXTUREFORMAT2 0 114 #define D3DFVF_TEXTUREFORMAT3 1 115 #define D3DFVF_TEXTUREFORMAT4 2 116 #define D3DFVF_LASTBETA_UBYTE4 0x1000 117 #define D3DFVF_LASTBETA_D3DCOLOR 0x8000 118 #define D3DFVF_RESERVED2 0x6000 119 #define D3DDMAPSAMPLER 256 120 #define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1) 121 #define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2) 122 #define D3DVERTEXTEXTURESAMPLER2 (D3DDMAPSAMPLER+3) 123 #define D3DVERTEXTEXTURESAMPLER3 (D3DDMAPSAMPLER+4) 124 #define D3DVS_ADDRESSMODE_SHIFT 13 125 #define D3DVS_ADDRESSMODE_MASK (1 << D3DVS_ADDRESSMODE_SHIFT) 126 #define D3DVS_SWIZZLE_SHIFT 16 127 #define D3DVS_SWIZZLE_MASK 0x00FF0000 128 #define D3DVS_X_X (0 << D3DVS_SWIZZLE_SHIFT) 129 #define D3DVS_X_Y (1 << D3DVS_SWIZZLE_SHIFT) 130 #define D3DVS_X_Z (2 << D3DVS_SWIZZLE_SHIFT) 131 #define D3DVS_X_W (3 << D3DVS_SWIZZLE_SHIFT) 132 #define D3DVS_Y_X (0 << (D3DVS_SWIZZLE_SHIFT + 2)) 133 #define D3DVS_Y_Y (1 << (D3DVS_SWIZZLE_SHIFT + 2)) 134 #define D3DVS_Y_Z (2 << (D3DVS_SWIZZLE_SHIFT + 2)) 135 #define D3DVS_Y_W (3 << (D3DVS_SWIZZLE_SHIFT + 2)) 136 #define D3DVS_Z_X (0 << (D3DVS_SWIZZLE_SHIFT + 4)) 137 #define D3DVS_Z_Y (1 << (D3DVS_SWIZZLE_SHIFT + 4)) 138 #define D3DVS_Z_Z (2 << (D3DVS_SWIZZLE_SHIFT + 4)) 139 #define D3DVS_Z_W (3 << (D3DVS_SWIZZLE_SHIFT + 4)) 140 #define D3DVS_W_X (0 << (D3DVS_SWIZZLE_SHIFT + 6)) 141 #define D3DVS_W_Y (1 << (D3DVS_SWIZZLE_SHIFT + 6)) 142 #define D3DVS_W_Z (2 << (D3DVS_SWIZZLE_SHIFT + 6)) 143 #define D3DVS_W_W (3 << (D3DVS_SWIZZLE_SHIFT + 6)) 144 #define D3DVS_NOSWIZZLE (D3DVS_X_X|D3DVS_Y_Y|D3DVS_Z_Z|D3DVS_W_W) 145 #define D3DPRESENT_RATE_DEFAULT 0 146 #define D3DRENDERSTATE_WRAPBIAS 128UL 147 #define D3DSHADER_ADDRESSMODE_SHIFT 13 148 #define D3DSHADER_ADDRESSMODE_MASK (1 << D3DSHADER_ADDRESSMODE_SHIFT) 149 #define D3DSHADER_COMPARISON_SHIFT D3DSP_OPCODESPECIFICCONTROL_SHIFT 150 #define D3DSHADER_COMPARISON_MASK (0x07 << D3DSHADER_COMPARISON_SHIFT) 151 #define D3DSHADER_INSTRUCTION_PREDICATED 0x10000000 152 #define D3DSI_COISSUE 0x40000000 153 #define D3DSI_COMMENTSIZE_SHIFT 16 154 #define D3DSI_COMMENTSIZE_MASK 0x7fff0000 155 #define D3DSI_OPCODE_MASK 0xffff 156 #define D3DSI_INSTLENGTH_MASK 0xf000000 157 #define D3DSI_INSTLENGTH_SHIFT 24 158 #define D3DSI_TEXLD_PROJECT (0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT) 159 #define D3DSI_TEXLD_BIAS (0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT) 160 #define D3DSINCOSCONST1 -1.5500992e-006f, -2.1701389e-005f, 0.0026041667f, 0.00026041668f 161 #define D3DSINCOSCONST2 -0.020833334f, -0.12500000f, 1.0f, 0.50000000f 162 #define D3DSP_OPCODESPECIFICCONTROL_MASK 0xff0000 163 #define D3DSP_OPCODESPECIFICCONTROL_SHIFT 16 164 #define D3DSP_DCL_USAGE_SHIFT 0 165 #define D3DSP_DCL_USAGE_MASK 0x0000000f 166 #define D3DSP_DCL_USAGEINDEX_SHIFT 16 167 #define D3DSP_DCL_USAGEINDEX_MASK 0x000f0000 168 #define D3DSP_TEXTURETYPE_SHIFT 27 169 #define D3DSP_TEXTURETYPE_MASK 0x78000000 170 #define D3DSP_REGNUM_MASK 0x7ff 171 #define D3DSP_WRITEMASK_0 0x10000 172 #define D3DSP_WRITEMASK_1 0x20000 173 #define D3DSP_WRITEMASK_2 0x40000 174 #define D3DSP_WRITEMASK_3 0x80000 175 #define D3DSP_WRITEMASK_ALL 0xf0000 176 #define D3DSP_DSTMOD_SHIFT 20 177 #define D3DSP_DSTMOD_MASK 0xf00000 178 #define D3DSPDM_NONE 0 179 #define D3DSPDM_SATURATE (1 << D3DSP_DSTMOD_SHIFT) 180 #define D3DSPDM_PARTIALPRECISION (2 << D3DSP_DSTMOD_SHIFT) 181 #define D3DSPDM_MSAMPCENTROID (4 << D3DSP_DSTMOD_SHIFT) 182 #define D3DSP_DSTSHIFT_SHIFT 24 183 #define D3DSP_DSTSHIFT_MASK 0xf000000 184 #define D3DSP_NOSWIZZLE ((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6))) 185 #define D3DSP_REPLICATERED 0 186 #define D3DSP_REPLICATEGREEN ((1 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (1 << (D3DSP_SWIZZLE_SHIFT + 4)) | (1 << (D3DSP_SWIZZLE_SHIFT + 6))) 187 #define D3DSP_REPLICATEBLUE ((2 << (D3DSP_SWIZZLE_SHIFT + 0)) | (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (2 << (D3DSP_SWIZZLE_SHIFT + 6))) 188 #define D3DSP_REPLICATEALPHA ((3 << (D3DSP_SWIZZLE_SHIFT + 0)) | (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | (3 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6))) 189 #define D3DSP_REGTYPE_SHIFT 28 190 #define D3DSP_REGTYPE_SHIFT2 8 191 #define D3DSP_REGTYPE_MASK 0x70000000 192 #define D3DSP_REGTYPE_MASK2 0x1800 193 #define D3DSP_SRCMOD_SHIFT 24 194 #define D3DSP_SRCMOD_MASK 0xf000000 195 #define D3DSP_SWIZZLE_SHIFT 16 196 #define D3DSP_SWIZZLE_MASK 0xff0000 197 #define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256) 198 #define D3DTS_WORLD D3DTS_WORLDMATRIX(0) 199 #define D3DTS_WORLD1 D3DTS_WORLDMATRIX(1) 200 #define D3DTS_WORLD2 D3DTS_WORLDMATRIX(2) 201 #define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3) 202 #define D3DTSS_TCI_PASSTHRU 0x00 203 #define D3DTSS_TCI_CAMERASPACENORMAL 0x10000 204 #define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000 205 #define D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000 206 #define D3DTSS_TCI_SPHEREMAP 0x40000 207 #define D3DUSAGE_RENDERTARGET 0x01 208 #define D3DUSAGE_DEPTHSTENCIL 0x02 209 #define D3DUSAGE_WRITEONLY 0x08 210 #define D3DUSAGE_SOFTWAREPROCESSING 0x10 211 #define D3DUSAGE_DONOTCLIP 0x20 212 #define D3DUSAGE_POINTS 0x40 213 #define D3DUSAGE_RTPATCHES 0x80 214 #define D3DUSAGE_NPATCHES 0x100 215 #define D3DUSAGE_DYNAMIC 0x200 216 #define D3DUSAGE_AUTOGENMIPMAP 0x400 217 #define D3DUSAGE_DMAP 0x4000 218 #define D3DUSAGE_QUERY_LEGACYBUMPMAP 0x8000 219 #define D3DUSAGE_QUERY_SRGBREAD 0x10000 220 #define D3DUSAGE_QUERY_FILTER 0x20000 221 #define D3DUSAGE_QUERY_SRGBWRITE 0x40000 222 #define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x80000 223 #define D3DUSAGE_QUERY_VERTEXTEXTURE 0x100000 224 #define D3DWRAP_U 0x01 225 #define D3DWRAP_V 0x02 226 #define D3DWRAP_W 0x04 227 #define D3DWRAPCOORD_0 0x01 228 #define D3DWRAPCOORD_1 0x02 229 #define D3DWRAPCOORD_2 0x04 230 #define D3DWRAPCOORD_3 0x08 231 #define MAX_DEVICE_IDENTIFIER_STRING 512 232 #define MAXD3DDECLLENGTH 64 233 #define MAXD3DDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED 234 #define MAXD3DDECLTYPE D3DDECLTYPE_UNUSED 235 #define MAXD3DDECLUSAGE D3DDECLUSAGE_SAMPLE 236 #define MAXD3DDECLUSAGEINDEX 15 237 #define D3DMAXUSERCLIPPLANES 32 238 #define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4 239 #define D3DPS_VERSION(major,minor) (0xffff0000 | ((major) << 8) | (minor)) 240 #define D3DVS_VERSION(major,minor) (0xfffe0000 | ((major) << 8) | (minor)) 241 #define D3DSHADER_VERSION_MAJOR(version) (((version) >> 8) & 0xff) 242 #define D3DSHADER_VERSION_MINOR(version) (((version) >> 0) & 0xff) 243 #define D3DSHADER_COMMENT(s) ((((s) << D3DSI_COMMENTSIZE_SHIFT) & D3DSI_COMMENTSIZE_MASK) | D3DSIO_COMMENT) 244 #define D3DPS_END() 0xffff 245 #define D3DVS_END() 0xffff 246 #define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x01 247 #define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x02 248 #define D3DPRESENTFLAG_DEVICECLIP 0x04 249 #define D3DPRESENTFLAG_VIDEO 0x10 250 #define D3DLOCK_READONLY 0x10 251 #define D3DLOCK_NOSYSLOCK 0x800 252 #define D3DLOCK_NOOVERWRITE 0x1000 253 #define D3DLOCK_DISCARD 0x2000 254 #define D3DLOCK_DONOTWAIT 0x4000 255 #define D3DLOCK_NO_DIRTY_UPDATE 0x8000 256 #define D3DISSUE_END 0x01 257 #define D3DISSUE_BEGIN 0x02 258 #define D3DGETDATA_FLUSH 0x01 259 #define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1) 260 261 #define MAKEFOURCC(a,b,c,d) \ 262 ((DWORD)(BYTE)(a) | ((DWORD)(BYTE)(b) << 8) | \ 263 ((DWORD)(BYTE)(c) << 16) | ((DWORD)(BYTE)(d) << 24 )) 264 265 typedef DWORD D3DCOLOR; 266 267 typedef enum _D3DBACKBUFFER_TYPE { 268 D3DBACKBUFFER_TYPE_MONO = 0, 269 D3DBACKBUFFER_TYPE_LEFT = 1, 270 D3DBACKBUFFER_TYPE_RIGHT = 2, 271 D3DBACKBUFFER_TYPE_FORCE_DWORD = 0xffffffff 272 } D3DBACKBUFFER_TYPE; 273 274 typedef enum _D3DBASISTYPE { 275 D3DBASIS_BEZIER = 0, 276 D3DBASIS_BSPLINE = 1, 277 D3DBASIS_INTERPOLATE = 2, 278 D3DBASIS_FORCE_DWORD = 0xffffffff 279 } D3DBASISTYPE; 280 281 typedef enum _D3DBLEND { 282 D3DBLEND_ZERO = 1, 283 D3DBLEND_ONE = 2, 284 D3DBLEND_SRCCOLOR = 3, 285 D3DBLEND_INVSRCCOLOR = 4, 286 D3DBLEND_SRCALPHA = 5, 287 D3DBLEND_INVSRCALPHA = 6, 288 D3DBLEND_DESTALPHA = 7, 289 D3DBLEND_INVDESTALPHA = 8, 290 D3DBLEND_DESTCOLOR = 9, 291 D3DBLEND_INVDESTCOLOR = 10, 292 D3DBLEND_SRCALPHASAT = 11, 293 D3DBLEND_BOTHSRCALPHA = 12, 294 D3DBLEND_BOTHINVSRCALPHA = 13, 295 D3DBLEND_BLENDFACTOR = 14, 296 D3DBLEND_INVBLENDFACTOR = 15, 297 D3DBLEND_FORCE_DWORD = 0xffffffff 298 } D3DBLEND; 299 300 typedef enum _D3DBLENDOP { 301 D3DBLENDOP_ADD = 1, 302 D3DBLENDOP_SUBTRACT = 2, 303 D3DBLENDOP_REVSUBTRACT = 3, 304 D3DBLENDOP_MIN = 4, 305 D3DBLENDOP_MAX = 5, 306 D3DBLENDOP_FORCE_DWORD = 0x7fffffff 307 } D3DBLENDOP; 308 309 typedef enum _D3DCMPFUNC { 310 D3DCMP_NEVER = 1, 311 D3DCMP_LESS = 2, 312 D3DCMP_EQUAL = 3, 313 D3DCMP_LESSEQUAL = 4, 314 D3DCMP_GREATER = 5, 315 D3DCMP_NOTEQUAL = 6, 316 D3DCMP_GREATEREQUAL = 7, 317 D3DCMP_ALWAYS = 8, 318 D3DCMP_FORCE_DWORD = 0xffffffff 319 } D3DCMPFUNC; 320 321 typedef enum _D3DCUBEMAP_FACES { 322 D3DCUBEMAP_FACE_POSITIVE_X = 0, 323 D3DCUBEMAP_FACE_NEGATIVE_X = 1, 324 D3DCUBEMAP_FACE_POSITIVE_Y = 2, 325 D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 326 D3DCUBEMAP_FACE_POSITIVE_Z = 4, 327 D3DCUBEMAP_FACE_NEGATIVE_Z = 5, 328 D3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff 329 } D3DCUBEMAP_FACES; 330 331 typedef enum _D3DCULL { 332 D3DCULL_NONE = 1, 333 D3DCULL_CW = 2, 334 D3DCULL_CCW = 3, 335 D3DCULL_FORCE_DWORD = 0xffffffff 336 } D3DCULL; 337 338 typedef enum _D3DDEBUGMONITORTOKENS { 339 D3DDMT_ENABLE = 0, 340 D3DDMT_DISABLE = 1, 341 D3DDMT_FORCE_DWORD = 0xffffffff 342 } D3DDEBUGMONITORTOKENS; 343 344 typedef enum _D3DDECLMETHOD 345 { 346 D3DDECLMETHOD_DEFAULT = 0, 347 D3DDECLMETHOD_PARTIALU = 1, 348 D3DDECLMETHOD_PARTIALV = 2, 349 D3DDECLMETHOD_CROSSUV = 3, 350 D3DDECLMETHOD_UV = 4, 351 D3DDECLMETHOD_LOOKUP = 5, 352 D3DDECLMETHOD_LOOKUPPRESAMPLED = 6 353 } D3DDECLMETHOD; 354 355 typedef enum _D3DDECLTYPE 356 { 357 D3DDECLTYPE_FLOAT1 = 0, 358 D3DDECLTYPE_FLOAT2 = 1, 359 D3DDECLTYPE_FLOAT3 = 2, 360 D3DDECLTYPE_FLOAT4 = 3, 361 D3DDECLTYPE_D3DCOLOR = 4, 362 D3DDECLTYPE_UBYTE4 = 5, 363 D3DDECLTYPE_SHORT2 = 6, 364 D3DDECLTYPE_SHORT4 = 7, 365 D3DDECLTYPE_UBYTE4N = 8, 366 D3DDECLTYPE_SHORT2N = 9, 367 D3DDECLTYPE_SHORT4N = 10, 368 D3DDECLTYPE_USHORT2N = 11, 369 D3DDECLTYPE_USHORT4N = 12, 370 D3DDECLTYPE_UDEC3 = 13, 371 D3DDECLTYPE_DEC3N = 14, 372 D3DDECLTYPE_FLOAT16_2 = 15, 373 D3DDECLTYPE_FLOAT16_4 = 16, 374 D3DDECLTYPE_UNUSED = 17, 375 } D3DDECLTYPE; 376 377 typedef enum _D3DDECLUSAGE 378 { 379 D3DDECLUSAGE_POSITION = 0, 380 D3DDECLUSAGE_BLENDWEIGHT = 1, 381 D3DDECLUSAGE_BLENDINDICES = 2, 382 D3DDECLUSAGE_NORMAL = 3, 383 D3DDECLUSAGE_PSIZE = 4, 384 D3DDECLUSAGE_TEXCOORD = 5, 385 D3DDECLUSAGE_TANGENT = 6, 386 D3DDECLUSAGE_BINORMAL = 7, 387 D3DDECLUSAGE_TESSFACTOR = 8, 388 D3DDECLUSAGE_POSITIONT = 9, 389 D3DDECLUSAGE_COLOR = 10, 390 D3DDECLUSAGE_FOG = 11, 391 D3DDECLUSAGE_DEPTH = 12, 392 D3DDECLUSAGE_SAMPLE = 13 393 } D3DDECLUSAGE; 394 395 typedef enum _D3DDEGREETYPE { 396 D3DDEGREE_LINEAR = 1, 397 D3DDEGREE_QUADRATIC = 2, 398 D3DDEGREE_CUBIC = 3, 399 D3DDEGREE_QUINTIC = 5, 400 D3DDEGREE_FORCE_DWORD = 0xffffffff, 401 } D3DDEGREETYPE; 402 403 typedef enum _D3DDEVTYPE { 404 D3DDEVTYPE_HAL = 1, 405 D3DDEVTYPE_REF = 2, 406 D3DDEVTYPE_SW = 3, 407 D3DDEVTYPE_FORCE_DWORD = 0xffffffff 408 } D3DDEVTYPE; 409 410 typedef enum _D3DFILLMODE { 411 D3DFILL_POINT = 1, 412 D3DFILL_WIREFRAME = 2, 413 D3DFILL_SOLID = 3, 414 D3DFILL_FORCE_DWORD = 0xffffffff 415 } D3DFILLMODE; 416 417 typedef enum _D3DFOGMODE { 418 D3DFOG_NONE = 0, 419 D3DFOG_EXP = 1, 420 D3DFOG_EXP2 = 2, 421 D3DFOG_LINEAR = 3, 422 D3DFOG_FORCE_DWORD = 0xffffffff 423 } D3DFOGMODE; 424 425 typedef enum _D3DFORMAT { 426 D3DFMT_UNKNOWN = 0, 427 D3DFMT_R8G8B8 = 20, 428 D3DFMT_A8R8G8B8 = 21, 429 D3DFMT_X8R8G8B8 = 22, 430 D3DFMT_R5G6B5 = 23, 431 D3DFMT_X1R5G5B5 = 24, 432 D3DFMT_A1R5G5B5 = 25, 433 D3DFMT_A4R4G4B4 = 26, 434 D3DFMT_R3G3B2 = 27, 435 D3DFMT_A8 = 28, 436 D3DFMT_A8R3G3B2 = 29, 437 D3DFMT_X4R4G4B4 = 30, 438 D3DFMT_A2B10G10R10 = 31, 439 D3DFMT_A8B8G8R8 = 32, 440 D3DFMT_X8B8G8R8 = 33, 441 D3DFMT_G16R16 = 34, 442 D3DFMT_A2R10G10B10 = 35, 443 D3DFMT_A16B16G16R16 = 36, 444 D3DFMT_A8P8 = 40, 445 D3DFMT_P8 = 41, 446 D3DFMT_L8 = 50, 447 D3DFMT_A8L8 = 51, 448 D3DFMT_A4L4 = 52, 449 D3DFMT_V8U8 = 60, 450 D3DFMT_L6V5U5 = 61, 451 D3DFMT_X8L8V8U8 = 62, 452 D3DFMT_Q8W8V8U8 = 63, 453 D3DFMT_V16U16 = 64, 454 D3DFMT_A2W10V10U10 = 67, 455 D3DFMT_UYVY = MAKEFOURCC('U','Y','V','Y'), 456 D3DFMT_R8G8_B8G8 = MAKEFOURCC('R','G','B','G'), 457 D3DFMT_YUY2 = MAKEFOURCC('Y','U','Y','2'), 458 D3DFMT_G8R8_G8B8 = MAKEFOURCC('G','R','G','B'), 459 D3DFMT_DXT1 = MAKEFOURCC('D','X','T','1'), 460 D3DFMT_DXT2 = MAKEFOURCC('D','X','T','2'), 461 D3DFMT_DXT3 = MAKEFOURCC('D','X','T','3'), 462 D3DFMT_DXT4 = MAKEFOURCC('D','X','T','4'), 463 D3DFMT_DXT5 = MAKEFOURCC('D','X','T','5'), 464 D3DFMT_D16_LOCKABLE = 70, 465 D3DFMT_D32 = 71, 466 D3DFMT_D15S1 = 73, 467 D3DFMT_D24S8 = 75, 468 D3DFMT_D24X8 = 77, 469 D3DFMT_D24X4S4 = 79, 470 D3DFMT_D16 = 80, 471 D3DFMT_L16 = 81, 472 D3DFMT_D32F_LOCKABLE = 82, 473 D3DFMT_D24FS8 = 83, 474 D3DFMT_VERTEXDATA = 100, 475 D3DFMT_INDEX16 = 101, 476 D3DFMT_INDEX32 = 102, 477 D3DFMT_Q16W16V16U16 = 110, 478 D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'), 479 D3DFMT_R16F = 111, 480 D3DFMT_G16R16F = 112, 481 D3DFMT_A16B16G16R16F = 113, 482 D3DFMT_R32F = 114, 483 D3DFMT_G32R32F = 115, 484 D3DFMT_A32B32G32R32F = 116, 485 D3DFMT_CxV8U8 = 117, 486 D3DFMT_FORCE_DWORD = 0xffffffff 487 } D3DFORMAT; 488 489 typedef enum _D3DLIGHTTYPE { 490 D3DLIGHT_POINT = 1, 491 D3DLIGHT_SPOT = 2, 492 D3DLIGHT_DIRECTIONAL = 3, 493 D3DLIGHT_FORCE_DWORD = 0xffffffff 494 } D3DLIGHTTYPE; 495 496 typedef enum _D3DMATERIALCOLORSOURCE 497 { 498 D3DMCS_MATERIAL = 0, 499 D3DMCS_COLOR1 = 1, 500 D3DMCS_COLOR2 = 2, 501 D3DMCS_FORCE_DWORD = 0xffffffff 502 } D3DMATERIALCOLORSOURCE; 503 504 typedef enum _D3DMULTISAMPLE_TYPE { 505 D3DMULTISAMPLE_NONE = 0, 506 D3DMULTISAMPLE_NONMASKABLE = 1, 507 D3DMULTISAMPLE_2_SAMPLES = 2, 508 D3DMULTISAMPLE_3_SAMPLES = 3, 509 D3DMULTISAMPLE_4_SAMPLES = 4, 510 D3DMULTISAMPLE_5_SAMPLES = 5, 511 D3DMULTISAMPLE_6_SAMPLES = 6, 512 D3DMULTISAMPLE_7_SAMPLES = 7, 513 D3DMULTISAMPLE_8_SAMPLES = 8, 514 D3DMULTISAMPLE_9_SAMPLES = 9, 515 D3DMULTISAMPLE_10_SAMPLES = 10, 516 D3DMULTISAMPLE_11_SAMPLES = 11, 517 D3DMULTISAMPLE_12_SAMPLES = 12, 518 D3DMULTISAMPLE_13_SAMPLES = 13, 519 D3DMULTISAMPLE_14_SAMPLES = 14, 520 D3DMULTISAMPLE_15_SAMPLES = 15, 521 D3DMULTISAMPLE_16_SAMPLES = 16, 522 D3DMULTISAMPLE_FORCE_DWORD = 0xffffffff 523 } D3DMULTISAMPLE_TYPE; 524 525 typedef enum _D3DORDERTYPE { 526 D3DORDER_LINEAR = 1, 527 D3DORDER_QUADRATIC = 2, 528 D3DORDER_CUBIC = 3, 529 D3DORDER_QUINTIC = 5, 530 D3DORDER_FORCE_DWORD = 0xffffffff 531 } D3DORDERTYPE; 532 533 typedef enum _D3DPATCHEDGESTYLE 534 { 535 D3DPATCHEDGE_DISCRETE = 0, 536 D3DPATCHEDGE_CONTINUOUS = 1, 537 D3DPATCHEDGE_FORCE_DWORD = 0xffffffff 538 } D3DPATCHEDGESTYLE; 539 540 typedef enum _D3DPOOL { 541 D3DPOOL_DEFAULT = 0, 542 D3DPOOL_MANAGED = 1, 543 D3DPOOL_SYSTEMMEM = 2, 544 D3DPOOL_SCRATCH = 3, 545 D3DPOOL_FORCE_DWORD = 0xffffffff 546 } D3DPOOL; 547 548 typedef enum _D3DPRIMITIVETYPE { 549 D3DPT_POINTLIST = 1, 550 D3DPT_LINELIST = 2, 551 D3DPT_LINESTRIP = 3, 552 D3DPT_TRIANGLELIST = 4, 553 D3DPT_TRIANGLESTRIP = 5, 554 D3DPT_TRIANGLEFAN = 6, 555 D3DPT_FORCE_DWORD = 0xffffffff 556 } D3DPRIMITIVETYPE; 557 558 typedef enum _D3DQUERYTYPE { 559 D3DQUERYTYPE_VCACHE = 4, 560 D3DQUERYTYPE_RESOURCEMANAGER = 5, 561 D3DQUERYTYPE_VERTEXSTATS = 6, 562 D3DQUERYTYPE_EVENT = 8, 563 D3DQUERYTYPE_OCCLUSION = 9 564 } D3DQUERYTYPE; 565 566 typedef enum _D3DRENDERSTATETYPE { 567 D3DRS_ZENABLE = 7, 568 D3DRS_FILLMODE = 8, 569 D3DRS_SHADEMODE = 9, 570 D3DRS_ZWRITEENABLE = 14, 571 D3DRS_ALPHATESTENABLE = 15, 572 D3DRS_LASTPIXEL = 16, 573 D3DRS_SRCBLEND = 19, 574 D3DRS_DESTBLEND = 20, 575 D3DRS_CULLMODE = 22, 576 D3DRS_ZFUNC = 23, 577 D3DRS_ALPHAREF = 24, 578 D3DRS_ALPHAFUNC = 25, 579 D3DRS_DITHERENABLE = 26, 580 D3DRS_ALPHABLENDENABLE = 27, 581 D3DRS_FOGENABLE = 28, 582 D3DRS_SPECULARENABLE = 29, 583 D3DRS_FOGCOLOR = 34, 584 D3DRS_FOGTABLEMODE = 35, 585 D3DRS_FOGSTART = 36, 586 D3DRS_FOGEND = 37, 587 D3DRS_FOGDENSITY = 38, 588 D3DRS_RANGEFOGENABLE = 48, 589 D3DRS_STENCILENABLE = 52, 590 D3DRS_STENCILFAIL = 53, 591 D3DRS_STENCILZFAIL = 54, 592 D3DRS_STENCILPASS = 55, 593 D3DRS_STENCILFUNC = 56, 594 D3DRS_STENCILREF = 57, 595 D3DRS_STENCILMASK = 58, 596 D3DRS_STENCILWRITEMASK = 59, 597 D3DRS_TEXTUREFACTOR = 60, 598 D3DRS_WRAP0 = 128, 599 D3DRS_WRAP1 = 129, 600 D3DRS_WRAP2 = 130, 601 D3DRS_WRAP3 = 131, 602 D3DRS_WRAP4 = 132, 603 D3DRS_WRAP5 = 133, 604 D3DRS_WRAP6 = 134, 605 D3DRS_WRAP7 = 135, 606 D3DRS_CLIPPING = 136, 607 D3DRS_LIGHTING = 137, 608 D3DRS_AMBIENT = 139, 609 D3DRS_FOGVERTEXMODE = 140, 610 D3DRS_COLORVERTEX = 141, 611 D3DRS_LOCALVIEWER = 142, 612 D3DRS_NORMALIZENORMALS = 143, 613 D3DRS_DIFFUSEMATERIALSOURCE = 145, 614 D3DRS_SPECULARMATERIALSOURCE = 146, 615 D3DRS_AMBIENTMATERIALSOURCE = 147, 616 D3DRS_EMISSIVEMATERIALSOURCE = 148, 617 D3DRS_VERTEXBLEND = 151, 618 D3DRS_CLIPPLANEENABLE = 152, 619 D3DRS_POINTSIZE = 154, 620 D3DRS_POINTSIZE_MIN = 155, 621 D3DRS_POINTSPRITEENABLE = 156, 622 D3DRS_POINTSCALEENABLE = 157, 623 D3DRS_POINTSCALE_A = 158, 624 D3DRS_POINTSCALE_B = 159, 625 D3DRS_POINTSCALE_C = 160, 626 D3DRS_MULTISAMPLEANTIALIAS = 161, 627 D3DRS_MULTISAMPLEMASK = 162, 628 D3DRS_PATCHEDGESTYLE = 163, 629 D3DRS_DEBUGMONITORTOKEN = 165, 630 D3DRS_POINTSIZE_MAX = 166, 631 D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 632 D3DRS_COLORWRITEENABLE = 168, 633 D3DRS_TWEENFACTOR = 170, 634 D3DRS_BLENDOP = 171, 635 D3DRS_POSITIONDEGREE = 172, 636 D3DRS_NORMALDEGREE = 173, 637 D3DRS_SCISSORTESTENABLE = 174, 638 D3DRS_SLOPESCALEDEPTHBIAS = 175, 639 D3DRS_ANTIALIASEDLINEENABLE = 176, 640 D3DRS_MINTESSELLATIONLEVEL = 178, 641 D3DRS_MAXTESSELLATIONLEVEL = 179, 642 D3DRS_ADAPTIVETESS_X = 180, 643 D3DRS_ADAPTIVETESS_Y = 181, 644 D3DRS_ADAPTIVETESS_Z = 182, 645 D3DRS_ADAPTIVETESS_W = 183, 646 D3DRS_ENABLEADAPTIVETESSELLATION = 184, 647 D3DRS_TWOSIDEDSTENCILMODE = 185, 648 D3DRS_CCW_STENCILFAIL = 186, 649 D3DRS_CCW_STENCILZFAIL = 187, 650 D3DRS_CCW_STENCILPASS = 188, 651 D3DRS_CCW_STENCILFUNC = 189, 652 D3DRS_COLORWRITEENABLE1 = 190, 653 D3DRS_COLORWRITEENABLE2 = 191, 654 D3DRS_COLORWRITEENABLE3 = 192, 655 D3DRS_BLENDFACTOR = 193, 656 D3DRS_SRGBWRITEENABLE = 194, 657 D3DRS_DEPTHBIAS = 195, 658 D3DRS_WRAP8 = 198, 659 D3DRS_WRAP9 = 199, 660 D3DRS_WRAP10 = 200, 661 D3DRS_WRAP11 = 201, 662 D3DRS_WRAP12 = 202, 663 D3DRS_WRAP13 = 203, 664 D3DRS_WRAP14 = 204, 665 D3DRS_WRAP15 = 205, 666 D3DRS_SEPARATEALPHABLENDENABLE = 206, 667 D3DRS_SRCBLENDALPHA = 207, 668 D3DRS_DESTBLENDALPHA = 208, 669 D3DRS_BLENDOPALPHA = 209, 670 D3DRS_FORCE_DWORD = 0xffffffff 671 } D3DRENDERSTATETYPE; 672 673 typedef enum _D3DRESOURCETYPE { 674 D3DRTYPE_SURFACE = 1, 675 D3DRTYPE_VOLUME = 2, 676 D3DRTYPE_TEXTURE = 3, 677 D3DRTYPE_VOLUMETEXTURE = 4, 678 D3DRTYPE_CUBETEXTURE = 5, 679 D3DRTYPE_VERTEXBUFFER = 6, 680 D3DRTYPE_INDEXBUFFER = 7, 681 D3DRTYPE_FORCE_DWORD = 0xffffffff 682 } D3DRESOURCETYPE; 683 684 typedef enum _D3DSAMPLER_TEXTURE_TYPE 685 { 686 D3DSTT_UNKNOWN = 0 << D3DSP_TEXTURETYPE_SHIFT, 687 D3DSTT_2D = 2 << D3DSP_TEXTURETYPE_SHIFT, 688 D3DSTT_CUBE = 3 << D3DSP_TEXTURETYPE_SHIFT, 689 D3DSTT_VOLUME = 4 << D3DSP_TEXTURETYPE_SHIFT, 690 D3DSTT_FORCE_DWORD = 0xffffffff 691 } D3DSAMPLER_TEXTURE_TYPE; 692 693 typedef enum _D3DSAMPLERSTATETYPE { 694 D3DSAMP_ADDRESSU = 1, 695 D3DSAMP_ADDRESSV = 2, 696 D3DSAMP_ADDRESSW = 3, 697 D3DSAMP_BORDERCOLOR = 4, 698 D3DSAMP_MAGFILTER = 5, 699 D3DSAMP_MINFILTER = 6, 700 D3DSAMP_MIPFILTER = 7, 701 D3DSAMP_MIPMAPLODBIAS = 8, 702 D3DSAMP_MAXMIPLEVEL = 9, 703 D3DSAMP_MAXANISOTROPY = 10, 704 D3DSAMP_SRGBTEXTURE = 11, 705 D3DSAMP_ELEMENTINDEX = 12, 706 D3DSAMP_DMAPOFFSET = 13, 707 D3DSAMP_FORCE_DWORD = 0xffffffff, 708 } D3DSAMPLERSTATETYPE; 709 710 typedef enum _D3DSHADEMODE { 711 D3DSHADE_FLAT = 1, 712 D3DSHADE_GOURAUD = 2, 713 D3DSHADE_PHONG = 3, 714 D3DSHADE_FORCE_DWORD = 0xffffffff 715 } D3DSHADEMODE; 716 717 typedef enum _D3DSHADER_ADDRESSMODE_TYPE 718 { 719 D3DSHADER_ADDRMODE_ABSOLUTE = (0 << D3DSHADER_ADDRESSMODE_SHIFT), 720 D3DSHADER_ADDRMODE_RELATIVE = (1 << D3DSHADER_ADDRESSMODE_SHIFT), 721 D3DSHADER_ADDRMODE_FORCE_DWORD = 0xffffffff 722 } D3DSHADER_ADDRESSMODE_TYPE; 723 724 typedef enum _D3DSHADER_COMPARISON 725 { 726 D3DSPC_RESERVED0 = 0, 727 D3DSPC_GT = 1, 728 D3DSPC_EQ = 2, 729 D3DSPC_GE = 3, 730 D3DSPC_LT = 4, 731 D3DSPC_NE = 5, 732 D3DSPC_LE = 6, 733 D3DSPC_RESERVED1 = 7 734 } D3DSHADER_COMPARISON; 735 736 typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE 737 { 738 D3DSIO_NOP = 0, 739 D3DSIO_MOV = 1, 740 D3DSIO_ADD = 2, 741 D3DSIO_SUB = 3, 742 D3DSIO_MAD = 4, 743 D3DSIO_MUL = 5, 744 D3DSIO_RCP = 6, 745 D3DSIO_RSQ = 7, 746 D3DSIO_DP3 = 8, 747 D3DSIO_DP4 = 9, 748 D3DSIO_MIN = 10, 749 D3DSIO_MAX = 11, 750 D3DSIO_SLT = 12, 751 D3DSIO_SGE = 13, 752 D3DSIO_EXP = 14, 753 D3DSIO_LOG = 15, 754 D3DSIO_LIT = 16, 755 D3DSIO_DST = 17, 756 D3DSIO_LRP = 18, 757 D3DSIO_FRC = 19, 758 D3DSIO_M4x4 = 20, 759 D3DSIO_M4x3 = 21, 760 D3DSIO_M3x4 = 22, 761 D3DSIO_M3x3 = 23, 762 D3DSIO_M3x2 = 24, 763 D3DSIO_CALL = 25, 764 D3DSIO_CALLNZ = 26, 765 D3DSIO_LOOP = 27, 766 D3DSIO_RET = 28, 767 D3DSIO_ENDLOOP = 29, 768 D3DSIO_LABEL = 30, 769 D3DSIO_DCL = 31, 770 D3DSIO_POW = 32, 771 D3DSIO_CRS = 33, 772 D3DSIO_SGN = 34, 773 D3DSIO_ABS = 35, 774 D3DSIO_NRM = 36, 775 D3DSIO_SINCOS = 37, 776 D3DSIO_REP = 38, 777 D3DSIO_ENDREP = 39, 778 D3DSIO_IF = 40, 779 D3DSIO_IFC = 41, 780 D3DSIO_ELSE = 42, 781 D3DSIO_ENDIF = 43, 782 D3DSIO_BREAK = 44, 783 D3DSIO_BREAKC = 45, 784 D3DSIO_MOVA = 46, 785 D3DSIO_DEFB = 47, 786 D3DSIO_DEFI = 48, 787 D3DSIO_TEXCOORD = 64, 788 D3DSIO_TEXKILL = 65, 789 D3DSIO_TEX = 66, 790 D3DSIO_TEXBEM = 67, 791 D3DSIO_TEXBEML = 68, 792 D3DSIO_TEXREG2AR = 69, 793 D3DSIO_TEXREG2GB = 70, 794 D3DSIO_TEXM3x2PAD = 71, 795 D3DSIO_TEXM3x2TEX = 72, 796 D3DSIO_TEXM3x3PAD = 73, 797 D3DSIO_TEXM3x3TEX = 74, 798 D3DSIO_RESERVED0 = 75, 799 D3DSIO_TEXM3x3SPEC = 76, 800 D3DSIO_TEXM3x3VSPEC = 77, 801 D3DSIO_EXPP = 78, 802 D3DSIO_LOGP = 79, 803 D3DSIO_CND = 80, 804 D3DSIO_DEF = 81, 805 D3DSIO_TEXREG2RGB = 82, 806 D3DSIO_TEXDP3TEX = 83, 807 D3DSIO_TEXM3x2DEPTH = 84, 808 D3DSIO_TEXDP3 = 85, 809 D3DSIO_TEXM3x3 = 86, 810 D3DSIO_TEXDEPTH = 87, 811 D3DSIO_CMP = 88, 812 D3DSIO_BEM = 89, 813 D3DSIO_DP2ADD = 90, 814 D3DSIO_DSX = 91, 815 D3DSIO_DSY = 92, 816 D3DSIO_TEXLDD = 93, 817 D3DSIO_SETP = 94, 818 D3DSIO_TEXLDL = 95, 819 D3DSIO_BREAKP = 96, 820 D3DSIO_PHASE = 0xfffd, 821 D3DSIO_COMMENT = 0xfffe, 822 D3DSIO_END = 0xffff, 823 D3DSIO_FORCE_DWORD = 0xffffffff 824 } D3DSHADER_INSTRUCTION_OPCODE_TYPE; 825 826 typedef enum _D3DSHADER_MISCTYPE_OFFSETS 827 { 828 D3DSMO_POSITION = 0, 829 D3DSMO_FACE = 1 830 } D3DSHADER_MISCTYPE_OFFSETS; 831 832 typedef enum _D3DSHADER_PARAM_REGISTER_TYPE 833 { 834 D3DSPR_TEMP = 0, 835 D3DSPR_INPUT = 1, 836 D3DSPR_CONST = 2, 837 D3DSPR_ADDR = 3, 838 D3DSPR_TEXTURE = 3, 839 D3DSPR_RASTOUT = 4, 840 D3DSPR_ATTROUT = 5, 841 D3DSPR_TEXCRDOUT = 6, 842 D3DSPR_OUTPUT = 6, 843 D3DSPR_CONSTINT = 7, 844 D3DSPR_COLOROUT = 8, 845 D3DSPR_DEPTHOUT = 9, 846 D3DSPR_SAMPLER = 10, 847 D3DSPR_CONST2 = 11, 848 D3DSPR_CONST3 = 12, 849 D3DSPR_CONST4 = 13, 850 D3DSPR_CONSTBOOL = 14, 851 D3DSPR_LOOP = 15, 852 D3DSPR_TEMPFLOAT16 = 16, 853 D3DSPR_MISCTYPE = 17, 854 D3DSPR_LABEL = 18, 855 D3DSPR_PREDICATE = 19, 856 D3DSPR_FORCE_DWORD = 0xffffffff 857 } D3DSHADER_PARAM_REGISTER_TYPE; 858 859 typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE 860 { 861 D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT, 862 D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT, 863 D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT, 864 D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT, 865 D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT, 866 D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT, 867 D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT, 868 D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT, 869 D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT, 870 D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT, 871 D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT, 872 D3DSPSM_ABS = 11 << D3DSP_SRCMOD_SHIFT, 873 D3DSPSM_ABSNEG = 12 << D3DSP_SRCMOD_SHIFT, 874 D3DSPSM_NOT = 13 << D3DSP_SRCMOD_SHIFT, 875 D3DSPSM_FORCE_DWORD = 0xffffffff 876 } D3DSHADER_PARAM_SRCMOD_TYPE; 877 878 typedef enum _D3DVS_ADDRESSMODE_TYPE 879 { 880 D3DVS_ADDRMODE_ABSOLUTE = (0 << D3DVS_ADDRESSMODE_SHIFT), 881 D3DVS_ADDRMODE_RELATIVE = (1 << D3DVS_ADDRESSMODE_SHIFT), 882 D3DVS_ADDRMODE_FORCE_DWORD = 0xffffffff 883 } D3DVS_ADDRESSMODE_TYPE; 884 885 typedef enum _D3DVS_RASTOUT_OFFSETS 886 { 887 D3DSRO_POSITION = 0, 888 D3DSRO_FOG = 1, 889 D3DSRO_POINT_SIZE = 2, 890 D3DSRO_FORCE_DWORD = 0xffffffff 891 } D3DVS_RASTOUT_OFFSETS; 892 893 typedef enum _D3DSTENCILOP { 894 D3DSTENCILOP_KEEP = 1, 895 D3DSTENCILOP_ZERO = 2, 896 D3DSTENCILOP_REPLACE = 3, 897 D3DSTENCILOP_INCRSAT = 4, 898 D3DSTENCILOP_DECRSAT = 5, 899 D3DSTENCILOP_INVERT = 6, 900 D3DSTENCILOP_INCR = 7, 901 D3DSTENCILOP_DECR = 8, 902 D3DSTENCILOP_FORCE_DWORD = 0x7fffffff 903 } D3DSTENCILOP; 904 905 typedef enum _D3DSTATEBLOCKTYPE { 906 D3DSBT_ALL = 1, 907 D3DSBT_PIXELSTATE = 2, 908 D3DSBT_VERTEXSTATE = 3, 909 D3DSBT_FORCE_DWORD = 0xffffffff 910 } D3DSTATEBLOCKTYPE; 911 912 typedef enum _D3DSWAPEFFECT { 913 D3DSWAPEFFECT_DISCARD = 1, 914 D3DSWAPEFFECT_FLIP = 2, 915 D3DSWAPEFFECT_COPY = 3, 916 D3DSWAPEFFECT_COPY_VSYNC = 4, 917 D3DSWAPEFFECT_FORCE_DWORD = 0xffffffff 918 } D3DSWAPEFFECT; 919 920 typedef enum _D3DTEXTUREADDRESS { 921 D3DTADDRESS_WRAP = 1, 922 D3DTADDRESS_MIRROR = 2, 923 D3DTADDRESS_CLAMP = 3, 924 D3DTADDRESS_BORDER = 4, 925 D3DTADDRESS_MIRRORONCE = 5, 926 D3DTADDRESS_FORCE_DWORD = 0xffffffff 927 } D3DTEXTUREADDRESS; 928 929 typedef enum _D3DTEXTUREFILTERTYPE { 930 D3DTEXF_NONE = 0, 931 D3DTEXF_POINT = 1, 932 D3DTEXF_LINEAR = 2, 933 D3DTEXF_ANISOTROPIC = 3, 934 D3DTEXF_PYRAMIDALQUAD = 6, 935 D3DTEXF_GAUSSIANQUAD = 7, 936 D3DTEXF_FORCE_DWORD = 0xffffffff 937 } D3DTEXTUREFILTERTYPE; 938 939 typedef enum _D3DTEXTURESTAGESTATETYPE { 940 D3DTSS_COLOROP = 1, 941 D3DTSS_COLORARG1 = 2, 942 D3DTSS_COLORARG2 = 3, 943 D3DTSS_ALPHAOP = 4, 944 D3DTSS_ALPHAARG1 = 5, 945 D3DTSS_ALPHAARG2 = 6, 946 D3DTSS_BUMPENVMAT00 = 7, 947 D3DTSS_BUMPENVMAT01 = 8, 948 D3DTSS_BUMPENVMAT10 = 9, 949 D3DTSS_BUMPENVMAT11 = 10, 950 D3DTSS_TEXCOORDINDEX = 11, 951 D3DTSS_BUMPENVLSCALE = 22, 952 D3DTSS_BUMPENVLOFFSET = 23, 953 D3DTSS_TEXTURETRANSFORMFLAGS = 24, 954 D3DTSS_ADDRESSW = 25, 955 D3DTSS_COLORARG0 = 26, 956 D3DTSS_ALPHAARG0 = 27, 957 D3DTSS_RESULTARG = 28, 958 D3DTSS_CONSTANT = 32, 959 D3DTSS_FORCE_DWORD = 0xffffffff 960 } D3DTEXTURESTAGESTATETYPE; 961 962 typedef enum _D3DTEXTUREOP { 963 D3DTOP_DISABLE = 1, 964 D3DTOP_SELECTARG1 = 2, 965 D3DTOP_SELECTARG2 = 3, 966 D3DTOP_MODULATE = 4, 967 D3DTOP_MODULATE2X = 5, 968 D3DTOP_MODULATE4X = 6, 969 D3DTOP_ADD = 7, 970 D3DTOP_ADDSIGNED = 8, 971 D3DTOP_ADDSIGNED2X = 9, 972 D3DTOP_SUBTRACT = 10, 973 D3DTOP_ADDSMOOTH = 11, 974 D3DTOP_BLENDDIFFUSEALPHA = 12, 975 D3DTOP_BLENDTEXTUREALPHA = 13, 976 D3DTOP_BLENDFACTORALPHA = 14, 977 D3DTOP_BLENDTEXTUREALPHAPM = 15, 978 D3DTOP_BLENDCURRENTALPHA = 16, 979 D3DTOP_PREMODULATE = 17, 980 D3DTOP_MODULATEALPHA_ADDCOLOR = 18, 981 D3DTOP_MODULATECOLOR_ADDALPHA = 19, 982 D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, 983 D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, 984 D3DTOP_BUMPENVMAP = 22, 985 D3DTOP_BUMPENVMAPLUMINANCE = 23, 986 D3DTOP_DOTPRODUCT3 = 24, 987 D3DTOP_MULTIPLYADD = 25, 988 D3DTOP_LERP = 26, 989 D3DTOP_FORCE_DWORD = 0xffffffff, 990 } D3DTEXTUREOP; 991 992 typedef enum _D3DTEXTURETRANSFORMFLAGS { 993 D3DTTFF_DISABLE = 0, 994 D3DTTFF_COUNT1 = 1, 995 D3DTTFF_COUNT2 = 2, 996 D3DTTFF_COUNT3 = 3, 997 D3DTTFF_COUNT4 = 4, 998 D3DTTFF_PROJECTED = 256, 999 D3DTTFF_FORCE_DWORD = 0xffffffff, 1000 } D3DTEXTURETRANSFORMFLAGS; 1001 1002 typedef enum _D3DTRANSFORMSTATETYPE { 1003 D3DTS_VIEW = 2, 1004 D3DTS_PROJECTION = 3, 1005 D3DTS_TEXTURE0 = 16, 1006 D3DTS_TEXTURE1 = 17, 1007 D3DTS_TEXTURE2 = 18, 1008 D3DTS_TEXTURE3 = 19, 1009 D3DTS_TEXTURE4 = 20, 1010 D3DTS_TEXTURE5 = 21, 1011 D3DTS_TEXTURE6 = 22, 1012 D3DTS_TEXTURE7 = 23, 1013 D3DTS_FORCE_DWORD = 0xffffffff 1014 } D3DTRANSFORMSTATETYPE; 1015 1016 typedef enum _D3DVERTEXBLENDFLAGS 1017 { 1018 D3DVBF_DISABLE = 0, 1019 D3DVBF_1WEIGHTS = 1, 1020 D3DVBF_2WEIGHTS = 2, 1021 D3DVBF_3WEIGHTS = 3, 1022 D3DVBF_TWEENING = 255, 1023 D3DVBF_0WEIGHTS = 256, 1024 D3DVBF_FORCE_DWORD = 0xffffffff 1025 } D3DVERTEXBLENDFLAGS; 1026 1027 typedef enum _D3DZBUFFERTYPE { 1028 D3DZB_FALSE = 0, 1029 D3DZB_TRUE = 1, 1030 D3DZB_USEW = 2, 1031 D3DZB_FORCE_DWORD = 0xffffffff 1032 } D3DZBUFFERTYPE; 1033 1034 typedef struct _D3DADAPTER_IDENTIFIER9 { 1035 char Driver[MAX_DEVICE_IDENTIFIER_STRING]; 1036 char Description[MAX_DEVICE_IDENTIFIER_STRING]; 1037 char DeviceName[32]; 1038 LARGE_INTEGER DriverVersion; 1039 DWORD VendorId; 1040 DWORD DeviceId; 1041 DWORD SubSysId; 1042 DWORD Revision; 1043 GUID DeviceIdentifier; 1044 DWORD WHQLLevel; 1045 } D3DADAPTER_IDENTIFIER9; 1046 1047 typedef struct _D3DBOX { 1048 UINT Left; 1049 UINT Top; 1050 UINT Right; 1051 UINT Bottom; 1052 UINT Front; 1053 UINT Back; 1054 } D3DBOX; 1055 1056 typedef struct _D3DCLIPSTATUS9 { 1057 DWORD ClipUnion; 1058 DWORD ClipIntersection; 1059 } D3DCLIPSTATUS9; 1060 1061 typedef struct _D3DCOLORVALUE { 1062 float r; 1063 float g; 1064 float b; 1065 float a; 1066 } D3DCOLORVALUE; 1067 1068 typedef struct _D3DRESOURCESTATS 1069 { 1070 BOOL bThrashing; 1071 DWORD ApproxBytesDownloaded; 1072 DWORD NumEvicts; 1073 DWORD NumVidCreates; 1074 DWORD LastPri; 1075 DWORD NumUsed; 1076 DWORD NumUsedInVidMem; 1077 DWORD WorkingSet; 1078 DWORD WorkingSetBytes; 1079 DWORD TotalManaged; 1080 DWORD TotalBytes; 1081 } D3DRESOURCESTATS; 1082 1083 typedef struct _D3DDEVICE_CREATION_PARAMETERS { 1084 UINT AdapterOrdinal; 1085 D3DDEVTYPE DeviceType; 1086 HWND hFocusWindow; 1087 DWORD BehaviorFlags; 1088 } D3DDEVICE_CREATION_PARAMETERS; 1089 1090 typedef struct _D3DDEVINFO_RESOURCEMANAGER { 1091 D3DRESOURCESTATS stats[D3DRTYPECOUNT]; 1092 } D3DDEVINFO_RESOURCEMANAGER, *LPD3DDEVINFO_RESOURCEMANAGER; 1093 1094 typedef struct _D3DDEVINFO_D3DVERTEXSTATS { 1095 DWORD NumRenderedTriangles; 1096 DWORD NumExtraClippingTriangles; 1097 } D3DDEVINFO_D3DVERTEXSTATS, *LPD3DDEVINFO_D3DVERTEXSTATS; 1098 1099 typedef struct _D3DDEVINFO_VCACHE { 1100 DWORD Pattern; 1101 DWORD OptMethod; 1102 DWORD CacheSize; 1103 DWORD MagicNumber; 1104 } D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE; 1105 1106 typedef struct _D3DDISPLAYMODE { 1107 UINT Width; 1108 UINT Height; 1109 UINT RefreshRate; 1110 D3DFORMAT Format; 1111 } D3DDISPLAYMODE; 1112 1113 typedef struct _D3DGAMMARAMP { 1114 WORD red[256]; 1115 WORD green[256]; 1116 WORD blue[256]; 1117 } D3DGAMMARAMP; 1118 1119 typedef struct _D3DINDEXBUFFER_DESC { 1120 D3DFORMAT Format; 1121 D3DRESOURCETYPE Type; 1122 DWORD Usage; 1123 D3DPOOL Pool; 1124 UINT Size; 1125 } D3DINDEXBUFFER_DESC; 1126 1127 typedef struct _D3DVECTOR { 1128 float x; 1129 float y; 1130 float z; 1131 } D3DVECTOR; 1132 1133 typedef struct _D3DLIGHT9 { 1134 D3DLIGHTTYPE Type; 1135 D3DCOLORVALUE Diffuse; 1136 D3DCOLORVALUE Specular; 1137 D3DCOLORVALUE Ambient; 1138 D3DVECTOR Position; 1139 D3DVECTOR Direction; 1140 float Range; 1141 float Falloff; 1142 float Attenuation0; 1143 float Attenuation1; 1144 float Attenuation2; 1145 float Theta; 1146 float Phi; 1147 } D3DLIGHT9; 1148 1149 typedef struct _D3DLOCKED_BOX { 1150 INT RowPitch; 1151 INT SlicePitch; 1152 void *pBits; 1153 } D3DLOCKED_BOX; 1154 1155 typedef struct _D3DLOCKED_RECT { 1156 INT Pitch; 1157 void *pBits; 1158 } D3DLOCKED_RECT; 1159 1160 typedef struct _D3DMATERIAL9 { 1161 D3DCOLORVALUE Diffuse; 1162 D3DCOLORVALUE Ambient; 1163 D3DCOLORVALUE Specular; 1164 D3DCOLORVALUE Emissive; 1165 float Power; 1166 } D3DMATERIAL9; 1167 1168 typedef struct _D3DMATRIX { 1169 union { 1170 struct { 1171 float _11, _12, _13, _14; 1172 float _21, _22, _23, _24; 1173 float _31, _32, _33, _34; 1174 float _41, _42, _43, _44; 1175 }; 1176 float m[4][4]; 1177 }; 1178 } D3DMATRIX; 1179 1180 typedef struct _D3DPRESENT_PARAMETERS { 1181 UINT BackBufferWidth; 1182 UINT BackBufferHeight; 1183 D3DFORMAT BackBufferFormat; 1184 UINT BackBufferCount; 1185 D3DMULTISAMPLE_TYPE MultiSampleType; 1186 DWORD MultiSampleQuality; 1187 D3DSWAPEFFECT SwapEffect; 1188 HWND hDeviceWindow; 1189 BOOL Windowed; 1190 BOOL EnableAutoDepthStencil; 1191 D3DFORMAT AutoDepthStencilFormat; 1192 DWORD Flags; 1193 UINT FullScreen_RefreshRateInHz; 1194 UINT PresentationInterval; 1195 } D3DPRESENT_PARAMETERS; 1196 1197 typedef struct _D3DRANGE 1198 { 1199 UINT Offset; 1200 UINT Size; 1201 } D3DRANGE; 1202 1203 typedef struct _D3DRASTER_STATUS { 1204 BOOL InVBlank; 1205 UINT ScanLine; 1206 } D3DRASTER_STATUS; 1207 1208 typedef struct _D3DRECT { 1209 LONG x1; 1210 LONG y1; 1211 LONG x2; 1212 LONG y2; 1213 } D3DRECT; 1214 1215 typedef struct _D3DRECTPATCH_INFO { 1216 UINT StartVertexOffsetWidth; 1217 UINT StartVertexOffsetHeight; 1218 UINT Width; 1219 UINT Height; 1220 UINT Stride; 1221 D3DBASISTYPE Basis; 1222 D3DORDERTYPE Order; 1223 } D3DRECTPATCH_INFO; 1224 1225 typedef struct _D3DSURFACE_DESC { 1226 D3DFORMAT Format; 1227 D3DRESOURCETYPE Type; 1228 DWORD Usage; 1229 D3DPOOL Pool; 1230 UINT Size; 1231 D3DMULTISAMPLE_TYPE MultiSampleType; 1232 UINT Width; 1233 UINT Height; 1234 } D3DSURFACE_DESC; 1235 1236 typedef struct _D3DTRIPATCH_INFO { 1237 UINT StartVertexOffset; 1238 UINT NumVertices; 1239 D3DBASISTYPE Basis; 1240 D3DORDERTYPE Order; 1241 } D3DTRIPATCH_INFO; 1242 1243 typedef struct _D3DVERTEXBUFFER_DESC { 1244 D3DFORMAT Format; 1245 D3DRESOURCETYPE Type; 1246 DWORD Usage; 1247 D3DPOOL Pool; 1248 UINT Size; 1249 DWORD FVF; 1250 } D3DVERTEXBUFFER_DESC; 1251 1252 typedef struct _D3DVERTEXELEMENT9 { 1253 WORD Stream; 1254 WORD Offset; 1255 BYTE Type; 1256 BYTE Method; 1257 BYTE Usage; 1258 BYTE UsageIndex; 1259 } D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9; 1260 1261 typedef struct _D3DVIEWPORT9 { 1262 DWORD X; 1263 DWORD Y; 1264 DWORD Width; 1265 DWORD Height; 1266 float MinZ; 1267 float MaxZ; 1268 } D3DVIEWPORT9; 1269 1270 typedef struct _D3DVOLUME_DESC { 1271 D3DFORMAT Format; 1272 D3DRESOURCETYPE Type; 1273 DWORD Usage; 1274 D3DPOOL Pool; 1275 UINT Width; 1276 UINT Height; 1277 UINT Depth; 1278 } D3DVOLUME_DESC; 1279 1280 #include <poppack.h> 1281 1282 #endif /* (DIRECT3D_VERSION >= 0x0900) */ 1283 1284 #endif 1285