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 D3DCLIPPLANE = 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", [
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 D3DORDERTYPE = Enum("D3DORDERTYPE", [
269 "D3DORDER_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_LINEPATTERN", DWORD), # D3DLINEPATTERN
301 ("D3DRS_ZWRITEENABLE", BOOL),
302 ("D3DRS_ALPHATESTENABLE", BOOL),
303 ("D3DRS_LASTPIXEL", BOOL),
304 ("D3DRS_SRCBLEND", D3DBLEND),
305 ("D3DRS_DESTBLEND", D3DBLEND),
306 ("D3DRS_CULLMODE", D3DCULL),
307 ("D3DRS_ZFUNC", D3DCMPFUNC),
308 ("D3DRS_ALPHAREF", DWORD),
309 ("D3DRS_ALPHAFUNC", D3DCMPFUNC),
310 ("D3DRS_DITHERENABLE", BOOL),
311 ("D3DRS_ALPHABLENDENABLE", BOOL),
312 ("D3DRS_FOGENABLE", BOOL),
313 ("D3DRS_SPECULARENABLE", BOOL),
314 ("D3DRS_ZVISIBLE", BOOL),
315 ("D3DRS_FOGCOLOR", D3DCOLOR),
316 ("D3DRS_FOGTABLEMODE", D3DFOGMODE),
317 ("D3DRS_FOGSTART", FLOAT_AS_DWORD),
318 ("D3DRS_FOGEND", FLOAT_AS_DWORD),
319 ("D3DRS_FOGDENSITY", FLOAT_AS_DWORD),
320 ("D3DRS_EDGEANTIALIAS", BOOL),
321 ("D3DRS_ZBIAS", LONG),
322 ("D3DRS_RANGEFOGENABLE", BOOL),
323 ("D3DRS_STENCILENABLE", BOOL),
324 ("D3DRS_STENCILFAIL", D3DSTENCILOP),
325 ("D3DRS_STENCILZFAIL", D3DSTENCILOP),
326 ("D3DRS_STENCILPASS", D3DSTENCILOP),
327 ("D3DRS_STENCILFUNC", D3DCMPFUNC),
328 ("D3DRS_STENCILREF", DWORD),
329 ("D3DRS_STENCILMASK", DWORD),
330 ("D3DRS_STENCILWRITEMASK", DWORD),
331 ("D3DRS_TEXTUREFACTOR", D3DCOLOR),
332 ("D3DRS_WRAP0", D3DWRAPCOORD),
333 ("D3DRS_WRAP1", D3DWRAPCOORD),
334 ("D3DRS_WRAP2", D3DWRAPCOORD),
335 ("D3DRS_WRAP3", D3DWRAPCOORD),
336 ("D3DRS_WRAP4", D3DWRAPCOORD),
337 ("D3DRS_WRAP5", D3DWRAPCOORD),
338 ("D3DRS_WRAP6", D3DWRAPCOORD),
339 ("D3DRS_WRAP7", D3DWRAPCOORD),
340 ("D3DRS_CLIPPING", BOOL),
341 ("D3DRS_LIGHTING", BOOL),
342 ("D3DRS_AMBIENT", D3DCOLOR),
343 ("D3DRS_FOGVERTEXMODE", D3DFOGMODE),
344 ("D3DRS_COLORVERTEX", BOOL),
345 ("D3DRS_LOCALVIEWER", BOOL),
346 ("D3DRS_NORMALIZENORMALS", BOOL),
347 ("D3DRS_DIFFUSEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
348 ("D3DRS_SPECULARMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
349 ("D3DRS_AMBIENTMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
350 ("D3DRS_EMISSIVEMATERIALSOURCE", D3DMATERIALCOLORSOURCE),
351 ("D3DRS_VERTEXBLEND", D3DVERTEXBLENDFLAGS),
352 ("D3DRS_CLIPPLANEENABLE", D3DCLIPPLANE),
353 ("D3DRS_SOFTWAREVERTEXPROCESSING", BOOL),
354 ("D3DRS_POINTSIZE", FLOAT_AS_DWORD),
355 ("D3DRS_POINTSIZE_MIN", FLOAT_AS_DWORD),
356 ("D3DRS_POINTSPRITEENABLE", BOOL),
357 ("D3DRS_POINTSCALEENABLE", BOOL),
358 ("D3DRS_POINTSCALE_A", FLOAT_AS_DWORD),
359 ("D3DRS_POINTSCALE_B", FLOAT_AS_DWORD),
360 ("D3DRS_POINTSCALE_C", FLOAT_AS_DWORD),
361 ("D3DRS_MULTISAMPLEANTIALIAS", BOOL),
362 ("D3DRS_MULTISAMPLEMASK", DWORD),
363 ("D3DRS_PATCHEDGESTYLE", D3DPATCHEDGESTYLE),
364 ("D3DRS_PATCHSEGMENTS", DWORD),
365 ("D3DRS_DEBUGMONITORTOKEN", D3DDEBUGMONITORTOKENS),
366 ("D3DRS_POINTSIZE_MAX", FLOAT_AS_DWORD),
367 ("D3DRS_INDEXEDVERTEXBLENDENABLE", BOOL),
368 ("D3DRS_COLORWRITEENABLE", DWORD),
369 ("D3DRS_TWEENFACTOR", FLOAT_AS_DWORD),
370 ("D3DRS_BLENDOP", D3DBLENDOP),
371 ("D3DRS_POSITIONORDER", D3DORDERTYPE),
372 ("D3DRS_NORMALORDER", D3DORDERTYPE),
374 # XXX: D3DRENDERSTATE_WRAPBIAS + n
377 D3DTSS_TCI = Flags(DWORD, [
378 #"D3DTSS_TCI_PASSTHRU", # 0
379 "D3DTSS_TCI_CAMERASPACENORMAL",
380 "D3DTSS_TCI_CAMERASPACEPOSITION",
381 "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
384 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
393 "D3DTOP_ADDSIGNED2X",
396 "D3DTOP_BLENDDIFFUSEALPHA",
397 "D3DTOP_BLENDTEXTUREALPHA",
398 "D3DTOP_BLENDFACTORALPHA",
399 "D3DTOP_BLENDTEXTUREALPHAPM",
400 "D3DTOP_BLENDCURRENTALPHA",
401 "D3DTOP_PREMODULATE",
402 "D3DTOP_MODULATEALPHA_ADDCOLOR",
403 "D3DTOP_MODULATECOLOR_ADDALPHA",
404 "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
405 "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
407 "D3DTOP_BUMPENVMAPLUMINANCE",
408 "D3DTOP_DOTPRODUCT3",
409 "D3DTOP_MULTIPLYADD",
413 # XXX: Actually a mixture of enums and flags
414 D3DTA = FakeEnum(DWORD, [
422 #"D3DTA_ALPHAREPLICATE",
425 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
434 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
438 "D3DTEXF_ANISOTROPIC",
440 "D3DTEXF_GAUSSIANCUBIC",
443 D3DTEXTURESTAGESTATETYPE, D3DTEXTURESTAGESTATEVALUE = EnumPolymorphic("D3DTEXTURESTAGESTATETYPE", "Type", [
444 ("D3DTSS_COLOROP", D3DTEXTUREOP),
445 ("D3DTSS_COLORARG1", D3DTA),
446 ("D3DTSS_COLORARG2", D3DTA),
447 ("D3DTSS_ALPHAOP", D3DTEXTUREOP),
448 ("D3DTSS_ALPHAARG1", D3DTA),
449 ("D3DTSS_ALPHAARG2", D3DTA),
450 ("D3DTSS_BUMPENVMAT00", FLOAT_AS_DWORD),
451 ("D3DTSS_BUMPENVMAT01", FLOAT_AS_DWORD),
452 ("D3DTSS_BUMPENVMAT10", FLOAT_AS_DWORD),
453 ("D3DTSS_BUMPENVMAT11", FLOAT_AS_DWORD),
454 ("D3DTSS_TEXCOORDINDEX", D3DTSS_TCI),
455 ("D3DTSS_ADDRESSU", D3DTEXTUREADDRESS),
456 ("D3DTSS_ADDRESSV", D3DTEXTUREADDRESS),
457 ("D3DTSS_BORDERCOLOR", D3DCOLOR),
458 ("D3DTSS_MAGFILTER", D3DTEXTUREFILTERTYPE),
459 ("D3DTSS_MINFILTER", D3DTEXTUREFILTERTYPE),
460 ("D3DTSS_MIPFILTER", D3DTEXTUREFILTERTYPE),
461 ("D3DTSS_MIPMAPLODBIAS", FLOAT_AS_DWORD),
462 ("D3DTSS_MAXMIPLEVEL", DWORD),
463 ("D3DTSS_MAXANISOTROPY", DWORD),
464 ("D3DTSS_BUMPENVLSCALE", FLOAT_AS_DWORD),
465 ("D3DTSS_BUMPENVLOFFSET", FLOAT_AS_DWORD),
466 ("D3DTSS_TEXTURETRANSFORMFLAGS", D3DTEXTURETRANSFORMFLAGS),
467 ("D3DTSS_ADDRESSW", D3DTEXTUREADDRESS),
468 ("D3DTSS_COLORARG0", D3DTA),
469 ("D3DTSS_ALPHAARG0", D3DTA),
470 ("D3DTSS_RESULTARG", D3DTA),
473 D3DPV = Flags(DWORD, [
474 "D3DPV_DONOTCOPYDATA",
477 # XXX: Actually a mixture of enums and flags
478 D3DFVF = Flags(DWORD, [
500 "D3DFVF_LASTBETA_UBYTE4",
502 #"D3DFVF_TEXCOORDSIZE1(0)",
503 #"D3DFVF_TEXCOORDSIZE2(0)",
504 #"D3DFVF_TEXCOORDSIZE3(0)",
505 #"D3DFVF_TEXCOORDSIZE4(0)",
506 #"D3DFVF_TEXCOORDSIZE1(1)",
507 #"D3DFVF_TEXCOORDSIZE2(1)",
508 #"D3DFVF_TEXCOORDSIZE3(1)",
509 #"D3DFVF_TEXCOORDSIZE4(1)",
510 #"D3DFVF_TEXCOORDSIZE1(2)",
511 #"D3DFVF_TEXCOORDSIZE2(2)",
512 #"D3DFVF_TEXCOORDSIZE3(2)",
513 #"D3DFVF_TEXCOORDSIZE4(2)",
514 #"D3DFVF_TEXCOORDSIZE1(3)",
515 #"D3DFVF_TEXCOORDSIZE2(3)",
516 #"D3DFVF_TEXCOORDSIZE3(3)",
517 #"D3DFVF_TEXCOORDSIZE4(3)",
521 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
523 "D3DVSD_TOKEN_STREAM",
524 "D3DVSD_TOKEN_STREAMDATA",
525 "D3DVSD_TOKEN_TESSELLATOR",
526 "D3DVSD_TOKEN_CONSTMEM",
532 D3DVSDT = FakeEnum(DWORD, [
542 "D3DVSDE_BLENDWEIGHT",
543 "D3DVSDE_BLENDINDICES",
562 D3DBASISTYPE = Enum("D3DBASISTYPE", [
565 "D3DBASIS_INTERPOLATE",
568 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
571 "D3DSBT_VERTEXSTATE",
574 D3DDEVTYPE = Enum("D3DDEVTYPE", [
580 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
581 "D3DMULTISAMPLE_NONE",
582 "D3DMULTISAMPLE_2_SAMPLES",
583 "D3DMULTISAMPLE_3_SAMPLES",
584 "D3DMULTISAMPLE_4_SAMPLES",
585 "D3DMULTISAMPLE_5_SAMPLES",
586 "D3DMULTISAMPLE_6_SAMPLES",
587 "D3DMULTISAMPLE_7_SAMPLES",
588 "D3DMULTISAMPLE_8_SAMPLES",
589 "D3DMULTISAMPLE_9_SAMPLES",
590 "D3DMULTISAMPLE_10_SAMPLES",
591 "D3DMULTISAMPLE_11_SAMPLES",
592 "D3DMULTISAMPLE_12_SAMPLES",
593 "D3DMULTISAMPLE_13_SAMPLES",
594 "D3DMULTISAMPLE_14_SAMPLES",
595 "D3DMULTISAMPLE_15_SAMPLES",
596 "D3DMULTISAMPLE_16_SAMPLES",
599 D3DFORMAT = Enum("D3DFORMAT", [
612 "D3DFMT_A2B10G10R10",
625 "D3DFMT_A2W10V10U10",
633 "D3DFMT_D16_LOCKABLE",
645 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
648 (UINT, "RefreshRate"),
649 (D3DFORMAT, "Format"),
652 D3DCREATE = Flags(DWORD, [
653 "D3DCREATE_FPU_PRESERVE",
654 "D3DCREATE_MULTITHREADED",
655 "D3DCREATE_PUREDEVICE",
656 "D3DCREATE_SOFTWARE_VERTEXPROCESSING",
657 "D3DCREATE_HARDWARE_VERTEXPROCESSING",
658 "D3DCREATE_MIXED_VERTEXPROCESSING",
659 "D3DCREATE_DISABLE_DRIVER_MANAGEMENT",
662 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
663 (UINT, "AdapterOrdinal"),
664 (D3DDEVTYPE, "DeviceType"),
665 (HWND, "hFocusWindow"),
666 (D3DCREATE, "BehaviorFlags"),
669 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
670 "D3DSWAPEFFECT_DISCARD",
671 "D3DSWAPEFFECT_FLIP",
672 "D3DSWAPEFFECT_COPY",
673 "D3DSWAPEFFECT_COPY_VSYNC",
676 D3DPOOL = Enum("D3DPOOL", [
683 D3DPRESENT = FakeEnum(DWORD, [
684 "D3DPRESENT_RATE_DEFAULT",
685 "D3DPRESENT_RATE_UNLIMITED",
688 D3DPRESENTFLAG = Flags(DWORD, [
689 "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
692 D3DPRESENT_INTERVAL = Flags(DWORD, [
693 "D3DPRESENT_INTERVAL_DEFAULT", # 0
694 "D3DPRESENT_INTERVAL_ONE",
695 "D3DPRESENT_INTERVAL_TWO",
696 "D3DPRESENT_INTERVAL_THREE",
697 "D3DPRESENT_INTERVAL_FOUR",
698 "D3DPRESENT_INTERVAL_IMMEDIATE",
701 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
702 (UINT, "BackBufferWidth"),
703 (UINT, "BackBufferHeight"),
704 (D3DFORMAT, "BackBufferFormat"),
705 (UINT, "BackBufferCount"),
706 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
707 (D3DSWAPEFFECT, "SwapEffect"),
708 (HWND, "hDeviceWindow"),
710 (BOOL, "EnableAutoDepthStencil"),
711 (D3DFORMAT, "AutoDepthStencilFormat"),
712 (D3DPRESENTFLAG, "Flags"),
713 (UINT, "FullScreen_RefreshRateInHz"),
714 (D3DPRESENT_INTERVAL, "FullScreen_PresentationInterval"),
717 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
718 (Array(WORD, 256), "red"),
719 (Array(WORD, 256), "green"),
720 (Array(WORD, 256), "blue"),
723 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
724 "D3DBACKBUFFER_TYPE_MONO",
725 "D3DBACKBUFFER_TYPE_LEFT",
726 "D3DBACKBUFFER_TYPE_RIGHT",
729 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
733 "D3DRTYPE_VOLUMETEXTURE",
734 "D3DRTYPE_CUBETEXTURE",
735 "D3DRTYPE_VERTEXBUFFER",
736 "D3DRTYPE_INDEXBUFFER",
739 D3DUSAGE = Flags(DWORD, [
740 "D3DUSAGE_RENDERTARGET",
741 "D3DUSAGE_DEPTHSTENCIL",
742 "D3DUSAGE_WRITEONLY",
743 "D3DUSAGE_SOFTWAREPROCESSING",
744 "D3DUSAGE_DONOTCLIP",
746 "D3DUSAGE_RTPATCHES",
751 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
752 "D3DCUBEMAP_FACE_POSITIVE_X",
753 "D3DCUBEMAP_FACE_NEGATIVE_X",
754 "D3DCUBEMAP_FACE_POSITIVE_Y",
755 "D3DCUBEMAP_FACE_NEGATIVE_Y",
756 "D3DCUBEMAP_FACE_POSITIVE_Z",
757 "D3DCUBEMAP_FACE_NEGATIVE_Z",
760 D3DLOCK = Flags(DWORD, [
763 "D3DLOCK_NOOVERWRITE",
765 "D3DLOCK_NO_DIRTY_UPDATE",
768 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
769 (D3DFORMAT, "Format"),
770 (D3DRESOURCETYPE, "Type"),
777 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
778 (D3DFORMAT, "Format"),
779 (D3DRESOURCETYPE, "Type"),
785 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
786 (D3DFORMAT, "Format"),
787 (D3DRESOURCETYPE, "Type"),
791 (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
796 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
797 (D3DFORMAT, "Format"),
798 (D3DRESOURCETYPE, "Type"),
807 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
809 (LinearPointer(Void, "_MappedSize"), "pBits"),
812 D3DBOX = Struct("D3DBOX", [
821 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
824 (LinearPointer(Void, "_MappedSize"), "pBits"),
827 D3DRANGE = Struct("D3DRANGE", [
832 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
833 (UINT, "StartVertexOffsetWidth"),
834 (UINT, "StartVertexOffsetHeight"),
838 (D3DBASISTYPE, "Basis"),
839 (D3DORDERTYPE, "Order"),
842 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
843 (UINT, "StartVertexOffset"),
844 (UINT, "NumVertices"),
845 (D3DBASISTYPE, "Basis"),
846 (D3DORDERTYPE, "Order"),
849 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
851 (CString, "Description"),
852 (LARGE_INTEGER, "DriverVersion"),
857 (GUID, "DeviceIdentifier"),
858 (DWORD, "WHQLLevel"),
861 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
866 D3DDEVINFOID = FakeEnum(DWORD, [
867 "D3DDEVINFOID_RESOURCEMANAGER",
868 "D3DDEVINFOID_VERTEXSTATS",
871 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
872 (BOOL, "bThrashing"),
873 (DWORD, "ApproxBytesDownloaded"),
874 (DWORD, "NumEvicts"),
875 (DWORD, "NumVidCreates"),
878 (DWORD, "NumUsedInVidMem"),
879 (DWORD, "WorkingSet"),
880 (DWORD, "WorkingSetBytes"),
881 (DWORD, "TotalManaged"),
882 (DWORD, "TotalBytes"),
885 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
886 (Array(D3DRESOURCESTATS, "D3DRTYPECOUNT"), "stats"),
889 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
890 (DWORD, "NumRenderedTriangles"),
891 (DWORD, "NumExtraClippingTriangles"),