1 ##########################################################################
3 # Copyright 2011 Jose Fonseca
4 # Copyright 2008-2009 VMware, Inc.
7 # Permission is hereby granted, free of charge, to any person obtaining a copy
8 # of this software and associated documentation files (the "Software"), to deal
9 # in the Software without restriction, including without limitation the rights
10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 # copies of the Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 ##########################################################################/
31 D3DCOLOR = Alias("D3DCOLOR", DWORD)
33 D3DVECTOR = Struct("D3DVECTOR", [
39 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
46 D3DRECT = Struct("D3DRECT", [
53 D3DMATRIX = Struct("D3DMATRIX", [
54 (Array(Array(Float, 4), "4"), "m"),
57 D3DVIEWPORT9 = Struct("D3DVIEWPORT9", [
66 D3DCLIPPLANE = Flags(DWORD, [
75 D3DCS = Flags(DWORD, [
91 D3DCLIPSTATUS9 = Struct("D3DCLIPSTATUS9", [
93 (DWORD, "ClipIntersection"),
96 D3DMATERIAL9 = Struct("D3DMATERIAL9", [
97 (D3DCOLORVALUE, "Diffuse"),
98 (D3DCOLORVALUE, "Ambient"),
99 (D3DCOLORVALUE, "Specular"),
100 (D3DCOLORVALUE, "Emissive"),
104 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
107 "D3DLIGHT_DIRECTIONAL",
110 D3DLIGHT9 = Struct("D3DLIGHT9", [
111 (D3DLIGHTTYPE, "Type"),
112 (D3DCOLORVALUE, "Diffuse"),
113 (D3DCOLORVALUE, "Specular"),
114 (D3DCOLORVALUE, "Ambient"),
115 (D3DVECTOR, "Position"),
116 (D3DVECTOR, "Direction"),
119 (Float, "Attenuation0"),
120 (Float, "Attenuation1"),
121 (Float, "Attenuation2"),
126 D3DCLEAR = Flags(DWORD, [
132 D3DSHADEMODE = Enum("D3DSHADEMODE", [
138 D3DFILLMODE = Enum("D3DFILLMODE", [
144 D3DBLEND = Enum("D3DBLEND", [
148 "D3DBLEND_INVSRCCOLOR",
150 "D3DBLEND_INVSRCALPHA",
151 "D3DBLEND_DESTALPHA",
152 "D3DBLEND_INVDESTALPHA",
153 "D3DBLEND_DESTCOLOR",
154 "D3DBLEND_INVDESTCOLOR",
155 "D3DBLEND_SRCALPHASAT",
156 "D3DBLEND_BOTHSRCALPHA",
157 "D3DBLEND_BOTHINVSRCALPHA",
158 "D3DBLEND_BLENDFACTOR",
159 "D3DBLEND_INVBLENDFACTOR",
160 "D3DBLEND_SRCCOLOR2",
161 "D3DBLEND_INVSRCCOLOR2",
164 D3DBLENDOP = Enum("D3DBLENDOP", [
166 "D3DBLENDOP_SUBTRACT",
167 "D3DBLENDOP_REVSUBTRACT",
172 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
174 "D3DTADDRESS_MIRROR",
176 "D3DTADDRESS_BORDER",
177 "D3DTADDRESS_MIRRORONCE",
180 D3DCULL = Enum("D3DCULL", [
186 D3DCMPFUNC = Enum("D3DCMPFUNC", [
193 "D3DCMP_GREATEREQUAL",
197 D3DSTENCILOP = Enum("D3DSTENCILOP", [
200 "D3DSTENCILOP_REPLACE",
201 "D3DSTENCILOP_INCRSAT",
202 "D3DSTENCILOP_DECRSAT",
203 "D3DSTENCILOP_INVERT",
208 D3DFOGMODE = Enum("D3DFOGMODE", [
215 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
221 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
225 "D3DPT_TRIANGLELIST",
226 "D3DPT_TRIANGLESTRIP",
230 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
247 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
253 D3DWRAPCOORD = Flags(DWORD, [
260 D3DCOLORWRITEENABLE = Flags(DWORD, [
261 "D3DCOLORWRITEENABLE_RED",
262 "D3DCOLORWRITEENABLE_GREEN",
263 "D3DCOLORWRITEENABLE_BLUE",
264 "D3DCOLORWRITEENABLE_ALPHA",
267 D3DDEGREETYPE = Enum("D3DDEGREETYPE", [
269 "D3DDEGREE_QUADRATIC",
274 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
275 "D3DPATCHEDGE_DISCRETE",
276 "D3DPATCHEDGE_CONTINUOUS",
279 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
288 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
293 # TODO: Convert these to/from actual floats
294 FLOAT_AS_DWORD = DWORD
296 D3DRENDERSTATETYPE, D3DRENDERSTATEVALUE = EnumPolymorphic("D3DRENDERSTATETYPE", "State", [
297 ("D3DRS_ZENABLE", D3DZBUFFERTYPE),
298 ("D3DRS_FILLMODE", D3DFILLMODE),
299 ("D3DRS_SHADEMODE", D3DSHADEMODE),
300 ("D3DRS_ZWRITEENABLE", BOOL),
301 ("D3DRS_ALPHATESTENABLE", BOOL),
302 ("D3DRS_LASTPIXEL", BOOL),
303 ("D3DRS_SRCBLEND", D3DBLEND),
304 ("D3DRS_DESTBLEND", D3DBLEND),
305 ("D3DRS_CULLMODE", D3DCULL),
306 ("D3DRS_ZFUNC", D3DCMPFUNC),
307 ("D3DRS_ALPHAREF", DWORD),
308 ("D3DRS_ALPHAFUNC", D3DCMPFUNC),
309 ("D3DRS_DITHERENABLE", BOOL),
310 ("D3DRS_ALPHABLENDENABLE", BOOL),
311 ("D3DRS_FOGENABLE", BOOL),
312 ("D3DRS_SPECULARENABLE", BOOL),
313 ("D3DRS_FOGCOLOR", D3DCOLOR),
314 ("D3DRS_FOGTABLEMODE", D3DFOGMODE),
315 ("D3DRS_FOGSTART", FLOAT_AS_DWORD),
316 ("D3DRS_FOGEND", FLOAT_AS_DWORD),
317 ("D3DRS_FOGDENSITY", FLOAT_AS_DWORD),
318 ("D3DRS_RANGEFOGENABLE", BOOL),
319 ("D3DRS_STENCILENABLE", BOOL),
320 ("D3DRS_STENCILFAIL", D3DSTENCILOP),
321 ("D3DRS_STENCILZFAIL", D3DSTENCILOP),
322 ("D3DRS_STENCILPASS", D3DSTENCILOP),
323 ("D3DRS_STENCILFUNC", D3DCMPFUNC),
324 ("D3DRS_STENCILREF", DWORD),
325 ("D3DRS_STENCILMASK", DWORD),
326 ("D3DRS_STENCILWRITEMASK", DWORD),
327 ("D3DRS_TEXTUREFACTOR", D3DCOLOR),
328 ("D3DRS_WRAP0", D3DWRAPCOORD),
329 ("D3DRS_WRAP1", D3DWRAPCOORD),
330 ("D3DRS_WRAP2", D3DWRAPCOORD),
331 ("D3DRS_WRAP3", D3DWRAPCOORD),
332 ("D3DRS_WRAP4", D3DWRAPCOORD),
333 ("D3DRS_WRAP5", D3DWRAPCOORD),
334 ("D3DRS_WRAP6", D3DWRAPCOORD),
335 ("D3DRS_WRAP7", D3DWRAPCOORD),
336 ("D3DRS_CLIPPING", BOOL),
337 ("D3DRS_LIGHTING", BOOL),
338 ("D3DRS_AMBIENT", D3DCOLOR),
339 ("D3DRS_FOGVERTEXMODE", D3DFOGMODE),
340 ("D3DRS_COLORVERTEX", BOOL),
341 ("D3DRS_LOCALVIEWER", BOOL),
342 ("D3DRS_NORMALIZENORMALS", BOOL),
343 ("D3DRS_DIFFUSEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
344 ("D3DRS_SPECULARMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
345 ("D3DRS_AMBIENTMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
346 ("D3DRS_EMISSIVEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
347 ("D3DRS_VERTEXBLEND", D3DVERTEXBLENDFLAGS),
348 ("D3DRS_CLIPPLANEENABLE", D3DCLIPPLANE),
349 ("D3DRS_POINTSIZE", FLOAT_AS_DWORD),
350 ("D3DRS_POINTSIZE_MIN", FLOAT_AS_DWORD),
351 ("D3DRS_POINTSPRITEENABLE", BOOL),
352 ("D3DRS_POINTSCALEENABLE", BOOL),
353 ("D3DRS_POINTSCALE_A", FLOAT_AS_DWORD),
354 ("D3DRS_POINTSCALE_B", FLOAT_AS_DWORD),
355 ("D3DRS_POINTSCALE_C", FLOAT_AS_DWORD),
356 ("D3DRS_MULTISAMPLEANTIALIAS", BOOL),
357 ("D3DRS_MULTISAMPLEMASK", DWORD),
358 ("D3DRS_PATCHEDGESTYLE", D3DPATCHEDGESTYLE),
359 ("D3DRS_DEBUGMONITORTOKEN", D3DDEBUGMONITORTOKENS),
360 ("D3DRS_POINTSIZE_MAX", FLOAT_AS_DWORD),
361 ("D3DRS_INDEXEDVERTEXBLENDENABLE", BOOL),
362 ("D3DRS_COLORWRITEENABLE", DWORD),
363 ("D3DRS_TWEENFACTOR", FLOAT_AS_DWORD),
364 ("D3DRS_BLENDOP", D3DBLENDOP),
365 ("D3DRS_POSITIONDEGREE", D3DDEGREETYPE),
366 ("D3DRS_NORMALDEGREE", D3DDEGREETYPE),
367 ("D3DRS_SCISSORTESTENABLE", BOOL),
368 ("D3DRS_SLOPESCALEDEPTHBIAS", FLOAT_AS_DWORD),
369 ("D3DRS_ANTIALIASEDLINEENABLE", BOOL),
370 ("D3DRS_MINTESSELLATIONLEVEL", FLOAT_AS_DWORD),
371 ("D3DRS_MAXTESSELLATIONLEVEL", FLOAT_AS_DWORD),
372 ("D3DRS_ADAPTIVETESS_X", FLOAT_AS_DWORD),
373 ("D3DRS_ADAPTIVETESS_Y", FLOAT_AS_DWORD),
374 ("D3DRS_ADAPTIVETESS_Z", FLOAT_AS_DWORD),
375 ("D3DRS_ADAPTIVETESS_W", FLOAT_AS_DWORD),
376 ("D3DRS_ENABLEADAPTIVETESSELLATION", BOOL),
377 ("D3DRS_TWOSIDEDSTENCILMODE", BOOL),
378 ("D3DRS_CCW_STENCILFAIL", D3DSTENCILOP),
379 ("D3DRS_CCW_STENCILZFAIL", D3DSTENCILOP),
380 ("D3DRS_CCW_STENCILPASS", D3DSTENCILOP),
381 ("D3DRS_CCW_STENCILFUNC", D3DCMPFUNC),
382 ("D3DRS_COLORWRITEENABLE1", D3DCOLORWRITEENABLE),
383 ("D3DRS_COLORWRITEENABLE2", D3DCOLORWRITEENABLE),
384 ("D3DRS_COLORWRITEENABLE3", D3DCOLORWRITEENABLE),
385 ("D3DRS_BLENDFACTOR", D3DCOLOR),
386 ("D3DRS_SRGBWRITEENABLE", BOOL),
387 ("D3DRS_DEPTHBIAS", FLOAT_AS_DWORD),
388 ("D3DRS_WRAP8", D3DWRAPCOORD),
389 ("D3DRS_WRAP9", D3DWRAPCOORD),
390 ("D3DRS_WRAP10", D3DWRAPCOORD),
391 ("D3DRS_WRAP11", D3DWRAPCOORD),
392 ("D3DRS_WRAP12", D3DWRAPCOORD),
393 ("D3DRS_WRAP13", D3DWRAPCOORD),
394 ("D3DRS_WRAP14", D3DWRAPCOORD),
395 ("D3DRS_WRAP15", D3DWRAPCOORD),
396 ("D3DRS_SEPARATEALPHABLENDENABLE", BOOL),
397 ("D3DRS_SRCBLENDALPHA", D3DBLEND),
398 ("D3DRS_DESTBLENDALPHA", D3DBLEND),
399 ("D3DRS_BLENDOPALPHA", D3DBLENDOP),
401 # XXX: D3DRENDERSTATE_WRAPBIAS + n
404 D3DTSS_TCI = Flags(DWORD, [
405 #"D3DTSS_TCI_PASSTHRU", # 0
406 "D3DTSS_TCI_CAMERASPACENORMAL",
407 "D3DTSS_TCI_CAMERASPACEPOSITION",
408 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
409 "D3DTSS_TCI_SPHEREMAP",
412 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
421 "D3DTOP_ADDSIGNED2X",
424 "D3DTOP_BLENDDIFFUSEALPHA",
425 "D3DTOP_BLENDTEXTUREALPHA",
426 "D3DTOP_BLENDFACTORALPHA",
427 "D3DTOP_BLENDTEXTUREALPHAPM",
428 "D3DTOP_BLENDCURRENTALPHA",
429 "D3DTOP_PREMODULATE",
430 "D3DTOP_MODULATEALPHA_ADDCOLOR",
431 "D3DTOP_MODULATECOLOR_ADDALPHA",
432 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
433 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
435 "D3DTOP_BUMPENVMAPLUMINANCE",
436 "D3DTOP_DOTPRODUCT3",
437 "D3DTOP_MULTIPLYADD",
441 # XXX: Actually a mixture of enums and flags
442 D3DTA = FakeEnum(DWORD, [
451 #"D3DTA_ALPHAREPLICATE",
454 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
463 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
467 "D3DTEXF_ANISOTROPIC",
468 "D3DTEXF_PYRAMIDALQUAD",
469 "D3DTEXF_GAUSSIANQUAD",
470 "D3DTEXF_CONVOLUTIONMONO",
473 D3DTEXTURESTAGESTATETYPE, D3DTEXTURESTAGESTATEVALUE = EnumPolymorphic("D3DTEXTURESTAGESTATETYPE", "Type", [
474 ("D3DTSS_COLOROP", D3DTEXTUREOP),
475 ("D3DTSS_COLORARG1", D3DTA),
476 ("D3DTSS_COLORARG2", D3DTA),
477 ("D3DTSS_ALPHAOP", D3DTEXTUREOP),
478 ("D3DTSS_ALPHAARG1", D3DTA),
479 ("D3DTSS_ALPHAARG2", D3DTA),
480 ("D3DTSS_BUMPENVMAT00", FLOAT_AS_DWORD),
481 ("D3DTSS_BUMPENVMAT01", FLOAT_AS_DWORD),
482 ("D3DTSS_BUMPENVMAT10", FLOAT_AS_DWORD),
483 ("D3DTSS_BUMPENVMAT11", FLOAT_AS_DWORD),
484 ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI),
485 ("D3DTSS_BUMPENVLSCALE", FLOAT_AS_DWORD),
486 ("D3DTSS_BUMPENVLOFFSET", FLOAT_AS_DWORD),
487 ("D3DTSS_TEXTURETRANSFORMFLAGS", D3DTEXTURETRANSFORMFLAGS),
488 ("D3DTSS_COLORARG0", D3DTA,),
489 ("D3DTSS_ALPHAARG0", D3DTA,),
490 ("D3DTSS_RESULTARG", D3DTA,),
491 ("D3DTSS_CONSTANT", D3DCOLOR),
494 D3DSAMPLERSTATETYPE, D3DSAMPLERSTATEVALUE = EnumPolymorphic("D3DSAMPLERSTATETYPE", "Type", [
495 ("D3DSAMP_ADDRESSU", D3DTEXTUREADDRESS),
496 ("D3DSAMP_ADDRESSV", D3DTEXTUREADDRESS),
497 ("D3DSAMP_ADDRESSW", D3DTEXTUREADDRESS),
498 ("D3DSAMP_BORDERCOLOR", D3DCOLOR),
499 ("D3DSAMP_MAGFILTER", D3DTEXTUREFILTERTYPE),
500 ("D3DSAMP_MINFILTER", D3DTEXTUREFILTERTYPE),
501 ("D3DSAMP_MIPFILTER", D3DTEXTUREFILTERTYPE),
502 ("D3DSAMP_MIPMAPLODBIAS", FLOAT_AS_DWORD),
503 ("D3DSAMP_MAXMIPLEVEL", DWORD),
504 ("D3DSAMP_MAXANISOTROPY", DWORD),
505 ("D3DSAMP_SRGBTEXTURE", BOOL),
506 ("D3DSAMP_ELEMENTINDEX", DWORD),
507 ("D3DSAMP_DMAPOFFSET", DWORD),
510 D3DPV = Flags(DWORD, [
511 "D3DPV_DONOTCOPYDATA",
514 # XXX: Actually a mixture of enums and flags
515 D3DFVF = Flags(DWORD, [
538 "D3DFVF_LASTBETA_UBYTE4",
539 "D3DFVF_LASTBETA_D3DCOLOR",
541 #"D3DFVF_TEXCOORDSIZE1(0)",
542 #"D3DFVF_TEXCOORDSIZE2(0)",
543 #"D3DFVF_TEXCOORDSIZE3(0)",
544 #"D3DFVF_TEXCOORDSIZE4(0)",
545 #"D3DFVF_TEXCOORDSIZE1(1)",
546 #"D3DFVF_TEXCOORDSIZE2(1)",
547 #"D3DFVF_TEXCOORDSIZE3(1)",
548 #"D3DFVF_TEXCOORDSIZE4(1)",
549 #"D3DFVF_TEXCOORDSIZE1(2)",
550 #"D3DFVF_TEXCOORDSIZE2(2)",
551 #"D3DFVF_TEXCOORDSIZE3(2)",
552 #"D3DFVF_TEXCOORDSIZE4(2)",
553 #"D3DFVF_TEXCOORDSIZE1(3)",
554 #"D3DFVF_TEXCOORDSIZE2(3)",
555 #"D3DFVF_TEXCOORDSIZE3(3)",
556 #"D3DFVF_TEXCOORDSIZE4(3)",
559 D3DDECLUSAGE = FakeEnum(BYTE, [
560 "D3DDECLUSAGE_POSITION",
561 "D3DDECLUSAGE_BLENDWEIGHT",
562 "D3DDECLUSAGE_BLENDINDICES",
563 "D3DDECLUSAGE_NORMAL",
564 "D3DDECLUSAGE_PSIZE",
565 "D3DDECLUSAGE_TEXCOORD",
566 "D3DDECLUSAGE_TANGENT",
567 "D3DDECLUSAGE_BINORMAL",
568 "D3DDECLUSAGE_TESSFACTOR",
569 "D3DDECLUSAGE_POSITIONT",
570 "D3DDECLUSAGE_COLOR",
572 "D3DDECLUSAGE_DEPTH",
573 "D3DDECLUSAGE_SAMPLE",
576 D3DDECLMETHOD = FakeEnum(BYTE, [
577 "D3DDECLMETHOD_DEFAULT",
578 "D3DDECLMETHOD_PARTIALU",
579 "D3DDECLMETHOD_PARTIALV",
580 "D3DDECLMETHOD_CROSSUV",
582 "D3DDECLMETHOD_LOOKUP",
583 "D3DDECLMETHOD_LOOKUPPRESAMPLED",
586 D3DDECLTYPE = FakeEnum(BYTE, [
587 "D3DDECLTYPE_FLOAT1",
588 "D3DDECLTYPE_FLOAT2",
589 "D3DDECLTYPE_FLOAT3",
590 "D3DDECLTYPE_FLOAT4",
591 "D3DDECLTYPE_D3DCOLOR",
592 "D3DDECLTYPE_UBYTE4",
593 "D3DDECLTYPE_SHORT2",
594 "D3DDECLTYPE_SHORT4",
595 "D3DDECLTYPE_UBYTE4N",
596 "D3DDECLTYPE_SHORT2N",
597 "D3DDECLTYPE_SHORT4N",
598 "D3DDECLTYPE_USHORT2N",
599 "D3DDECLTYPE_USHORT4N",
602 "D3DDECLTYPE_FLOAT16_2",
603 "D3DDECLTYPE_FLOAT16_4",
604 "D3DDECLTYPE_UNUSED",
607 D3DVERTEXELEMENT9 = Struct("D3DVERTEXELEMENT9", [
610 (D3DDECLTYPE, "Type"), # BYTE
611 (D3DDECLMETHOD, "Method"), # BYTE
612 (D3DDECLUSAGE, "Usage"), # BYTE
613 (BYTE, "UsageIndex"),
616 D3DBASISTYPE = Enum("D3DBASISTYPE", [
619 "D3DBASIS_CATMULL_ROM",
622 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
625 "D3DSBT_VERTEXSTATE",
628 D3DDEVTYPE = Enum("D3DDEVTYPE", [
632 "D3DDEVTYPE_NULLREF",
635 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
636 "D3DMULTISAMPLE_NONE",
637 "D3DMULTISAMPLE_NONMASKABLE",
638 "D3DMULTISAMPLE_2_SAMPLES",
639 "D3DMULTISAMPLE_3_SAMPLES",
640 "D3DMULTISAMPLE_4_SAMPLES",
641 "D3DMULTISAMPLE_5_SAMPLES",
642 "D3DMULTISAMPLE_6_SAMPLES",
643 "D3DMULTISAMPLE_7_SAMPLES",
644 "D3DMULTISAMPLE_8_SAMPLES",
645 "D3DMULTISAMPLE_9_SAMPLES",
646 "D3DMULTISAMPLE_10_SAMPLES",
647 "D3DMULTISAMPLE_11_SAMPLES",
648 "D3DMULTISAMPLE_12_SAMPLES",
649 "D3DMULTISAMPLE_13_SAMPLES",
650 "D3DMULTISAMPLE_14_SAMPLES",
651 "D3DMULTISAMPLE_15_SAMPLES",
652 "D3DMULTISAMPLE_16_SAMPLES",
655 D3DFORMAT = Enum("D3DFORMAT", [
668 "D3DFMT_A2B10G10R10",
672 "D3DFMT_A2R10G10B10",
673 "D3DFMT_A16B16G16R16",
684 "D3DFMT_A2W10V10U10",
694 "D3DFMT_D16_LOCKABLE",
701 "D3DFMT_D32F_LOCKABLE",
703 "D3DFMT_D32_LOCKABLE",
704 "D3DFMT_S8_LOCKABLE",
709 "D3DFMT_Q16W16V16U16",
710 "D3DFMT_MULTI2_ARGB8",
713 "D3DFMT_A16B16G16R16F",
716 "D3DFMT_A32B32G32R32F",
719 "D3DFMT_A2B10G10R10_XR_BIAS",
720 "D3DFMT_BINARYBUFFER",
734 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
737 (UINT, "RefreshRate"),
738 (D3DFORMAT, "Format"),
741 D3DCREATE = Flags(DWORD, [
742 "D3DCREATE_FPU_PRESERVE",
743 "D3DCREATE_MULTITHREADED",
744 "D3DCREATE_PUREDEVICE",
745 "D3DCREATE_SOFTWARE_VERTEXPROCESSING",
746 "D3DCREATE_HARDWARE_VERTEXPROCESSING",
747 "D3DCREATE_MIXED_VERTEXPROCESSING",
748 "D3DCREATE_DISABLE_DRIVER_MANAGEMENT",
749 "D3DCREATE_ADAPTERGROUP_DEVICE",
750 "D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX",
751 "D3DCREATE_NOWINDOWCHANGES",
752 "D3DCREATE_DISABLE_PSGP_THREADING",
753 "D3DCREATE_ENABLE_PRESENTSTATS",
754 "D3DCREATE_DISABLE_PRINTSCREEN",
755 "D3DCREATE_SCREENSAVER",
758 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
759 (UINT, "AdapterOrdinal"),
760 (D3DDEVTYPE, "DeviceType"),
761 (HWND, "hFocusWindow"),
762 (D3DCREATE, "BehaviorFlags"),
765 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
766 "D3DSWAPEFFECT_DISCARD",
767 "D3DSWAPEFFECT_FLIP",
768 "D3DSWAPEFFECT_COPY",
771 D3DPOOL = Enum("D3DPOOL", [
778 D3DPRESENT = FakeEnum(DWORD, [
779 "D3DPRESENT_RATE_DEFAULT",
782 D3DPRESENTFLAG = Flags(DWORD, [
783 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
784 "D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL",
785 "D3DPRESENTFLAG_DEVICECLIP",
786 "D3DPRESENTFLAG_VIDEO",
787 "D3DPRESENTFLAG_NOAUTOROTATE",
788 "D3DPRESENTFLAG_UNPRUNEDMODE",
791 D3DPRESENT_INTERVAL = Flags(DWORD, [
792 "D3DPRESENT_INTERVAL_DEFAULT", # 0
793 "D3DPRESENT_INTERVAL_ONE",
794 "D3DPRESENT_INTERVAL_TWO",
795 "D3DPRESENT_INTERVAL_THREE",
796 "D3DPRESENT_INTERVAL_FOUR",
797 "D3DPRESENT_INTERVAL_IMMEDIATE",
800 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
801 (UINT, "BackBufferWidth"),
802 (UINT, "BackBufferHeight"),
803 (D3DFORMAT, "BackBufferFormat"),
804 (UINT, "BackBufferCount"),
805 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
806 (DWORD, "MultiSampleQuality"),
807 (D3DSWAPEFFECT, "SwapEffect"),
808 (HWND, "hDeviceWindow"),
810 (BOOL, "EnableAutoDepthStencil"),
811 (D3DFORMAT, "AutoDepthStencilFormat"),
812 (D3DPRESENTFLAG, "Flags"),
813 (UINT, "FullScreen_RefreshRateInHz"),
814 (D3DPRESENT_INTERVAL, "PresentationInterval"),
817 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
818 (Array(WORD, 256), "red"),
819 (Array(WORD, 256), "green"),
820 (Array(WORD, 256), "blue"),
823 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
824 "D3DBACKBUFFER_TYPE_MONO",
825 "D3DBACKBUFFER_TYPE_LEFT",
826 "D3DBACKBUFFER_TYPE_RIGHT",
829 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
833 "D3DRTYPE_VOLUMETEXTURE",
834 "D3DRTYPE_CUBETEXTURE",
835 "D3DRTYPE_VERTEXBUFFER",
836 "D3DRTYPE_INDEXBUFFER",
839 D3DUSAGE = Flags(DWORD, [
840 "D3DUSAGE_RENDERTARGET",
841 "D3DUSAGE_DEPTHSTENCIL",
842 "D3DUSAGE_WRITEONLY",
843 "D3DUSAGE_SOFTWAREPROCESSING",
844 "D3DUSAGE_DONOTCLIP",
846 "D3DUSAGE_RTPATCHES",
849 "D3DUSAGE_AUTOGENMIPMAP",
850 "D3DUSAGE_RESTRICTED_CONTENT",
851 "D3DUSAGE_RESTRICT_SHARED_RESOURCE",
852 "D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER",
854 "D3DUSAGE_QUERY_LEGACYBUMPMAP",
855 "D3DUSAGE_QUERY_SRGBREAD",
856 "D3DUSAGE_QUERY_FILTER",
857 "D3DUSAGE_QUERY_SRGBWRITE",
858 "D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING",
859 "D3DUSAGE_QUERY_VERTEXTEXTURE",
860 "D3DUSAGE_QUERY_WRAPANDMIP",
861 "D3DUSAGE_NONSECURE",
865 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
866 "D3DCUBEMAP_FACE_POSITIVE_X",
867 "D3DCUBEMAP_FACE_NEGATIVE_X",
868 "D3DCUBEMAP_FACE_POSITIVE_Y",
869 "D3DCUBEMAP_FACE_NEGATIVE_Y",
870 "D3DCUBEMAP_FACE_POSITIVE_Z",
871 "D3DCUBEMAP_FACE_NEGATIVE_Z",
874 D3DLOCK = Flags(DWORD, [
877 "D3DLOCK_NOOVERWRITE",
880 "D3DLOCK_NO_DIRTY_UPDATE",
883 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
884 (D3DFORMAT, "Format"),
885 (D3DRESOURCETYPE, "Type"),
892 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
893 (D3DFORMAT, "Format"),
894 (D3DRESOURCETYPE, "Type"),
900 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
901 (D3DFORMAT, "Format"),
902 (D3DRESOURCETYPE, "Type"),
905 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
906 (DWORD, "MultiSampleQuality"),
911 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
912 (D3DFORMAT, "Format"),
913 (D3DRESOURCETYPE, "Type"),
921 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
923 (LinearPointer(Void, "_MappedSize"), "pBits"),
926 D3DBOX = Struct("D3DBOX", [
935 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
938 (LinearPointer(Void, "_MappedSize"), "pBits"),
941 D3DRANGE = Struct("D3DRANGE", [
946 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
947 (UINT, "StartVertexOffsetWidth"),
948 (UINT, "StartVertexOffsetHeight"),
952 (D3DBASISTYPE, "Basis"),
953 (D3DDEGREETYPE, "Degree"),
956 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
957 (UINT, "StartVertexOffset"),
958 (UINT, "NumVertices"),
959 (D3DBASISTYPE, "Basis"),
960 (D3DDEGREETYPE, "Degree"),
963 D3DADAPTER_IDENTIFIER9 = Struct("D3DADAPTER_IDENTIFIER9", [
965 (CString, "Description"),
966 (CString, "DeviceName"),
967 (LARGE_INTEGER, "DriverVersion"),
972 (GUID, "DeviceIdentifier"),
973 (DWORD, "WHQLLevel"),
976 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
981 D3DQUERYTYPE = Enum("D3DQUERYTYPE", [
982 "D3DQUERYTYPE_VCACHE",
983 "D3DQUERYTYPE_RESOURCEMANAGER",
984 "D3DQUERYTYPE_VERTEXSTATS",
985 "D3DQUERYTYPE_EVENT",
986 "D3DQUERYTYPE_OCCLUSION",
987 "D3DQUERYTYPE_TIMESTAMP",
988 "D3DQUERYTYPE_TIMESTAMPDISJOINT",
989 "D3DQUERYTYPE_TIMESTAMPFREQ",
990 "D3DQUERYTYPE_PIPELINETIMINGS",
991 "D3DQUERYTYPE_INTERFACETIMINGS",
992 "D3DQUERYTYPE_VERTEXTIMINGS",
993 "D3DQUERYTYPE_PIXELTIMINGS",
994 "D3DQUERYTYPE_BANDWIDTHTIMINGS",
995 "D3DQUERYTYPE_CACHEUTILIZATION",
998 D3DISSUE = Flags(DWORD, [
1003 D3DGETDATA = Flags(DWORD, [
1007 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1008 (BOOL, "bThrashing"),
1009 (DWORD, "ApproxBytesDownloaded"),
1010 (DWORD, "NumEvicts"),
1011 (DWORD, "NumVidCreates"),
1014 (DWORD, "NumUsedInVidMem"),
1015 (DWORD, "WorkingSet"),
1016 (DWORD, "WorkingSetBytes"),
1017 (DWORD, "TotalManaged"),
1018 (DWORD, "TotalBytes"),
1021 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1022 (Array(D3DRESOURCESTATS, "D3DRTYPECOUNT"), "stats"),
1025 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1026 (DWORD, "NumRenderedTriangles"),
1027 (DWORD, "NumExtraClippingTriangles"),
1030 D3DDEVINFO_VCACHE = Struct("D3DDEVINFO_VCACHE", [
1032 (DWORD, "OptMethod"),
1033 (DWORD, "CacheSize"),
1034 (DWORD, "MagicNumber"),
1037 D3DDEVINFO_D3D9PIPELINETIMINGS = Struct("D3DDEVINFO_D3D9PIPELINETIMINGS", [
1038 (FLOAT, "VertexProcessingTimePercent"),
1039 (FLOAT, "PixelProcessingTimePercent"),
1040 (FLOAT, "OtherGPUProcessingTimePercent"),
1041 (FLOAT, "GPUIdleTimePercent"),
1044 D3DDEVINFO_D3D9INTERFACETIMINGS = Struct("D3DDEVINFO_D3D9INTERFACETIMINGS", [
1045 (FLOAT, "WaitingForGPUToUseApplicationResourceTimePercent"),
1046 (FLOAT, "WaitingForGPUToAcceptMoreCommandsTimePercent"),
1047 (FLOAT, "WaitingForGPUToStayWithinLatencyTimePercent"),
1048 (FLOAT, "WaitingForGPUExclusiveResourceTimePercent"),
1049 (FLOAT, "WaitingForGPUOtherTimePercent"),
1052 D3DDEVINFO_D3D9STAGETIMINGS = Struct("D3DDEVINFO_D3D9STAGETIMINGS", [
1053 (FLOAT, "MemoryProcessingPercent"),
1054 (FLOAT, "ComputationProcessingPercent"),
1057 D3DDEVINFO_D3D9BANDWIDTHTIMINGS = Struct("D3DDEVINFO_D3D9BANDWIDTHTIMINGS", [
1058 (FLOAT, "MaxBandwidthUtilized"),
1059 (FLOAT, "FrontEndUploadMemoryUtilizedPercent"),
1060 (FLOAT, "VertexRateUtilizedPercent"),
1061 (FLOAT, "TriangleSetupRateUtilizedPercent"),
1062 (FLOAT, "FillRateUtilizedPercent"),
1065 D3DDEVINFO_D3D9CACHEUTILIZATION = Struct("D3DDEVINFO_D3D9CACHEUTILIZATION", [
1066 (FLOAT, "TextureCacheHitRate"),
1067 (FLOAT, "PostTransformVertexCacheHitRate"),
1070 D3DCOMPOSERECTSOP = Enum("D3DCOMPOSERECTSOP", [
1071 "D3DCOMPOSERECTS_COPY",
1072 "D3DCOMPOSERECTS_OR",
1073 "D3DCOMPOSERECTS_AND",
1074 "D3DCOMPOSERECTS_NEG",
1077 D3DCOMPOSERECTDESC = Struct("D3DCOMPOSERECTDESC", [
1084 D3DCOMPOSERECTDESTINATION = Struct("D3DCOMPOSERECTDESTINATION", [
1085 (USHORT, "SrcRectIndex"),
1086 (USHORT, "Reserved"),
1091 D3DPRESENTSTATS = Struct("D3DPRESENTSTATS", [
1092 (UINT, "PresentCount"),
1093 (UINT, "PresentRefreshCount"),
1094 (UINT, "SyncRefreshCount"),
1095 (LARGE_INTEGER, "SyncQPCTime"),
1096 (LARGE_INTEGER, "SyncGPUTime"),
1099 D3DSCANLINEORDERING = Enum("D3DSCANLINEORDERING", [
1100 "D3DSCANLINEORDERING_UNKNOWN",
1101 "D3DSCANLINEORDERING_PROGRESSIVE",
1102 "D3DSCANLINEORDERING_INTERLACED",
1105 D3DDISPLAYMODEEX = Struct("D3DDISPLAYMODEEX", [
1109 (UINT, "RefreshRate"),
1110 (D3DFORMAT, "Format"),
1111 (D3DSCANLINEORDERING, "ScanLineOrdering"),
1114 D3DDISPLAYMODEFILTER = Struct("D3DDISPLAYMODEFILTER", [
1116 (D3DFORMAT, "Format"),
1117 (D3DSCANLINEORDERING, "ScanLineOrdering"),
1120 D3DDISPLAYROTATION = Enum("D3DDISPLAYROTATION", [
1121 "D3DDISPLAYROTATION_IDENTITY",
1122 "D3DDISPLAYROTATION_90",
1123 "D3DDISPLAYROTATION_180",
1124 "D3DDISPLAYROTATION_270",
1127 D3D9_RESOURCE_PRIORITY = FakeEnum(DWORD, [
1128 "D3D9_RESOURCE_PRIORITY_MINIMUM",
1129 "D3D9_RESOURCE_PRIORITY_LOW",
1130 "D3D9_RESOURCE_PRIORITY_NORMAL",
1131 "D3D9_RESOURCE_PRIORITY_HIGH",
1132 "D3D9_RESOURCE_PRIORITY_MAXIMUM",