1 #############################################################################
3 # Copyright 2008 Jose Fonseca
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", (
227 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", (
231 "D3DPT_TRIANGLELIST",
232 "D3DPT_TRIANGLESTRIP",
237 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", (
251 D3DTS = Flags(DWORD, (
252 "D3DTS_WORLDMATRIX(index)",
259 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", (
264 "D3DRS_ZWRITEENABLE",
265 "D3DRS_ALPHATESTENABLE",
273 "D3DRS_DITHERENABLE",
274 "D3DRS_ALPHABLENDENABLE",
276 "D3DRS_SPECULARENABLE",
279 "D3DRS_FOGTABLEMODE",
283 "D3DRS_EDGEANTIALIAS",
285 "D3DRS_RANGEFOGENABLE",
286 "D3DRS_STENCILENABLE",
288 "D3DRS_STENCILZFAIL",
293 "D3DRS_STENCILWRITEMASK",
294 "D3DRS_TEXTUREFACTOR",
306 "D3DRS_FOGVERTEXMODE",
309 "D3DRS_NORMALIZENORMALS",
310 "D3DRS_DIFFUSEMATERIALSOURCE",
311 "D3DRS_SPECULARMATERIALSOURCE",
312 "D3DRS_AMBIENTMATERIALSOURCE",
313 "D3DRS_EMISSIVEMATERIALSOURCE",
315 "D3DRS_CLIPPLANEENABLE",
316 "D3DRS_SOFTWAREVERTEXPROCESSING",
318 "D3DRS_POINTSIZE_MIN",
319 "D3DRS_POINTSPRITEENABLE",
320 "D3DRS_POINTSCALEENABLE",
321 "D3DRS_POINTSCALE_A",
322 "D3DRS_POINTSCALE_B",
323 "D3DRS_POINTSCALE_C",
324 "D3DRS_MULTISAMPLEANTIALIAS",
325 "D3DRS_MULTISAMPLEMASK",
326 "D3DRS_PATCHEDGESTYLE",
327 "D3DRS_PATCHSEGMENTS",
328 "D3DRS_DEBUGMONITORTOKEN",
329 "D3DRS_POINTSIZE_MAX",
330 "D3DRS_INDEXEDVERTEXBLENDENABLE",
331 "D3DRS_COLORWRITEENABLE",
334 "D3DRS_POSITIONORDER",
340 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", (
344 "D3DMCS_FORCE_DWORD",
347 D3DWRAP = Flags(DWORD, (
353 D3DWRAPCOORD = Flags(DWORD, (
360 D3DCOLORWRITEENABLE = Flags(DWORD, (
361 "D3DCOLORWRITEENABLE_RED",
362 "D3DCOLORWRITEENABLE_GREEN",
363 "D3DCOLORWRITEENABLE_BLUE",
364 "D3DCOLORWRITEENABLE_ALPHA",
367 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", (
374 "D3DTSS_BUMPENVMAT00",
375 "D3DTSS_BUMPENVMAT01",
376 "D3DTSS_BUMPENVMAT10",
377 "D3DTSS_BUMPENVMAT11",
378 "D3DTSS_TEXCOORDINDEX",
381 "D3DTSS_BORDERCOLOR",
385 "D3DTSS_MIPMAPLODBIAS",
386 "D3DTSS_MAXMIPLEVEL",
387 "D3DTSS_MAXANISOTROPY",
388 "D3DTSS_BUMPENVLSCALE",
389 "D3DTSS_BUMPENVLOFFSET",
390 "D3DTSS_TEXTURETRANSFORMFLAGS",
395 "D3DTSS_FORCE_DWORD",
398 D3DTSS = Flags(DWORD, (
399 "D3DTSS_TCI_PASSTHRU",
400 "D3DTSS_TCI_CAMERASPACENORMAL",
401 "D3DTSS_TCI_CAMERASPACEPOSITION",
402 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
405 D3DTEXTUREOP = Enum("D3DTEXTUREOP", (
414 "D3DTOP_ADDSIGNED2X",
417 "D3DTOP_BLENDDIFFUSEALPHA",
418 "D3DTOP_BLENDTEXTUREALPHA",
419 "D3DTOP_BLENDFACTORALPHA",
420 "D3DTOP_BLENDTEXTUREALPHAPM",
421 "D3DTOP_BLENDCURRENTALPHA",
422 "D3DTOP_PREMODULATE",
423 "D3DTOP_MODULATEALPHA_ADDCOLOR",
424 "D3DTOP_MODULATECOLOR_ADDALPHA",
425 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
426 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
428 "D3DTOP_BUMPENVMAPLUMINANCE",
429 "D3DTOP_DOTPRODUCT3",
430 "D3DTOP_MULTIPLYADD",
432 "D3DTOP_FORCE_DWORD",
435 D3DTA = Flags(DWORD, (
444 "D3DTA_ALPHAREPLICATE",
447 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", (
451 "D3DTEXF_ANISOTROPIC",
453 "D3DTEXF_GAUSSIANCUBIC",
454 "D3DTEXF_FORCE_DWORD",
457 D3DPV = Flags(DWORD, (
458 "D3DPV_DONOTCOPYDATA",
461 D3DFVF = Flags(DWORD, (
463 "D3DFVF_POSITION_MASK",
475 "D3DFVF_TEXCOUNT_MASK",
476 "D3DFVF_TEXCOUNT_SHIFT",
486 "D3DFVF_LASTBETA_UBYTE4",
488 "D3DFVF_TEXCOORDSIZE3(0)",
489 "D3DFVF_TEXCOORDSIZE2(0)",
490 "D3DFVF_TEXCOORDSIZE4(0)",
491 "D3DFVF_TEXCOORDSIZE1(0)",
492 "D3DFVF_TEXCOORDSIZE3(1)",
493 "D3DFVF_TEXCOORDSIZE2(1)",
494 "D3DFVF_TEXCOORDSIZE4(1)",
495 "D3DFVF_TEXCOORDSIZE1(1)",
496 "D3DFVF_TEXCOORDSIZE3(2)",
497 "D3DFVF_TEXCOORDSIZE2(2)",
498 "D3DFVF_TEXCOORDSIZE4(2)",
499 "D3DFVF_TEXCOORDSIZE1(2)",
500 "D3DFVF_TEXCOORDSIZE3(3)",
501 "D3DFVF_TEXCOORDSIZE2(3)",
502 "D3DFVF_TEXCOORDSIZE4(3)",
503 "D3DFVF_TEXCOORDSIZE1(3)",
506 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", (
508 "D3DVSD_TOKEN_STREAM",
509 "D3DVSD_TOKEN_STREAMDATA",
510 "D3DVSD_TOKEN_TESSELLATOR",
511 "D3DVSD_TOKEN_CONSTMEM",
514 "D3DVSD_FORCE_DWORD",
517 D3DVSDT = Flags(DWORD, (
527 "D3DVSDE_BLENDWEIGHT",
528 "D3DVSDE_BLENDINDICES",
547 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", (
584 "D3DSIO_TEXM3x3DIFF",
585 "D3DSIO_TEXM3x3SPEC",
586 "D3DSIO_TEXM3x3VSPEC",
593 "D3DSIO_TEXM3x2DEPTH",
602 "D3DSIO_FORCE_DWORD",
605 D3DSP = Flags(DWORD, (
610 "D3DSP_WRITEMASK_ALL",
613 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", (
616 "D3DSPDM_FORCE_DWORD",
619 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", (
628 "D3DSPR_FORCE_DWORD",
631 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", (
635 "D3DSRO_FORCE_DWORD",
638 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", (
639 "D3DVS_ADDRMODE_ABSOLUTE",
640 "D3DVS_ADDRMODE_RELATIVE",
641 "D3DVS_ADDRMODE_FORCE_DWORD",
644 D3DVS = Flags(DWORD, (
664 D3DSP = Flags(DWORD, (
666 "D3DSP_REPLICATERED",
667 "D3DSP_REPLICATEGREEN",
668 "D3DSP_REPLICATEBLUE",
669 "D3DSP_REPLICATEALPHA",
672 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", (
684 "D3DSPSM_FORCE_DWORD",
687 D3DBASISTYPE = Enum("D3DBASISTYPE", (
690 "D3DBASIS_INTERPOLATE",
691 "D3DBASIS_FORCE_DWORD",
694 D3DORDERTYPE = Enum("D3DORDERTYPE", (
696 "D3DORDER_QUADRATIC",
699 "D3DORDER_FORCE_DWORD",
702 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", (
703 "D3DPATCHEDGE_DISCRETE",
704 "D3DPATCHEDGE_CONTINUOUS",
705 "D3DPATCHEDGE_FORCE_DWORD",
708 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", (
711 "D3DSBT_VERTEXSTATE",
712 "D3DSBT_FORCE_DWORD",
715 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", (
722 "D3DVBF_FORCE_DWORD",
725 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", (
732 "D3DTTFF_FORCE_DWORD",
735 D3DDEVTYPE = Enum("D3DDEVTYPE", (
739 "D3DDEVTYPE_FORCE_DWORD",
742 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", (
743 "D3DMULTISAMPLE_NONE",
744 "D3DMULTISAMPLE_2_SAMPLES",
745 "D3DMULTISAMPLE_3_SAMPLES",
746 "D3DMULTISAMPLE_4_SAMPLES",
747 "D3DMULTISAMPLE_5_SAMPLES",
748 "D3DMULTISAMPLE_6_SAMPLES",
749 "D3DMULTISAMPLE_7_SAMPLES",
750 "D3DMULTISAMPLE_8_SAMPLES",
751 "D3DMULTISAMPLE_9_SAMPLES",
752 "D3DMULTISAMPLE_10_SAMPLES",
753 "D3DMULTISAMPLE_11_SAMPLES",
754 "D3DMULTISAMPLE_12_SAMPLES",
755 "D3DMULTISAMPLE_13_SAMPLES",
756 "D3DMULTISAMPLE_14_SAMPLES",
757 "D3DMULTISAMPLE_15_SAMPLES",
758 "D3DMULTISAMPLE_16_SAMPLES",
759 "D3DMULTISAMPLE_FORCE_DWORD",
762 D3DFORMAT = Enum("D3DFORMAT", (
775 "D3DFMT_A2B10G10R10",
788 "D3DFMT_A2W10V10U10",
796 "D3DFMT_D16_LOCKABLE",
806 "D3DFMT_FORCE_DWORD",
809 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", (
812 (UINT, "RefreshRate"),
813 (D3DFORMAT, "Format"),
816 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", (
817 (UINT, "AdapterOrdinal"),
818 (D3DDEVTYPE, "DeviceType"),
819 (HWND, "hFocusWindow"),
820 (DWORD, "BehaviorFlags"),
823 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", (
824 "D3DSWAPEFFECT_DISCARD",
825 "D3DSWAPEFFECT_FLIP",
826 "D3DSWAPEFFECT_COPY",
827 "D3DSWAPEFFECT_COPY_VSYNC",
828 "D3DSWAPEFFECT_FORCE_DWORD",
831 D3DPOOL = Enum("D3DPOOL", (
836 "D3DPOOL_FORCE_DWORD",
839 D3DPRESENT = Flags(DWORD, (
840 "D3DPRESENT_RATE_DEFAULT",
841 "D3DPRESENT_RATE_UNLIMITED",
844 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", (
845 (UINT, "BackBufferWidth"),
846 (UINT, "BackBufferHeight"),
847 (D3DFORMAT, "BackBufferFormat"),
848 (UINT, "BackBufferCount"),
849 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
850 (D3DSWAPEFFECT, "SwapEffect"),
851 (HWND, "hDeviceWindow"),
853 (BOOL, "EnableAutoDepthStencil"),
854 (D3DFORMAT, "AutoDepthStencilFormat"),
856 (UINT, "FullScreen_RefreshRateInHz"),
857 (UINT, "FullScreen_PresentationInterval"),
861 D3DPRESENTFLAG = Flags(DWORD, (
862 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
865 D3DGAMMARAMP = Struct("D3DGAMMARAMP", (
867 (WORD, "green[256]"),
871 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", (
872 "D3DBACKBUFFER_TYPE_MONO",
873 "D3DBACKBUFFER_TYPE_LEFT",
874 "D3DBACKBUFFER_TYPE_RIGHT",
876 "D3DBACKBUFFER_TYPE_FORCE_DWORD",
879 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", (
883 "D3DRTYPE_VOLUMETEXTURE",
884 "D3DRTYPE_CUBETEXTURE",
885 "D3DRTYPE_VERTEXBUFFER",
886 "D3DRTYPE_INDEXBUFFER",
887 "D3DRTYPE_FORCE_DWORD",
890 D3DUSAGE = Flags(DWORD, (
891 "D3DUSAGE_RENDERTARGET",
892 "D3DUSAGE_DEPTHSTENCIL",
893 "D3DUSAGE_WRITEONLY",
894 "D3DUSAGE_SOFTWAREPROCESSING",
895 "D3DUSAGE_DONOTCLIP",
897 "D3DUSAGE_RTPATCHES",
902 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", (
903 "D3DCUBEMAP_FACE_POSITIVE_X",
904 "D3DCUBEMAP_FACE_NEGATIVE_X",
905 "D3DCUBEMAP_FACE_POSITIVE_Y",
906 "D3DCUBEMAP_FACE_NEGATIVE_Y",
907 "D3DCUBEMAP_FACE_POSITIVE_Z",
908 "D3DCUBEMAP_FACE_NEGATIVE_Z",
909 "D3DCUBEMAP_FACE_FORCE_DWORD",
912 D3DLOCK = Flags(DWORD, (
915 "D3DLOCK_NOOVERWRITE",
917 "D3DLOCK_NO_DIRTY_UPDATE",
920 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", (
921 (D3DFORMAT, "Format"),
922 (D3DRESOURCETYPE, "Type"),
929 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", (
930 (D3DFORMAT, "Format"),
931 (D3DRESOURCETYPE, "Type"),
937 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", (
938 (D3DFORMAT, "Format"),
939 (D3DRESOURCETYPE, "Type"),
943 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
948 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", (
949 (D3DFORMAT, "Format"),
950 (D3DRESOURCETYPE, "Type"),
959 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", (
964 D3DBOX = Struct("D3DBOX", (
973 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", (
979 D3DRANGE = Struct("D3DRANGE", (
984 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", (
985 (UINT, "StartVertexOffsetWidth"),
986 (UINT, "StartVertexOffsetHeight"),
990 (D3DBASISTYPE, "Basis"),
991 (D3DORDERTYPE, "Order"),
994 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", (
995 (UINT, "StartVertexOffset"),
996 (UINT, "NumVertices"),
997 (D3DBASISTYPE, "Basis"),
998 (D3DORDERTYPE, "Order"),
1001 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", (
1003 (String, "Description"),
1004 (LARGE_INTEGER, "DriverVersion"),
1005 (DWORD, "VendorId"),
1006 (DWORD, "DeviceId"),
1007 (DWORD, "SubSysId"),
1008 (DWORD, "Revision"),
1009 (GUID, "DeviceIdentifier"),
1010 (DWORD, "WHQLLevel"),
1013 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", (
1018 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", (
1021 "D3DDMT_FORCE_DWORD",
1024 D3DDEVINFOID = Flags(DWORD, (
1025 "D3DDEVINFOID_RESOURCEMANAGER",
1026 "D3DDEVINFOID_VERTEXSTATS",
1029 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", (
1030 (BOOL, "bThrashing"),
1031 (DWORD, "ApproxBytesDownloaded"),
1032 (DWORD, "NumEvicts"),
1033 (DWORD, "NumVidCreates"),
1036 (DWORD, "NumUsedInVidMem"),
1037 (DWORD, "WorkingSet"),
1038 (DWORD, "WorkingSetBytes"),
1039 (DWORD, "TotalManaged"),
1040 (DWORD, "TotalBytes"),
1043 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", (
1044 (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1047 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", (
1048 (DWORD, "NumRenderedTriangles"),
1049 (DWORD, "NumExtraClippingTriangles"),