1 // Copyright © 2015, Corey Richardson 2 // Licensed under the MIT License <LICENSE.md> 3 //! Direct3D capabilities include file 4 pub type D3DCOLOR = ::DWORD; 5 STRUCT!{struct D3DVECTOR { 6 x: ::c_float, 7 y: ::c_float, 8 z: ::c_float, 9 }} 10 STRUCT!{struct D3DCOLORVALUE { 11 r: ::c_float, 12 g: ::c_float, 13 b: ::c_float, 14 a: ::c_float, 15 }} 16 STRUCT!{struct D3DRECT { 17 x1: ::LONG, 18 y1: ::LONG, 19 x2: ::LONG, 20 y2: ::LONG, 21 }} 22 STRUCT!{struct D3DMATRIX { 23 m: [[::c_float; 4]; 4], 24 }} 25 STRUCT!{struct D3DVIEWPORT9 { 26 X: ::DWORD, 27 Y: ::DWORD, 28 Width: ::DWORD, 29 Height: ::DWORD, 30 MinZ: ::c_float, 31 MaxZ: ::c_float, 32 }} 33 pub const D3DMAXUSERCLIPPLANES: ::DWORD = 32; 34 pub const D3DCLIPPLANE0: ::DWORD = (1 << 0); 35 pub const D3DCLIPPLANE1: ::DWORD = (1 << 1); 36 pub const D3DCLIPPLANE2: ::DWORD = (1 << 2); 37 pub const D3DCLIPPLANE3: ::DWORD = (1 << 3); 38 pub const D3DCLIPPLANE4: ::DWORD = (1 << 4); 39 pub const D3DCLIPPLANE5: ::DWORD = (1 << 5); 40 pub const D3DCS_LEFT: ::DWORD = 0x00000001; 41 pub const D3DCS_RIGHT: ::DWORD = 0x00000002; 42 pub const D3DCS_TOP: ::DWORD = 0x00000004; 43 pub const D3DCS_BOTTOM: ::DWORD = 0x00000008; 44 pub const D3DCS_FRONT: ::DWORD = 0x00000010; 45 pub const D3DCS_BACK: ::DWORD = 0x00000020; 46 pub const D3DCS_PLANE0: ::DWORD = 0x00000040; 47 pub const D3DCS_PLANE1: ::DWORD = 0x00000080; 48 pub const D3DCS_PLANE2: ::DWORD = 0x00000100; 49 pub const D3DCS_PLANE3: ::DWORD = 0x00000200; 50 pub const D3DCS_PLANE4: ::DWORD = 0x00000400; 51 pub const D3DCS_PLANE5: ::DWORD = 0x00000800; 52 pub const D3DCS_ALL: ::DWORD = D3DCS_LEFT | D3DCS_RIGHT | D3DCS_TOP | D3DCS_BOTTOM | D3DCS_FRONT 53 | D3DCS_BACK | D3DCS_PLANE0 | D3DCS_PLANE1 | D3DCS_PLANE2 | D3DCS_PLANE3 | D3DCS_PLANE4 54 | D3DCS_PLANE5; 55 STRUCT!{struct D3DCLIPSTATUS9 { 56 ClipUnion: ::DWORD, 57 ClipIntersection: ::DWORD, 58 }} 59 STRUCT!{struct D3DMATERIAL9 { 60 Diffuse: D3DCOLORVALUE, 61 Ambient: D3DCOLORVALUE, 62 Specular: D3DCOLORVALUE, 63 Emissive: D3DCOLORVALUE, 64 Power: ::c_float, 65 }} 66 ENUM!{enum D3DLIGHTTYPE { 67 D3DLIGHT_POINT = 1, 68 D3DLIGHT_SPOT = 2, 69 D3DLIGHT_DIRECTIONAL = 3, 70 }} 71 STRUCT!{struct D3DLIGHT9 { 72 Type: D3DLIGHTTYPE, 73 Diffuse: D3DCOLORVALUE, 74 Specular: D3DCOLORVALUE, 75 Ambient: D3DCOLORVALUE, 76 Position: D3DVECTOR, 77 Direction: D3DVECTOR, 78 Range: ::c_float, 79 Falloff: ::c_float, 80 Attenuation0: ::c_float, 81 Attenuation1: ::c_float, 82 Attenuation2: ::c_float, 83 Theta: ::c_float, 84 Phi: ::c_float, 85 }} 86 pub const D3DCLEAR_TARGET: ::DWORD = 0x1; 87 pub const D3DCLEAR_ZBUFFER: ::DWORD = 0x2; 88 pub const D3DCLEAR_STENCIL: ::DWORD = 0x4; 89 ENUM!{enum D3DSHADEMODE { 90 D3DSHADE_FLAT = 1, 91 D3DSHADE_GOURAUD = 2, 92 D3DSHADE_PHONG = 3, 93 }} 94 ENUM!{enum D3DFILLMODE { 95 D3DFILL_POINT = 1, 96 D3DFILL_WIREFRAME = 2, 97 D3DFILL_SOLID = 3, 98 }} 99 ENUM!{enum D3DBLEND { 100 D3DBLEND_ZERO = 1, 101 D3DBLEND_ONE = 2, 102 D3DBLEND_SRCCOLOR = 3, 103 D3DBLEND_INVSRCCOLOR = 4, 104 D3DBLEND_SRCALPHA = 5, 105 D3DBLEND_INVSRCALPHA = 6, 106 D3DBLEND_DESTALPHA = 7, 107 D3DBLEND_INVDESTALPHA = 8, 108 D3DBLEND_DESTCOLOR = 9, 109 D3DBLEND_INVDESTCOLOR = 10, 110 D3DBLEND_SRCALPHASAT = 11, 111 D3DBLEND_BOTHSRCALPHA = 12, 112 D3DBLEND_BOTHINVSRCALPHA = 13, 113 D3DBLEND_BLENDFACTOR = 14, 114 D3DBLEND_INVBLENDFACTOR = 15, 115 }} 116 ENUM!{enum D3DBLENDOP { 117 D3DBLENDOP_ADD = 1, 118 D3DBLENDOP_SUBTRACT = 2, 119 D3DBLENDOP_REVSUBTRACT = 3, 120 D3DBLENDOP_MIN = 4, 121 D3DBLENDOP_MAX = 5, 122 }} 123 ENUM!{enum D3DTEXTUREADDRESS { 124 D3DTADDRESS_WRAP = 1, 125 D3DTADDRESS_MIRROR = 2, 126 D3DTADDRESS_CLAMP = 3, 127 D3DTADDRESS_BORDER = 4, 128 D3DTADDRESS_MIRRORONCE = 5, 129 }} 130 ENUM!{enum D3DCULL { 131 D3DCULL_NONE = 1, 132 D3DCULL_CW = 2, 133 D3DCULL_CCW = 3, 134 }} 135 ENUM!{enum D3DCMPFUNC { 136 D3DCMP_NEVER = 1, 137 D3DCMP_LESS = 2, 138 D3DCMP_EQUAL = 3, 139 D3DCMP_LESSEQUAL = 4, 140 D3DCMP_GREATER = 5, 141 D3DCMP_NOTEQUAL = 6, 142 D3DCMP_GREATEREQUAL = 7, 143 D3DCMP_ALWAYS = 8, 144 }} 145 ENUM!{enum D3DSTENCILOP { 146 D3DSTENCILOP_KEEP = 1, 147 D3DSTENCILOP_ZERO = 2, 148 D3DSTENCILOP_REPLACE = 3, 149 D3DSTENCILOP_INCRSAT = 4, 150 D3DSTENCILOP_DECRSAT = 5, 151 D3DSTENCILOP_INVERT = 6, 152 D3DSTENCILOP_INCR = 7, 153 D3DSTENCILOP_DECR = 8, 154 }} 155 ENUM!{enum D3DFOGMODE { 156 D3DFOG_NONE = 0, 157 D3DFOG_EXP = 1, 158 D3DFOG_EXP2 = 2, 159 D3DFOG_LINEAR = 3, 160 }} 161 ENUM!{enum D3DZBUFFERTYPE { 162 D3DZB_FALSE = 0, 163 D3DZB_TRUE = 1, 164 D3DZB_USEW = 2, 165 }} 166 ENUM!{enum D3DPRIMITIVETYPE { 167 D3DPT_POINTLIST = 1, 168 D3DPT_LINELIST = 2, 169 D3DPT_LINESTRIP = 3, 170 D3DPT_TRIANGLELIST = 4, 171 D3DPT_TRIANGLESTRIP = 5, 172 D3DPT_TRIANGLEFAN = 6, 173 }} 174 ENUM!{enum D3DTRANSFORMSTATETYPE { 175 D3DTS_VIEW = 2, 176 D3DTS_PROJECTION = 3, 177 D3DTS_TEXTURE0 = 16, 178 D3DTS_TEXTURE1 = 17, 179 D3DTS_TEXTURE2 = 18, 180 D3DTS_TEXTURE3 = 19, 181 D3DTS_TEXTURE4 = 20, 182 D3DTS_TEXTURE5 = 21, 183 D3DTS_TEXTURE6 = 22, 184 D3DTS_TEXTURE7 = 23, 185 }} 186 ENUM!{enum D3DRENDERSTATETYPE { 187 D3DRS_ZENABLE = 7, 188 D3DRS_FILLMODE = 8, 189 D3DRS_SHADEMODE = 9, 190 D3DRS_ZWRITEENABLE = 14, 191 D3DRS_ALPHATESTENABLE = 15, 192 D3DRS_LASTPIXEL = 16, 193 D3DRS_SRCBLEND = 19, 194 D3DRS_DESTBLEND = 20, 195 D3DRS_CULLMODE = 22, 196 D3DRS_ZFUNC = 23, 197 D3DRS_ALPHAREF = 24, 198 D3DRS_ALPHAFUNC = 25, 199 D3DRS_DITHERENABLE = 26, 200 D3DRS_ALPHABLENDENABLE = 27, 201 D3DRS_FOGENABLE = 28, 202 D3DRS_SPECULARENABLE = 29, 203 D3DRS_FOGCOLOR = 34, 204 D3DRS_FOGTABLEMODE = 35, 205 D3DRS_FOGSTART = 36, 206 D3DRS_FOGEND = 37, 207 D3DRS_FOGDENSITY = 38, 208 D3DRS_RANGEFOGENABLE = 48, 209 D3DRS_STENCILENABLE = 52, 210 D3DRS_STENCILFAIL = 53, 211 D3DRS_STENCILZFAIL = 54, 212 D3DRS_STENCILPASS = 55, 213 D3DRS_STENCILFUNC = 56, 214 D3DRS_STENCILREF = 57, 215 D3DRS_STENCILMASK = 58, 216 D3DRS_STENCILWRITEMASK = 59, 217 D3DRS_TEXTUREFACTOR = 60, 218 D3DRS_WRAP0 = 128, 219 D3DRS_WRAP1 = 129, 220 D3DRS_WRAP2 = 130, 221 D3DRS_WRAP3 = 131, 222 D3DRS_WRAP4 = 132, 223 D3DRS_WRAP5 = 133, 224 D3DRS_WRAP6 = 134, 225 D3DRS_WRAP7 = 135, 226 D3DRS_CLIPPING = 136, 227 D3DRS_LIGHTING = 137, 228 D3DRS_AMBIENT = 139, 229 D3DRS_FOGVERTEXMODE = 140, 230 D3DRS_COLORVERTEX = 141, 231 D3DRS_LOCALVIEWER = 142, 232 D3DRS_NORMALIZENORMALS = 143, 233 D3DRS_DIFFUSEMATERIALSOURCE = 145, 234 D3DRS_SPECULARMATERIALSOURCE = 146, 235 D3DRS_AMBIENTMATERIALSOURCE = 147, 236 D3DRS_EMISSIVEMATERIALSOURCE = 148, 237 D3DRS_VERTEXBLEND = 151, 238 D3DRS_CLIPPLANEENABLE = 152, 239 D3DRS_POINTSIZE = 154, 240 D3DRS_POINTSIZE_MIN = 155, 241 D3DRS_POINTSPRITEENABLE = 156, 242 D3DRS_POINTSCALEENABLE = 157, 243 D3DRS_POINTSCALE_A = 158, 244 D3DRS_POINTSCALE_B = 159, 245 D3DRS_POINTSCALE_C = 160, 246 D3DRS_MULTISAMPLEANTIALIAS = 161, 247 D3DRS_MULTISAMPLEMASK = 162, 248 D3DRS_PATCHEDGESTYLE = 163, 249 D3DRS_DEBUGMONITORTOKEN = 165, 250 D3DRS_POINTSIZE_MAX = 166, 251 D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 252 D3DRS_COLORWRITEENABLE = 168, 253 D3DRS_TWEENFACTOR = 170, 254 D3DRS_BLENDOP = 171, 255 D3DRS_POSITIONDEGREE = 172, 256 D3DRS_NORMALDEGREE = 173, 257 D3DRS_SCISSORTESTENABLE = 174, 258 D3DRS_SLOPESCALEDEPTHBIAS = 175, 259 D3DRS_ANTIALIASEDLINEENABLE = 176, 260 D3DRS_MINTESSELLATIONLEVEL = 178, 261 D3DRS_MAXTESSELLATIONLEVEL = 179, 262 D3DRS_ADAPTIVETESS_X = 180, 263 D3DRS_ADAPTIVETESS_Y = 181, 264 D3DRS_ADAPTIVETESS_Z = 182, 265 D3DRS_ADAPTIVETESS_W = 183, 266 D3DRS_ENABLEADAPTIVETESSELLATION = 184, 267 D3DRS_TWOSIDEDSTENCILMODE = 185, 268 D3DRS_CCW_STENCILFAIL = 186, 269 D3DRS_CCW_STENCILZFAIL = 187, 270 D3DRS_CCW_STENCILPASS = 188, 271 D3DRS_CCW_STENCILFUNC = 189, 272 D3DRS_COLORWRITEENABLE1 = 190, 273 D3DRS_COLORWRITEENABLE2 = 191, 274 D3DRS_COLORWRITEENABLE3 = 192, 275 D3DRS_BLENDFACTOR = 193, 276 D3DRS_SRGBWRITEENABLE = 194, 277 D3DRS_DEPTHBIAS = 195, 278 D3DRS_WRAP8 = 198, 279 D3DRS_WRAP9 = 199, 280 D3DRS_WRAP10 = 200, 281 D3DRS_WRAP11 = 201, 282 D3DRS_WRAP12 = 202, 283 D3DRS_WRAP13 = 203, 284 D3DRS_WRAP14 = 204, 285 D3DRS_WRAP15 = 205, 286 D3DRS_SEPARATEALPHABLENDENABLE = 206, 287 D3DRS_SRCBLENDALPHA = 207, 288 D3DRS_DESTBLENDALPHA = 208, 289 D3DRS_BLENDOPALPHA = 209, 290 }} 291 pub const D3D_MAX_SIMULTANEOUS_RENDERTARGETS: ::DWORD = 4; 292 ENUM!{enum D3DMATERIALCOLORSOURCE { 293 D3DMCS_MATERIAL = 0, 294 D3DMCS_COLOR1 = 1, 295 D3DMCS_COLOR2 = 2, 296 }} 297 pub const D3DRENDERSTATE_WRAPBIAS: ::DWORD = 128; 298 pub const D3DWRAP_U: ::DWORD = 0x00000001; 299 pub const D3DWRAP_V: ::DWORD = 0x00000002; 300 pub const D3DWRAP_W: ::DWORD = 0x00000004; 301 pub const D3DWRAPCOORD_0: ::DWORD = 0x00000001; 302 pub const D3DWRAPCOORD_1: ::DWORD = 0x00000002; 303 pub const D3DWRAPCOORD_2: ::DWORD = 0x00000004; 304 pub const D3DWRAPCOORD_3: ::DWORD = 0x00000008; 305 pub const D3DCOLORWRITEENABLE_RED: ::DWORD = 1 << 0; 306 pub const D3DCOLORWRITEENABLE_GREEN: ::DWORD = 1 << 1; 307 pub const D3DCOLORWRITEENABLE_BLUE: ::DWORD = 1 << 2; 308 pub const D3DCOLORWRITEENABLE_ALPHA: ::DWORD = 1 << 3; 309 ENUM!{enum D3DTEXTURESTAGESTATETYPE { 310 D3DTSS_COLOROP = 1, 311 D3DTSS_COLORARG1 = 2, 312 D3DTSS_COLORARG2 = 3, 313 D3DTSS_ALPHAOP = 4, 314 D3DTSS_ALPHAARG1 = 5, 315 D3DTSS_ALPHAARG2 = 6, 316 D3DTSS_BUMPENVMAT00 = 7, 317 D3DTSS_BUMPENVMAT01 = 8, 318 D3DTSS_BUMPENVMAT10 = 9, 319 D3DTSS_BUMPENVMAT11 = 10, 320 D3DTSS_TEXCOORDINDEX = 11, 321 D3DTSS_BUMPENVLSCALE = 22, 322 D3DTSS_BUMPENVLOFFSET = 23, 323 D3DTSS_TEXTURETRANSFORMFLAGS = 24, 324 D3DTSS_COLORARG0 = 26, 325 D3DTSS_ALPHAARG0 = 27, 326 D3DTSS_RESULTARG = 28, 327 D3DTSS_CONSTANT = 32, 328 }} 329 ENUM!{enum D3DSAMPLERSTATETYPE { 330 D3DSAMP_ADDRESSU = 1, 331 D3DSAMP_ADDRESSV = 2, 332 D3DSAMP_ADDRESSW = 3, 333 D3DSAMP_BORDERCOLOR = 4, 334 D3DSAMP_MAGFILTER = 5, 335 D3DSAMP_MINFILTER = 6, 336 D3DSAMP_MIPFILTER = 7, 337 D3DSAMP_MIPMAPLODBIAS = 8, 338 D3DSAMP_MAXMIPLEVEL = 9, 339 D3DSAMP_MAXANISOTROPY = 10, 340 D3DSAMP_SRGBTEXTURE = 11, 341 D3DSAMP_ELEMENTINDEX = 12, 342 D3DSAMP_DMAPOFFSET = 13, 343 }} 344 pub const D3DDMAPSAMPLER: ::DWORD = 256; 345 pub const D3DVERTEXTEXTURESAMPLER0: ::DWORD = D3DDMAPSAMPLER + 1; 346 pub const D3DVERTEXTEXTURESAMPLER1: ::DWORD = D3DDMAPSAMPLER + 2; 347 pub const D3DVERTEXTEXTURESAMPLER2: ::DWORD = D3DDMAPSAMPLER + 3; 348 pub const D3DVERTEXTEXTURESAMPLER3: ::DWORD = D3DDMAPSAMPLER + 4; 349 pub const D3DTSS_TCI_PASSTHRU: ::DWORD = 0x00000000; 350 pub const D3DTSS_TCI_CAMERASPACENORMAL: ::DWORD = 0x00010000; 351 pub const D3DTSS_TCI_CAMERASPACEPOSITION: ::DWORD = 0x00020000; 352 pub const D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR: ::DWORD = 0x00030000; 353 pub const D3DTSS_TCI_SPHEREMAP: ::DWORD = 0x00040000; 354 ENUM!{enum D3DTEXTUREOP { 355 D3DTOP_DISABLE = 1, 356 D3DTOP_SELECTARG1 = 2, 357 D3DTOP_SELECTARG2 = 3, 358 D3DTOP_MODULATE = 4, 359 D3DTOP_MODULATE2X = 5, 360 D3DTOP_MODULATE4X = 6, 361 D3DTOP_ADD = 7, 362 D3DTOP_ADDSIGNED = 8, 363 D3DTOP_ADDSIGNED2X = 9, 364 D3DTOP_SUBTRACT = 10, 365 D3DTOP_ADDSMOOTH = 11, 366 D3DTOP_BLENDDIFFUSEALPHA = 12, 367 D3DTOP_BLENDTEXTUREALPHA = 13, 368 D3DTOP_BLENDFACTORALPHA = 14, 369 D3DTOP_BLENDTEXTUREALPHAPM = 15, 370 D3DTOP_BLENDCURRENTALPHA = 16, 371 D3DTOP_PREMODULATE = 17, 372 D3DTOP_MODULATEALPHA_ADDCOLOR = 18, 373 D3DTOP_MODULATECOLOR_ADDALPHA = 19, 374 D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20, 375 D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21, 376 D3DTOP_BUMPENVMAP = 22, 377 D3DTOP_BUMPENVMAPLUMINANCE = 23, 378 D3DTOP_DOTPRODUCT3 = 24, 379 D3DTOP_MULTIPLYADD = 25, 380 D3DTOP_LERP = 26, 381 }} 382 pub const D3DTA_SELECTMASK: ::DWORD = 0x0000000f; 383 pub const D3DTA_DIFFUSE: ::DWORD = 0x00000000; 384 pub const D3DTA_CURRENT: ::DWORD = 0x00000001; 385 pub const D3DTA_TEXTURE: ::DWORD = 0x00000002; 386 pub const D3DTA_TFACTOR: ::DWORD = 0x00000003; 387 pub const D3DTA_SPECULAR: ::DWORD = 0x00000004; 388 pub const D3DTA_TEMP: ::DWORD = 0x00000005; 389 pub const D3DTA_CONSTANT: ::DWORD = 0x00000006; 390 pub const D3DTA_COMPLEMENT: ::DWORD = 0x00000010; 391 pub const D3DTA_ALPHAREPLICATE: ::DWORD = 0x00000020; 392 ENUM!{enum D3DTEXTUREFILTERTYPE { 393 D3DTEXF_NONE = 0, 394 D3DTEXF_POINT = 1, 395 D3DTEXF_LINEAR = 2, 396 D3DTEXF_ANISOTROPIC = 3, 397 D3DTEXF_PYRAMIDALQUAD = 6, 398 D3DTEXF_GAUSSIANQUAD = 7, 399 D3DTEXF_CONVOLUTIONMONO = 8, 400 }} 401 pub const D3DPV_DONOTCOPYDATA: ::DWORD = 1 << 0; 402 pub const D3DFVF_RESERVED0: ::DWORD = 0x001; 403 pub const D3DFVF_POSITION_MASK: ::DWORD = 0x400E; 404 pub const D3DFVF_XYZ: ::DWORD = 0x002; 405 pub const D3DFVF_XYZRHW: ::DWORD = 0x004; 406 pub const D3DFVF_XYZB1: ::DWORD = 0x006; 407 pub const D3DFVF_XYZB2: ::DWORD = 0x008; 408 pub const D3DFVF_XYZB3: ::DWORD = 0x00a; 409 pub const D3DFVF_XYZB4: ::DWORD = 0x00c; 410 pub const D3DFVF_XYZB5: ::DWORD = 0x00e; 411 pub const D3DFVF_XYZW: ::DWORD = 0x4002; 412 pub const D3DFVF_NORMAL: ::DWORD = 0x010; 413 pub const D3DFVF_PSIZE: ::DWORD = 0x020; 414 pub const D3DFVF_DIFFUSE: ::DWORD = 0x040; 415 pub const D3DFVF_SPECULAR: ::DWORD = 0x080; 416 pub const D3DFVF_TEXCOUNT_MASK: ::DWORD = 0xf00; 417 pub const D3DFVF_TEXCOUNT_SHIFT: ::DWORD = 8; 418 pub const D3DFVF_TEX0: ::DWORD = 0x000; 419 pub const D3DFVF_TEX1: ::DWORD = 0x100; 420 pub const D3DFVF_TEX2: ::DWORD = 0x200; 421 pub const D3DFVF_TEX3: ::DWORD = 0x300; 422 pub const D3DFVF_TEX4: ::DWORD = 0x400; 423 pub const D3DFVF_TEX5: ::DWORD = 0x500; 424 pub const D3DFVF_TEX6: ::DWORD = 0x600; 425 pub const D3DFVF_TEX7: ::DWORD = 0x700; 426 pub const D3DFVF_TEX8: ::DWORD = 0x800; 427 pub const D3DFVF_LASTBETA_UBYTE4: ::DWORD = 0x1000; 428 pub const D3DFVF_LASTBETA_D3DCOLOR: ::DWORD = 0x8000; 429 pub const D3DFVF_RESERVED2: ::DWORD = 0x6000; 430 ENUM!{enum D3DDECLUSAGE { 431 D3DDECLUSAGE_POSITION = 0, 432 D3DDECLUSAGE_BLENDWEIGHT, 433 D3DDECLUSAGE_BLENDINDICES, 434 D3DDECLUSAGE_NORMAL, 435 D3DDECLUSAGE_PSIZE, 436 D3DDECLUSAGE_TEXCOORD, 437 D3DDECLUSAGE_TANGENT, 438 D3DDECLUSAGE_BINORMAL, 439 D3DDECLUSAGE_TESSFACTOR, 440 D3DDECLUSAGE_POSITIONT, 441 D3DDECLUSAGE_COLOR, 442 D3DDECLUSAGE_FOG, 443 D3DDECLUSAGE_DEPTH, 444 D3DDECLUSAGE_SAMPLE, 445 }} 446 pub const MAXD3DDECLUSAGE: D3DDECLUSAGE = D3DDECLUSAGE_SAMPLE; 447 pub const MAXD3DDECLUSAGEINDEX: ::DWORD = 15; 448 pub const MAXD3DDECLLENGTH: ::DWORD = 64; 449 ENUM!{enum D3DDECLMETHOD { 450 D3DDECLMETHOD_DEFAULT = 0, 451 D3DDECLMETHOD_PARTIALU, 452 D3DDECLMETHOD_PARTIALV, 453 D3DDECLMETHOD_CROSSUV, 454 D3DDECLMETHOD_UV, 455 D3DDECLMETHOD_LOOKUP, 456 D3DDECLMETHOD_LOOKUPPRESAMPLED, 457 }} 458 pub const MAXD3DDECLMETHOD: D3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED; 459 ENUM!{enum D3DDECLTYPE { 460 D3DDECLTYPE_FLOAT1 = 0, 461 D3DDECLTYPE_FLOAT2 = 1, 462 D3DDECLTYPE_FLOAT3 = 2, 463 D3DDECLTYPE_FLOAT4 = 3, 464 D3DDECLTYPE_D3DCOLOR = 4, 465 D3DDECLTYPE_UBYTE4 = 5, 466 D3DDECLTYPE_SHORT2 = 6, 467 D3DDECLTYPE_SHORT4 = 7, 468 D3DDECLTYPE_UBYTE4N = 8, 469 D3DDECLTYPE_SHORT2N = 9, 470 D3DDECLTYPE_SHORT4N = 10, 471 D3DDECLTYPE_USHORT2N = 11, 472 D3DDECLTYPE_USHORT4N = 12, 473 D3DDECLTYPE_UDEC3 = 13, 474 D3DDECLTYPE_DEC3N = 14, 475 D3DDECLTYPE_FLOAT16_2 = 15, 476 D3DDECLTYPE_FLOAT16_4 = 16, 477 D3DDECLTYPE_UNUSED = 17, 478 }} 479 pub const MAXD3DDECLTYPE: D3DDECLTYPE = D3DDECLTYPE_UNUSED; 480 STRUCT!{struct D3DVERTEXELEMENT9 { 481 Stream: ::WORD, 482 Offset: ::WORD, 483 Type: ::BYTE, 484 Method: ::BYTE, 485 Usage: ::BYTE, 486 UsageIndex: ::BYTE, 487 }} 488 pub type LPD3DVERTEXELEMENT9 = *mut D3DVERTEXELEMENT9; 489 pub const D3DDECL_END: D3DVERTEXELEMENT9 = D3DVERTEXELEMENT9 { 490 Stream: 0xFF, 491 Offset: 0, 492 Type: D3DDECLTYPE_UNUSED.0 as ::BYTE, 493 Method: 0, 494 Usage: 0, 495 UsageIndex: 0, 496 }; 497 pub const D3DDP_MAXTEXCOORD: ::DWORD = 8; 498 pub const D3DSTREAMSOURCE_INDEXEDDATA: ::DWORD = 1 << 30; 499 pub const D3DSTREAMSOURCE_INSTANCEDATA: ::DWORD = 2 << 30; 500 pub const D3DSI_OPCODE_MASK: ::DWORD = 0x0000FFFF; 501 pub const D3DSI_INSTLENGTH_MASK: ::DWORD = 0x0F000000; 502 pub const D3DSI_INSTLENGTH_SHIFT: ::DWORD = 24; 503 ENUM!{enum D3DSHADER_INSTRUCTION_OPCODE_TYPE { 504 D3DSIO_NOP = 0, 505 D3DSIO_MOV = 1, 506 D3DSIO_ADD = 2, 507 D3DSIO_SUB = 3, 508 D3DSIO_MAD = 4, 509 D3DSIO_MUL = 5, 510 D3DSIO_RCP = 6, 511 D3DSIO_RSQ = 7, 512 D3DSIO_DP3 = 8, 513 D3DSIO_DP4 = 9, 514 D3DSIO_MIN = 10, 515 D3DSIO_MAX = 11, 516 D3DSIO_SLT = 12, 517 D3DSIO_SGE = 13, 518 D3DSIO_EXP = 14, 519 D3DSIO_LOG = 15, 520 D3DSIO_LIT = 16, 521 D3DSIO_DST = 17, 522 D3DSIO_LRP = 18, 523 D3DSIO_FRC = 18, 524 D3DSIO_M4x4 = 20, 525 D3DSIO_M4x3 = 21, 526 D3DSIO_M3x4 = 22, 527 D3DSIO_M3x3 = 23, 528 D3DSIO_M3x2 = 24, 529 D3DSIO_CALL = 25, 530 D3DSIO_CALLNZ = 26, 531 D3DSIO_LOOP = 27, 532 D3DSIO_RET = 28, 533 D3DSIO_ENDLOOP = 29, 534 D3DSIO_LABEL = 30, 535 D3DSIO_DCL = 31, 536 D3DSIO_POW = 32, 537 D3DSIO_CRS = 33, 538 D3DSIO_SGN = 34, 539 D3DSIO_ABS = 35, 540 D3DSIO_NRM = 36, 541 D3DSIO_SINCOS = 37, 542 D3DSIO_REP = 38, 543 D3DSIO_ENDREP = 39, 544 D3DSIO_IF = 40, 545 D3DSIO_IFC = 41, 546 D3DSIO_ELSE = 42, 547 D3DSIO_ENDIF = 43, 548 D3DSIO_BREAK = 44, 549 D3DSIO_BREAKC = 45, 550 D3DSIO_MOVA = 46, 551 D3DSIO_DEFB = 47, 552 D3DSIO_DEFI = 48, 553 D3DSIO_TEXCOORD = 64, 554 D3DSIO_TEXKILL = 65, 555 D3DSIO_TEX = 66, 556 D3DSIO_TEXBEM = 67, 557 D3DSIO_TEXBEML = 68, 558 D3DSIO_TEXREG2AR = 69, 559 D3DSIO_TEXREG2GB = 70, 560 D3DSIO_TEXM3x2PAD = 71, 561 D3DSIO_TEXM3x2TEX = 72, 562 D3DSIO_TEXM3x3PAD = 73, 563 D3DSIO_TEXM3x3TEX = 74, 564 D3DSIO_RESERVED0 = 75, 565 D3DSIO_TEXM3x3SPEC = 76, 566 D3DSIO_TEXM3x3VSPEC = 77, 567 D3DSIO_EXPP = 78, 568 D3DSIO_LOGP = 79, 569 D3DSIO_CND = 80, 570 D3DSIO_DEF = 81, 571 D3DSIO_TEXREG2RGB = 82, 572 D3DSIO_TEXDP3TEX = 83, 573 D3DSIO_TEXM3x2DEPTH = 84, 574 D3DSIO_TEXDP3 = 85, 575 D3DSIO_TEXM3x3 = 86, 576 D3DSIO_TEXDEPTH = 87, 577 D3DSIO_CMP = 88, 578 D3DSIO_BEM = 89, 579 D3DSIO_DP2ADD = 90, 580 D3DSIO_DSX = 91, 581 D3DSIO_DSY = 92, 582 D3DSIO_TEXLDD = 93, 583 D3DSIO_SETP = 94, 584 D3DSIO_TEXLDL = 95, 585 D3DSIO_BREAKP = 96, 586 D3DSIO_PHASE = 0xFFFD, 587 D3DSIO_COMMENT = 0xFFFE, 588 D3DSIO_END = 0xFFFF, 589 }} 590 pub const D3DSI_COISSUE: ::DWORD = 0x40000000; 591 pub const D3DSP_OPCODESPECIFICCONTROL_MASK: ::DWORD = 0x00ff0000; 592 pub const D3DSP_OPCODESPECIFICCONTROL_SHIFT: ::DWORD = 16; 593 pub const D3DSI_TEXLD_PROJECT: ::DWORD = 0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT; 594 pub const D3DSI_TEXLD_BIAS: ::DWORD = 0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT; 595 ENUM!{enum D3DSHADER_COMPARISON { 596 D3DSPC_RESERVED0 = 0, 597 D3DSPC_GT = 1, 598 D3DSPC_EQ = 2, 599 D3DSPC_GE = 3, 600 D3DSPC_LT = 4, 601 D3DSPC_NE = 5, 602 D3DSPC_LE = 6, 603 D3DSPC_RESERVED1 = 7, 604 }} 605 pub const D3DSHADER_COMPARISON_SHIFT: ::DWORD = D3DSP_OPCODESPECIFICCONTROL_SHIFT; 606 pub const D3DSHADER_COMPARISON_MASK: ::DWORD = 0x7 << D3DSHADER_COMPARISON_SHIFT; 607 pub const D3DSHADER_INSTRUCTION_PREDICATED: ::DWORD = 0x1 << 28; 608 pub const D3DSP_DCL_USAGE_SHIFT: ::DWORD = 0; 609 pub const D3DSP_DCL_USAGE_MASK: ::DWORD = 0x0000000f; 610 pub const D3DSP_DCL_USAGEINDEX_SHIFT: ::DWORD = 16; 611 pub const D3DSP_DCL_USAGEINDEX_MASK: ::DWORD = 0x000f0000; 612 pub const D3DSP_TEXTURETYPE_SHIFT: ::DWORD = 27; 613 pub const D3DSP_TEXTURETYPE_MASK: ::DWORD = 0x78000000; 614 ENUM!{enum D3DSAMPLER_TEXTURE_TYPE { 615 D3DSTT_UNKNOWN = 0 << D3DSP_TEXTURETYPE_SHIFT, 616 D3DSTT_2D = 2 << D3DSP_TEXTURETYPE_SHIFT, 617 D3DSTT_CUBE = 3 << D3DSP_TEXTURETYPE_SHIFT, 618 D3DSTT_VOLUME = 4 << D3DSP_TEXTURETYPE_SHIFT, 619 }} 620 pub const D3DSP_REGNUM_MASK: ::DWORD = 0x000007FF; 621 pub const D3DSP_WRITEMASK_0: ::DWORD = 0x00010000; 622 pub const D3DSP_WRITEMASK_1: ::DWORD = 0x00020000; 623 pub const D3DSP_WRITEMASK_2: ::DWORD = 0x00040000; 624 pub const D3DSP_WRITEMASK_3: ::DWORD = 0x00080000; 625 pub const D3DSP_WRITEMASK_ALL: ::DWORD = 0x000F0000; 626 pub const D3DSP_DSTMOD_SHIFT: ::DWORD = 20; 627 pub const D3DSP_DSTMOD_MASK: ::DWORD = 0x00F00000; 628 pub const D3DSPDM_NONE: ::DWORD = 0 << D3DSP_DSTMOD_SHIFT; 629 pub const D3DSPDM_SATURATE: ::DWORD = 1 << D3DSP_DSTMOD_SHIFT; 630 pub const D3DSPDM_PARTIALPRECISION: ::DWORD = 2 << D3DSP_DSTMOD_SHIFT; 631 pub const D3DSPDM_MSAMPCENTROID: ::DWORD = 4 << D3DSP_DSTMOD_SHIFT; 632 pub const D3DSP_DSTSHIFT_SHIFT: ::DWORD = 24; 633 pub const D3DSP_DSTSHIFT_MASK: ::DWORD = 0x0F000000; 634 pub const D3DSP_REGTYPE_SHIFT: ::DWORD = 28; 635 pub const D3DSP_REGTYPE_SHIFT2: ::DWORD = 8; 636 pub const D3DSP_REGTYPE_MASK: ::DWORD = 0x70000000; 637 pub const D3DSP_REGTYPE_MASK2: ::DWORD = 0x00001800; 638 ENUM!{enum D3DSHADER_PARAM_REGISTER_TYPE { 639 D3DSPR_TEMP = 0, 640 D3DSPR_INPUT = 1, 641 D3DSPR_CONST = 2, 642 D3DSPR_ADDR = 3, 643 D3DSPR_TEXTURE = 3, 644 D3DSPR_RASTOUT = 4, 645 D3DSPR_ATTROUT = 5, 646 D3DSPR_TEXCRDOUT = 6, 647 D3DSPR_OUTPUT = 6, 648 D3DSPR_CONSTINT = 7, 649 D3DSPR_COLOROUT = 8, 650 D3DSPR_DEPTHOUT = 9, 651 D3DSPR_SAMPLER = 10, 652 D3DSPR_CONST2 = 11, 653 D3DSPR_CONST3 = 12, 654 D3DSPR_CONST4 = 13, 655 D3DSPR_CONSTBOOL = 14, 656 D3DSPR_LOOP = 15, 657 D3DSPR_TEMPFLOAT16 = 16, 658 D3DSPR_MISCTYPE = 17, 659 D3DSPR_LABEL = 18, 660 D3DSPR_PREDICATE = 19, 661 }} 662 ENUM!{enum D3DSHADER_MISCTYPE_OFFSETS { 663 D3DSMO_POSITION = 0, 664 D3DSMO_FACE = 1, 665 }} 666 ENUM!{enum D3DVS_RASTOUT_OFFSETS { 667 D3DSRO_POSITION = 0, 668 D3DSRO_FOG, 669 D3DSRO_POINT_SIZE, 670 }} 671 pub const D3DVS_ADDRESSMODE_SHIFT: ::DWORD = 13; 672 pub const D3DVS_ADDRESSMODE_MASK: ::DWORD = 1 << D3DVS_ADDRESSMODE_SHIFT; 673 ENUM!{enum D3DVS_ADDRESSMODE_TYPE { 674 D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT, 675 D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT, 676 }} 677 pub const D3DSHADER_ADDRESSMODE_SHIFT: ::DWORD = 13; 678 pub const D3DSHADER_ADDRESSMODE_MASK: ::DWORD = 1 << D3DSHADER_ADDRESSMODE_SHIFT; 679 ENUM!{enum D3DSHADER_ADDRESSMODE_TYPE { 680 D3DSHADER_ADDRMODE_ABSOLUTE = 0 << D3DSHADER_ADDRESSMODE_SHIFT, 681 D3DSHADER_ADDRMODE_RELATIVE = 1 << D3DSHADER_ADDRESSMODE_SHIFT, 682 }} 683 pub const D3DVS_SWIZZLE_SHIFT: ::DWORD = 16; 684 pub const D3DVS_SWIZZLE_MASK: ::DWORD = 0x00FF0000; 685 pub const D3DVS_X_X: ::DWORD = 0 << D3DVS_SWIZZLE_SHIFT; 686 pub const D3DVS_X_Y: ::DWORD = 1 << D3DVS_SWIZZLE_SHIFT; 687 pub const D3DVS_X_Z: ::DWORD = 2 << D3DVS_SWIZZLE_SHIFT; 688 pub const D3DVS_X_W: ::DWORD = 3 << D3DVS_SWIZZLE_SHIFT; 689 pub const D3DVS_Y_X: ::DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 2); 690 pub const D3DVS_Y_Y: ::DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 2); 691 pub const D3DVS_Y_Z: ::DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 2); 692 pub const D3DVS_Y_W: ::DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 2); 693 pub const D3DVS_Z_X: ::DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 4); 694 pub const D3DVS_Z_Y: ::DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 4); 695 pub const D3DVS_Z_Z: ::DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 4); 696 pub const D3DVS_Z_W: ::DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 4); 697 pub const D3DVS_W_X: ::DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 6); 698 pub const D3DVS_W_Y: ::DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 6); 699 pub const D3DVS_W_Z: ::DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 6); 700 pub const D3DVS_W_W: ::DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 6); 701 pub const D3DVS_NOSWIZZLE: ::DWORD = D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W; 702 pub const D3DSP_SWIZZLE_SHIFT: ::DWORD = 16; 703 pub const D3DSP_SWIZZLE_MASK: ::DWORD = 0x00FF0000; 704 pub const D3DSP_NOSWIZZLE: ::DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0)) 705 | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) 706 | (3 << (D3DSP_SWIZZLE_SHIFT + 6)); 707 pub const D3DSP_REPLICATERED: ::DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0)) 708 | (0 << (D3DSP_SWIZZLE_SHIFT + 2)) | (0 << (D3DSP_SWIZZLE_SHIFT + 4)) 709 | (0 << (D3DSP_SWIZZLE_SHIFT + 6)); 710 pub const D3DSP_REPLICATEGREEN: ::DWORD = (1 << (D3DSP_SWIZZLE_SHIFT + 0)) 711 | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (1 << (D3DSP_SWIZZLE_SHIFT + 4)) 712 | (1 << (D3DSP_SWIZZLE_SHIFT + 6)); 713 pub const D3DSP_REPLICATEBLUE: ::DWORD = (2 << (D3DSP_SWIZZLE_SHIFT + 0)) 714 | (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) 715 | (2 << (D3DSP_SWIZZLE_SHIFT + 6)); 716 pub const D3DSP_REPLICATEALPHA: ::DWORD = (3 << (D3DSP_SWIZZLE_SHIFT + 0)) 717 | (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | (3 << (D3DSP_SWIZZLE_SHIFT + 4)) 718 | (3 << (D3DSP_SWIZZLE_SHIFT + 6)); 719 pub const D3DSP_SRCMOD_SHIFT: ::DWORD = 24; 720 pub const D3DSP_SRCMOD_MASK: ::DWORD = 0x0F000000; 721 ENUM!{enum D3DSHADER_PARAM_SRCMOD_TYPE { 722 D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT, 723 D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT, 724 D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT, 725 D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT, 726 D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT, 727 D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT, 728 D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT, 729 D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT, 730 D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT, 731 D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT, 732 D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT, 733 D3DSPSM_ABS = 11 << D3DSP_SRCMOD_SHIFT, 734 D3DSPSM_ABSNEG = 12 << D3DSP_SRCMOD_SHIFT, 735 D3DSPSM_NOT = 13 << D3DSP_SRCMOD_SHIFT, 736 }} 737 pub const D3DSP_MIN_PRECISION_SHIFT: ::DWORD = 14; 738 pub const D3DSP_MIN_PRECISION_MASK: ::DWORD = 0x0000C000; 739 ENUM!{enum D3DSHADER_MIN_PRECISION { 740 D3DMP_DEFAULT = 0, 741 D3DMP_16 = 1, 742 D3DMP_2_8 = 2, 743 }} 744 pub const D3DSI_COMMENTSIZE_SHIFT: ::DWORD = 16; 745 pub const D3DSI_COMMENTSIZE_MASK: ::DWORD = 0x7FFF0000; 746 pub const D3DPS_END: ::DWORD = 0x0000FFFF; 747 pub const D3DVS_END: ::DWORD = 0x0000FFFF; 748 ENUM!{enum D3DBASISTYPE { 749 D3DBASIS_BEZIER = 0, 750 D3DBASIS_BSPLINE = 1, 751 D3DBASIS_CATMULL_ROM = 2, 752 }} 753 ENUM!{enum D3DDEGREETYPE { 754 D3DDEGREE_LINEAR = 1, 755 D3DDEGREE_QUADRATIC = 2, 756 D3DDEGREE_CUBIC = 3, 757 D3DDEGREE_QUINTIC = 5, 758 }} 759 ENUM!{enum D3DPATCHEDGESTYLE { 760 D3DPATCHEDGE_DISCRETE = 0, 761 D3DPATCHEDGE_CONTINUOUS = 1, 762 }} 763 ENUM!{enum D3DSTATEBLOCKTYPE { 764 D3DSBT_ALL = 1, 765 D3DSBT_PIXELSTATE = 2, 766 D3DSBT_VERTEXSTATE = 3, 767 }} 768 FLAGS!{enum D3DVERTEXBLENDFLAGS { 769 D3DVBF_DISABLE = 0, 770 D3DVBF_1WEIGHTS = 1, 771 D3DVBF_2WEIGHTS = 2, 772 D3DVBF_3WEIGHTS = 3, 773 D3DVBF_TWEENING = 255, 774 D3DVBF_0WEIGHTS = 256, 775 }} 776 ENUM!{enum D3DTEXTURETRANSFORMFLAGS { 777 D3DTTFF_DISABLE = 0, 778 D3DTTFF_COUNT1 = 1, 779 D3DTTFF_COUNT2 = 2, 780 D3DTTFF_COUNT3 = 3, 781 D3DTTFF_COUNT4 = 4, 782 D3DTTFF_PROJECTED = 256, 783 }} 784 pub const D3DFVF_TEXTUREFORMAT2: ::DWORD = 0; 785 pub const D3DFVF_TEXTUREFORMAT1: ::DWORD = 3; 786 pub const D3DFVF_TEXTUREFORMAT3: ::DWORD = 1; 787 pub const D3DFVF_TEXTUREFORMAT4: ::DWORD = 2; 788 ENUM!{enum D3DDEVTYPE { 789 D3DDEVTYPE_HAL = 1, 790 D3DDEVTYPE_REF = 2, 791 D3DDEVTYPE_SW = 3, 792 D3DDEVTYPE_NULLREF = 4, 793 }} 794 ENUM!{enum D3DMULTISAMPLE_TYPE { 795 D3DMULTISAMPLE_NONE = 0, 796 D3DMULTISAMPLE_NONMASKABLE = 1, 797 D3DMULTISAMPLE_2_SAMPLES = 2, 798 D3DMULTISAMPLE_3_SAMPLES = 3, 799 D3DMULTISAMPLE_4_SAMPLES = 4, 800 D3DMULTISAMPLE_5_SAMPLES = 5, 801 D3DMULTISAMPLE_6_SAMPLES = 6, 802 D3DMULTISAMPLE_7_SAMPLES = 7, 803 D3DMULTISAMPLE_8_SAMPLES = 8, 804 D3DMULTISAMPLE_9_SAMPLES = 9, 805 D3DMULTISAMPLE_10_SAMPLES = 10, 806 D3DMULTISAMPLE_11_SAMPLES = 11, 807 D3DMULTISAMPLE_12_SAMPLES = 12, 808 D3DMULTISAMPLE_13_SAMPLES = 13, 809 D3DMULTISAMPLE_14_SAMPLES = 14, 810 D3DMULTISAMPLE_15_SAMPLES = 15, 811 D3DMULTISAMPLE_16_SAMPLES = 16, 812 }} 813 ENUM!{enum D3DFORMAT { 814 D3DFMT_UNKNOWN = 0, 815 D3DFMT_R8G8B8 = 20, 816 D3DFMT_A8R8G8B8 = 21, 817 D3DFMT_X8R8G8B8 = 22, 818 D3DFMT_R5G6B5 = 23, 819 D3DFMT_X1R5G5B5 = 24, 820 D3DFMT_A1R5G5B5 = 25, 821 D3DFMT_A4R4G4B4 = 26, 822 D3DFMT_R3G3B2 = 27, 823 D3DFMT_A8 = 28, 824 D3DFMT_A8R3G3B2 = 29, 825 D3DFMT_X4R4G4B4 = 30, 826 D3DFMT_A2B10G10R10 = 31, 827 D3DFMT_A8B8G8R8 = 32, 828 D3DFMT_X8B8G8R8 = 33, 829 D3DFMT_G16R16 = 34, 830 D3DFMT_A2R10G10B10 = 35, 831 D3DFMT_A16B16G16R16 = 36, 832 D3DFMT_A8P8 = 40, 833 D3DFMT_P8 = 41, 834 D3DFMT_L8 = 50, 835 D3DFMT_A8L8 = 51, 836 D3DFMT_A4L4 = 52, 837 D3DFMT_V8U8 = 60, 838 D3DFMT_L6V5U5 = 61, 839 D3DFMT_X8L8V8U8 = 62, 840 D3DFMT_Q8W8V8U8 = 63, 841 D3DFMT_V16U16 = 64, 842 D3DFMT_A2W10V10U10 = 67, 843 D3DFMT_UYVY = MAKEFOURCC!(b'U', b'Y', b'V', b'Y') as u32, 844 D3DFMT_R8G8_B8G8 = MAKEFOURCC!(b'R', b'G', b'B', b'G') as u32, 845 D3DFMT_YUY2 = MAKEFOURCC!(b'Y', b'U', b'Y', b'2') as u32, 846 D3DFMT_G8R8_G8B8 = MAKEFOURCC!(b'G', b'R', b'G', b'B') as u32, 847 D3DFMT_DXT1 = MAKEFOURCC!(b'D', b'X', b'T', b'1') as u32, 848 D3DFMT_DXT2 = MAKEFOURCC!(b'D', b'X', b'T', b'2') as u32, 849 D3DFMT_DXT3 = MAKEFOURCC!(b'D', b'X', b'T', b'3') as u32, 850 D3DFMT_DXT4 = MAKEFOURCC!(b'D', b'X', b'T', b'4') as u32, 851 D3DFMT_DXT5 = MAKEFOURCC!(b'D', b'X', b'T', b'5') as u32, 852 D3DFMT_D16_LOCKABLE = 70, 853 D3DFMT_D32 = 71, 854 D3DFMT_D15S1 = 73, 855 D3DFMT_D24S8 = 75, 856 D3DFMT_D24X8 = 77, 857 D3DFMT_D24X4S4 = 79, 858 D3DFMT_D16 = 80, 859 D3DFMT_D32F_LOCKABLE = 82, 860 D3DFMT_D24FS8 = 83, 861 D3DFMT_D32_LOCKABLE = 84, 862 D3DFMT_S8_LOCKABLE = 85, 863 D3DFMT_L16 = 81, 864 D3DFMT_VERTEXDATA = 100, 865 D3DFMT_INDEX16 = 101, 866 D3DFMT_INDEX32 = 102, 867 D3DFMT_Q16W16V16U16 = 110, 868 D3DFMT_MULTI2_ARGB8 = MAKEFOURCC!(b'M', b'E', b'T', b'1') as u32, 869 D3DFMT_R16F = 111, 870 D3DFMT_G16R16F = 112, 871 D3DFMT_A16B16G16R16F = 113, 872 D3DFMT_R32F = 114, 873 D3DFMT_G32R32F = 115, 874 D3DFMT_A32B32G32R32F = 116, 875 D3DFMT_CxV8U8 = 117, 876 D3DFMT_A1 = 118, 877 D3DFMT_A2B10G10R10_XR_BIAS = 119, 878 D3DFMT_BINARYBUFFER = 199, 879 }} 880 STRUCT!{struct D3DDISPLAYMODE { 881 Width: ::UINT, 882 Height: ::UINT, 883 RefreshRate: ::UINT, 884 Format: D3DFORMAT, 885 }} 886 STRUCT!{struct D3DDEVICE_CREATION_PARAMETERS { 887 AdapterOrdinal: ::UINT, 888 DeviceType: D3DDEVTYPE, 889 hFocusWindow: ::HWND, 890 BehaviorFlags: ::DWORD, 891 }} 892 ENUM!{enum D3DSWAPEFFECT { 893 D3DSWAPEFFECT_DISCARD = 1, 894 D3DSWAPEFFECT_FLIP = 2, 895 D3DSWAPEFFECT_COPY = 3, 896 D3DSWAPEFFECT_OVERLAY = 4, 897 D3DSWAPEFFECT_FLIPEX = 5, 898 }} 899 ENUM!{enum D3DPOOL { 900 D3DPOOL_DEFAULT = 0, 901 D3DPOOL_MANAGED = 1, 902 D3DPOOL_SYSTEMMEM = 2, 903 D3DPOOL_SCRATCH = 3, 904 }} 905 pub const D3DPRESENT_RATE_DEFAULT: ::DWORD = 0x00000000; 906 STRUCT!{struct D3DPRESENT_PARAMETERS { 907 BackBufferWidth: ::UINT, 908 BackBufferHeight: ::UINT, 909 BackBufferFormat: D3DFORMAT, 910 BackBufferCount: ::UINT, 911 MultiSampleType: D3DMULTISAMPLE_TYPE, 912 MultiSampleQuality: ::DWORD, 913 SwapEffect: D3DSWAPEFFECT, 914 hDeviceWindow: ::HWND, 915 Windowed: ::BOOL, 916 EnableAutoDepthStencil: ::BOOL, 917 AutoDepthStencilFormat: D3DFORMAT, 918 Flags: ::DWORD, 919 FullScreen_RefreshRateInHz: ::UINT, 920 PresentationInterval: ::UINT, 921 }} 922 pub const D3DPRESENTFLAG_LOCKABLE_BACKBUFFER: ::DWORD = 0x00000001; 923 pub const D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL: ::DWORD = 0x00000002; 924 pub const D3DPRESENTFLAG_DEVICECLIP: ::DWORD = 0x00000004; 925 pub const D3DPRESENTFLAG_VIDEO: ::DWORD = 0x00000010; 926 pub const D3DPRESENTFLAG_NOAUTOROTATE: ::DWORD = 0x00000020; 927 pub const D3DPRESENTFLAG_UNPRUNEDMODE: ::DWORD = 0x00000040; 928 pub const D3DPRESENTFLAG_OVERLAY_LIMITEDRGB: ::DWORD = 0x00000080; 929 pub const D3DPRESENTFLAG_OVERLAY_YCbCr_BT709: ::DWORD = 0x00000100; 930 pub const D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC: ::DWORD = 0x00000200; 931 pub const D3DPRESENTFLAG_RESTRICTED_CONTENT: ::DWORD = 0x00000400; 932 pub const D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER: ::DWORD = 0x00000800; 933 STRUCT!{nodebug struct D3DGAMMARAMP { 934 red: [::WORD; 256], 935 green: [::WORD; 256], 936 blue: [::WORD; 256], 937 }} 938 ENUM!{enum D3DBACKBUFFER_TYPE { 939 D3DBACKBUFFER_TYPE_MONO = 0, 940 D3DBACKBUFFER_TYPE_LEFT = 1, 941 D3DBACKBUFFER_TYPE_RIGHT = 2, 942 }} 943 ENUM!{enum D3DRESOURCETYPE { 944 D3DRTYPE_SURFACE = 1, 945 D3DRTYPE_VOLUME = 2, 946 D3DRTYPE_TEXTURE = 3, 947 D3DRTYPE_VOLUMETEXTURE = 4, 948 D3DRTYPE_CUBETEXTURE = 5, 949 D3DRTYPE_VERTEXBUFFER = 6, 950 D3DRTYPE_INDEXBUFFER = 7, 951 }} 952 pub const D3DUSAGE_RENDERTARGET: ::DWORD = 0x00000001; 953 pub const D3DUSAGE_DEPTHSTENCIL: ::DWORD = 0x00000002; 954 pub const D3DUSAGE_DYNAMIC: ::DWORD = 0x00000200; 955 pub const D3DUSAGE_NONSECURE: ::DWORD = 0x00800000; 956 pub const D3DUSAGE_AUTOGENMIPMAP: ::DWORD = 0x00000400; 957 pub const D3DUSAGE_DMAP: ::DWORD = 0x00004000; 958 pub const D3DUSAGE_QUERY_LEGACYBUMPMAP: ::DWORD = 0x00008000; 959 pub const D3DUSAGE_QUERY_SRGBREAD: ::DWORD = 0x00010000; 960 pub const D3DUSAGE_QUERY_FILTER: ::DWORD = 0x00020000; 961 pub const D3DUSAGE_QUERY_SRGBWRITE: ::DWORD = 0x00040000; 962 pub const D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING: ::DWORD = 0x00080000; 963 pub const D3DUSAGE_QUERY_VERTEXTEXTURE: ::DWORD = 0x00100000; 964 pub const D3DUSAGE_QUERY_WRAPANDMIP: ::DWORD = 0x00200000; 965 pub const D3DUSAGE_WRITEONLY: ::DWORD = 0x00000008; 966 pub const D3DUSAGE_SOFTWAREPROCESSING: ::DWORD = 0x00000010; 967 pub const D3DUSAGE_DONOTCLIP: ::DWORD = 0x00000020; 968 pub const D3DUSAGE_POINTS: ::DWORD = 0x00000040; 969 pub const D3DUSAGE_RTPATCHES: ::DWORD = 0x00000080; 970 pub const D3DUSAGE_NPATCHES: ::DWORD = 0x00000100; 971 pub const D3DUSAGE_TEXTAPI: ::DWORD = 0x10000000; 972 pub const D3DUSAGE_RESTRICTED_CONTENT: ::DWORD = 0x00000800; 973 pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE: ::DWORD = 0x00002000; 974 pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER: ::DWORD = 0x00001000; 975 ENUM!{enum D3DCUBEMAP_FACES { 976 D3DCUBEMAP_FACE_POSITIVE_X = 0, 977 D3DCUBEMAP_FACE_NEGATIVE_X = 1, 978 D3DCUBEMAP_FACE_POSITIVE_Y = 2, 979 D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 980 D3DCUBEMAP_FACE_POSITIVE_Z = 4, 981 D3DCUBEMAP_FACE_NEGATIVE_Z = 5, 982 }} 983 pub const D3DLOCK_READONLY: ::DWORD = 0x00000010; 984 pub const D3DLOCK_DISCARD: ::DWORD = 0x00002000; 985 pub const D3DLOCK_NOOVERWRITE: ::DWORD = 0x00001000; 986 pub const D3DLOCK_NOSYSLOCK: ::DWORD = 0x00000800; 987 pub const D3DLOCK_DONOTWAIT: ::DWORD = 0x00004000; 988 pub const D3DLOCK_NO_DIRTY_UPDATE: ::DWORD = 0x00008000; 989 STRUCT!{struct D3DVERTEXBUFFER_DESC { 990 Format: D3DFORMAT, 991 Type: D3DRESOURCETYPE, 992 Usage: ::DWORD, 993 Pool: D3DPOOL, 994 Size: ::UINT, 995 FVF: ::DWORD, 996 }} 997 STRUCT!{struct D3DINDEXBUFFER_DESC { 998 Format: D3DFORMAT, 999 Type: D3DRESOURCETYPE, 1000 Usage: ::DWORD, 1001 Pool: D3DPOOL, 1002 Size: ::UINT, 1003 }} 1004 STRUCT!{struct D3DSURFACE_DESC { 1005 Format: D3DFORMAT, 1006 Type: D3DRESOURCETYPE, 1007 Usage: ::DWORD, 1008 Pool: D3DPOOL, 1009 MultiSampleType: D3DMULTISAMPLE_TYPE, 1010 MultiSampleQuality: ::DWORD, 1011 Width: ::UINT, 1012 Height: ::UINT, 1013 }} 1014 STRUCT!{struct D3DVOLUME_DESC { 1015 Format: D3DFORMAT, 1016 Type: D3DRESOURCETYPE, 1017 Usage: ::DWORD, 1018 Pool: D3DPOOL, 1019 Width: ::UINT, 1020 Height: ::UINT, 1021 Depth: ::UINT, 1022 }} 1023 STRUCT!{struct D3DLOCKED_RECT { 1024 Pitch: ::INT, 1025 pBits: *mut ::c_void, 1026 }} 1027 STRUCT!{struct D3DBOX { 1028 Left: ::UINT, 1029 Top: ::UINT, 1030 Right: ::UINT, 1031 Bottom: ::UINT, 1032 Front: ::UINT, 1033 Back: ::UINT, 1034 }} 1035 STRUCT!{struct D3DLOCKED_BOX { 1036 RowPitch: ::INT, 1037 SlicePitch: ::INT, 1038 pBits: *mut ::c_void, 1039 }} 1040 STRUCT!{struct D3DRANGE { 1041 Offset: ::UINT, 1042 Size: ::UINT, 1043 }} 1044 STRUCT!{struct D3DRECTPATCH_INFO { 1045 StartVertexOffsetWidth: ::UINT, 1046 StartVertexOffsetHeight: ::UINT, 1047 Width: ::UINT, 1048 Height: ::UINT, 1049 Stride: ::UINT, 1050 Basis: D3DBASISTYPE, 1051 Degree: D3DDEGREETYPE, 1052 }} 1053 STRUCT!{struct D3DTRIPATCH_INFO { 1054 StartVertexOffset: ::UINT, 1055 NumVertices: ::UINT, 1056 Basis: D3DBASISTYPE, 1057 Degree: D3DDEGREETYPE, 1058 }} 1059 pub const MAX_DEVICE_IDENTIFIER_STRING: usize = 512; 1060 STRUCT!{nodebug struct D3DADAPTER_IDENTIFIER9 { 1061 Driver: [::c_char; MAX_DEVICE_IDENTIFIER_STRING], 1062 Description: [::c_char; MAX_DEVICE_IDENTIFIER_STRING], 1063 DeviceName: [::c_char; 32], 1064 DriverVersion: ::LARGE_INTEGER, 1065 VendorId: ::DWORD, 1066 DeviceId: ::DWORD, 1067 SubSysId: ::DWORD, 1068 Revision: ::DWORD, 1069 DeviceIdentifier: ::GUID, 1070 WHQLLevel: ::DWORD, 1071 }} 1072 STRUCT!{struct D3DRASTER_STATUS { 1073 InVBlank: ::BOOL, 1074 ScanLine: ::UINT, 1075 }} 1076 ENUM!{enum D3DDEBUGMONITORTOKENS { 1077 D3DDMT_ENABLE = 0, 1078 D3DDMT_DISABLE = 1, 1079 }} 1080 ENUM!{enum D3DQUERYTYPE { 1081 D3DQUERYTYPE_VCACHE = 4, 1082 D3DQUERYTYPE_RESOURCEMANAGER = 5, 1083 D3DQUERYTYPE_VERTEXSTATS = 6, 1084 D3DQUERYTYPE_EVENT = 8, 1085 D3DQUERYTYPE_OCCLUSION = 9, 1086 D3DQUERYTYPE_TIMESTAMP = 10, 1087 D3DQUERYTYPE_TIMESTAMPDISJOINT = 11, 1088 D3DQUERYTYPE_TIMESTAMPFREQ = 12, 1089 D3DQUERYTYPE_PIPELINETIMINGS = 13, 1090 D3DQUERYTYPE_INTERFACETIMINGS = 14, 1091 D3DQUERYTYPE_VERTEXTIMINGS = 15, 1092 D3DQUERYTYPE_PIXELTIMINGS = 16, 1093 D3DQUERYTYPE_BANDWIDTHTIMINGS = 17, 1094 D3DQUERYTYPE_CACHEUTILIZATION = 18, 1095 D3DQUERYTYPE_MEMORYPRESSURE = 19, 1096 }} 1097 pub const D3DISSUE_END: ::DWORD = 1 << 0; 1098 pub const D3DISSUE_BEGIN: ::DWORD = 1 << 1; 1099 pub const D3DGETDATA_FLUSH: ::DWORD = 1 << 0; 1100 STRUCT!{struct D3DRESOURCESTATS { 1101 bThrashing: ::BOOL, 1102 ApproxBytesDownloaded: ::DWORD, 1103 NumEvicts: ::DWORD, 1104 NumVidCreates: ::DWORD, 1105 LastPri: ::DWORD, 1106 NumUsed: ::DWORD, 1107 NumUsedInVidMem: ::DWORD, 1108 WorkingSet: ::DWORD, 1109 WorkingSetBytes: ::DWORD, 1110 TotalManaged: ::DWORD, 1111 TotalBytes: ::DWORD, 1112 }} 1113 pub const D3DRTYPECOUNT: usize = 8; 1114 STRUCT!{struct D3DDEVINFO_RESOURCEMANAGER { 1115 stats: [D3DRESOURCESTATS; 8 /*D3DRTYPECOUNT, rust bug?*/], 1116 }} 1117 pub type LPD3DDEVINFO_RESOURCEMANAGER = *mut D3DDEVINFO_RESOURCEMANAGER; 1118 STRUCT!{struct D3DDEVINFO_D3DVERTEXSTATS { 1119 NumRenderedTriangles: ::DWORD, 1120 NumExtraClippingTriangles: ::DWORD, 1121 }} 1122 pub type LPD3DDEVINFO_D3DVERTEXSTATS = *mut D3DDEVINFO_D3DVERTEXSTATS; 1123 STRUCT!{struct D3DDEVINFO_VCACHE { 1124 Pattern: ::DWORD, 1125 OptMethod: ::DWORD, 1126 CacheSize: ::DWORD, 1127 MagicNumber: ::DWORD, 1128 }} 1129 pub type LPD3DDEVINFO_VCACHE = *mut D3DDEVINFO_VCACHE; 1130 STRUCT!{struct D3DDEVINFO_D3D9PIPELINETIMINGS { 1131 VertexProcessingTimePercent: ::FLOAT, 1132 PixelProcessingTimePercent: ::FLOAT, 1133 OtherGPUProcessingTimePercent: ::FLOAT, 1134 GPUIdleTimePercent: ::FLOAT, 1135 }} 1136 STRUCT!{struct D3DDEVINFO_D3D9INTERFACETIMINGS { 1137 WaitingForGPUToUseApplicationResourceTimePercent: ::FLOAT, 1138 WaitingForGPUToAcceptMoreCommandsTimePercent: ::FLOAT, 1139 WaitingForGPUToStayWithinLatencyTimePercent: ::FLOAT, 1140 WaitingForGPUExclusiveResourceTimePercent: ::FLOAT, 1141 WaitingForGPUOtherTimePercent: ::FLOAT, 1142 }} 1143 STRUCT!{struct D3DDEVINFO_D3D9STAGETIMINGS { 1144 MemoryProcessingPercent: ::FLOAT, 1145 ComputationProcessingPercent: ::FLOAT, 1146 }} 1147 STRUCT!{struct D3DDEVINFO_D3D9BANDWIDTHTIMINGS { 1148 MaxBandwidthUtilized: ::FLOAT, 1149 FrontEndUploadMemoryUtilizedPercent: ::FLOAT, 1150 VertexRateUtilizedPercent: ::FLOAT, 1151 TriangleSetupRateUtilizedPercent: ::FLOAT, 1152 FillRateUtilizedPercent: ::FLOAT, 1153 }} 1154 STRUCT!{struct D3DDEVINFO_D3D9CACHEUTILIZATION { 1155 TextureCacheHitRate: ::FLOAT, 1156 PostTransformVertexCacheHitRate: ::FLOAT, 1157 }} 1158 STRUCT!{struct D3DMEMORYPRESSURE { 1159 BytesEvictedFromProcess: ::UINT64, 1160 SizeOfInefficientAllocation: ::UINT64, 1161 LevelOfEfficiency: ::DWORD, 1162 }} 1163 ENUM!{enum D3DCOMPOSERECTSOP { 1164 D3DCOMPOSERECTS_COPY = 1, 1165 D3DCOMPOSERECTS_OR = 2, 1166 D3DCOMPOSERECTS_AND = 3, 1167 D3DCOMPOSERECTS_NEG = 4, 1168 }} 1169 STRUCT!{struct D3DCOMPOSERECTDESC { 1170 X: ::USHORT, 1171 Y: ::USHORT, 1172 Width: ::USHORT, 1173 Height: ::USHORT, 1174 }} 1175 STRUCT!{struct D3DCOMPOSERECTDESTINATION { 1176 SrcRectIndex: ::USHORT, 1177 Reserved: ::USHORT, 1178 X: ::SHORT, 1179 Y: ::SHORT, 1180 }} 1181 pub const D3DCOMPOSERECTS_MAXNUMRECTS: ::DWORD = 0xFFFF; 1182 pub const D3DCONVOLUTIONMONO_MAXWIDTH: ::DWORD = 7; 1183 pub const D3DCONVOLUTIONMONO_MAXHEIGHT: ::DWORD = D3DCONVOLUTIONMONO_MAXWIDTH; 1184 pub const D3DFMT_A1_SURFACE_MAXWIDTH: ::DWORD = 8192; 1185 pub const D3DFMT_A1_SURFACE_MAXHEIGHT: ::DWORD = 2048; 1186 STRUCT!{struct D3DPRESENTSTATS { 1187 PresentCount: ::UINT, 1188 PresentRefreshCount: ::UINT, 1189 SyncRefreshCount: ::UINT, 1190 SyncQPCTime: ::LARGE_INTEGER, 1191 SyncGPUTime: ::LARGE_INTEGER, 1192 }} 1193 ENUM!{enum D3DSCANLINEORDERING { 1194 D3DSCANLINEORDERING_UNKNOWN = 0, 1195 D3DSCANLINEORDERING_PROGRESSIVE = 1, 1196 D3DSCANLINEORDERING_INTERLACED = 2, 1197 }} 1198 STRUCT!{struct D3DDISPLAYMODEEX { 1199 Size: ::UINT, 1200 Width: ::UINT, 1201 Height: ::UINT, 1202 RefreshRate: ::UINT, 1203 Format: D3DFORMAT, 1204 ScanLineOrdering: D3DSCANLINEORDERING, 1205 }} 1206 STRUCT!{struct D3DDISPLAYMODEFILTER { 1207 Size: ::UINT, 1208 Format: D3DFORMAT, 1209 ScanLineOrdering: D3DSCANLINEORDERING, 1210 }} 1211 ENUM!{enum D3DDISPLAYROTATION { 1212 D3DDISPLAYROTATION_IDENTITY = 1, 1213 D3DDISPLAYROTATION_90 = 2, 1214 D3DDISPLAYROTATION_180 = 3, 1215 D3DDISPLAYROTATION_270 = 4, 1216 }} 1217 pub const D3D9_RESOURCE_PRIORITY_MINIMUM: ::DWORD = 0x28000000; 1218 pub const D3D9_RESOURCE_PRIORITY_LOW: ::DWORD = 0x50000000; 1219 pub const D3D9_RESOURCE_PRIORITY_NORMAL: ::DWORD = 0x78000000; 1220 pub const D3D9_RESOURCE_PRIORITY_HIGH: ::DWORD = 0xa0000000; 1221 pub const D3D9_RESOURCE_PRIORITY_MAXIMUM: ::DWORD = 0xc8000000; 1222 pub const D3D_OMAC_SIZE: usize = 16; 1223 STRUCT!{struct D3D_OMAC { 1224 Omac: [::BYTE; D3D_OMAC_SIZE], 1225 }} 1226 ENUM!{enum D3DAUTHENTICATEDCHANNELTYPE { 1227 D3DAUTHENTICATEDCHANNEL_D3D9 = 1, 1228 D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2, 1229 D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3, 1230 }} 1231 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_INPUT { 1232 QueryType: ::GUID, 1233 hChannel: ::HANDLE, 1234 SequenceNumber: ::UINT, 1235 }} 1236 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT { 1237 omac: D3D_OMAC, 1238 QueryType: ::GUID, 1239 hChannel: ::HANDLE, 1240 SequenceNumber: ::UINT, 1241 ReturnCode: ::HRESULT, 1242 }} 1243 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS { 1244 Value: ::UINT, 1245 }} 1246 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT { 1247 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1248 ProtectionFlags: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, 1249 }} 1250 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT { 1251 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1252 ChannelType: D3DAUTHENTICATEDCHANNELTYPE, 1253 }} 1254 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT { 1255 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1256 DeviceHandle: ::HANDLE, 1257 }} 1258 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT { 1259 Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, 1260 DXVA2DecodeHandle: ::HANDLE, 1261 }} 1262 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT { 1263 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1264 DXVA2DecodeHandle: ::HANDLE, 1265 CryptoSessionHandle: ::HANDLE, 1266 DeviceHandle: ::HANDLE, 1267 }} 1268 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT { 1269 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1270 NumRestrictedSharedResourceProcesses: ::UINT, 1271 }} 1272 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT { 1273 Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, 1274 ProcessIndex: ::UINT, 1275 }} 1276 ENUM!{enum D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE { 1277 PROCESSIDTYPE_UNKNOWN = 0, 1278 PROCESSIDTYPE_DWM = 1, 1279 PROCESSIDTYPE_HANDLE = 2, 1280 }} 1281 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT { 1282 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1283 ProcessIndex: ::UINT, 1284 ProcessIdentifer: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE, 1285 ProcessHandle: ::HANDLE, 1286 }} 1287 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT { 1288 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1289 NumUnrestrictedProtectedSharedResources: ::UINT, 1290 }} 1291 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT { 1292 Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, 1293 DeviceHandle: ::HANDLE, 1294 CryptoSessionHandle: ::HANDLE, 1295 }} 1296 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT { 1297 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1298 DeviceHandle: ::HANDLE, 1299 CryptoSessionHandle: ::HANDLE, 1300 NumOutputIDs: ::UINT, 1301 }} 1302 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT { 1303 Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, 1304 DeviceHandle: ::HANDLE, 1305 CryptoSessionHandle: ::HANDLE, 1306 OutputIDIndex: ::UINT, 1307 }} 1308 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT { 1309 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1310 DeviceHandle: ::HANDLE, 1311 CryptoSessionHandle: ::HANDLE, 1312 OutputIDIndex: ::UINT, 1313 OutputID: ::UINT64, 1314 }} 1315 FLAGS!{enum D3DBUSTYPE { 1316 D3DBUSTYPE_OTHER = 0x00000000, 1317 D3DBUSTYPE_PCI = 0x00000001, 1318 D3DBUSTYPE_PCIX = 0x00000002, 1319 D3DBUSTYPE_PCIEXPRESS = 0x00000003, 1320 D3DBUSTYPE_AGP = 0x00000004, 1321 D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000, 1322 MD3DBUSIMPL_ODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000, 1323 D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000, 1324 D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000, 1325 D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000, 1326 D3DBUSIMPL_MODIFIER_NON_STANDARD = 0x80000000, 1327 }} 1328 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT { 1329 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1330 BusType: D3DBUSTYPE, 1331 bAccessibleInContiguousBlocks: ::BOOL, 1332 bAccessibleInNonContiguousBlocks: ::BOOL, 1333 }} 1334 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT { 1335 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1336 NumEncryptionGuids: ::UINT, 1337 }} 1338 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT { 1339 Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT, 1340 EncryptionGuidIndex: ::UINT, 1341 }} 1342 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT { 1343 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1344 EncryptionGuidIndex: ::UINT, 1345 EncryptionGuid: ::GUID, 1346 }} 1347 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT { 1348 Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT, 1349 EncryptionGuid: ::GUID, 1350 }} 1351 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT { 1352 omac: D3D_OMAC, 1353 ConfigureType: ::GUID, 1354 hChannel: ::HANDLE, 1355 SequenceNumber: ::UINT, 1356 }} 1357 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT { 1358 omac: D3D_OMAC, 1359 ConfigureType: ::GUID, 1360 hChannel: ::HANDLE, 1361 SequenceNumber: ::UINT, 1362 ReturnCode: ::HRESULT, 1363 }} 1364 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE { 1365 Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, 1366 StartSequenceQuery: ::UINT, 1367 StartSequenceConfigure: ::UINT, 1368 }} 1369 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION { 1370 Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, 1371 Protections: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS, 1372 }} 1373 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION { 1374 Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, 1375 DXVA2DecodeHandle: ::HANDLE, 1376 CryptoSessionHandle: ::HANDLE, 1377 DeviceHandle: ::HANDLE, 1378 }} 1379 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE { 1380 Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, 1381 ProcessIdentiferType: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE, 1382 ProcessHandle: ::HANDLE, 1383 AllowAccess: ::BOOL, 1384 }} 1385 STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION { 1386 Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT, 1387 EncryptionGuid: ::GUID, 1388 }} 1389 STRUCT!{struct D3DENCRYPTED_BLOCK_INFO { 1390 NumEncryptedBytesAtBeginning: ::UINT, 1391 NumBytesInSkipPattern: ::UINT, 1392 NumBytesInEncryptPattern: ::UINT, 1393 }} 1394 STRUCT!{struct D3DAES_CTR_IV { 1395 IV: ::UINT64, 1396 Count: ::UINT64, 1397 }} 1398