]> git.cworth.org Git - apitrace/blob - d3d9types.py
Auto-generate d3d9.
[apitrace] / d3d9types.py
1 #############################################################################
2 #
3 # Copyright 2008 Jose Fonseca
4 #
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.
9 #
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.
14 #
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/>.
17 #
18 #############################################################################
19
20 """d3d9types.h"""
21
22 from windows import *
23
24 D3DCOLOR = Alias("D3DCOLOR", DWORD)
25
26 D3DVECTOR = Struct("D3DVECTOR", [
27     (Float, "x"),
28     (Float, "y"),
29     (Float, "z"),
30 ])
31
32 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
33     (Float, "r"),
34     (Float, "g"),
35     (Float, "b"),
36     (Float, "a"),
37 ])
38
39 D3DRECT = Struct("D3DRECT", [
40     (LONG, "x1"),
41     (LONG, "y1"),
42     (LONG, "x2"),
43     (LONG, "y2"),
44 ])
45
46 D3DMATRIX = Struct("D3DMATRIX", [
47     (Float, "m[4][4]"),
48 ])
49
50 D3DVIEWPORT9 = Struct("D3DVIEWPORT9", [
51     (DWORD, "X"),
52     (DWORD, "Y"),
53     (DWORD, "Width"),
54     (DWORD, "Height"),
55     (Float, "MinZ"),
56     (Float, "MaxZ"),
57 ])
58
59 D3DCLIP = Flags(DWORD, [
60     "D3DCLIPPLANE0",
61     "D3DCLIPPLANE1",
62     "D3DCLIPPLANE2",
63     "D3DCLIPPLANE3",
64     "D3DCLIPPLANE4",
65     "D3DCLIPPLANE5",
66 ])
67
68 D3DCS = Flags(DWORD, [
69     "D3DCS_ALL",
70     "D3DCS_LEFT",
71     "D3DCS_RIGHT",
72     "D3DCS_TOP",
73     "D3DCS_BOTTOM",
74     "D3DCS_FRONT",
75     "D3DCS_BACK",
76     "D3DCS_PLANE0",
77     "D3DCS_PLANE1",
78     "D3DCS_PLANE2",
79     "D3DCS_PLANE3",
80     "D3DCS_PLANE4",
81     "D3DCS_PLANE5",
82 ])
83
84 D3DCLIPSTATUS9 = Struct("D3DCLIPSTATUS9", [
85     (DWORD, "ClipUnion"),
86     (DWORD, "ClipIntersection"),
87 ])
88
89 D3DMATERIAL9 = Struct("D3DMATERIAL9", [
90     (D3DCOLORVALUE, "Diffuse"),
91     (D3DCOLORVALUE, "Ambient"),
92     (D3DCOLORVALUE, "Specular"),
93     (D3DCOLORVALUE, "Emissive"),
94     (Float, "Power"),
95 ])
96
97 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
98     "D3DLIGHT_POINT",
99     "D3DLIGHT_SPOT",
100     "D3DLIGHT_DIRECTIONAL",
101     "D3DLIGHT_FORCE_DWORD",
102 ])
103
104 D3DLIGHT9 = Struct("D3DLIGHT9", [
105     (D3DLIGHTTYPE, "Type"),
106     (D3DCOLORVALUE, "Diffuse"),
107     (D3DCOLORVALUE, "Specular"),
108     (D3DCOLORVALUE, "Ambient"),
109     (D3DVECTOR, "Position"),
110     (D3DVECTOR, "Direction"),
111     (Float, "Range"),
112     (Float, "Falloff"),
113     (Float, "Attenuation0"),
114     (Float, "Attenuation1"),
115     (Float, "Attenuation2"),
116     (Float, "Theta"),
117     (Float, "Phi"),
118 ])
119
120 D3DCS = Flags(DWORD, [
121     "D3DCLEAR_TARGET",
122     "D3DCLEAR_ZBUFFER",
123     "D3DCLEAR_STENCIL",
124 ])
125
126 D3DSHADEMODE = Enum("D3DSHADEMODE", [
127     "D3DSHADE_FLAT",
128     "D3DSHADE_GOURAUD",
129     "D3DSHADE_PHONG",
130     "D3DSHADE_FORCE_DWORD",
131 ])
132
133 D3DFILLMODE = Enum("D3DFILLMODE", [
134     "D3DFILL_POINT",
135     "D3DFILL_WIREFRAME",
136     "D3DFILL_SOLID",
137     "D3DFILL_FORCE_DWORD",
138 ])
139
140 D3DBLEND = Enum("D3DBLEND", [
141     "D3DBLEND_ZERO",
142     "D3DBLEND_ONE",
143     "D3DBLEND_SRCCOLOR",
144     "D3DBLEND_INVSRCCOLOR",
145     "D3DBLEND_SRCALPHA",
146     "D3DBLEND_INVSRCALPHA",
147     "D3DBLEND_DESTALPHA",
148     "D3DBLEND_INVDESTALPHA",
149     "D3DBLEND_DESTCOLOR",
150     "D3DBLEND_INVDESTCOLOR",
151     "D3DBLEND_SRCALPHASAT",
152     "D3DBLEND_BOTHSRCALPHA",
153     "D3DBLEND_BOTHINVSRCALPHA",
154     "D3DBLEND_BLENDFACTOR",
155     "D3DBLEND_INVBLENDFACTOR",
156     "D3DBLEND_SRCCOLOR2",
157     "D3DBLEND_INVSRCCOLOR2",
158     "D3DBLEND_FORCE_DWORD",
159 ])
160
161 D3DBLENDOP = Enum("D3DBLENDOP", [
162     "D3DBLENDOP_ADD",
163     "D3DBLENDOP_SUBTRACT",
164     "D3DBLENDOP_REVSUBTRACT",
165     "D3DBLENDOP_MIN",
166     "D3DBLENDOP_MAX",
167     "D3DBLENDOP_FORCE_DWORD",
168 ])
169
170 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
171     "D3DTADDRESS_WRAP",
172     "D3DTADDRESS_MIRROR",
173     "D3DTADDRESS_CLAMP",
174     "D3DTADDRESS_BORDER",
175     "D3DTADDRESS_MIRRORONCE",
176     "D3DTADDRESS_FORCE_DWORD",
177 ])
178
179 D3DCULL = Enum("D3DCULL", [
180     "D3DCULL_NONE",
181     "D3DCULL_CW",
182     "D3DCULL_CCW",
183     "D3DCULL_FORCE_DWORD",
184 ])
185
186 D3DCMPFUNC = Enum("D3DCMPFUNC", [
187     "D3DCMP_NEVER",
188     "D3DCMP_LESS",
189     "D3DCMP_EQUAL",
190     "D3DCMP_LESSEQUAL",
191     "D3DCMP_GREATER",
192     "D3DCMP_NOTEQUAL",
193     "D3DCMP_GREATEREQUAL",
194     "D3DCMP_ALWAYS",
195     "D3DCMP_FORCE_DWORD",
196 ])
197
198 D3DSTENCILOP = Enum("D3DSTENCILOP", [
199     "D3DSTENCILOP_KEEP",
200     "D3DSTENCILOP_ZERO",
201     "D3DSTENCILOP_REPLACE",
202     "D3DSTENCILOP_INCRSAT",
203     "D3DSTENCILOP_DECRSAT",
204     "D3DSTENCILOP_INVERT",
205     "D3DSTENCILOP_INCR",
206     "D3DSTENCILOP_DECR",
207     "D3DSTENCILOP_FORCE_DWORD",
208 ])
209
210 D3DFOGMODE = Enum("D3DFOGMODE", [
211     "D3DFOG_NONE",
212     "D3DFOG_EXP",
213     "D3DFOG_EXP2",
214     "D3DFOG_LINEAR",
215     "D3DFOG_FORCE_DWORD",
216 ])
217
218 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
219     "D3DZB_FALSE",
220     "D3DZB_TRUE",
221     "D3DZB_USEW",
222     "D3DZB_FORCE_DWORD",
223 ])
224
225 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
226     "D3DPT_POINTLIST",
227     "D3DPT_LINELIST",
228     "D3DPT_LINESTRIP",
229     "D3DPT_TRIANGLELIST",
230     "D3DPT_TRIANGLESTRIP",
231     "D3DPT_TRIANGLEFAN",
232     "D3DPT_FORCE_DWORD",
233 ])
234
235 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
236     "D3DTS_VIEW",
237     "D3DTS_PROJECTION",
238     "D3DTS_TEXTURE0",
239     "D3DTS_TEXTURE1",
240     "D3DTS_TEXTURE2",
241     "D3DTS_TEXTURE3",
242     "D3DTS_TEXTURE4",
243     "D3DTS_TEXTURE5",
244     "D3DTS_TEXTURE6",
245     "D3DTS_TEXTURE7",
246     "D3DTS_FORCE_DWORD",
247 ])
248
249 D3DTS = Flags(DWORD, [
250     "D3DTS_WORLDMATRIX(index)",
251     "D3DTS_WORLD",
252     "D3DTS_WORLD1",
253     "D3DTS_WORLD2",
254     "D3DTS_WORLD3",
255 ])
256
257 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
258     "D3DRS_ZENABLE",
259     "D3DRS_FILLMODE",
260     "D3DRS_SHADEMODE",
261     "D3DRS_ZWRITEENABLE",
262     "D3DRS_ALPHATESTENABLE",
263     "D3DRS_LASTPIXEL",
264     "D3DRS_SRCBLEND",
265     "D3DRS_DESTBLEND",
266     "D3DRS_CULLMODE",
267     "D3DRS_ZFUNC",
268     "D3DRS_ALPHAREF",
269     "D3DRS_ALPHAFUNC",
270     "D3DRS_DITHERENABLE",
271     "D3DRS_ALPHABLENDENABLE",
272     "D3DRS_FOGENABLE",
273     "D3DRS_SPECULARENABLE",
274     "D3DRS_FOGCOLOR",
275     "D3DRS_FOGTABLEMODE",
276     "D3DRS_FOGSTART",
277     "D3DRS_FOGEND",
278     "D3DRS_FOGDENSITY",
279     "D3DRS_RANGEFOGENABLE",
280     "D3DRS_STENCILENABLE",
281     "D3DRS_STENCILFAIL",
282     "D3DRS_STENCILZFAIL",
283     "D3DRS_STENCILPASS",
284     "D3DRS_STENCILFUNC",
285     "D3DRS_STENCILREF",
286     "D3DRS_STENCILMASK",
287     "D3DRS_STENCILWRITEMASK",
288     "D3DRS_TEXTUREFACTOR",
289     "D3DRS_WRAP0",
290     "D3DRS_WRAP1",
291     "D3DRS_WRAP2",
292     "D3DRS_WRAP3",
293     "D3DRS_WRAP4",
294     "D3DRS_WRAP5",
295     "D3DRS_WRAP6",
296     "D3DRS_WRAP7",
297     "D3DRS_CLIPPING",
298     "D3DRS_LIGHTING",
299     "D3DRS_AMBIENT",
300     "D3DRS_FOGVERTEXMODE",
301     "D3DRS_COLORVERTEX",
302     "D3DRS_LOCALVIEWER",
303     "D3DRS_NORMALIZENORMALS",
304     "D3DRS_DIFFUSEMATERIALSOURCE",
305     "D3DRS_SPECULARMATERIALSOURCE",
306     "D3DRS_AMBIENTMATERIALSOURCE",
307     "D3DRS_EMISSIVEMATERIALSOURCE",
308     "D3DRS_VERTEXBLEND",
309     "D3DRS_CLIPPLANEENABLE",
310     "D3DRS_POINTSIZE",
311     "D3DRS_POINTSIZE_MIN",
312     "D3DRS_POINTSPRITEENABLE",
313     "D3DRS_POINTSCALEENABLE",
314     "D3DRS_POINTSCALE_A",
315     "D3DRS_POINTSCALE_B",
316     "D3DRS_POINTSCALE_C",
317     "D3DRS_MULTISAMPLEANTIALIAS",
318     "D3DRS_MULTISAMPLEMASK",
319     "D3DRS_PATCHEDGESTYLE",
320     "D3DRS_DEBUGMONITORTOKEN",
321     "D3DRS_POINTSIZE_MAX",
322     "D3DRS_INDEXEDVERTEXBLENDENABLE",
323     "D3DRS_COLORWRITEENABLE",
324     "D3DRS_TWEENFACTOR",
325     "D3DRS_BLENDOP",
326     "D3DRS_POSITIONDEGREE",
327     "D3DRS_NORMALDEGREE",
328     "D3DRS_SCISSORTESTENABLE",
329     "D3DRS_SLOPESCALEDEPTHBIAS",
330     "D3DRS_ANTIALIASEDLINEENABLE",
331     "D3DRS_MINTESSELLATIONLEVEL",
332     "D3DRS_MAXTESSELLATIONLEVEL",
333     "D3DRS_ADAPTIVETESS_X",
334     "D3DRS_ADAPTIVETESS_Y",
335     "D3DRS_ADAPTIVETESS_Z",
336     "D3DRS_ADAPTIVETESS_W",
337     "D3DRS_ENABLEADAPTIVETESSELLATION",
338     "D3DRS_TWOSIDEDSTENCILMODE",
339     "D3DRS_CCW_STENCILFAIL",
340     "D3DRS_CCW_STENCILZFAIL",
341     "D3DRS_CCW_STENCILPASS",
342     "D3DRS_CCW_STENCILFUNC",
343     "D3DRS_COLORWRITEENABLE1",
344     "D3DRS_COLORWRITEENABLE2",
345     "D3DRS_COLORWRITEENABLE3",
346     "D3DRS_BLENDFACTOR",
347     "D3DRS_SRGBWRITEENABLE",
348     "D3DRS_DEPTHBIAS",
349     "D3DRS_WRAP8",
350     "D3DRS_WRAP9",
351     "D3DRS_WRAP10",
352     "D3DRS_WRAP11",
353     "D3DRS_WRAP12",
354     "D3DRS_WRAP13",
355     "D3DRS_WRAP14",
356     "D3DRS_WRAP15",
357     "D3DRS_SEPARATEALPHABLENDENABLE",
358     "D3DRS_SRCBLENDALPHA",
359     "D3DRS_DESTBLENDALPHA",
360     "D3DRS_BLENDOPALPHA",
361     "D3DRS_FORCE_DWORD",
362 ])
363
364 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
365     "D3DMCS_MATERIAL",
366     "D3DMCS_COLOR1",
367     "D3DMCS_COLOR2",
368     "D3DMCS_FORCE_DWORD",
369 ])
370
371 D3DWRAP = Flags(DWORD, [
372     "D3DWRAP_U",
373     "D3DWRAP_V",
374     "D3DWRAP_W",
375 ])
376
377 D3DWRAPCOORD = Flags(DWORD, [
378     "D3DWRAPCOORD_0",
379     "D3DWRAPCOORD_1",
380     "D3DWRAPCOORD_2",
381     "D3DWRAPCOORD_3",
382 ])
383
384 D3DCOLORWRITEENABLE = Flags(DWORD, [
385     "D3DCOLORWRITEENABLE_RED",
386     "D3DCOLORWRITEENABLE_GREEN",
387     "D3DCOLORWRITEENABLE_BLUE",
388     "D3DCOLORWRITEENABLE_ALPHA",
389 ])
390
391 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
392     "D3DTSS_COLOROP",
393     "D3DTSS_COLORARG1",
394     "D3DTSS_COLORARG2",
395     "D3DTSS_ALPHAOP",
396     "D3DTSS_ALPHAARG1",
397     "D3DTSS_ALPHAARG2",
398     "D3DTSS_BUMPENVMAT00",
399     "D3DTSS_BUMPENVMAT01",
400     "D3DTSS_BUMPENVMAT10",
401     "D3DTSS_BUMPENVMAT11",
402     "D3DTSS_TEXCOORDINDEX",
403     "D3DTSS_BUMPENVLSCALE",
404     "D3DTSS_BUMPENVLOFFSET",
405     "D3DTSS_TEXTURETRANSFORMFLAGS",
406     "D3DTSS_COLORARG0",
407     "D3DTSS_ALPHAARG0",
408     "D3DTSS_RESULTARG",
409     "D3DTSS_CONSTANT",
410     "D3DTSS_FORCE_DWORD",
411 ])
412
413 D3DSAMPLERSTATETYPE = Enum("D3DSAMPLERSTATETYPE", [
414
415     "D3DSAMP_ADDRESSU",
416     "D3DSAMP_ADDRESSV",
417     "D3DSAMP_ADDRESSW",
418     "D3DSAMP_BORDERCOLOR",
419     "D3DSAMP_MAGFILTER",
420     "D3DSAMP_MINFILTER",
421     "D3DSAMP_MIPFILTER",
422     "D3DSAMP_MIPMAPLODBIAS",
423     "D3DSAMP_MAXMIPLEVEL",
424     "D3DSAMP_MAXANISOTROPY",
425     "D3DSAMP_SRGBTEXTURE",
426     "D3DSAMP_ELEMENTINDEX",
427     "D3DSAMP_DMAPOFFSET",
428     "D3DSAMP_FORCE_DWORD",
429 ])
430
431 D3DTSS = Flags(DWORD, [
432     "D3DTSS_TCI_PASSTHRU",
433     "D3DTSS_TCI_CAMERASPACENORMAL",
434     "D3DTSS_TCI_CAMERASPACEPOSITION",
435     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
436     "D3DTSS_TCI_SPHEREMAP",
437 ])
438
439 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
440     "D3DTOP_DISABLE",
441     "D3DTOP_SELECTARG1",
442     "D3DTOP_SELECTARG2",
443     "D3DTOP_MODULATE",
444     "D3DTOP_MODULATE2X",
445     "D3DTOP_MODULATE4X",
446     "D3DTOP_ADD",
447     "D3DTOP_ADDSIGNED",
448     "D3DTOP_ADDSIGNED2X",
449     "D3DTOP_SUBTRACT",
450     "D3DTOP_ADDSMOOTH",
451     "D3DTOP_BLENDDIFFUSEALPHA",
452     "D3DTOP_BLENDTEXTUREALPHA",
453     "D3DTOP_BLENDFACTORALPHA",
454     "D3DTOP_BLENDTEXTUREALPHAPM",
455     "D3DTOP_BLENDCURRENTALPHA",
456     "D3DTOP_PREMODULATE",
457     "D3DTOP_MODULATEALPHA_ADDCOLOR",
458     "D3DTOP_MODULATECOLOR_ADDALPHA",
459     "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
460     "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
461     "D3DTOP_BUMPENVMAP",
462     "D3DTOP_BUMPENVMAPLUMINANCE",
463     "D3DTOP_DOTPRODUCT3",
464     "D3DTOP_MULTIPLYADD",
465     "D3DTOP_LERP",
466     "D3DTOP_FORCE_DWORD",
467 ])
468
469 D3DTA = Flags(DWORD, [
470     "D3DTA_SELECTMASK",
471     "D3DTA_DIFFUSE",
472     "D3DTA_CURRENT",
473     "D3DTA_TEXTURE",
474     "D3DTA_TFACTOR",
475     "D3DTA_SPECULAR",
476     "D3DTA_TEMP",
477     "D3DTA_CONSTANT",
478     "D3DTA_COMPLEMENT",
479     "D3DTA_ALPHAREPLICATE",
480 ])
481
482 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
483     "D3DTEXF_NONE",
484     "D3DTEXF_POINT",
485     "D3DTEXF_LINEAR",
486     "D3DTEXF_ANISOTROPIC",
487     "D3DTEXF_PYRAMIDALQUAD",
488     "D3DTEXF_GAUSSIANQUAD",
489     "D3DTEXF_CONVOLUTIONMONO",
490     "D3DTEXF_FORCE_DWORD",
491 ])
492
493 D3DPV = Flags(DWORD, [
494     "D3DPV_DONOTCOPYDATA",
495 ])
496
497 D3DFVF = Flags(DWORD, [
498     "D3DFVF_RESERVED0",
499     "D3DFVF_POSITION_MASK",
500     "D3DFVF_XYZ",
501     "D3DFVF_XYZRHW",
502     "D3DFVF_XYZB1",
503     "D3DFVF_XYZB2",
504     "D3DFVF_XYZB3",
505     "D3DFVF_XYZB4",
506     "D3DFVF_XYZB5",
507     "D3DFVF_XYZW",
508     "D3DFVF_NORMAL",
509     "D3DFVF_PSIZE",
510     "D3DFVF_DIFFUSE",
511     "D3DFVF_SPECULAR",
512     "D3DFVF_TEXCOUNT_MASK",
513     "D3DFVF_TEXCOUNT_SHIFT",
514     "D3DFVF_TEX0",
515     "D3DFVF_TEX1",
516     "D3DFVF_TEX2",
517     "D3DFVF_TEX3",
518     "D3DFVF_TEX4",
519     "D3DFVF_TEX5",
520     "D3DFVF_TEX6",
521     "D3DFVF_TEX7",
522     "D3DFVF_TEX8",
523     "D3DFVF_LASTBETA_UBYTE4",
524     "D3DFVF_LASTBETA_D3DCOLOR",
525     "D3DFVF_RESERVED2",
526     "D3DFVF_TEXCOORDSIZE3(0)",
527     "D3DFVF_TEXCOORDSIZE2(0)",
528     "D3DFVF_TEXCOORDSIZE4(0)",
529     "D3DFVF_TEXCOORDSIZE1(0)",
530     "D3DFVF_TEXCOORDSIZE3(1)",
531     "D3DFVF_TEXCOORDSIZE2(1)",
532     "D3DFVF_TEXCOORDSIZE4(1)",
533     "D3DFVF_TEXCOORDSIZE1(1)",
534     "D3DFVF_TEXCOORDSIZE3(2)",
535     "D3DFVF_TEXCOORDSIZE2(2)",
536     "D3DFVF_TEXCOORDSIZE4(2)",
537     "D3DFVF_TEXCOORDSIZE1(2)",
538     "D3DFVF_TEXCOORDSIZE3(3)",
539     "D3DFVF_TEXCOORDSIZE2(3)",
540     "D3DFVF_TEXCOORDSIZE4(3)",
541     "D3DFVF_TEXCOORDSIZE1(3)",
542 ])
543
544 D3DDECLUSAGE = Enum("D3DDECLUSAGE", [
545     "D3DDECLUSAGE_POSITION",
546     "D3DDECLUSAGE_BLENDWEIGHT",
547     "D3DDECLUSAGE_BLENDINDICES",
548     "D3DDECLUSAGE_NORMAL",
549     "D3DDECLUSAGE_PSIZE",
550     "D3DDECLUSAGE_TEXCOORD",
551     "D3DDECLUSAGE_TANGENT",
552     "D3DDECLUSAGE_BINORMAL",
553     "D3DDECLUSAGE_TESSFACTOR",
554     "D3DDECLUSAGE_POSITIONT",
555     "D3DDECLUSAGE_COLOR",
556     "D3DDECLUSAGE_FOG",
557     "D3DDECLUSAGE_DEPTH",
558     "D3DDECLUSAGE_SAMPLE",
559 ])
560
561 D3DDECLMETHOD = Enum("D3DDECLMETHOD", [
562     "D3DDECLMETHOD_DEFAULT",
563     "D3DDECLMETHOD_PARTIALU",
564     "D3DDECLMETHOD_PARTIALV",
565     "D3DDECLMETHOD_CROSSUV",
566     "D3DDECLMETHOD_UV",
567     "D3DDECLMETHOD_LOOKUP",
568     "D3DDECLMETHOD_LOOKUPPRESAMPLED",
569 ])
570
571 D3DDECLTYPE = Enum("D3DDECLTYPE", [
572     "D3DDECLTYPE_FLOAT1",
573     "D3DDECLTYPE_FLOAT2",
574     "D3DDECLTYPE_FLOAT3",
575     "D3DDECLTYPE_FLOAT4",
576     "D3DDECLTYPE_D3DCOLOR",
577     "D3DDECLTYPE_UBYTE4",
578     "D3DDECLTYPE_SHORT2",
579     "D3DDECLTYPE_SHORT4",
580     "D3DDECLTYPE_UBYTE4N",
581     "D3DDECLTYPE_SHORT2N",
582     "D3DDECLTYPE_SHORT4N",
583     "D3DDECLTYPE_USHORT2N",
584     "D3DDECLTYPE_USHORT4N",
585     "D3DDECLTYPE_UDEC3",
586     "D3DDECLTYPE_DEC3N",
587     "D3DDECLTYPE_FLOAT16_2",
588     "D3DDECLTYPE_FLOAT16_4",
589     "D3DDECLTYPE_UNUSED",
590 ])
591
592 D3DVERTEXELEMENT9 = Struct("D3DVERTEXELEMENT9", [
593     (WORD, "Stream"),
594     (WORD, "Offset"),
595     (BYTE, "Type"),
596     (BYTE, "Method"),
597     (BYTE, "Usage"),
598     (BYTE, "UsageIndex"),
599 ])
600
601 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
602     "D3DSIO_NOP",
603     "D3DSIO_MOV",
604     "D3DSIO_ADD",
605     "D3DSIO_SUB",
606     "D3DSIO_MAD",
607     "D3DSIO_MUL",
608     "D3DSIO_RCP",
609     "D3DSIO_RSQ",
610     "D3DSIO_DP3",
611     "D3DSIO_DP4",
612     "D3DSIO_MIN",
613     "D3DSIO_MAX",
614     "D3DSIO_SLT",
615     "D3DSIO_SGE",
616     "D3DSIO_EXP",
617     "D3DSIO_LOG",
618     "D3DSIO_LIT",
619     "D3DSIO_DST",
620     "D3DSIO_LRP",
621     "D3DSIO_FRC",
622     "D3DSIO_M4x4",
623     "D3DSIO_M4x3",
624     "D3DSIO_M3x4",
625     "D3DSIO_M3x3",
626     "D3DSIO_M3x2",
627     "D3DSIO_CALL",
628     "D3DSIO_CALLNZ",
629     "D3DSIO_LOOP",
630     "D3DSIO_RET",
631     "D3DSIO_ENDLOOP",
632     "D3DSIO_LABEL",
633     "D3DSIO_DCL",
634     "D3DSIO_POW",
635     "D3DSIO_CRS",
636     "D3DSIO_SGN",
637     "D3DSIO_ABS",
638     "D3DSIO_NRM",
639     "D3DSIO_SINCOS",
640     "D3DSIO_REP",
641     "D3DSIO_ENDREP",
642     "D3DSIO_IF",
643     "D3DSIO_IFC",
644     "D3DSIO_ELSE",
645     "D3DSIO_ENDIF",
646     "D3DSIO_BREAK",
647     "D3DSIO_BREAKC",
648     "D3DSIO_MOVA",
649     "D3DSIO_DEFB",
650     "D3DSIO_DEFI",
651     "D3DSIO_TEXCOORD",
652     "D3DSIO_TEXKILL",
653     "D3DSIO_TEX",
654     "D3DSIO_TEXBEM",
655     "D3DSIO_TEXBEML",
656     "D3DSIO_TEXREG2AR",
657     "D3DSIO_TEXREG2GB",
658     "D3DSIO_TEXM3x2PAD",
659     "D3DSIO_TEXM3x2TEX",
660     "D3DSIO_TEXM3x3PAD",
661     "D3DSIO_TEXM3x3TEX",
662     "D3DSIO_RESERVED0",
663     "D3DSIO_TEXM3x3SPEC",
664     "D3DSIO_TEXM3x3VSPEC",
665     "D3DSIO_EXPP",
666     "D3DSIO_LOGP",
667     "D3DSIO_CND",
668     "D3DSIO_DEF",
669     "D3DSIO_TEXREG2RGB",
670     "D3DSIO_TEXDP3TEX",
671     "D3DSIO_TEXM3x2DEPTH",
672     "D3DSIO_TEXDP3",
673     "D3DSIO_TEXM3x3",
674     "D3DSIO_TEXDEPTH",
675     "D3DSIO_CMP",
676     "D3DSIO_BEM",
677     "D3DSIO_DP2ADD",
678     "D3DSIO_DSX",
679     "D3DSIO_DSY",
680     "D3DSIO_TEXLDD",
681     "D3DSIO_SETP",
682     "D3DSIO_TEXLDL",
683     "D3DSIO_BREAKP",
684     "D3DSIO_PHASE",
685     "D3DSIO_COMMENT",
686     "D3DSIO_END",
687     "D3DSIO_FORCE_DWORD",
688 ])
689
690 D3DSHADER_COMPARISON = Enum("D3DSHADER_COMPARISON", [
691     "D3DSPC_RESERVED0",
692     "D3DSPC_GT",
693     "D3DSPC_EQ",
694     "D3DSPC_GE",
695     "D3DSPC_LT",
696     "D3DSPC_NE",
697     "D3DSPC_LE",
698     "D3DSPC_RESERVED1",
699 ])
700
701 D3DSAMPLER_TEXTURE_TYPE = Enum("D3DSAMPLER_TEXTURE_TYPE", [
702     "D3DSTT_UNKNOWN",
703     "D3DSTT_2D",
704     "D3DSTT_CUBE",
705     "D3DSTT_VOLUME",
706     "D3DSTT_FORCE_DWORD",
707 ])
708
709 D3DSP = Flags(DWORD, [
710     "D3DSP_WRITEMASK_0",
711     "D3DSP_WRITEMASK_1",
712     "D3DSP_WRITEMASK_2",
713     "D3DSP_WRITEMASK_3",
714     "D3DSP_WRITEMASK_ALL",
715 ])
716
717 D3DSHADER_PARAM_DSTMOD_TYPE = Flags(DWORD, [
718     "D3DSPDM_NONE",
719     "D3DSPDM_SATURATE",
720     "D3DSPDM_PARTIALPRECISION",
721     "D3DSPDM_MSAMPCENTROID",
722 ])
723
724 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
725     "D3DSPR_TEMP",
726     "D3DSPR_INPUT",
727     "D3DSPR_CONST",
728     "D3DSPR_ADDR",
729     "D3DSPR_TEXTURE",
730     "D3DSPR_RASTOUT",
731     "D3DSPR_ATTROUT",
732     "D3DSPR_TEXCRDOUT",
733     "D3DSPR_OUTPUT",
734     "D3DSPR_CONSTINT",
735     "D3DSPR_COLOROUT",
736     "D3DSPR_DEPTHOUT",
737     "D3DSPR_SAMPLER",
738     "D3DSPR_CONST2",
739     "D3DSPR_CONST3",
740     "D3DSPR_CONST4",
741     "D3DSPR_CONSTBOOL",
742     "D3DSPR_LOOP",
743     "D3DSPR_TEMPFLOAT16",
744     "D3DSPR_MISCTYPE",
745     "D3DSPR_LABEL",
746     "D3DSPR_PREDICATE",
747     "D3DSPR_FORCE_DWORD",
748 ])
749
750 D3DSHADER_MISCTYPE_OFFSETS = Enum("D3DSHADER_MISCTYPE_OFFSETS", [
751     "D3DSMO_POSITION",
752     "D3DSMO_FACE",
753 ])
754
755 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
756     "D3DSRO_POSITION",
757     "D3DSRO_FOG",
758     "D3DSRO_POINT_SIZE",
759     "D3DSRO_FORCE_DWORD",
760 ])
761
762 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
763     "D3DVS_ADDRMODE_ABSOLUTE",
764     "D3DVS_ADDRMODE_RELATIVE",
765     "D3DVS_ADDRMODE_FORCE_DWORD",
766 ])
767
768 D3DSHADER_ADDRESSMODE_TYPE = Enum("D3DSHADER_ADDRESSMODE_TYPE", [
769     "D3DSHADER_ADDRMODE_ABSOLUTE",
770     "D3DSHADER_ADDRMODE_RELATIVE",
771     "D3DSHADER_ADDRMODE_FORCE_DWORD",
772 ])
773
774 D3DVS = Flags(DWORD, [
775     "D3DVS_X_X",
776     "D3DVS_X_Y",
777     "D3DVS_X_Z",
778     "D3DVS_X_W",
779     "D3DVS_Y_X",
780     "D3DVS_Y_Y",
781     "D3DVS_Y_Z",
782     "D3DVS_Y_W",
783     "D3DVS_Z_X",
784     "D3DVS_Z_Y",
785     "D3DVS_Z_Z",
786     "D3DVS_Z_W",
787     "D3DVS_W_X",
788     "D3DVS_W_Y",
789     "D3DVS_W_Z",
790     "D3DVS_W_W",
791     "D3DVS_NOSWIZZLE",
792 ])
793
794 D3DSP = Flags(DWORD, [
795     "D3DSP_NOSWIZZLE",
796     "D3DSP_REPLICATERED",
797     "D3DSP_REPLICATEGREEN",
798     "D3DSP_REPLICATEBLUE",
799     "D3DSP_REPLICATEALPHA",
800 ])
801
802 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
803     "D3DSPSM_NONE",
804     "D3DSPSM_NEG",
805     "D3DSPSM_BIAS",
806     "D3DSPSM_BIASNEG",
807     "D3DSPSM_SIGN",
808     "D3DSPSM_SIGNNEG",
809     "D3DSPSM_COMP",
810     "D3DSPSM_X2",
811     "D3DSPSM_X2NEG",
812     "D3DSPSM_DZ",
813     "D3DSPSM_DW",
814     "D3DSPSM_ABS",
815     "D3DSPSM_ABSNEG",
816     "D3DSPSM_NOT",
817     "D3DSPSM_FORCE_DWORD",
818 ])
819
820 D3DBASISTYPE = Enum("D3DBASISTYPE", [
821     "D3DBASIS_BEZIER",
822     "D3DBASIS_BSPLINE",
823     "D3DBASIS_CATMULL_ROM",
824     "D3DBASIS_FORCE_DWORD",
825 ])
826
827 D3DDEGREETYPE = Enum("D3DDEGREETYPE", [
828     "D3DDEGREE_LINEAR",
829     "D3DDEGREE_QUADRATIC",
830     "D3DDEGREE_CUBIC",
831     "D3DDEGREE_QUINTIC",
832     "D3DDEGREE_FORCE_DWORD",
833 ])
834
835 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
836     "D3DPATCHEDGE_DISCRETE",
837     "D3DPATCHEDGE_CONTINUOUS",
838     "D3DPATCHEDGE_FORCE_DWORD",
839 ])
840
841 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
842     "D3DSBT_ALL",
843     "D3DSBT_PIXELSTATE",
844     "D3DSBT_VERTEXSTATE",
845     "D3DSBT_FORCE_DWORD",
846 ])
847
848 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
849     "D3DVBF_DISABLE",
850     "D3DVBF_1WEIGHTS",
851     "D3DVBF_2WEIGHTS",
852     "D3DVBF_3WEIGHTS",
853     "D3DVBF_TWEENING",
854     "D3DVBF_0WEIGHTS",
855     "D3DVBF_FORCE_DWORD",
856 ])
857
858 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
859     "D3DTTFF_DISABLE",
860     "D3DTTFF_COUNT1",
861     "D3DTTFF_COUNT2",
862     "D3DTTFF_COUNT3",
863     "D3DTTFF_COUNT4",
864     "D3DTTFF_PROJECTED",
865     "D3DTTFF_FORCE_DWORD",
866 ])
867
868 D3DDEVTYPE = Enum("D3DDEVTYPE", [
869     "D3DDEVTYPE_HAL",
870     "D3DDEVTYPE_REF",
871     "D3DDEVTYPE_SW",
872     "D3DDEVTYPE_NULLREF",
873     "D3DDEVTYPE_FORCE_DWORD",
874 ])
875
876 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
877     "D3DMULTISAMPLE_NONE",
878     "D3DMULTISAMPLE_NONMASKABLE",
879     "D3DMULTISAMPLE_2_SAMPLES",
880     "D3DMULTISAMPLE_3_SAMPLES",
881     "D3DMULTISAMPLE_4_SAMPLES",
882     "D3DMULTISAMPLE_5_SAMPLES",
883     "D3DMULTISAMPLE_6_SAMPLES",
884     "D3DMULTISAMPLE_7_SAMPLES",
885     "D3DMULTISAMPLE_8_SAMPLES",
886     "D3DMULTISAMPLE_9_SAMPLES",
887     "D3DMULTISAMPLE_10_SAMPLES",
888     "D3DMULTISAMPLE_11_SAMPLES",
889     "D3DMULTISAMPLE_12_SAMPLES",
890     "D3DMULTISAMPLE_13_SAMPLES",
891     "D3DMULTISAMPLE_14_SAMPLES",
892     "D3DMULTISAMPLE_15_SAMPLES",
893     "D3DMULTISAMPLE_16_SAMPLES",
894     "D3DMULTISAMPLE_FORCE_DWORD",
895 ])
896
897 D3DFORMAT = Enum("D3DFORMAT", [
898     "D3DFMT_UNKNOWN",
899     "D3DFMT_R8G8B8",
900     "D3DFMT_A8R8G8B8",
901     "D3DFMT_X8R8G8B8",
902     "D3DFMT_R5G6B5",
903     "D3DFMT_X1R5G5B5",
904     "D3DFMT_A1R5G5B5",
905     "D3DFMT_A4R4G4B4",
906     "D3DFMT_R3G3B2",
907     "D3DFMT_A8",
908     "D3DFMT_A8R3G3B2",
909     "D3DFMT_X4R4G4B4",
910     "D3DFMT_A2B10G10R10",
911     "D3DFMT_A8B8G8R8",
912     "D3DFMT_X8B8G8R8",
913     "D3DFMT_G16R16",
914     "D3DFMT_A2R10G10B10",
915     "D3DFMT_A16B16G16R16",
916     "D3DFMT_A8P8",
917     "D3DFMT_P8",
918     "D3DFMT_L8",
919     "D3DFMT_A8L8",
920     "D3DFMT_A4L4",
921     "D3DFMT_V8U8",
922     "D3DFMT_L6V5U5",
923     "D3DFMT_X8L8V8U8",
924     "D3DFMT_Q8W8V8U8",
925     "D3DFMT_V16U16",
926     "D3DFMT_A2W10V10U10",
927     "D3DFMT_UYVY",
928     "D3DFMT_R8G8_B8G8",
929     "D3DFMT_YUY2",
930     "D3DFMT_G8R8_G8B8",
931     "D3DFMT_DXT1",
932     "D3DFMT_DXT2",
933     "D3DFMT_DXT3",
934     "D3DFMT_DXT4",
935     "D3DFMT_DXT5",
936     "D3DFMT_D16_LOCKABLE",
937     "D3DFMT_D32",
938     "D3DFMT_D15S1",
939     "D3DFMT_D24S8",
940     "D3DFMT_D24X8",
941     "D3DFMT_D24X4S4",
942     "D3DFMT_D16",
943     "D3DFMT_D32F_LOCKABLE",
944     "D3DFMT_D24FS8",
945     "D3DFMT_D32_LOCKABLE",
946     "D3DFMT_S8_LOCKABLE",
947     "D3DFMT_L16",
948     "D3DFMT_VERTEXDATA",
949     "D3DFMT_INDEX16",
950     "D3DFMT_INDEX32",
951     "D3DFMT_Q16W16V16U16",
952     "D3DFMT_MULTI2_ARGB8",
953     "D3DFMT_R16F",
954     "D3DFMT_G16R16F",
955     "D3DFMT_A16B16G16R16F",
956     "D3DFMT_R32F",
957     "D3DFMT_G32R32F",
958     "D3DFMT_A32B32G32R32F",
959     "D3DFMT_CxV8U8",
960     "D3DFMT_A1",
961     "D3DFMT_BINARYBUFFER",
962     "D3DFMT_FORCE_DWORD",
963 ])
964
965 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
966     (UINT, "Width"),
967     (UINT, "Height"),
968     (UINT, "RefreshRate"),
969     (D3DFORMAT, "Format"),
970 ])
971
972 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
973     (UINT, "AdapterOrdinal"),
974     (D3DDEVTYPE, "DeviceType"),
975     (HWND, "hFocusWindow"),
976     (DWORD, "BehaviorFlags"),
977 ])
978
979 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
980     "D3DSWAPEFFECT_DISCARD",
981     "D3DSWAPEFFECT_FLIP",
982     "D3DSWAPEFFECT_COPY",
983     "D3DSWAPEFFECT_FORCE_DWORD",
984 ])
985
986 D3DPOOL = Enum("D3DPOOL", [
987     "D3DPOOL_DEFAULT",
988     "D3DPOOL_MANAGED",
989     "D3DPOOL_SYSTEMMEM",
990     "D3DPOOL_SCRATCH",
991     "D3DPOOL_FORCE_DWORD",
992 ])
993
994 D3DPRESENT = Flags(DWORD, [
995     "D3DPRESENT_RATE_DEFAULT",
996 ])
997
998 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
999     (UINT, "BackBufferWidth"),
1000     (UINT, "BackBufferHeight"),
1001     (D3DFORMAT, "BackBufferFormat"),
1002     (UINT, "BackBufferCount"),
1003     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
1004     (DWORD, "MultiSampleQuality"),
1005     (D3DSWAPEFFECT, "SwapEffect"),
1006     (HWND, "hDeviceWindow"),
1007     (BOOL, "Windowed"),
1008     (BOOL, "EnableAutoDepthStencil"),
1009     (D3DFORMAT, "AutoDepthStencilFormat"),
1010     (DWORD, "Flags"),
1011     (UINT, "FullScreen_RefreshRateInHz"),
1012     (UINT, "PresentationInterval"),
1013 ])
1014
1015 D3DPRESENTFLAG = Flags(DWORD, [
1016     "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
1017     "D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL",
1018     "D3DPRESENTFLAG_DEVICECLIP",
1019     "D3DPRESENTFLAG_VIDEO",
1020     "D3DPRESENTFLAG_NOAUTOROTATE",
1021     "D3DPRESENTFLAG_UNPRUNEDMODE",
1022 ])
1023
1024 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
1025     (WORD, "red[256]"),
1026     (WORD, "green[256]"),
1027     (WORD, "blue[256]"),
1028 ])
1029
1030 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
1031     "D3DBACKBUFFER_TYPE_MONO",
1032     "D3DBACKBUFFER_TYPE_LEFT",
1033     "D3DBACKBUFFER_TYPE_RIGHT",
1034     "D3DBACKBUFFER_TYPE_FORCE_DWORD",
1035 ])
1036
1037 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
1038     "D3DRTYPE_SURFACE",
1039     "D3DRTYPE_VOLUME",
1040     "D3DRTYPE_TEXTURE",
1041     "D3DRTYPE_VOLUMETEXTURE",
1042     "D3DRTYPE_CUBETEXTURE",
1043     "D3DRTYPE_VERTEXBUFFER",
1044     "D3DRTYPE_INDEXBUFFER",
1045     "D3DRTYPE_FORCE_DWORD",
1046 ])
1047
1048 D3DUSAGE = Flags(DWORD, [
1049     "D3DUSAGE_RENDERTARGET",
1050     "D3DUSAGE_DEPTHSTENCIL",
1051     "D3DUSAGE_DYNAMIC",
1052     "D3DUSAGE_NONSECURE",
1053     "D3DUSAGE_AUTOGENMIPMAP",
1054     "D3DUSAGE_DMAP",
1055     "D3DUSAGE_QUERY_LEGACYBUMPMAP",
1056     "D3DUSAGE_QUERY_SRGBREAD",
1057     "D3DUSAGE_QUERY_FILTER",
1058     "D3DUSAGE_QUERY_SRGBWRITE",
1059     "D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING",
1060     "D3DUSAGE_QUERY_VERTEXTEXTURE",
1061     "D3DUSAGE_QUERY_WRAPANDMIP",
1062     "D3DUSAGE_WRITEONLY",
1063     "D3DUSAGE_SOFTWAREPROCESSING",
1064     "D3DUSAGE_DONOTCLIP",
1065     "D3DUSAGE_POINTS",
1066     "D3DUSAGE_RTPATCHES",
1067     "D3DUSAGE_NPATCHES",
1068     "D3DUSAGE_TEXTAPI",
1069 ])
1070
1071 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
1072     "D3DCUBEMAP_FACE_POSITIVE_X",
1073     "D3DCUBEMAP_FACE_NEGATIVE_X",
1074     "D3DCUBEMAP_FACE_POSITIVE_Y",
1075     "D3DCUBEMAP_FACE_NEGATIVE_Y",
1076     "D3DCUBEMAP_FACE_POSITIVE_Z",
1077     "D3DCUBEMAP_FACE_NEGATIVE_Z",
1078     "D3DCUBEMAP_FACE_FORCE_DWORD",
1079 ])
1080
1081 D3DLOCK = Flags(DWORD, [
1082     "D3DLOCK_READONLY",
1083     "D3DLOCK_DISCARD",
1084     "D3DLOCK_NOOVERWRITE",
1085     "D3DLOCK_NOSYSLOCK",
1086     "D3DLOCK_DONOTWAIT",
1087     "D3DLOCK_NO_DIRTY_UPDATE",
1088 ])
1089
1090 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
1091     (D3DFORMAT, "Format"),
1092     (D3DRESOURCETYPE, "Type"),
1093     (DWORD, "Usage"),
1094     (D3DPOOL, "Pool"),
1095     (UINT, "Size"),
1096     (DWORD, "FVF"),
1097 ])
1098
1099 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
1100     (D3DFORMAT, "Format"),
1101     (D3DRESOURCETYPE, "Type"),
1102     (DWORD, "Usage"),
1103     (D3DPOOL, "Pool"),
1104     (UINT, "Size"),
1105 ])
1106
1107 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
1108     (D3DFORMAT, "Format"),
1109     (D3DRESOURCETYPE, "Type"),
1110     (DWORD, "Usage"),
1111     (D3DPOOL, "Pool"),
1112     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
1113     (DWORD, "MultiSampleQuality"),
1114     (UINT, "Width"),
1115     (UINT, "Height"),
1116 ])
1117
1118 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
1119     (D3DFORMAT, "Format"),
1120     (D3DRESOURCETYPE, "Type"),
1121     (DWORD, "Usage"),
1122     (D3DPOOL, "Pool"),
1123     (UINT, "Width"),
1124     (UINT, "Height"),
1125     (UINT, "Depth"),
1126 ])
1127
1128 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
1129     (INT, "Pitch"),
1130     (Pointer(Void), "pBits"),
1131 ])
1132
1133 D3DBOX = Struct("D3DBOX", [
1134     (UINT, "Left"),
1135     (UINT, "Top"),
1136     (UINT, "Right"),
1137     (UINT, "Bottom"),
1138     (UINT, "Front"),
1139     (UINT, "Back"),
1140 ])
1141
1142 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
1143     (INT, "RowPitch"),
1144     (INT, "SlicePitch"),
1145     (Pointer(Void), "pBits"),
1146 ])
1147
1148 D3DRANGE = Struct("D3DRANGE", [
1149     (UINT, "Offset"),
1150     (UINT, "Size"),
1151 ])
1152
1153 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
1154     (UINT, "StartVertexOffsetWidth"),
1155     (UINT, "StartVertexOffsetHeight"),
1156     (UINT, "Width"),
1157     (UINT, "Height"),
1158     (UINT, "Stride"),
1159     (D3DBASISTYPE, "Basis"),
1160     (D3DDEGREETYPE, "Degree"),
1161 ])
1162
1163 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
1164     (UINT, "StartVertexOffset"),
1165     (UINT, "NumVertices"),
1166     (D3DBASISTYPE, "Basis"),
1167     (D3DDEGREETYPE, "Degree"),
1168 ])
1169
1170 D3DADAPTER_IDENTIFIER9 = Struct("D3DADAPTER_IDENTIFIER9", [
1171     (String, "Driver"),
1172     (String, "Description"),
1173     (String, "DeviceName"),
1174     (LARGE_INTEGER, "DriverVersion"),
1175     (DWORD, "VendorId"),
1176     (DWORD, "DeviceId"),
1177     (DWORD, "SubSysId"),
1178     (DWORD, "Revision"),
1179     (GUID, "DeviceIdentifier"),
1180     (DWORD, "WHQLLevel"),
1181 ])
1182
1183 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1184     (BOOL, "InVBlank"),
1185     (UINT, "ScanLine"),
1186 ])
1187
1188 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
1189     "D3DDMT_ENABLE",
1190     "D3DDMT_DISABLE",
1191     "D3DDMT_FORCE_DWORD",
1192 ])
1193
1194 D3DQUERYTYPE = Enum("D3DQUERYTYPE", [
1195     "D3DQUERYTYPE_VCACHE",
1196     "D3DQUERYTYPE_RESOURCEMANAGER",
1197     "D3DQUERYTYPE_VERTEXSTATS",
1198     "D3DQUERYTYPE_EVENT",
1199     "D3DQUERYTYPE_OCCLUSION",
1200     "D3DQUERYTYPE_TIMESTAMP",
1201     "D3DQUERYTYPE_TIMESTAMPDISJOINT",
1202     "D3DQUERYTYPE_TIMESTAMPFREQ",
1203     "D3DQUERYTYPE_PIPELINETIMINGS",
1204     "D3DQUERYTYPE_INTERFACETIMINGS",
1205     "D3DQUERYTYPE_VERTEXTIMINGS",
1206     "D3DQUERYTYPE_PIXELTIMINGS",
1207     "D3DQUERYTYPE_BANDWIDTHTIMINGS",
1208     "D3DQUERYTYPE_CACHEUTILIZATION",
1209 ])
1210
1211 D3DISSUE = Flags(DWORD, [
1212     "D3DISSUE_END",
1213     "D3DISSUE_BEGIN",
1214 ])
1215
1216 D3DGETDATA = Flags(DWORD, [
1217     "D3DGETDATA_FLUSH",
1218 ])
1219
1220 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1221     (BOOL, "bThrashing"),
1222     (DWORD, "ApproxBytesDownloaded"),
1223     (DWORD, "NumEvicts"),
1224     (DWORD, "NumVidCreates"),
1225     (DWORD, "LastPri"),
1226     (DWORD, "NumUsed"),
1227     (DWORD, "NumUsedInVidMem"),
1228     (DWORD, "WorkingSet"),
1229     (DWORD, "WorkingSetBytes"),
1230     (DWORD, "TotalManaged"),
1231     (DWORD, "TotalBytes"),
1232 ])
1233
1234 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1235     (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1236     (D3DRESOURCESTATS, "stats[8]"),
1237 ])
1238
1239 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1240     (DWORD, "NumRenderedTriangles"),
1241     (DWORD, "NumExtraClippingTriangles"),
1242 ])
1243
1244 D3DDEVINFO_VCACHE = Struct("D3DDEVINFO_VCACHE", [
1245     (DWORD, "Pattern"),
1246     (DWORD, "OptMethod"),
1247     (DWORD, "CacheSize"),
1248     (DWORD, "MagicNumber"),
1249 ])
1250
1251 D3DDEVINFO_D3D9PIPELINETIMINGS = Struct("D3DDEVINFO_D3D9PIPELINETIMINGS", [
1252     (FLOAT, "VertexProcessingTimePercent"),
1253     (FLOAT, "PixelProcessingTimePercent"),
1254     (FLOAT, "OtherGPUProcessingTimePercent"),
1255     (FLOAT, "GPUIdleTimePercent"),
1256 ])
1257
1258 D3DDEVINFO_D3D9INTERFACETIMINGS = Struct("D3DDEVINFO_D3D9INTERFACETIMINGS", [
1259     (FLOAT, "WaitingForGPUToUseApplicationResourceTimePercent"),
1260     (FLOAT, "WaitingForGPUToAcceptMoreCommandsTimePercent"),
1261     (FLOAT, "WaitingForGPUToStayWithinLatencyTimePercent"),
1262     (FLOAT, "WaitingForGPUExclusiveResourceTimePercent"),
1263     (FLOAT, "WaitingForGPUOtherTimePercent"),
1264 ])
1265
1266 D3DDEVINFO_D3D9STAGETIMINGS = Struct("D3DDEVINFO_D3D9STAGETIMINGS", [
1267     (FLOAT, "MemoryProcessingPercent"),
1268     (FLOAT, "ComputationProcessingPercent"),
1269 ])
1270
1271 D3DDEVINFO_D3D9BANDWIDTHTIMINGS = Struct("D3DDEVINFO_D3D9BANDWIDTHTIMINGS", [
1272     (FLOAT, "MaxBandwidthUtilized"),
1273     (FLOAT, "FrontEndUploadMemoryUtilizedPercent"),
1274     (FLOAT, "VertexRateUtilizedPercent"),
1275     (FLOAT, "TriangleSetupRateUtilizedPercent"),
1276     (FLOAT, "FillRateUtilizedPercent"),
1277 ])
1278
1279 D3DDEVINFO_D3D9CACHEUTILIZATION = Struct("D3DDEVINFO_D3D9CACHEUTILIZATION", [
1280     (FLOAT, "TextureCacheHitRate"),
1281     (FLOAT, "PostTransformVertexCacheHitRate"),
1282 ])
1283
1284 D3DCOMPOSERECTSOP = Enum("D3DCOMPOSERECTSOP", [
1285     "D3DCOMPOSERECTS_COPY",
1286     "D3DCOMPOSERECTS_OR",
1287     "D3DCOMPOSERECTS_AND",
1288     "D3DCOMPOSERECTS_NEG",
1289     "D3DCOMPOSERECTS_FORCE_DWORD",
1290 ])
1291
1292 D3DCOMPOSERECTDESC = Struct("D3DCOMPOSERECTDESC", [
1293     (USHORT, "X"),
1294     (USHORT, "Y"),
1295     (USHORT, "Width"),
1296     (USHORT, "Height"),
1297 ])
1298
1299 D3DCOMPOSERECTDESTINATION = Struct("D3DCOMPOSERECTDESTINATION", [
1300     (USHORT, "SrcRectIndex"),
1301     (USHORT, "Reserved"),
1302     (Short, "x"),
1303     (Short, "y"),
1304 ])
1305
1306 D3DPRESENTSTATS = Struct("D3DPRESENTSTATS", [
1307     (UINT, "PresentCount"),
1308     (UINT, "PresentRefreshCount"),
1309     (UINT, "SyncRefreshCount"),
1310     (LARGE_INTEGER, "SyncQPCTime"),
1311     (LARGE_INTEGER, "SyncGPUTime"),
1312 ])
1313
1314 D3DSCANLINEORDERING = Enum("D3DSCANLINEORDERING", [
1315     "D3DSCANLINEORDERING_UNKNOWN",
1316     "D3DSCANLINEORDERING_PROGRESSIVE",
1317     "D3DSCANLINEORDERING_INTERLACED",
1318 ])
1319
1320 D3DDISPLAYMODEEX = Struct("D3DDISPLAYMODEEX", [
1321     (UINT, "Size"),
1322     (UINT, "Width"),
1323     (UINT, "Height"),
1324     (UINT, "RefreshRate"),
1325     (D3DFORMAT, "Format"),
1326     (D3DSCANLINEORDERING, "ScanLineOrdering"),
1327 ])
1328
1329 D3DDISPLAYMODEFILTER = Struct("D3DDISPLAYMODEFILTER", [
1330     (UINT, "Size"),
1331     (D3DFORMAT, "Format"),
1332     (D3DSCANLINEORDERING, "ScanLineOrdering"),
1333 ])
1334
1335 D3DDISPLAYROTATION = Enum("D3DDISPLAYROTATION", [
1336     "D3DDISPLAYROTATION_IDENTITY",
1337     "D3DDISPLAYROTATION_90",
1338     "D3DDISPLAYROTATION_180",
1339     "D3DDISPLAYROTATION_270",
1340 ])
1341
1342 D3D9_RESOURCE_PRIORITY = Flags(DWORD, [
1343     "D3D9_RESOURCE_PRIORITY_MINIMUM",
1344     "D3D9_RESOURCE_PRIORITY_LOW",
1345     "D3D9_RESOURCE_PRIORITY_NORMAL",
1346     "D3D9_RESOURCE_PRIORITY_HIGH",
1347     "D3D9_RESOURCE_PRIORITY_MAXIMUM",
1348 ])
1349