1 #############################################################################
3 # Copyright 2008 Tungsten Graphics, Inc.
5 # This program is free software: you can redistribute it and/or modify it
6 # under the terms of the GNU Lesser General Public License as published
7 # by the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Lesser General Public License for more details.
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #############################################################################
24 D3DCOLOR = Alias("D3DCOLOR", DWORD)
26 D3DVECTOR = Struct("D3DVECTOR", [
32 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
39 D3DRECT = Struct("D3DRECT", [
46 D3DMATRIX = Struct("D3DMATRIX", [
50 D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
59 D3DCLIP = Flags(DWORD, [
68 D3DCS = Flags(DWORD, [
84 D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", [
86 (DWORD, "ClipIntersection"),
89 D3DMATERIAL8 = Struct("D3DMATERIAL8", [
90 (D3DCOLORVALUE, "Diffuse"),
91 (D3DCOLORVALUE, "Ambient"),
92 (D3DCOLORVALUE, "Specular"),
93 (D3DCOLORVALUE, "Emissive"),
97 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
100 "D3DLIGHT_DIRECTIONAL",
101 "D3DLIGHT_FORCE_DWORD",
104 D3DLIGHT8 = Struct("D3DLIGHT8", [
105 (D3DLIGHTTYPE, "Type"),
106 (D3DCOLORVALUE, "Diffuse"),
107 (D3DCOLORVALUE, "Specular"),
108 (D3DCOLORVALUE, "Ambient"),
109 (D3DVECTOR, "Position"),
110 (D3DVECTOR, "Direction"),
113 (Float, "Attenuation0"),
114 (Float, "Attenuation1"),
115 (Float, "Attenuation2"),
120 D3DCS = Flags(DWORD, [
126 D3DSHADEMODE = Enum("D3DSHADEMODE", [
130 "D3DSHADE_FORCE_DWORD",
133 D3DFILLMODE = Enum("D3DFILLMODE", [
137 "D3DFILL_FORCE_DWORD",
140 D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
141 (WORD, "wRepeatFactor"),
142 (WORD, "wLinePattern"),
145 D3DBLEND = Enum("D3DBLEND", [
149 "D3DBLEND_INVSRCCOLOR",
151 "D3DBLEND_INVSRCALPHA",
152 "D3DBLEND_DESTALPHA",
153 "D3DBLEND_INVDESTALPHA",
154 "D3DBLEND_DESTCOLOR",
155 "D3DBLEND_INVDESTCOLOR",
156 "D3DBLEND_SRCALPHASAT",
157 "D3DBLEND_BOTHSRCALPHA",
158 "D3DBLEND_BOTHINVSRCALPHA",
159 "D3DBLEND_FORCE_DWORD",
162 D3DBLENDOP = Enum("D3DBLENDOP", [
164 "D3DBLENDOP_SUBTRACT",
165 "D3DBLENDOP_REVSUBTRACT",
168 "D3DBLENDOP_FORCE_DWORD",
171 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
173 "D3DTADDRESS_MIRROR",
175 "D3DTADDRESS_BORDER",
176 "D3DTADDRESS_MIRRORONCE",
177 "D3DTADDRESS_FORCE_DWORD",
180 D3DCULL = Enum("D3DCULL", [
184 "D3DCULL_FORCE_DWORD",
187 D3DCMPFUNC = Enum("D3DCMPFUNC", [
194 "D3DCMP_GREATEREQUAL",
196 "D3DCMP_FORCE_DWORD",
199 D3DSTENCILOP = Enum("D3DSTENCILOP", [
202 "D3DSTENCILOP_REPLACE",
203 "D3DSTENCILOP_INCRSAT",
204 "D3DSTENCILOP_DECRSAT",
205 "D3DSTENCILOP_INVERT",
208 "D3DSTENCILOP_FORCE_DWORD",
211 D3DFOGMODE = Enum("D3DFOGMODE", [
216 "D3DFOG_FORCE_DWORD",
219 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
226 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
230 "D3DPT_TRIANGLELIST",
231 "D3DPT_TRIANGLESTRIP",
236 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
250 D3DTS = Flags(DWORD, [
257 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
262 "D3DRS_ZWRITEENABLE",
263 "D3DRS_ALPHATESTENABLE",
271 "D3DRS_DITHERENABLE",
272 "D3DRS_ALPHABLENDENABLE",
274 "D3DRS_SPECULARENABLE",
277 "D3DRS_FOGTABLEMODE",
281 "D3DRS_EDGEANTIALIAS",
283 "D3DRS_RANGEFOGENABLE",
284 "D3DRS_STENCILENABLE",
286 "D3DRS_STENCILZFAIL",
291 "D3DRS_STENCILWRITEMASK",
292 "D3DRS_TEXTUREFACTOR",
304 "D3DRS_FOGVERTEXMODE",
307 "D3DRS_NORMALIZENORMALS",
308 "D3DRS_DIFFUSEMATERIALSOURCE",
309 "D3DRS_SPECULARMATERIALSOURCE",
310 "D3DRS_AMBIENTMATERIALSOURCE",
311 "D3DRS_EMISSIVEMATERIALSOURCE",
313 "D3DRS_CLIPPLANEENABLE",
314 "D3DRS_SOFTWAREVERTEXPROCESSING",
316 "D3DRS_POINTSIZE_MIN",
317 "D3DRS_POINTSPRITEENABLE",
318 "D3DRS_POINTSCALEENABLE",
319 "D3DRS_POINTSCALE_A",
320 "D3DRS_POINTSCALE_B",
321 "D3DRS_POINTSCALE_C",
322 "D3DRS_MULTISAMPLEANTIALIAS",
323 "D3DRS_MULTISAMPLEMASK",
324 "D3DRS_PATCHEDGESTYLE",
325 "D3DRS_PATCHSEGMENTS",
326 "D3DRS_DEBUGMONITORTOKEN",
327 "D3DRS_POINTSIZE_MAX",
328 "D3DRS_INDEXEDVERTEXBLENDENABLE",
329 "D3DRS_COLORWRITEENABLE",
332 "D3DRS_POSITIONORDER",
337 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
341 "D3DMCS_FORCE_DWORD",
344 D3DWRAP = Flags(DWORD, [
350 D3DWRAPCOORD = Flags(DWORD, [
357 D3DCOLORWRITEENABLE = Flags(DWORD, [
358 "D3DCOLORWRITEENABLE_RED",
359 "D3DCOLORWRITEENABLE_GREEN",
360 "D3DCOLORWRITEENABLE_BLUE",
361 "D3DCOLORWRITEENABLE_ALPHA",
364 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
371 "D3DTSS_BUMPENVMAT00",
372 "D3DTSS_BUMPENVMAT01",
373 "D3DTSS_BUMPENVMAT10",
374 "D3DTSS_BUMPENVMAT11",
375 "D3DTSS_TEXCOORDINDEX",
378 "D3DTSS_BORDERCOLOR",
382 "D3DTSS_MIPMAPLODBIAS",
383 "D3DTSS_MAXMIPLEVEL",
384 "D3DTSS_MAXANISOTROPY",
385 "D3DTSS_BUMPENVLSCALE",
386 "D3DTSS_BUMPENVLOFFSET",
387 "D3DTSS_TEXTURETRANSFORMFLAGS",
392 "D3DTSS_FORCE_DWORD",
395 D3DTSS = Flags(DWORD, [
396 "D3DTSS_TCI_PASSTHRU",
397 "D3DTSS_TCI_CAMERASPACENORMAL",
398 "D3DTSS_TCI_CAMERASPACEPOSITION",
399 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
402 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
411 "D3DTOP_ADDSIGNED2X",
414 "D3DTOP_BLENDDIFFUSEALPHA",
415 "D3DTOP_BLENDTEXTUREALPHA",
416 "D3DTOP_BLENDFACTORALPHA",
417 "D3DTOP_BLENDTEXTUREALPHAPM",
418 "D3DTOP_BLENDCURRENTALPHA",
419 "D3DTOP_PREMODULATE",
420 "D3DTOP_MODULATEALPHA_ADDCOLOR",
421 "D3DTOP_MODULATECOLOR_ADDALPHA",
422 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
423 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
425 "D3DTOP_BUMPENVMAPLUMINANCE",
426 "D3DTOP_DOTPRODUCT3",
427 "D3DTOP_MULTIPLYADD",
429 "D3DTOP_FORCE_DWORD",
432 D3DTA = Flags(DWORD, [
441 "D3DTA_ALPHAREPLICATE",
444 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
448 "D3DTEXF_ANISOTROPIC",
450 "D3DTEXF_GAUSSIANCUBIC",
451 "D3DTEXF_FORCE_DWORD",
454 D3DPV = Flags(DWORD, [
455 "D3DPV_DONOTCOPYDATA",
458 D3DFVF = Flags(DWORD, [
460 "D3DFVF_POSITION_MASK",
472 "D3DFVF_TEXCOUNT_MASK",
473 "D3DFVF_TEXCOUNT_SHIFT",
483 "D3DFVF_LASTBETA_UBYTE4",
485 "D3DFVF_TEXCOORDSIZE3(0)",
486 "D3DFVF_TEXCOORDSIZE2(0)",
487 "D3DFVF_TEXCOORDSIZE4(0)",
488 "D3DFVF_TEXCOORDSIZE1(0)",
489 "D3DFVF_TEXCOORDSIZE3(1)",
490 "D3DFVF_TEXCOORDSIZE2(1)",
491 "D3DFVF_TEXCOORDSIZE4(1)",
492 "D3DFVF_TEXCOORDSIZE1(1)",
493 "D3DFVF_TEXCOORDSIZE3(2)",
494 "D3DFVF_TEXCOORDSIZE2(2)",
495 "D3DFVF_TEXCOORDSIZE4(2)",
496 "D3DFVF_TEXCOORDSIZE1(2)",
497 "D3DFVF_TEXCOORDSIZE3(3)",
498 "D3DFVF_TEXCOORDSIZE2(3)",
499 "D3DFVF_TEXCOORDSIZE4(3)",
500 "D3DFVF_TEXCOORDSIZE1(3)",
503 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
505 "D3DVSD_TOKEN_STREAM",
506 "D3DVSD_TOKEN_STREAMDATA",
507 "D3DVSD_TOKEN_TESSELLATOR",
508 "D3DVSD_TOKEN_CONSTMEM",
511 "D3DVSD_FORCE_DWORD",
514 D3DVSDT = Flags(DWORD, [
524 "D3DVSDE_BLENDWEIGHT",
525 "D3DVSDE_BLENDINDICES",
544 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
581 "D3DSIO_TEXM3x3DIFF",
582 "D3DSIO_TEXM3x3SPEC",
583 "D3DSIO_TEXM3x3VSPEC",
590 "D3DSIO_TEXM3x2DEPTH",
599 "D3DSIO_FORCE_DWORD",
602 D3DSP = Flags(DWORD, [
607 "D3DSP_WRITEMASK_ALL",
610 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
613 "D3DSPDM_FORCE_DWORD",
616 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
620 "D3DSPR_ADDR|D3DSPR_TEXTURE",
624 "D3DSPR_FORCE_DWORD",
627 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
631 "D3DSRO_FORCE_DWORD",
634 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
635 "D3DVS_ADDRMODE_ABSOLUTE",
636 "D3DVS_ADDRMODE_RELATIVE",
637 "D3DVS_ADDRMODE_FORCE_DWORD",
640 D3DVS = Flags(DWORD, [
660 D3DSP = Flags(DWORD, [
662 "D3DSP_REPLICATERED",
663 "D3DSP_REPLICATEGREEN",
664 "D3DSP_REPLICATEBLUE",
665 "D3DSP_REPLICATEALPHA",
668 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
680 "D3DSPSM_FORCE_DWORD",
683 D3DBASISTYPE = Enum("D3DBASISTYPE", [
686 "D3DBASIS_INTERPOLATE",
687 "D3DBASIS_FORCE_DWORD",
690 D3DORDERTYPE = Enum("D3DORDERTYPE", [
692 "D3DORDER_QUADRATIC",
695 "D3DORDER_FORCE_DWORD",
698 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
699 "D3DPATCHEDGE_DISCRETE",
700 "D3DPATCHEDGE_CONTINUOUS",
701 "D3DPATCHEDGE_FORCE_DWORD",
704 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
707 "D3DSBT_VERTEXSTATE",
708 "D3DSBT_FORCE_DWORD",
711 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
718 "D3DVBF_FORCE_DWORD",
721 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
728 "D3DTTFF_FORCE_DWORD",
731 D3DDEVTYPE = Enum("D3DDEVTYPE", [
735 "D3DDEVTYPE_FORCE_DWORD",
738 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
739 "D3DMULTISAMPLE_NONE",
740 "D3DMULTISAMPLE_2_SAMPLES",
741 "D3DMULTISAMPLE_3_SAMPLES",
742 "D3DMULTISAMPLE_4_SAMPLES",
743 "D3DMULTISAMPLE_5_SAMPLES",
744 "D3DMULTISAMPLE_6_SAMPLES",
745 "D3DMULTISAMPLE_7_SAMPLES",
746 "D3DMULTISAMPLE_8_SAMPLES",
747 "D3DMULTISAMPLE_9_SAMPLES",
748 "D3DMULTISAMPLE_10_SAMPLES",
749 "D3DMULTISAMPLE_11_SAMPLES",
750 "D3DMULTISAMPLE_12_SAMPLES",
751 "D3DMULTISAMPLE_13_SAMPLES",
752 "D3DMULTISAMPLE_14_SAMPLES",
753 "D3DMULTISAMPLE_15_SAMPLES",
754 "D3DMULTISAMPLE_16_SAMPLES",
755 "D3DMULTISAMPLE_FORCE_DWORD",
758 D3DFORMAT = Enum("D3DFORMAT", [
771 "D3DFMT_A2B10G10R10",
784 "D3DFMT_A2W10V10U10",
792 "D3DFMT_D16_LOCKABLE",
802 "D3DFMT_FORCE_DWORD",
805 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
808 (UINT, "RefreshRate"),
809 (D3DFORMAT, "Format"),
812 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
813 (UINT, "AdapterOrdinal"),
814 (D3DDEVTYPE, "DeviceType"),
815 (HWND, "hFocusWindow"),
816 (DWORD, "BehaviorFlags"),
819 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
820 "D3DSWAPEFFECT_DISCARD",
821 "D3DSWAPEFFECT_FLIP",
822 "D3DSWAPEFFECT_COPY",
823 "D3DSWAPEFFECT_COPY_VSYNC",
824 "D3DSWAPEFFECT_FORCE_DWORD",
827 D3DPOOL = Enum("D3DPOOL", [
832 "D3DPOOL_FORCE_DWORD",
835 D3DPRESENT = Flags(DWORD, [
836 "D3DPRESENT_RATE_DEFAULT",
837 "D3DPRESENT_RATE_UNLIMITED",
840 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
841 (UINT, "BackBufferWidth"),
842 (UINT, "BackBufferHeight"),
843 (D3DFORMAT, "BackBufferFormat"),
844 (UINT, "BackBufferCount"),
845 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
846 (D3DSWAPEFFECT, "SwapEffect"),
847 (HWND, "hDeviceWindow"),
849 (BOOL, "EnableAutoDepthStencil"),
850 (D3DFORMAT, "AutoDepthStencilFormat"),
852 (UINT, "FullScreen_RefreshRateInHz"),
853 (UINT, "FullScreen_PresentationInterval"),
856 D3DPRESENTFLAG = Flags(DWORD, [
857 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
860 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
862 (WORD, "green[256]"),
866 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
867 "D3DBACKBUFFER_TYPE_MONO",
868 "D3DBACKBUFFER_TYPE_LEFT",
869 "D3DBACKBUFFER_TYPE_RIGHT",
870 "D3DBACKBUFFER_TYPE_FORCE_DWORD",
873 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
877 "D3DRTYPE_VOLUMETEXTURE",
878 "D3DRTYPE_CUBETEXTURE",
879 "D3DRTYPE_VERTEXBUFFER",
880 "D3DRTYPE_INDEXBUFFER",
881 "D3DRTYPE_FORCE_DWORD",
884 D3DUSAGE = Flags(DWORD, [
885 "D3DUSAGE_RENDERTARGET",
886 "D3DUSAGE_DEPTHSTENCIL",
887 "D3DUSAGE_WRITEONLY",
888 "D3DUSAGE_SOFTWAREPROCESSING",
889 "D3DUSAGE_DONOTCLIP",
891 "D3DUSAGE_RTPATCHES",
896 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
897 "D3DCUBEMAP_FACE_POSITIVE_X",
898 "D3DCUBEMAP_FACE_NEGATIVE_X",
899 "D3DCUBEMAP_FACE_POSITIVE_Y",
900 "D3DCUBEMAP_FACE_NEGATIVE_Y",
901 "D3DCUBEMAP_FACE_POSITIVE_Z",
902 "D3DCUBEMAP_FACE_NEGATIVE_Z",
903 "D3DCUBEMAP_FACE_FORCE_DWORD",
906 D3DLOCK = Flags(DWORD, [
909 "D3DLOCK_NOOVERWRITE",
911 "D3DLOCK_NO_DIRTY_UPDATE",
914 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
915 (D3DFORMAT, "Format"),
916 (D3DRESOURCETYPE, "Type"),
923 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
924 (D3DFORMAT, "Format"),
925 (D3DRESOURCETYPE, "Type"),
931 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
932 (D3DFORMAT, "Format"),
933 (D3DRESOURCETYPE, "Type"),
937 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
942 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
943 (D3DFORMAT, "Format"),
944 (D3DRESOURCETYPE, "Type"),
953 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
958 D3DBOX = Struct("D3DBOX", [
967 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
973 D3DRANGE = Struct("D3DRANGE", [
978 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
979 (UINT, "StartVertexOffsetWidth"),
980 (UINT, "StartVertexOffsetHeight"),
984 (D3DBASISTYPE, "Basis"),
985 (D3DORDERTYPE, "Order"),
988 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
989 (UINT, "StartVertexOffset"),
990 (UINT, "NumVertices"),
991 (D3DBASISTYPE, "Basis"),
992 (D3DORDERTYPE, "Order"),
995 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
997 (String, "Description"),
998 (LARGE_INTEGER, "DriverVersion"),
1000 (DWORD, "DeviceId"),
1001 (DWORD, "SubSysId"),
1002 (DWORD, "Revision"),
1003 (GUID, "DeviceIdentifier"),
1004 (DWORD, "WHQLLevel"),
1007 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1012 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
1015 "D3DDMT_FORCE_DWORD",
1018 D3DDEVINFOID = Flags(DWORD, [
1019 "D3DDEVINFOID_RESOURCEMANAGER",
1020 "D3DDEVINFOID_VERTEXSTATS",
1023 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1024 (BOOL, "bThrashing"),
1025 (DWORD, "ApproxBytesDownloaded"),
1026 (DWORD, "NumEvicts"),
1027 (DWORD, "NumVidCreates"),
1030 (DWORD, "NumUsedInVidMem"),
1031 (DWORD, "WorkingSet"),
1032 (DWORD, "WorkingSetBytes"),
1033 (DWORD, "TotalManaged"),
1034 (DWORD, "TotalBytes"),
1037 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1038 (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1041 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1042 (DWORD, "NumRenderedTriangles"),
1043 (DWORD, "NumExtraClippingTriangles"),