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 D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
65 D3DCLIP = Flags(DWORD, [
74 D3DCS = Flags(DWORD, [
90 D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", [
92 (DWORD, "ClipIntersection"),
95 D3DMATERIAL8 = Struct("D3DMATERIAL8", [
96 (D3DCOLORVALUE, "Diffuse"),
97 (D3DCOLORVALUE, "Ambient"),
98 (D3DCOLORVALUE, "Specular"),
99 (D3DCOLORVALUE, "Emissive"),
103 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
106 "D3DLIGHT_DIRECTIONAL",
109 D3DLIGHT8 = Struct("D3DLIGHT8", [
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 D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
144 (WORD, "wRepeatFactor"),
145 (WORD, "wLinePattern"),
148 D3DBLEND = Enum("D3DBLEND", [
152 "D3DBLEND_INVSRCCOLOR",
154 "D3DBLEND_INVSRCALPHA",
155 "D3DBLEND_DESTALPHA",
156 "D3DBLEND_INVDESTALPHA",
157 "D3DBLEND_DESTCOLOR",
158 "D3DBLEND_INVDESTCOLOR",
159 "D3DBLEND_SRCALPHASAT",
160 "D3DBLEND_BOTHSRCALPHA",
161 "D3DBLEND_BOTHINVSRCALPHA",
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", [
243 D3DTS = Flags(DWORD, [
250 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
255 "D3DRS_ZWRITEENABLE",
256 "D3DRS_ALPHATESTENABLE",
264 "D3DRS_DITHERENABLE",
265 "D3DRS_ALPHABLENDENABLE",
267 "D3DRS_SPECULARENABLE",
270 "D3DRS_FOGTABLEMODE",
274 "D3DRS_EDGEANTIALIAS",
276 "D3DRS_RANGEFOGENABLE",
277 "D3DRS_STENCILENABLE",
279 "D3DRS_STENCILZFAIL",
284 "D3DRS_STENCILWRITEMASK",
285 "D3DRS_TEXTUREFACTOR",
297 "D3DRS_FOGVERTEXMODE",
300 "D3DRS_NORMALIZENORMALS",
301 "D3DRS_DIFFUSEMATERIALSOURCE",
302 "D3DRS_SPECULARMATERIALSOURCE",
303 "D3DRS_AMBIENTMATERIALSOURCE",
304 "D3DRS_EMISSIVEMATERIALSOURCE",
306 "D3DRS_CLIPPLANEENABLE",
307 "D3DRS_SOFTWAREVERTEXPROCESSING",
309 "D3DRS_POINTSIZE_MIN",
310 "D3DRS_POINTSPRITEENABLE",
311 "D3DRS_POINTSCALEENABLE",
312 "D3DRS_POINTSCALE_A",
313 "D3DRS_POINTSCALE_B",
314 "D3DRS_POINTSCALE_C",
315 "D3DRS_MULTISAMPLEANTIALIAS",
316 "D3DRS_MULTISAMPLEMASK",
317 "D3DRS_PATCHEDGESTYLE",
318 "D3DRS_PATCHSEGMENTS",
319 "D3DRS_DEBUGMONITORTOKEN",
320 "D3DRS_POINTSIZE_MAX",
321 "D3DRS_INDEXEDVERTEXBLENDENABLE",
322 "D3DRS_COLORWRITEENABLE",
325 "D3DRS_POSITIONORDER",
329 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
335 D3DWRAP = Flags(DWORD, [
341 D3DWRAPCOORD = Flags(DWORD, [
348 D3DCOLORWRITEENABLE = Flags(DWORD, [
349 "D3DCOLORWRITEENABLE_RED",
350 "D3DCOLORWRITEENABLE_GREEN",
351 "D3DCOLORWRITEENABLE_BLUE",
352 "D3DCOLORWRITEENABLE_ALPHA",
355 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
362 "D3DTSS_BUMPENVMAT00",
363 "D3DTSS_BUMPENVMAT01",
364 "D3DTSS_BUMPENVMAT10",
365 "D3DTSS_BUMPENVMAT11",
366 "D3DTSS_TEXCOORDINDEX",
369 "D3DTSS_BORDERCOLOR",
373 "D3DTSS_MIPMAPLODBIAS",
374 "D3DTSS_MAXMIPLEVEL",
375 "D3DTSS_MAXANISOTROPY",
376 "D3DTSS_BUMPENVLSCALE",
377 "D3DTSS_BUMPENVLOFFSET",
378 "D3DTSS_TEXTURETRANSFORMFLAGS",
385 D3DTSS = Flags(DWORD, [
386 "D3DTSS_TCI_PASSTHRU",
387 "D3DTSS_TCI_CAMERASPACENORMAL",
388 "D3DTSS_TCI_CAMERASPACEPOSITION",
389 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
392 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
401 "D3DTOP_ADDSIGNED2X",
404 "D3DTOP_BLENDDIFFUSEALPHA",
405 "D3DTOP_BLENDTEXTUREALPHA",
406 "D3DTOP_BLENDFACTORALPHA",
407 "D3DTOP_BLENDTEXTUREALPHAPM",
408 "D3DTOP_BLENDCURRENTALPHA",
409 "D3DTOP_PREMODULATE",
410 "D3DTOP_MODULATEALPHA_ADDCOLOR",
411 "D3DTOP_MODULATECOLOR_ADDALPHA",
412 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
413 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
415 "D3DTOP_BUMPENVMAPLUMINANCE",
416 "D3DTOP_DOTPRODUCT3",
417 "D3DTOP_MULTIPLYADD",
421 D3DTA = Flags(DWORD, [
430 "D3DTA_ALPHAREPLICATE",
433 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
437 "D3DTEXF_ANISOTROPIC",
439 "D3DTEXF_GAUSSIANCUBIC",
442 D3DPV = Flags(DWORD, [
443 "D3DPV_DONOTCOPYDATA",
446 D3DFVF = Flags(DWORD, [
448 "D3DFVF_POSITION_MASK",
460 "D3DFVF_TEXCOUNT_MASK",
461 "D3DFVF_TEXCOUNT_SHIFT",
471 "D3DFVF_LASTBETA_UBYTE4",
473 "D3DFVF_TEXCOORDSIZE3(0)",
474 "D3DFVF_TEXCOORDSIZE2(0)",
475 "D3DFVF_TEXCOORDSIZE4(0)",
476 "D3DFVF_TEXCOORDSIZE1(0)",
477 "D3DFVF_TEXCOORDSIZE3(1)",
478 "D3DFVF_TEXCOORDSIZE2(1)",
479 "D3DFVF_TEXCOORDSIZE4(1)",
480 "D3DFVF_TEXCOORDSIZE1(1)",
481 "D3DFVF_TEXCOORDSIZE3(2)",
482 "D3DFVF_TEXCOORDSIZE2(2)",
483 "D3DFVF_TEXCOORDSIZE4(2)",
484 "D3DFVF_TEXCOORDSIZE1(2)",
485 "D3DFVF_TEXCOORDSIZE3(3)",
486 "D3DFVF_TEXCOORDSIZE2(3)",
487 "D3DFVF_TEXCOORDSIZE4(3)",
488 "D3DFVF_TEXCOORDSIZE1(3)",
491 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
493 "D3DVSD_TOKEN_STREAM",
494 "D3DVSD_TOKEN_STREAMDATA",
495 "D3DVSD_TOKEN_TESSELLATOR",
496 "D3DVSD_TOKEN_CONSTMEM",
501 D3DVSDT = Flags(DWORD, [
511 "D3DVSDE_BLENDWEIGHT",
512 "D3DVSDE_BLENDINDICES",
531 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
568 "D3DSIO_TEXM3x3DIFF",
569 "D3DSIO_TEXM3x3SPEC",
570 "D3DSIO_TEXM3x3VSPEC",
577 "D3DSIO_TEXM3x2DEPTH",
588 D3DSP = Flags(DWORD, [
593 "D3DSP_WRITEMASK_ALL",
596 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
601 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
605 "D3DSPR_ADDR|D3DSPR_TEXTURE",
611 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
617 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
618 "D3DVS_ADDRMODE_ABSOLUTE",
619 "D3DVS_ADDRMODE_RELATIVE",
622 D3DVS = Flags(DWORD, [
642 D3DSP = Flags(DWORD, [
644 "D3DSP_REPLICATERED",
645 "D3DSP_REPLICATEGREEN",
646 "D3DSP_REPLICATEBLUE",
647 "D3DSP_REPLICATEALPHA",
650 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
664 D3DBASISTYPE = Enum("D3DBASISTYPE", [
667 "D3DBASIS_INTERPOLATE",
670 D3DORDERTYPE = Enum("D3DORDERTYPE", [
672 "D3DORDER_QUADRATIC",
677 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
678 "D3DPATCHEDGE_DISCRETE",
679 "D3DPATCHEDGE_CONTINUOUS",
682 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
685 "D3DSBT_VERTEXSTATE",
688 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
697 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
706 D3DDEVTYPE = Enum("D3DDEVTYPE", [
712 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
713 "D3DMULTISAMPLE_NONE",
714 "D3DMULTISAMPLE_2_SAMPLES",
715 "D3DMULTISAMPLE_3_SAMPLES",
716 "D3DMULTISAMPLE_4_SAMPLES",
717 "D3DMULTISAMPLE_5_SAMPLES",
718 "D3DMULTISAMPLE_6_SAMPLES",
719 "D3DMULTISAMPLE_7_SAMPLES",
720 "D3DMULTISAMPLE_8_SAMPLES",
721 "D3DMULTISAMPLE_9_SAMPLES",
722 "D3DMULTISAMPLE_10_SAMPLES",
723 "D3DMULTISAMPLE_11_SAMPLES",
724 "D3DMULTISAMPLE_12_SAMPLES",
725 "D3DMULTISAMPLE_13_SAMPLES",
726 "D3DMULTISAMPLE_14_SAMPLES",
727 "D3DMULTISAMPLE_15_SAMPLES",
728 "D3DMULTISAMPLE_16_SAMPLES",
731 D3DFORMAT = Enum("D3DFORMAT", [
744 "D3DFMT_A2B10G10R10",
757 "D3DFMT_A2W10V10U10",
765 "D3DFMT_D16_LOCKABLE",
777 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
780 (UINT, "RefreshRate"),
781 (D3DFORMAT, "Format"),
784 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
785 (UINT, "AdapterOrdinal"),
786 (D3DDEVTYPE, "DeviceType"),
787 (HWND, "hFocusWindow"),
788 (DWORD, "BehaviorFlags"),
791 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
792 "D3DSWAPEFFECT_DISCARD",
793 "D3DSWAPEFFECT_FLIP",
794 "D3DSWAPEFFECT_COPY",
795 "D3DSWAPEFFECT_COPY_VSYNC",
798 D3DPOOL = Enum("D3DPOOL", [
805 D3DPRESENT = Flags(DWORD, [
806 "D3DPRESENT_RATE_DEFAULT",
807 "D3DPRESENT_RATE_UNLIMITED",
810 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
811 (UINT, "BackBufferWidth"),
812 (UINT, "BackBufferHeight"),
813 (D3DFORMAT, "BackBufferFormat"),
814 (UINT, "BackBufferCount"),
815 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
816 (D3DSWAPEFFECT, "SwapEffect"),
817 (HWND, "hDeviceWindow"),
819 (BOOL, "EnableAutoDepthStencil"),
820 (D3DFORMAT, "AutoDepthStencilFormat"),
822 (UINT, "FullScreen_RefreshRateInHz"),
823 (UINT, "FullScreen_PresentationInterval"),
826 D3DPRESENTFLAG = Flags(DWORD, [
827 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
830 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
831 (Array(WORD, "256"), "red"),
832 (Array(WORD, "256"), "green"),
833 (Array(WORD, "256"), "blue"),
836 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
837 "D3DBACKBUFFER_TYPE_MONO",
838 "D3DBACKBUFFER_TYPE_LEFT",
839 "D3DBACKBUFFER_TYPE_RIGHT",
842 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
846 "D3DRTYPE_VOLUMETEXTURE",
847 "D3DRTYPE_CUBETEXTURE",
848 "D3DRTYPE_VERTEXBUFFER",
849 "D3DRTYPE_INDEXBUFFER",
852 D3DUSAGE = Flags(DWORD, [
853 "D3DUSAGE_RENDERTARGET",
854 "D3DUSAGE_DEPTHSTENCIL",
855 "D3DUSAGE_WRITEONLY",
856 "D3DUSAGE_SOFTWAREPROCESSING",
857 "D3DUSAGE_DONOTCLIP",
859 "D3DUSAGE_RTPATCHES",
864 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
865 "D3DCUBEMAP_FACE_POSITIVE_X",
866 "D3DCUBEMAP_FACE_NEGATIVE_X",
867 "D3DCUBEMAP_FACE_POSITIVE_Y",
868 "D3DCUBEMAP_FACE_NEGATIVE_Y",
869 "D3DCUBEMAP_FACE_POSITIVE_Z",
870 "D3DCUBEMAP_FACE_NEGATIVE_Z",
873 D3DLOCK = Flags(DWORD, [
876 "D3DLOCK_NOOVERWRITE",
878 "D3DLOCK_NO_DIRTY_UPDATE",
881 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
882 (D3DFORMAT, "Format"),
883 (D3DRESOURCETYPE, "Type"),
890 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
891 (D3DFORMAT, "Format"),
892 (D3DRESOURCETYPE, "Type"),
898 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
899 (D3DFORMAT, "Format"),
900 (D3DRESOURCETYPE, "Type"),
904 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
909 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
910 (D3DFORMAT, "Format"),
911 (D3DRESOURCETYPE, "Type"),
920 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
925 D3DBOX = Struct("D3DBOX", [
934 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
940 D3DRANGE = Struct("D3DRANGE", [
945 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
946 (UINT, "StartVertexOffsetWidth"),
947 (UINT, "StartVertexOffsetHeight"),
951 (D3DBASISTYPE, "Basis"),
952 (D3DORDERTYPE, "Order"),
955 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
956 (UINT, "StartVertexOffset"),
957 (UINT, "NumVertices"),
958 (D3DBASISTYPE, "Basis"),
959 (D3DORDERTYPE, "Order"),
962 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
964 (CString, "Description"),
965 (LARGE_INTEGER, "DriverVersion"),
970 (GUID, "DeviceIdentifier"),
971 (DWORD, "WHQLLevel"),
974 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
979 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
984 D3DDEVINFOID = Flags(DWORD, [
985 "D3DDEVINFOID_RESOURCEMANAGER",
986 "D3DDEVINFOID_VERTEXSTATS",
989 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
990 (BOOL, "bThrashing"),
991 (DWORD, "ApproxBytesDownloaded"),
992 (DWORD, "NumEvicts"),
993 (DWORD, "NumVidCreates"),
996 (DWORD, "NumUsedInVidMem"),
997 (DWORD, "WorkingSet"),
998 (DWORD, "WorkingSetBytes"),
999 (DWORD, "TotalManaged"),
1000 (DWORD, "TotalBytes"),
1003 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1004 (Array(D3DRESOURCESTATS, "D3DRTYPECOUNT"), "stats"),
1007 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1008 (DWORD, "NumRenderedTriangles"),
1009 (DWORD, "NumExtraClippingTriangles"),