1 ##########################################################################
3 # Copyright 2008-2009 VMware, Inc.
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
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 FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 ##########################################################################/
30 D3DCOLOR = Alias("D3DCOLOR", DWORD)
32 D3DVECTOR = Struct("D3DVECTOR", [
38 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
45 D3DRECT = Struct("D3DRECT", [
52 D3DMATRIX = Struct("D3DMATRIX", [
53 (Array(Array(Float, 4), "4"), "m"),
56 D3DVIEWPORT9 = Struct("D3DVIEWPORT9", [
65 D3DCLIPPLANE = Flags(DWORD, [
74 D3DCS = Flags(DWORD, [
90 D3DCLIPSTATUS9 = Struct("D3DCLIPSTATUS9", [
92 (DWORD, "ClipIntersection"),
95 D3DMATERIAL9 = Struct("D3DMATERIAL9", [
96 (D3DCOLORVALUE, "Diffuse"),
97 (D3DCOLORVALUE, "Ambient"),
98 (D3DCOLORVALUE, "Specular"),
99 (D3DCOLORVALUE, "Emissive"),
103 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
106 "D3DLIGHT_DIRECTIONAL",
109 D3DLIGHT9 = Struct("D3DLIGHT9", [
110 (D3DLIGHTTYPE, "Type"),
111 (D3DCOLORVALUE, "Diffuse"),
112 (D3DCOLORVALUE, "Specular"),
113 (D3DCOLORVALUE, "Ambient"),
114 (D3DVECTOR, "Position"),
115 (D3DVECTOR, "Direction"),
118 (Float, "Attenuation0"),
119 (Float, "Attenuation1"),
120 (Float, "Attenuation2"),
125 D3DCLEAR = Flags(DWORD, [
131 D3DSHADEMODE = Enum("D3DSHADEMODE", [
137 D3DFILLMODE = Enum("D3DFILLMODE", [
143 D3DBLEND = Enum("D3DBLEND", [
147 "D3DBLEND_INVSRCCOLOR",
149 "D3DBLEND_INVSRCALPHA",
150 "D3DBLEND_DESTALPHA",
151 "D3DBLEND_INVDESTALPHA",
152 "D3DBLEND_DESTCOLOR",
153 "D3DBLEND_INVDESTCOLOR",
154 "D3DBLEND_SRCALPHASAT",
155 "D3DBLEND_BOTHSRCALPHA",
156 "D3DBLEND_BOTHINVSRCALPHA",
157 "D3DBLEND_BLENDFACTOR",
158 "D3DBLEND_INVBLENDFACTOR",
159 "D3DBLEND_SRCCOLOR2",
160 "D3DBLEND_INVSRCCOLOR2",
163 D3DBLENDOP = Enum("D3DBLENDOP", [
165 "D3DBLENDOP_SUBTRACT",
166 "D3DBLENDOP_REVSUBTRACT",
171 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
173 "D3DTADDRESS_MIRROR",
175 "D3DTADDRESS_BORDER",
176 "D3DTADDRESS_MIRRORONCE",
179 D3DCULL = Enum("D3DCULL", [
185 D3DCMPFUNC = Enum("D3DCMPFUNC", [
192 "D3DCMP_GREATEREQUAL",
196 D3DSTENCILOP = Enum("D3DSTENCILOP", [
199 "D3DSTENCILOP_REPLACE",
200 "D3DSTENCILOP_INCRSAT",
201 "D3DSTENCILOP_DECRSAT",
202 "D3DSTENCILOP_INVERT",
207 D3DFOGMODE = Enum("D3DFOGMODE", [
214 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
220 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
224 "D3DPT_TRIANGLELIST",
225 "D3DPT_TRIANGLESTRIP",
229 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
242 D3DTS = Flags(DWORD, [
249 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
255 D3DWRAPCOORD = Flags(DWORD, [
262 D3DCOLORWRITEENABLE = Flags(DWORD, [
263 "D3DCOLORWRITEENABLE_RED",
264 "D3DCOLORWRITEENABLE_GREEN",
265 "D3DCOLORWRITEENABLE_BLUE",
266 "D3DCOLORWRITEENABLE_ALPHA",
269 D3DDEGREETYPE = Enum("D3DDEGREETYPE", [
271 "D3DDEGREE_QUADRATIC",
276 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
277 "D3DPATCHEDGE_DISCRETE",
278 "D3DPATCHEDGE_CONTINUOUS",
281 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
290 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
295 # TODO: Convert these to/from actual floats
296 FLOAT_AS_DWORD = DWORD
298 D3DRENDERSTATEVALUE = Polymorphic(DWORD, "State", [
299 ("D3DRS_ZENABLE", D3DZBUFFERTYPE),
300 ("D3DRS_FILLMODE", D3DFILLMODE),
301 ("D3DRS_SHADEMODE", D3DSHADEMODE),
302 ("D3DRS_ZWRITEENABLE", BOOL),
303 ("D3DRS_ALPHATESTENABLE", BOOL),
304 ("D3DRS_LASTPIXEL", BOOL),
305 ("D3DRS_SRCBLEND", D3DBLEND),
306 ("D3DRS_DESTBLEND", D3DBLEND),
307 ("D3DRS_CULLMODE", D3DCULL),
308 ("D3DRS_ZFUNC", D3DCMPFUNC),
309 ("D3DRS_ALPHAREF", DWORD),
310 ("D3DRS_ALPHAFUNC", D3DCMPFUNC),
311 ("D3DRS_DITHERENABLE", BOOL),
312 ("D3DRS_ALPHABLENDENABLE", BOOL),
313 ("D3DRS_FOGENABLE", BOOL),
314 ("D3DRS_SPECULARENABLE", BOOL),
315 ("D3DRS_FOGCOLOR", D3DCOLOR),
316 ("D3DRS_FOGTABLEMODE", D3DFOGMODE),
317 ("D3DRS_FOGSTART", FLOAT_AS_DWORD),
318 ("D3DRS_FOGEND", FLOAT_AS_DWORD),
319 ("D3DRS_FOGDENSITY", FLOAT_AS_DWORD),
320 ("D3DRS_RANGEFOGENABLE", BOOL),
321 ("D3DRS_STENCILENABLE", BOOL),
322 ("D3DRS_STENCILFAIL", D3DSTENCILOP),
323 ("D3DRS_STENCILZFAIL", D3DSTENCILOP),
324 ("D3DRS_STENCILPASS", D3DSTENCILOP),
325 ("D3DRS_STENCILFUNC", D3DCMPFUNC),
326 ("D3DRS_STENCILREF", DWORD),
327 ("D3DRS_STENCILMASK", DWORD),
328 ("D3DRS_STENCILWRITEMASK", DWORD),
329 ("D3DRS_TEXTUREFACTOR", D3DCOLOR),
330 ("D3DRS_WRAP0", D3DWRAPCOORD),
331 ("D3DRS_WRAP1", D3DWRAPCOORD),
332 ("D3DRS_WRAP2", D3DWRAPCOORD),
333 ("D3DRS_WRAP3", D3DWRAPCOORD),
334 ("D3DRS_WRAP4", D3DWRAPCOORD),
335 ("D3DRS_WRAP5", D3DWRAPCOORD),
336 ("D3DRS_WRAP6", D3DWRAPCOORD),
337 ("D3DRS_WRAP7", D3DWRAPCOORD),
338 ("D3DRS_CLIPPING", BOOL),
339 ("D3DRS_LIGHTING", BOOL),
340 ("D3DRS_AMBIENT", D3DCOLOR),
341 ("D3DRS_FOGVERTEXMODE", D3DFOGMODE),
342 ("D3DRS_COLORVERTEX", BOOL),
343 ("D3DRS_LOCALVIEWER", BOOL),
344 ("D3DRS_NORMALIZENORMALS", BOOL),
345 ("D3DRS_DIFFUSEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
346 ("D3DRS_SPECULARMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
347 ("D3DRS_AMBIENTMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
348 ("D3DRS_EMISSIVEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
349 ("D3DRS_VERTEXBLEND", D3DVERTEXBLENDFLAGS),
350 ("D3DRS_CLIPPLANEENABLE", D3DCLIPPLANE),
351 ("D3DRS_POINTSIZE", FLOAT_AS_DWORD),
352 ("D3DRS_POINTSIZE_MIN", FLOAT_AS_DWORD),
353 ("D3DRS_POINTSPRITEENABLE", BOOL),
354 ("D3DRS_POINTSCALEENABLE", BOOL),
355 ("D3DRS_POINTSCALE_A", FLOAT_AS_DWORD),
356 ("D3DRS_POINTSCALE_B", FLOAT_AS_DWORD),
357 ("D3DRS_POINTSCALE_C", FLOAT_AS_DWORD),
358 ("D3DRS_MULTISAMPLEANTIALIAS", BOOL),
359 ("D3DRS_MULTISAMPLEMASK", DWORD),
360 ("D3DRS_PATCHEDGESTYLE", D3DPATCHEDGESTYLE),
361 ("D3DRS_DEBUGMONITORTOKEN", D3DDEBUGMONITORTOKENS),
362 ("D3DRS_POINTSIZE_MAX", FLOAT_AS_DWORD),
363 ("D3DRS_INDEXEDVERTEXBLENDENABLE", BOOL),
364 ("D3DRS_COLORWRITEENABLE", DWORD),
365 ("D3DRS_TWEENFACTOR", FLOAT_AS_DWORD),
366 ("D3DRS_BLENDOP", D3DBLENDOP),
367 ("D3DRS_POSITIONDEGREE", D3DDEGREETYPE),
368 ("D3DRS_NORMALDEGREE", D3DDEGREETYPE),
369 ("D3DRS_SCISSORTESTENABLE", BOOL),
370 ("D3DRS_SLOPESCALEDEPTHBIAS", FLOAT_AS_DWORD),
371 ("D3DRS_ANTIALIASEDLINEENABLE", BOOL),
372 ("D3DRS_MINTESSELLATIONLEVEL", FLOAT_AS_DWORD),
373 ("D3DRS_MAXTESSELLATIONLEVEL", FLOAT_AS_DWORD),
374 ("D3DRS_ADAPTIVETESS_X", FLOAT_AS_DWORD),
375 ("D3DRS_ADAPTIVETESS_Y", FLOAT_AS_DWORD),
376 ("D3DRS_ADAPTIVETESS_Z", FLOAT_AS_DWORD),
377 ("D3DRS_ADAPTIVETESS_W", FLOAT_AS_DWORD),
378 ("D3DRS_ENABLEADAPTIVETESSELLATION", BOOL),
379 ("D3DRS_TWOSIDEDSTENCILMODE", BOOL),
380 ("D3DRS_CCW_STENCILFAIL", D3DSTENCILOP),
381 ("D3DRS_CCW_STENCILZFAIL", D3DSTENCILOP),
382 ("D3DRS_CCW_STENCILPASS", D3DSTENCILOP),
383 ("D3DRS_CCW_STENCILFUNC", D3DCMPFUNC),
384 ("D3DRS_COLORWRITEENABLE1", D3DCOLORWRITEENABLE),
385 ("D3DRS_COLORWRITEENABLE2", D3DCOLORWRITEENABLE),
386 ("D3DRS_COLORWRITEENABLE3", D3DCOLORWRITEENABLE),
387 ("D3DRS_BLENDFACTOR", D3DCOLOR),
388 ("D3DRS_SRGBWRITEENABLE", BOOL),
389 ("D3DRS_DEPTHBIAS", FLOAT_AS_DWORD),
390 ("D3DRS_WRAP8", D3DWRAPCOORD),
391 ("D3DRS_WRAP9", D3DWRAPCOORD),
392 ("D3DRS_WRAP10", D3DWRAPCOORD),
393 ("D3DRS_WRAP11", D3DWRAPCOORD),
394 ("D3DRS_WRAP12", D3DWRAPCOORD),
395 ("D3DRS_WRAP13", D3DWRAPCOORD),
396 ("D3DRS_WRAP14", D3DWRAPCOORD),
397 ("D3DRS_WRAP15", D3DWRAPCOORD),
398 ("D3DRS_SEPARATEALPHABLENDENABLE", BOOL),
399 ("D3DRS_SRCBLENDALPHA", D3DBLEND),
400 ("D3DRS_DESTBLENDALPHA", D3DBLEND),
401 ("D3DRS_BLENDOPALPHA", D3DBLENDOP),
403 # XXX: D3DRENDERSTATE_WRAPBIAS + n
406 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
407 expr for expr, types in D3DRENDERSTATEVALUE.switch_types
410 D3DTSS_TCI = Flags(DWORD, [
411 #"D3DTSS_TCI_PASSTHRU", 0
412 "D3DTSS_TCI_CAMERASPACENORMAL",
413 "D3DTSS_TCI_CAMERASPACEPOSITION",
414 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
415 "D3DTSS_TCI_SPHEREMAP",
418 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
427 "D3DTOP_ADDSIGNED2X",
430 "D3DTOP_BLENDDIFFUSEALPHA",
431 "D3DTOP_BLENDTEXTUREALPHA",
432 "D3DTOP_BLENDFACTORALPHA",
433 "D3DTOP_BLENDTEXTUREALPHAPM",
434 "D3DTOP_BLENDCURRENTALPHA",
435 "D3DTOP_PREMODULATE",
436 "D3DTOP_MODULATEALPHA_ADDCOLOR",
437 "D3DTOP_MODULATECOLOR_ADDALPHA",
438 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
439 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
441 "D3DTOP_BUMPENVMAPLUMINANCE",
442 "D3DTOP_DOTPRODUCT3",
443 "D3DTOP_MULTIPLYADD",
447 D3DTA = Flags(DWORD, [
457 "D3DTA_ALPHAREPLICATE",
460 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
470 D3DTEXTURESTAGESTATEVALUE = Polymorphic(DWORD, "Type", [
471 ("D3DTSS_COLOROP", D3DTEXTUREOP),
472 ("D3DTSS_COLORARG1", D3DTA),
473 ("D3DTSS_COLORARG2", D3DTA),
474 ("D3DTSS_ALPHAOP", D3DTEXTUREOP),
475 ("D3DTSS_ALPHAARG1", D3DTA),
476 ("D3DTSS_ALPHAARG2", D3DTA),
477 ("D3DTSS_BUMPENVMAT00", FLOAT_AS_DWORD),
478 ("D3DTSS_BUMPENVMAT01", FLOAT_AS_DWORD),
479 ("D3DTSS_BUMPENVMAT10", FLOAT_AS_DWORD),
480 ("D3DTSS_BUMPENVMAT11", FLOAT_AS_DWORD),
481 ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI,),
482 ("D3DTSS_BUMPENVLSCALE", FLOAT_AS_DWORD),
483 ("D3DTSS_BUMPENVLOFFSET", FLOAT_AS_DWORD),
484 ("D3DTSS_TEXTURETRANSFORMFLAGS", D3DTEXTURETRANSFORMFLAGS),
485 ("D3DTSS_COLORARG0", D3DTA,),
486 ("D3DTSS_ALPHAARG0", D3DTA,),
487 ("D3DTSS_RESULTARG", D3DTA,),
488 ("D3DTSS_CONSTANT", D3DCOLOR),
491 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
492 expr for expr, types in D3DTEXTURESTAGESTATEVALUE.switch_types
495 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
499 "D3DTEXF_ANISOTROPIC",
500 "D3DTEXF_PYRAMIDALQUAD",
501 "D3DTEXF_GAUSSIANQUAD",
502 "D3DTEXF_CONVOLUTIONMONO",
505 D3DSAMPLERSTATEVALUE = Polymorphic(DWORD, "Type", [
506 ("D3DSAMP_ADDRESSU", D3DTEXTUREADDRESS),
507 ("D3DSAMP_ADDRESSV", D3DTEXTUREADDRESS),
508 ("D3DSAMP_ADDRESSW", D3DTEXTUREADDRESS),
509 ("D3DSAMP_BORDERCOLOR", D3DCOLOR),
510 ("D3DSAMP_MAGFILTER", D3DTEXTUREFILTERTYPE),
511 ("D3DSAMP_MINFILTER", D3DTEXTUREFILTERTYPE),
512 ("D3DSAMP_MIPFILTER", D3DTEXTUREFILTERTYPE),
513 ("D3DSAMP_MIPMAPLODBIAS", FLOAT_AS_DWORD),
514 ("D3DSAMP_MAXMIPLEVEL", DWORD),
515 ("D3DSAMP_MAXANISOTROPY", DWORD),
516 ("D3DSAMP_SRGBTEXTURE", BOOL),
517 ("D3DSAMP_ELEMENTINDEX", DWORD),
518 ("D3DSAMP_DMAPOFFSET", DWORD),
521 D3DSAMPLERSTATETYPE = Enum("D3DSAMPLERSTATETYPE", [
522 expr for expr, types in D3DSAMPLERSTATEVALUE.switch_types
525 D3DPV = Flags(DWORD, [
526 "D3DPV_DONOTCOPYDATA",
529 D3DFVF = Flags(DWORD, [
531 "D3DFVF_POSITION_MASK",
544 #"D3DFVF_TEXCOUNT_MASK",
545 #"D3DFVF_TEXCOUNT_SHIFT",
555 "D3DFVF_LASTBETA_UBYTE4",
556 "D3DFVF_LASTBETA_D3DCOLOR",
558 #"D3DFVF_TEXCOORDSIZE3(0)",
559 #"D3DFVF_TEXCOORDSIZE2(0)",
560 #"D3DFVF_TEXCOORDSIZE4(0)",
561 #"D3DFVF_TEXCOORDSIZE1(0)",
562 #"D3DFVF_TEXCOORDSIZE3(1)",
563 #"D3DFVF_TEXCOORDSIZE2(1)",
564 #"D3DFVF_TEXCOORDSIZE4(1)",
565 #"D3DFVF_TEXCOORDSIZE1(1)",
566 #"D3DFVF_TEXCOORDSIZE3(2)",
567 #"D3DFVF_TEXCOORDSIZE2(2)",
568 #"D3DFVF_TEXCOORDSIZE4(2)",
569 #"D3DFVF_TEXCOORDSIZE1(2)",
570 #"D3DFVF_TEXCOORDSIZE3(3)",
571 #"D3DFVF_TEXCOORDSIZE2(3)",
572 #"D3DFVF_TEXCOORDSIZE4(3)",
573 #"D3DFVF_TEXCOORDSIZE1(3)",
576 D3DDECLUSAGE = Enum("D3DDECLUSAGE", [
577 "D3DDECLUSAGE_POSITION",
578 "D3DDECLUSAGE_BLENDWEIGHT",
579 "D3DDECLUSAGE_BLENDINDICES",
580 "D3DDECLUSAGE_NORMAL",
581 "D3DDECLUSAGE_PSIZE",
582 "D3DDECLUSAGE_TEXCOORD",
583 "D3DDECLUSAGE_TANGENT",
584 "D3DDECLUSAGE_BINORMAL",
585 "D3DDECLUSAGE_TESSFACTOR",
586 "D3DDECLUSAGE_POSITIONT",
587 "D3DDECLUSAGE_COLOR",
589 "D3DDECLUSAGE_DEPTH",
590 "D3DDECLUSAGE_SAMPLE",
593 D3DDECLMETHOD = Enum("D3DDECLMETHOD", [
594 "D3DDECLMETHOD_DEFAULT",
595 "D3DDECLMETHOD_PARTIALU",
596 "D3DDECLMETHOD_PARTIALV",
597 "D3DDECLMETHOD_CROSSUV",
599 "D3DDECLMETHOD_LOOKUP",
600 "D3DDECLMETHOD_LOOKUPPRESAMPLED",
603 D3DDECLTYPE = Enum("D3DDECLTYPE", [
604 "D3DDECLTYPE_FLOAT1",
605 "D3DDECLTYPE_FLOAT2",
606 "D3DDECLTYPE_FLOAT3",
607 "D3DDECLTYPE_FLOAT4",
608 "D3DDECLTYPE_D3DCOLOR",
609 "D3DDECLTYPE_UBYTE4",
610 "D3DDECLTYPE_SHORT2",
611 "D3DDECLTYPE_SHORT4",
612 "D3DDECLTYPE_UBYTE4N",
613 "D3DDECLTYPE_SHORT2N",
614 "D3DDECLTYPE_SHORT4N",
615 "D3DDECLTYPE_USHORT2N",
616 "D3DDECLTYPE_USHORT4N",
619 "D3DDECLTYPE_FLOAT16_2",
620 "D3DDECLTYPE_FLOAT16_4",
621 "D3DDECLTYPE_UNUSED",
624 D3DVERTEXELEMENT9 = Struct("D3DVERTEXELEMENT9", [
630 (BYTE, "UsageIndex"),
633 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
695 "D3DSIO_TEXM3x3SPEC",
696 "D3DSIO_TEXM3x3VSPEC",
703 "D3DSIO_TEXM3x2DEPTH",
721 D3DSHADER_COMPARISON = Enum("D3DSHADER_COMPARISON", [
732 D3DSAMPLER_TEXTURE_TYPE = Enum("D3DSAMPLER_TEXTURE_TYPE", [
739 D3DSP = Flags(DWORD, [
744 "D3DSP_WRITEMASK_ALL",
747 D3DSHADER_PARAM_DSTMOD_TYPE = Flags(DWORD, [
750 "D3DSPDM_PARTIALPRECISION",
751 "D3DSPDM_MSAMPCENTROID",
754 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
758 "D3DSPR_ADDR|D3DSPR_TEXTURE",
761 "D3DSPR_TEXCRDOUT|D3DSPR_OUTPUT",
771 "D3DSPR_TEMPFLOAT16",
777 D3DSHADER_MISCTYPE_OFFSETS = Enum("D3DSHADER_MISCTYPE_OFFSETS", [
782 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
788 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
789 "D3DVS_ADDRMODE_ABSOLUTE",
790 "D3DVS_ADDRMODE_RELATIVE",
793 D3DSHADER_ADDRESSMODE_TYPE = Enum("D3DSHADER_ADDRESSMODE_TYPE", [
794 "D3DSHADER_ADDRMODE_ABSOLUTE",
795 "D3DSHADER_ADDRMODE_RELATIVE",
798 D3DVS = Flags(DWORD, [
818 D3DSP = Flags(DWORD, [
820 "D3DSP_REPLICATERED",
821 "D3DSP_REPLICATEGREEN",
822 "D3DSP_REPLICATEBLUE",
823 "D3DSP_REPLICATEALPHA",
826 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
843 D3DBASISTYPE = Enum("D3DBASISTYPE", [
846 "D3DBASIS_CATMULL_ROM",
849 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
852 "D3DSBT_VERTEXSTATE",
855 D3DDEVTYPE = Enum("D3DDEVTYPE", [
859 "D3DDEVTYPE_NULLREF",
862 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
863 "D3DMULTISAMPLE_NONE",
864 "D3DMULTISAMPLE_NONMASKABLE",
865 "D3DMULTISAMPLE_2_SAMPLES",
866 "D3DMULTISAMPLE_3_SAMPLES",
867 "D3DMULTISAMPLE_4_SAMPLES",
868 "D3DMULTISAMPLE_5_SAMPLES",
869 "D3DMULTISAMPLE_6_SAMPLES",
870 "D3DMULTISAMPLE_7_SAMPLES",
871 "D3DMULTISAMPLE_8_SAMPLES",
872 "D3DMULTISAMPLE_9_SAMPLES",
873 "D3DMULTISAMPLE_10_SAMPLES",
874 "D3DMULTISAMPLE_11_SAMPLES",
875 "D3DMULTISAMPLE_12_SAMPLES",
876 "D3DMULTISAMPLE_13_SAMPLES",
877 "D3DMULTISAMPLE_14_SAMPLES",
878 "D3DMULTISAMPLE_15_SAMPLES",
879 "D3DMULTISAMPLE_16_SAMPLES",
882 D3DFORMAT = Enum("D3DFORMAT", [
895 "D3DFMT_A2B10G10R10",
899 "D3DFMT_A2R10G10B10",
900 "D3DFMT_A16B16G16R16",
911 "D3DFMT_A2W10V10U10",
921 "D3DFMT_D16_LOCKABLE",
928 "D3DFMT_D32F_LOCKABLE",
930 "D3DFMT_D32_LOCKABLE",
931 "D3DFMT_S8_LOCKABLE",
936 "D3DFMT_Q16W16V16U16",
937 "D3DFMT_MULTI2_ARGB8",
940 "D3DFMT_A16B16G16R16F",
943 "D3DFMT_A32B32G32R32F",
946 "D3DFMT_BINARYBUFFER",
960 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
963 (UINT, "RefreshRate"),
964 (D3DFORMAT, "Format"),
967 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
968 (UINT, "AdapterOrdinal"),
969 (D3DDEVTYPE, "DeviceType"),
970 (HWND, "hFocusWindow"),
971 (DWORD, "BehaviorFlags"),
974 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
975 "D3DSWAPEFFECT_DISCARD",
976 "D3DSWAPEFFECT_FLIP",
977 "D3DSWAPEFFECT_COPY",
980 D3DPOOL = Enum("D3DPOOL", [
987 D3DPRESENT = FakeEnum(DWORD, [
988 "D3DPRESENT_RATE_DEFAULT",
991 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
992 (UINT, "BackBufferWidth"),
993 (UINT, "BackBufferHeight"),
994 (D3DFORMAT, "BackBufferFormat"),
995 (UINT, "BackBufferCount"),
996 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
997 (DWORD, "MultiSampleQuality"),
998 (D3DSWAPEFFECT, "SwapEffect"),
999 (HWND, "hDeviceWindow"),
1001 (BOOL, "EnableAutoDepthStencil"),
1002 (D3DFORMAT, "AutoDepthStencilFormat"),
1004 (UINT, "FullScreen_RefreshRateInHz"),
1005 (UINT, "PresentationInterval"),
1008 D3DPRESENTFLAG = Flags(DWORD, [
1009 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
1010 "D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL",
1011 "D3DPRESENTFLAG_DEVICECLIP",
1012 "D3DPRESENTFLAG_VIDEO",
1013 "D3DPRESENTFLAG_NOAUTOROTATE",
1014 "D3DPRESENTFLAG_UNPRUNEDMODE",
1017 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
1018 (Array(WORD, 256), "red"),
1019 (Array(WORD, 256), "green"),
1020 (Array(WORD, 256), "blue"),
1023 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
1024 "D3DBACKBUFFER_TYPE_MONO",
1025 "D3DBACKBUFFER_TYPE_LEFT",
1026 "D3DBACKBUFFER_TYPE_RIGHT",
1029 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
1033 "D3DRTYPE_VOLUMETEXTURE",
1034 "D3DRTYPE_CUBETEXTURE",
1035 "D3DRTYPE_VERTEXBUFFER",
1036 "D3DRTYPE_INDEXBUFFER",
1039 D3DUSAGE = Flags(DWORD, [
1040 "D3DUSAGE_RENDERTARGET",
1041 "D3DUSAGE_DEPTHSTENCIL",
1043 "D3DUSAGE_NONSECURE",
1044 "D3DUSAGE_AUTOGENMIPMAP",
1046 "D3DUSAGE_QUERY_LEGACYBUMPMAP",
1047 "D3DUSAGE_QUERY_SRGBREAD",
1048 "D3DUSAGE_QUERY_FILTER",
1049 "D3DUSAGE_QUERY_SRGBWRITE",
1050 "D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING",
1051 "D3DUSAGE_QUERY_VERTEXTEXTURE",
1052 "D3DUSAGE_QUERY_WRAPANDMIP",
1053 "D3DUSAGE_WRITEONLY",
1054 "D3DUSAGE_SOFTWAREPROCESSING",
1055 "D3DUSAGE_DONOTCLIP",
1057 "D3DUSAGE_RTPATCHES",
1058 "D3DUSAGE_NPATCHES",
1062 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
1063 "D3DCUBEMAP_FACE_POSITIVE_X",
1064 "D3DCUBEMAP_FACE_NEGATIVE_X",
1065 "D3DCUBEMAP_FACE_POSITIVE_Y",
1066 "D3DCUBEMAP_FACE_NEGATIVE_Y",
1067 "D3DCUBEMAP_FACE_POSITIVE_Z",
1068 "D3DCUBEMAP_FACE_NEGATIVE_Z",
1071 D3DLOCK = Flags(DWORD, [
1074 "D3DLOCK_NOOVERWRITE",
1075 "D3DLOCK_NOSYSLOCK",
1076 "D3DLOCK_DONOTWAIT",
1077 "D3DLOCK_NO_DIRTY_UPDATE",
1080 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
1081 (D3DFORMAT, "Format"),
1082 (D3DRESOURCETYPE, "Type"),
1089 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
1090 (D3DFORMAT, "Format"),
1091 (D3DRESOURCETYPE, "Type"),
1097 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
1098 (D3DFORMAT, "Format"),
1099 (D3DRESOURCETYPE, "Type"),
1102 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
1103 (DWORD, "MultiSampleQuality"),
1108 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
1109 (D3DFORMAT, "Format"),
1110 (D3DRESOURCETYPE, "Type"),
1118 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
1120 (OpaquePointer(Void), "pBits"),
1123 D3DBOX = Struct("D3DBOX", [
1132 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
1134 (INT, "SlicePitch"),
1135 (OpaquePointer(Void), "pBits"),
1138 D3DRANGE = Struct("D3DRANGE", [
1143 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
1144 (UINT, "StartVertexOffsetWidth"),
1145 (UINT, "StartVertexOffsetHeight"),
1149 (D3DBASISTYPE, "Basis"),
1150 (D3DDEGREETYPE, "Degree"),
1153 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
1154 (UINT, "StartVertexOffset"),
1155 (UINT, "NumVertices"),
1156 (D3DBASISTYPE, "Basis"),
1157 (D3DDEGREETYPE, "Degree"),
1160 D3DADAPTER_IDENTIFIER9 = Struct("D3DADAPTER_IDENTIFIER9", [
1161 (CString, "Driver"),
1162 (CString, "Description"),
1163 (CString, "DeviceName"),
1164 (LARGE_INTEGER, "DriverVersion"),
1165 (DWORD, "VendorId"),
1166 (DWORD, "DeviceId"),
1167 (DWORD, "SubSysId"),
1168 (DWORD, "Revision"),
1169 (GUID, "DeviceIdentifier"),
1170 (DWORD, "WHQLLevel"),
1173 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1178 D3DQUERYTYPE = Enum("D3DQUERYTYPE", [
1179 "D3DQUERYTYPE_VCACHE",
1180 "D3DQUERYTYPE_RESOURCEMANAGER",
1181 "D3DQUERYTYPE_VERTEXSTATS",
1182 "D3DQUERYTYPE_EVENT",
1183 "D3DQUERYTYPE_OCCLUSION",
1184 "D3DQUERYTYPE_TIMESTAMP",
1185 "D3DQUERYTYPE_TIMESTAMPDISJOINT",
1186 "D3DQUERYTYPE_TIMESTAMPFREQ",
1187 "D3DQUERYTYPE_PIPELINETIMINGS",
1188 "D3DQUERYTYPE_INTERFACETIMINGS",
1189 "D3DQUERYTYPE_VERTEXTIMINGS",
1190 "D3DQUERYTYPE_PIXELTIMINGS",
1191 "D3DQUERYTYPE_BANDWIDTHTIMINGS",
1192 "D3DQUERYTYPE_CACHEUTILIZATION",
1195 D3DISSUE = Flags(DWORD, [
1200 D3DGETDATA = Flags(DWORD, [
1204 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1205 (BOOL, "bThrashing"),
1206 (DWORD, "ApproxBytesDownloaded"),
1207 (DWORD, "NumEvicts"),
1208 (DWORD, "NumVidCreates"),
1211 (DWORD, "NumUsedInVidMem"),
1212 (DWORD, "WorkingSet"),
1213 (DWORD, "WorkingSetBytes"),
1214 (DWORD, "TotalManaged"),
1215 (DWORD, "TotalBytes"),
1218 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1219 (Array(D3DRESOURCESTATS, "D3DRTYPECOUNT"), "stats"),
1222 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1223 (DWORD, "NumRenderedTriangles"),
1224 (DWORD, "NumExtraClippingTriangles"),
1227 D3DDEVINFO_VCACHE = Struct("D3DDEVINFO_VCACHE", [
1229 (DWORD, "OptMethod"),
1230 (DWORD, "CacheSize"),
1231 (DWORD, "MagicNumber"),
1234 D3DDEVINFO_D3D9PIPELINETIMINGS = Struct("D3DDEVINFO_D3D9PIPELINETIMINGS", [
1235 (FLOAT, "VertexProcessingTimePercent"),
1236 (FLOAT, "PixelProcessingTimePercent"),
1237 (FLOAT, "OtherGPUProcessingTimePercent"),
1238 (FLOAT, "GPUIdleTimePercent"),
1241 D3DDEVINFO_D3D9INTERFACETIMINGS = Struct("D3DDEVINFO_D3D9INTERFACETIMINGS", [
1242 (FLOAT, "WaitingForGPUToUseApplicationResourceTimePercent"),
1243 (FLOAT, "WaitingForGPUToAcceptMoreCommandsTimePercent"),
1244 (FLOAT, "WaitingForGPUToStayWithinLatencyTimePercent"),
1245 (FLOAT, "WaitingForGPUExclusiveResourceTimePercent"),
1246 (FLOAT, "WaitingForGPUOtherTimePercent"),
1249 D3DDEVINFO_D3D9STAGETIMINGS = Struct("D3DDEVINFO_D3D9STAGETIMINGS", [
1250 (FLOAT, "MemoryProcessingPercent"),
1251 (FLOAT, "ComputationProcessingPercent"),
1254 D3DDEVINFO_D3D9BANDWIDTHTIMINGS = Struct("D3DDEVINFO_D3D9BANDWIDTHTIMINGS", [
1255 (FLOAT, "MaxBandwidthUtilized"),
1256 (FLOAT, "FrontEndUploadMemoryUtilizedPercent"),
1257 (FLOAT, "VertexRateUtilizedPercent"),
1258 (FLOAT, "TriangleSetupRateUtilizedPercent"),
1259 (FLOAT, "FillRateUtilizedPercent"),
1262 D3DDEVINFO_D3D9CACHEUTILIZATION = Struct("D3DDEVINFO_D3D9CACHEUTILIZATION", [
1263 (FLOAT, "TextureCacheHitRate"),
1264 (FLOAT, "PostTransformVertexCacheHitRate"),
1267 D3DCOMPOSERECTSOP = Enum("D3DCOMPOSERECTSOP", [
1268 "D3DCOMPOSERECTS_COPY",
1269 "D3DCOMPOSERECTS_OR",
1270 "D3DCOMPOSERECTS_AND",
1271 "D3DCOMPOSERECTS_NEG",
1274 D3DCOMPOSERECTDESC = Struct("D3DCOMPOSERECTDESC", [
1281 D3DCOMPOSERECTDESTINATION = Struct("D3DCOMPOSERECTDESTINATION", [
1282 (USHORT, "SrcRectIndex"),
1283 (USHORT, "Reserved"),
1288 D3DPRESENTSTATS = Struct("D3DPRESENTSTATS", [
1289 (UINT, "PresentCount"),
1290 (UINT, "PresentRefreshCount"),
1291 (UINT, "SyncRefreshCount"),
1292 (LARGE_INTEGER, "SyncQPCTime"),
1293 (LARGE_INTEGER, "SyncGPUTime"),
1296 D3DSCANLINEORDERING = Enum("D3DSCANLINEORDERING", [
1297 "D3DSCANLINEORDERING_UNKNOWN",
1298 "D3DSCANLINEORDERING_PROGRESSIVE",
1299 "D3DSCANLINEORDERING_INTERLACED",
1302 D3DDISPLAYMODEEX = Struct("D3DDISPLAYMODEEX", [
1306 (UINT, "RefreshRate"),
1307 (D3DFORMAT, "Format"),
1308 (D3DSCANLINEORDERING, "ScanLineOrdering"),
1311 D3DDISPLAYMODEFILTER = Struct("D3DDISPLAYMODEFILTER", [
1313 (D3DFORMAT, "Format"),
1314 (D3DSCANLINEORDERING, "ScanLineOrdering"),
1317 D3DDISPLAYROTATION = Enum("D3DDISPLAYROTATION", [
1318 "D3DDISPLAYROTATION_IDENTITY",
1319 "D3DDISPLAYROTATION_90",
1320 "D3DDISPLAYROTATION_180",
1321 "D3DDISPLAYROTATION_270",
1324 D3D9_RESOURCE_PRIORITY = FakeEnum(DWORD, [
1325 "D3D9_RESOURCE_PRIORITY_MINIMUM",
1326 "D3D9_RESOURCE_PRIORITY_LOW",
1327 "D3D9_RESOURCE_PRIORITY_NORMAL",
1328 "D3D9_RESOURCE_PRIORITY_HIGH",
1329 "D3D9_RESOURCE_PRIORITY_MAXIMUM",