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", [
226 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
230 "D3DPT_TRIANGLELIST",
231 "D3DPT_TRIANGLESTRIP",
236 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
250 D3DTS = Flags(DWORD, [
251 "D3DTS_WORLDMATRIX(index)",
258 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
263 "D3DRS_ZWRITEENABLE",
264 "D3DRS_ALPHATESTENABLE",
272 "D3DRS_DITHERENABLE",
273 "D3DRS_ALPHABLENDENABLE",
275 "D3DRS_SPECULARENABLE",
278 "D3DRS_FOGTABLEMODE",
282 "D3DRS_EDGEANTIALIAS",
284 "D3DRS_RANGEFOGENABLE",
285 "D3DRS_STENCILENABLE",
287 "D3DRS_STENCILZFAIL",
292 "D3DRS_STENCILWRITEMASK",
293 "D3DRS_TEXTUREFACTOR",
305 "D3DRS_FOGVERTEXMODE",
308 "D3DRS_NORMALIZENORMALS",
309 "D3DRS_DIFFUSEMATERIALSOURCE",
310 "D3DRS_SPECULARMATERIALSOURCE",
311 "D3DRS_AMBIENTMATERIALSOURCE",
312 "D3DRS_EMISSIVEMATERIALSOURCE",
314 "D3DRS_CLIPPLANEENABLE",
315 "D3DRS_SOFTWAREVERTEXPROCESSING",
317 "D3DRS_POINTSIZE_MIN",
318 "D3DRS_POINTSPRITEENABLE",
319 "D3DRS_POINTSCALEENABLE",
320 "D3DRS_POINTSCALE_A",
321 "D3DRS_POINTSCALE_B",
322 "D3DRS_POINTSCALE_C",
323 "D3DRS_MULTISAMPLEANTIALIAS",
324 "D3DRS_MULTISAMPLEMASK",
325 "D3DRS_PATCHEDGESTYLE",
326 "D3DRS_PATCHSEGMENTS",
327 "D3DRS_DEBUGMONITORTOKEN",
328 "D3DRS_POINTSIZE_MAX",
329 "D3DRS_INDEXEDVERTEXBLENDENABLE",
330 "D3DRS_COLORWRITEENABLE",
333 "D3DRS_POSITIONORDER",
338 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
342 "D3DMCS_FORCE_DWORD",
345 D3DWRAP = Flags(DWORD, [
351 D3DWRAPCOORD = Flags(DWORD, [
358 D3DCOLORWRITEENABLE = Flags(DWORD, [
359 "D3DCOLORWRITEENABLE_RED",
360 "D3DCOLORWRITEENABLE_GREEN",
361 "D3DCOLORWRITEENABLE_BLUE",
362 "D3DCOLORWRITEENABLE_ALPHA",
365 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
372 "D3DTSS_BUMPENVMAT00",
373 "D3DTSS_BUMPENVMAT01",
374 "D3DTSS_BUMPENVMAT10",
375 "D3DTSS_BUMPENVMAT11",
376 "D3DTSS_TEXCOORDINDEX",
379 "D3DTSS_BORDERCOLOR",
383 "D3DTSS_MIPMAPLODBIAS",
384 "D3DTSS_MAXMIPLEVEL",
385 "D3DTSS_MAXANISOTROPY",
386 "D3DTSS_BUMPENVLSCALE",
387 "D3DTSS_BUMPENVLOFFSET",
388 "D3DTSS_TEXTURETRANSFORMFLAGS",
393 "D3DTSS_FORCE_DWORD",
396 D3DTSS = Flags(DWORD, [
397 "D3DTSS_TCI_PASSTHRU",
398 "D3DTSS_TCI_CAMERASPACENORMAL",
399 "D3DTSS_TCI_CAMERASPACEPOSITION",
400 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
403 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
412 "D3DTOP_ADDSIGNED2X",
415 "D3DTOP_BLENDDIFFUSEALPHA",
416 "D3DTOP_BLENDTEXTUREALPHA",
417 "D3DTOP_BLENDFACTORALPHA",
418 "D3DTOP_BLENDTEXTUREALPHAPM",
419 "D3DTOP_BLENDCURRENTALPHA",
420 "D3DTOP_PREMODULATE",
421 "D3DTOP_MODULATEALPHA_ADDCOLOR",
422 "D3DTOP_MODULATECOLOR_ADDALPHA",
423 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
424 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
426 "D3DTOP_BUMPENVMAPLUMINANCE",
427 "D3DTOP_DOTPRODUCT3",
428 "D3DTOP_MULTIPLYADD",
430 "D3DTOP_FORCE_DWORD",
433 D3DTA = Flags(DWORD, [
442 "D3DTA_ALPHAREPLICATE",
445 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
449 "D3DTEXF_ANISOTROPIC",
451 "D3DTEXF_GAUSSIANCUBIC",
452 "D3DTEXF_FORCE_DWORD",
455 D3DPV = Flags(DWORD, [
456 "D3DPV_DONOTCOPYDATA",
459 D3DFVF = Flags(DWORD, [
461 "D3DFVF_POSITION_MASK",
473 "D3DFVF_TEXCOUNT_MASK",
474 "D3DFVF_TEXCOUNT_SHIFT",
484 "D3DFVF_LASTBETA_UBYTE4",
486 "D3DFVF_TEXCOORDSIZE3(0)",
487 "D3DFVF_TEXCOORDSIZE2(0)",
488 "D3DFVF_TEXCOORDSIZE4(0)",
489 "D3DFVF_TEXCOORDSIZE1(0)",
490 "D3DFVF_TEXCOORDSIZE3(1)",
491 "D3DFVF_TEXCOORDSIZE2(1)",
492 "D3DFVF_TEXCOORDSIZE4(1)",
493 "D3DFVF_TEXCOORDSIZE1(1)",
494 "D3DFVF_TEXCOORDSIZE3(2)",
495 "D3DFVF_TEXCOORDSIZE2(2)",
496 "D3DFVF_TEXCOORDSIZE4(2)",
497 "D3DFVF_TEXCOORDSIZE1(2)",
498 "D3DFVF_TEXCOORDSIZE3(3)",
499 "D3DFVF_TEXCOORDSIZE2(3)",
500 "D3DFVF_TEXCOORDSIZE4(3)",
501 "D3DFVF_TEXCOORDSIZE1(3)",
504 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
506 "D3DVSD_TOKEN_STREAM",
507 "D3DVSD_TOKEN_STREAMDATA",
508 "D3DVSD_TOKEN_TESSELLATOR",
509 "D3DVSD_TOKEN_CONSTMEM",
512 "D3DVSD_FORCE_DWORD",
515 D3DVSDT = Flags(DWORD, [
525 "D3DVSDE_BLENDWEIGHT",
526 "D3DVSDE_BLENDINDICES",
545 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
582 "D3DSIO_TEXM3x3DIFF",
583 "D3DSIO_TEXM3x3SPEC",
584 "D3DSIO_TEXM3x3VSPEC",
591 "D3DSIO_TEXM3x2DEPTH",
600 "D3DSIO_FORCE_DWORD",
603 D3DSP = Flags(DWORD, [
608 "D3DSP_WRITEMASK_ALL",
611 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
614 "D3DSPDM_FORCE_DWORD",
617 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
626 "D3DSPR_FORCE_DWORD",
629 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
633 "D3DSRO_FORCE_DWORD",
636 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
637 "D3DVS_ADDRMODE_ABSOLUTE",
638 "D3DVS_ADDRMODE_RELATIVE",
639 "D3DVS_ADDRMODE_FORCE_DWORD",
642 D3DVS = Flags(DWORD, [
662 D3DSP = Flags(DWORD, [
664 "D3DSP_REPLICATERED",
665 "D3DSP_REPLICATEGREEN",
666 "D3DSP_REPLICATEBLUE",
667 "D3DSP_REPLICATEALPHA",
670 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
682 "D3DSPSM_FORCE_DWORD",
685 D3DBASISTYPE = Enum("D3DBASISTYPE", [
688 "D3DBASIS_INTERPOLATE",
689 "D3DBASIS_FORCE_DWORD",
692 D3DORDERTYPE = Enum("D3DORDERTYPE", [
694 "D3DORDER_QUADRATIC",
697 "D3DORDER_FORCE_DWORD",
700 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
701 "D3DPATCHEDGE_DISCRETE",
702 "D3DPATCHEDGE_CONTINUOUS",
703 "D3DPATCHEDGE_FORCE_DWORD",
706 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
709 "D3DSBT_VERTEXSTATE",
710 "D3DSBT_FORCE_DWORD",
713 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
720 "D3DVBF_FORCE_DWORD",
723 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
730 "D3DTTFF_FORCE_DWORD",
733 D3DDEVTYPE = Enum("D3DDEVTYPE", [
737 "D3DDEVTYPE_FORCE_DWORD",
740 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
741 "D3DMULTISAMPLE_NONE",
742 "D3DMULTISAMPLE_2_SAMPLES",
743 "D3DMULTISAMPLE_3_SAMPLES",
744 "D3DMULTISAMPLE_4_SAMPLES",
745 "D3DMULTISAMPLE_5_SAMPLES",
746 "D3DMULTISAMPLE_6_SAMPLES",
747 "D3DMULTISAMPLE_7_SAMPLES",
748 "D3DMULTISAMPLE_8_SAMPLES",
749 "D3DMULTISAMPLE_9_SAMPLES",
750 "D3DMULTISAMPLE_10_SAMPLES",
751 "D3DMULTISAMPLE_11_SAMPLES",
752 "D3DMULTISAMPLE_12_SAMPLES",
753 "D3DMULTISAMPLE_13_SAMPLES",
754 "D3DMULTISAMPLE_14_SAMPLES",
755 "D3DMULTISAMPLE_15_SAMPLES",
756 "D3DMULTISAMPLE_16_SAMPLES",
757 "D3DMULTISAMPLE_FORCE_DWORD",
760 D3DFORMAT = Enum("D3DFORMAT", [
773 "D3DFMT_A2B10G10R10",
786 "D3DFMT_A2W10V10U10",
794 "D3DFMT_D16_LOCKABLE",
804 "D3DFMT_FORCE_DWORD",
807 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
810 (UINT, "RefreshRate"),
811 (D3DFORMAT, "Format"),
814 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
815 (UINT, "AdapterOrdinal"),
816 (D3DDEVTYPE, "DeviceType"),
817 (HWND, "hFocusWindow"),
818 (DWORD, "BehaviorFlags"),
821 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
822 "D3DSWAPEFFECT_DISCARD",
823 "D3DSWAPEFFECT_FLIP",
824 "D3DSWAPEFFECT_COPY",
825 "D3DSWAPEFFECT_COPY_VSYNC",
826 "D3DSWAPEFFECT_FORCE_DWORD",
829 D3DPOOL = Enum("D3DPOOL", [
834 "D3DPOOL_FORCE_DWORD",
837 D3DPRESENT = Flags(DWORD, [
838 "D3DPRESENT_RATE_DEFAULT",
839 "D3DPRESENT_RATE_UNLIMITED",
842 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
843 (UINT, "BackBufferWidth"),
844 (UINT, "BackBufferHeight"),
845 (D3DFORMAT, "BackBufferFormat"),
846 (UINT, "BackBufferCount"),
847 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
848 (D3DSWAPEFFECT, "SwapEffect"),
849 (HWND, "hDeviceWindow"),
851 (BOOL, "EnableAutoDepthStencil"),
852 (D3DFORMAT, "AutoDepthStencilFormat"),
854 (UINT, "FullScreen_RefreshRateInHz"),
855 (UINT, "FullScreen_PresentationInterval"),
858 D3DPRESENTFLAG = Flags(DWORD, [
859 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
862 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
864 (WORD, "green[256]"),
868 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
869 "D3DBACKBUFFER_TYPE_MONO",
870 "D3DBACKBUFFER_TYPE_LEFT",
871 "D3DBACKBUFFER_TYPE_RIGHT",
872 "D3DBACKBUFFER_TYPE_FORCE_DWORD",
875 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
879 "D3DRTYPE_VOLUMETEXTURE",
880 "D3DRTYPE_CUBETEXTURE",
881 "D3DRTYPE_VERTEXBUFFER",
882 "D3DRTYPE_INDEXBUFFER",
883 "D3DRTYPE_FORCE_DWORD",
886 D3DUSAGE = Flags(DWORD, [
887 "D3DUSAGE_RENDERTARGET",
888 "D3DUSAGE_DEPTHSTENCIL",
889 "D3DUSAGE_WRITEONLY",
890 "D3DUSAGE_SOFTWAREPROCESSING",
891 "D3DUSAGE_DONOTCLIP",
893 "D3DUSAGE_RTPATCHES",
898 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
899 "D3DCUBEMAP_FACE_POSITIVE_X",
900 "D3DCUBEMAP_FACE_NEGATIVE_X",
901 "D3DCUBEMAP_FACE_POSITIVE_Y",
902 "D3DCUBEMAP_FACE_NEGATIVE_Y",
903 "D3DCUBEMAP_FACE_POSITIVE_Z",
904 "D3DCUBEMAP_FACE_NEGATIVE_Z",
905 "D3DCUBEMAP_FACE_FORCE_DWORD",
908 D3DLOCK = Flags(DWORD, [
911 "D3DLOCK_NOOVERWRITE",
913 "D3DLOCK_NO_DIRTY_UPDATE",
916 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
917 (D3DFORMAT, "Format"),
918 (D3DRESOURCETYPE, "Type"),
925 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
926 (D3DFORMAT, "Format"),
927 (D3DRESOURCETYPE, "Type"),
933 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
934 (D3DFORMAT, "Format"),
935 (D3DRESOURCETYPE, "Type"),
939 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
944 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
945 (D3DFORMAT, "Format"),
946 (D3DRESOURCETYPE, "Type"),
955 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
960 D3DBOX = Struct("D3DBOX", [
969 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
975 D3DRANGE = Struct("D3DRANGE", [
980 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
981 (UINT, "StartVertexOffsetWidth"),
982 (UINT, "StartVertexOffsetHeight"),
986 (D3DBASISTYPE, "Basis"),
987 (D3DORDERTYPE, "Order"),
990 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
991 (UINT, "StartVertexOffset"),
992 (UINT, "NumVertices"),
993 (D3DBASISTYPE, "Basis"),
994 (D3DORDERTYPE, "Order"),
997 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
999 (String, "Description"),
1000 (LARGE_INTEGER, "DriverVersion"),
1001 (DWORD, "VendorId"),
1002 (DWORD, "DeviceId"),
1003 (DWORD, "SubSysId"),
1004 (DWORD, "Revision"),
1005 (GUID, "DeviceIdentifier"),
1006 (DWORD, "WHQLLevel"),
1009 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1014 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
1017 "D3DDMT_FORCE_DWORD",
1020 D3DDEVINFOID = Flags(DWORD, [
1021 "D3DDEVINFOID_RESOURCEMANAGER",
1022 "D3DDEVINFOID_VERTEXSTATS",
1025 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1026 (BOOL, "bThrashing"),
1027 (DWORD, "ApproxBytesDownloaded"),
1028 (DWORD, "NumEvicts"),
1029 (DWORD, "NumVidCreates"),
1032 (DWORD, "NumUsedInVidMem"),
1033 (DWORD, "WorkingSet"),
1034 (DWORD, "WorkingSetBytes"),
1035 (DWORD, "TotalManaged"),
1036 (DWORD, "TotalBytes"),
1039 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1040 (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1043 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1044 (DWORD, "NumRenderedTriangles"),
1045 (DWORD, "NumExtraClippingTriangles"),