]> git.cworth.org Git - apitrace/blob - d3d8types.py
Dump flags.
[apitrace] / d3d8types.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 """d3d8types.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 D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
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 D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", [
85     (DWORD, "ClipUnion"),
86     (DWORD, "ClipIntersection"),
87 ])
88
89 D3DMATERIAL8 = Struct("D3DMATERIAL8", [
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 D3DLIGHT8 = Struct("D3DLIGHT8", [
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 D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
141     (WORD, "wRepeatFactor"),
142     (WORD, "wLinePattern"),
143 ])
144
145 D3DBLEND = Enum("D3DBLEND", [
146     "D3DBLEND_ZERO",
147     "D3DBLEND_ONE",
148     "D3DBLEND_SRCCOLOR",
149     "D3DBLEND_INVSRCCOLOR",
150     "D3DBLEND_SRCALPHA",
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",
160 ])
161
162 D3DBLENDOP = Enum("D3DBLENDOP", [
163     "D3DBLENDOP_ADD",
164     "D3DBLENDOP_SUBTRACT",
165     "D3DBLENDOP_REVSUBTRACT",
166     "D3DBLENDOP_MIN",
167     "D3DBLENDOP_MAX",
168     "D3DBLENDOP_FORCE_DWORD",
169 ])
170
171 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
172     "D3DTADDRESS_WRAP",
173     "D3DTADDRESS_MIRROR",
174     "D3DTADDRESS_CLAMP",
175     "D3DTADDRESS_BORDER",
176     "D3DTADDRESS_MIRRORONCE",
177     "D3DTADDRESS_FORCE_DWORD",
178 ])
179
180 D3DCULL = Enum("D3DCULL", [
181     "D3DCULL_NONE",
182     "D3DCULL_CW",
183     "D3DCULL_CCW",
184     "D3DCULL_FORCE_DWORD",
185 ])
186
187 D3DCMPFUNC = Enum("D3DCMPFUNC", [
188     "D3DCMP_NEVER",
189     "D3DCMP_LESS",
190     "D3DCMP_EQUAL",
191     "D3DCMP_LESSEQUAL",
192     "D3DCMP_GREATER",
193     "D3DCMP_NOTEQUAL",
194     "D3DCMP_GREATEREQUAL",
195     "D3DCMP_ALWAYS",
196     "D3DCMP_FORCE_DWORD",
197 ])
198
199 D3DSTENCILOP = Enum("D3DSTENCILOP", [
200     "D3DSTENCILOP_KEEP",
201     "D3DSTENCILOP_ZERO",
202     "D3DSTENCILOP_REPLACE",
203     "D3DSTENCILOP_INCRSAT",
204     "D3DSTENCILOP_DECRSAT",
205     "D3DSTENCILOP_INVERT",
206     "D3DSTENCILOP_INCR",
207     "D3DSTENCILOP_DECR",
208     "D3DSTENCILOP_FORCE_DWORD",
209 ])
210
211 D3DFOGMODE = Enum("D3DFOGMODE", [
212     "D3DFOG_NONE",
213     "D3DFOG_EXP",
214     "D3DFOG_EXP2",
215     "D3DFOG_LINEAR",
216     "D3DFOG_FORCE_DWORD",
217 ])
218
219 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
220     "D3DZB_FALSE",
221     "D3DZB_TRUE",
222     "D3DZB_USEW",
223     "D3DZB_FORCE_DWORD",
224 ])
225
226 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
227     "D3DPT_POINTLIST",
228     "D3DPT_LINELIST",
229     "D3DPT_LINESTRIP",
230     "D3DPT_TRIANGLELIST",
231     "D3DPT_TRIANGLESTRIP",
232     "D3DPT_TRIANGLEFAN",
233     "D3DPT_FORCE_DWORD",
234 ])
235
236 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
237     "D3DTS_VIEW",
238     "D3DTS_PROJECTION",
239     "D3DTS_TEXTURE0",
240     "D3DTS_TEXTURE1",
241     "D3DTS_TEXTURE2",
242     "D3DTS_TEXTURE3",
243     "D3DTS_TEXTURE4",
244     "D3DTS_TEXTURE5",
245     "D3DTS_TEXTURE6",
246     "D3DTS_TEXTURE7",
247     "D3DTS_FORCE_DWORD",
248 ])
249
250 D3DTS = Flags(DWORD, [
251     "D3DTS_WORLDMATRIX(index)",
252     "D3DTS_WORLD",
253     "D3DTS_WORLD1",
254     "D3DTS_WORLD2",
255     "D3DTS_WORLD3",
256 ])
257
258 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
259     "D3DRS_ZENABLE",
260     "D3DRS_FILLMODE",
261     "D3DRS_SHADEMODE",
262     "D3DRS_LINEPATTERN",
263     "D3DRS_ZWRITEENABLE",
264     "D3DRS_ALPHATESTENABLE",
265     "D3DRS_LASTPIXEL",
266     "D3DRS_SRCBLEND",
267     "D3DRS_DESTBLEND",
268     "D3DRS_CULLMODE",
269     "D3DRS_ZFUNC",
270     "D3DRS_ALPHAREF",
271     "D3DRS_ALPHAFUNC",
272     "D3DRS_DITHERENABLE",
273     "D3DRS_ALPHABLENDENABLE",
274     "D3DRS_FOGENABLE",
275     "D3DRS_SPECULARENABLE",
276     "D3DRS_ZVISIBLE",
277     "D3DRS_FOGCOLOR",
278     "D3DRS_FOGTABLEMODE",
279     "D3DRS_FOGSTART",
280     "D3DRS_FOGEND",
281     "D3DRS_FOGDENSITY",
282     "D3DRS_EDGEANTIALIAS",
283     "D3DRS_ZBIAS",
284     "D3DRS_RANGEFOGENABLE",
285     "D3DRS_STENCILENABLE",
286     "D3DRS_STENCILFAIL",
287     "D3DRS_STENCILZFAIL",
288     "D3DRS_STENCILPASS",
289     "D3DRS_STENCILFUNC",
290     "D3DRS_STENCILREF",
291     "D3DRS_STENCILMASK",
292     "D3DRS_STENCILWRITEMASK",
293     "D3DRS_TEXTUREFACTOR",
294     "D3DRS_WRAP0",
295     "D3DRS_WRAP1",
296     "D3DRS_WRAP2",
297     "D3DRS_WRAP3",
298     "D3DRS_WRAP4",
299     "D3DRS_WRAP5",
300     "D3DRS_WRAP6",
301     "D3DRS_WRAP7",
302     "D3DRS_CLIPPING",
303     "D3DRS_LIGHTING",
304     "D3DRS_AMBIENT",
305     "D3DRS_FOGVERTEXMODE",
306     "D3DRS_COLORVERTEX",
307     "D3DRS_LOCALVIEWER",
308     "D3DRS_NORMALIZENORMALS",
309     "D3DRS_DIFFUSEMATERIALSOURCE",
310     "D3DRS_SPECULARMATERIALSOURCE",
311     "D3DRS_AMBIENTMATERIALSOURCE",
312     "D3DRS_EMISSIVEMATERIALSOURCE",
313     "D3DRS_VERTEXBLEND",
314     "D3DRS_CLIPPLANEENABLE",
315     "D3DRS_SOFTWAREVERTEXPROCESSING",
316     "D3DRS_POINTSIZE",
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",
331     "D3DRS_TWEENFACTOR",
332     "D3DRS_BLENDOP",
333     "D3DRS_POSITIONORDER",
334     "D3DRS_NORMALORDER",
335     "D3DRS_FORCE_DWORD",
336 ])
337
338 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
339     "D3DMCS_MATERIAL",
340     "D3DMCS_COLOR1",
341     "D3DMCS_COLOR2",
342     "D3DMCS_FORCE_DWORD",
343 ])
344
345 D3DWRAP = Flags(DWORD, [
346     "D3DWRAP_U",
347     "D3DWRAP_V",
348     "D3DWRAP_W",
349 ])
350
351 D3DWRAPCOORD = Flags(DWORD, [
352     "D3DWRAPCOORD_0",
353     "D3DWRAPCOORD_1",
354     "D3DWRAPCOORD_2",
355     "D3DWRAPCOORD_3",
356 ])
357
358 D3DCOLORWRITEENABLE = Flags(DWORD, [
359     "D3DCOLORWRITEENABLE_RED",
360     "D3DCOLORWRITEENABLE_GREEN",
361     "D3DCOLORWRITEENABLE_BLUE",
362     "D3DCOLORWRITEENABLE_ALPHA",
363 ])
364
365 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
366     "D3DTSS_COLOROP",
367     "D3DTSS_COLORARG1",
368     "D3DTSS_COLORARG2",
369     "D3DTSS_ALPHAOP",
370     "D3DTSS_ALPHAARG1",
371     "D3DTSS_ALPHAARG2",
372     "D3DTSS_BUMPENVMAT00",
373     "D3DTSS_BUMPENVMAT01",
374     "D3DTSS_BUMPENVMAT10",
375     "D3DTSS_BUMPENVMAT11",
376     "D3DTSS_TEXCOORDINDEX",
377     "D3DTSS_ADDRESSU",
378     "D3DTSS_ADDRESSV",
379     "D3DTSS_BORDERCOLOR",
380     "D3DTSS_MAGFILTER",
381     "D3DTSS_MINFILTER",
382     "D3DTSS_MIPFILTER",
383     "D3DTSS_MIPMAPLODBIAS",
384     "D3DTSS_MAXMIPLEVEL",
385     "D3DTSS_MAXANISOTROPY",
386     "D3DTSS_BUMPENVLSCALE",
387     "D3DTSS_BUMPENVLOFFSET",
388     "D3DTSS_TEXTURETRANSFORMFLAGS",
389     "D3DTSS_ADDRESSW",
390     "D3DTSS_COLORARG0",
391     "D3DTSS_ALPHAARG0",
392     "D3DTSS_RESULTARG",
393     "D3DTSS_FORCE_DWORD",
394 ])
395
396 D3DTSS = Flags(DWORD, [
397     "D3DTSS_TCI_PASSTHRU",
398     "D3DTSS_TCI_CAMERASPACENORMAL",
399     "D3DTSS_TCI_CAMERASPACEPOSITION",
400     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
401 ])
402
403 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
404     "D3DTOP_DISABLE",
405     "D3DTOP_SELECTARG1",
406     "D3DTOP_SELECTARG2",
407     "D3DTOP_MODULATE",
408     "D3DTOP_MODULATE2X",
409     "D3DTOP_MODULATE4X",
410     "D3DTOP_ADD",
411     "D3DTOP_ADDSIGNED",
412     "D3DTOP_ADDSIGNED2X",
413     "D3DTOP_SUBTRACT",
414     "D3DTOP_ADDSMOOTH",
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",
425     "D3DTOP_BUMPENVMAP",
426     "D3DTOP_BUMPENVMAPLUMINANCE",
427     "D3DTOP_DOTPRODUCT3",
428     "D3DTOP_MULTIPLYADD",
429     "D3DTOP_LERP",
430     "D3DTOP_FORCE_DWORD",
431 ])
432
433 D3DTA = Flags(DWORD, [
434     "D3DTA_SELECTMASK",
435     "D3DTA_DIFFUSE",
436     "D3DTA_CURRENT",
437     "D3DTA_TEXTURE",
438     "D3DTA_TFACTOR",
439     "D3DTA_SPECULAR",
440     "D3DTA_TEMP",
441     "D3DTA_COMPLEMENT",
442     "D3DTA_ALPHAREPLICATE",
443 ])
444
445 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
446     "D3DTEXF_NONE",
447     "D3DTEXF_POINT",
448     "D3DTEXF_LINEAR",
449     "D3DTEXF_ANISOTROPIC",
450     "D3DTEXF_FLATCUBIC",
451     "D3DTEXF_GAUSSIANCUBIC",
452     "D3DTEXF_FORCE_DWORD",
453 ])
454
455 D3DPV = Flags(DWORD, [
456     "D3DPV_DONOTCOPYDATA",
457 ])
458
459 D3DFVF = Flags(DWORD, [
460     "D3DFVF_RESERVED0",
461     "D3DFVF_POSITION_MASK",
462     "D3DFVF_XYZ",
463     "D3DFVF_XYZRHW",
464     "D3DFVF_XYZB1",
465     "D3DFVF_XYZB2",
466     "D3DFVF_XYZB3",
467     "D3DFVF_XYZB4",
468     "D3DFVF_XYZB5",
469     "D3DFVF_NORMAL",
470     "D3DFVF_PSIZE",
471     "D3DFVF_DIFFUSE",
472     "D3DFVF_SPECULAR",
473     "D3DFVF_TEXCOUNT_MASK",
474     "D3DFVF_TEXCOUNT_SHIFT",
475     "D3DFVF_TEX0",
476     "D3DFVF_TEX1",
477     "D3DFVF_TEX2",
478     "D3DFVF_TEX3",
479     "D3DFVF_TEX4",
480     "D3DFVF_TEX5",
481     "D3DFVF_TEX6",
482     "D3DFVF_TEX7",
483     "D3DFVF_TEX8",
484     "D3DFVF_LASTBETA_UBYTE4",
485     "D3DFVF_RESERVED2",
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)",
502 ])
503
504 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
505     "D3DVSD_TOKEN_NOP",
506     "D3DVSD_TOKEN_STREAM",
507     "D3DVSD_TOKEN_STREAMDATA",
508     "D3DVSD_TOKEN_TESSELLATOR",
509     "D3DVSD_TOKEN_CONSTMEM",
510     "D3DVSD_TOKEN_EXT",
511     "D3DVSD_TOKEN_END",
512     "D3DVSD_FORCE_DWORD",
513 ])
514
515 D3DVSDT = Flags(DWORD, [
516     "D3DVSDT_FLOAT1",
517     "D3DVSDT_FLOAT2",
518     "D3DVSDT_FLOAT3",
519     "D3DVSDT_FLOAT4",
520     "D3DVSDT_D3DCOLOR",
521     "D3DVSDT_UBYTE4",
522     "D3DVSDT_SHORT2",
523     "D3DVSDT_SHORT4",
524     "D3DVSDE_POSITION",
525     "D3DVSDE_BLENDWEIGHT",
526     "D3DVSDE_BLENDINDICES",
527     "D3DVSDE_NORMAL",
528     "D3DVSDE_PSIZE",
529     "D3DVSDE_DIFFUSE",
530     "D3DVSDE_SPECULAR",
531     "D3DVSDE_TEXCOORD0",
532     "D3DVSDE_TEXCOORD1",
533     "D3DVSDE_TEXCOORD2",
534     "D3DVSDE_TEXCOORD3",
535     "D3DVSDE_TEXCOORD4",
536     "D3DVSDE_TEXCOORD5",
537     "D3DVSDE_TEXCOORD6",
538     "D3DVSDE_TEXCOORD7",
539     "D3DVSDE_POSITION2",
540     "D3DVSDE_NORMAL2",
541     "D3DDP_MAXTEXCOORD",
542     "D3DSI_OPCODE_MASK",
543 ])
544
545 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
546     "D3DSIO_NOP",
547     "D3DSIO_MOV",
548     "D3DSIO_ADD",
549     "D3DSIO_SUB",
550     "D3DSIO_MAD",
551     "D3DSIO_MUL",
552     "D3DSIO_RCP",
553     "D3DSIO_RSQ",
554     "D3DSIO_DP3",
555     "D3DSIO_DP4",
556     "D3DSIO_MIN",
557     "D3DSIO_MAX",
558     "D3DSIO_SLT",
559     "D3DSIO_SGE",
560     "D3DSIO_EXP",
561     "D3DSIO_LOG",
562     "D3DSIO_LIT",
563     "D3DSIO_DST",
564     "D3DSIO_LRP",
565     "D3DSIO_FRC",
566     "D3DSIO_M4x4",
567     "D3DSIO_M4x3",
568     "D3DSIO_M3x4",
569     "D3DSIO_M3x3",
570     "D3DSIO_M3x2",
571     "D3DSIO_TEXCOORD",
572     "D3DSIO_TEXKILL",
573     "D3DSIO_TEX",
574     "D3DSIO_TEXBEM",
575     "D3DSIO_TEXBEML",
576     "D3DSIO_TEXREG2AR",
577     "D3DSIO_TEXREG2GB",
578     "D3DSIO_TEXM3x2PAD",
579     "D3DSIO_TEXM3x2TEX",
580     "D3DSIO_TEXM3x3PAD",
581     "D3DSIO_TEXM3x3TEX",
582     "D3DSIO_TEXM3x3DIFF",
583     "D3DSIO_TEXM3x3SPEC",
584     "D3DSIO_TEXM3x3VSPEC",
585     "D3DSIO_EXPP",
586     "D3DSIO_LOGP",
587     "D3DSIO_CND",
588     "D3DSIO_DEF",
589     "D3DSIO_TEXREG2RGB",
590     "D3DSIO_TEXDP3TEX",
591     "D3DSIO_TEXM3x2DEPTH",
592     "D3DSIO_TEXDP3",
593     "D3DSIO_TEXM3x3",
594     "D3DSIO_TEXDEPTH",
595     "D3DSIO_CMP",
596     "D3DSIO_BEM",
597     "D3DSIO_PHASE",
598     "D3DSIO_COMMENT",
599     "D3DSIO_END",
600     "D3DSIO_FORCE_DWORD",
601 ])
602
603 D3DSP = Flags(DWORD, [
604     "D3DSP_WRITEMASK_0",
605     "D3DSP_WRITEMASK_1",
606     "D3DSP_WRITEMASK_2",
607     "D3DSP_WRITEMASK_3",
608     "D3DSP_WRITEMASK_ALL",
609 ])
610
611 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
612     "D3DSPDM_NONE",
613     "D3DSPDM_SATURATE",
614     "D3DSPDM_FORCE_DWORD",
615 ])
616
617 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
618     "D3DSPR_TEMP",
619     "D3DSPR_INPUT",
620     "D3DSPR_CONST",
621     "D3DSPR_ADDR",
622     "D3DSPR_TEXTURE",
623     "D3DSPR_RASTOUT",
624     "D3DSPR_ATTROUT",
625     "D3DSPR_TEXCRDOUT",
626     "D3DSPR_FORCE_DWORD",
627 ])
628
629 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
630     "D3DSRO_POSITION",
631     "D3DSRO_FOG",
632     "D3DSRO_POINT_SIZE",
633     "D3DSRO_FORCE_DWORD",
634 ])
635
636 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
637     "D3DVS_ADDRMODE_ABSOLUTE",
638     "D3DVS_ADDRMODE_RELATIVE",
639     "D3DVS_ADDRMODE_FORCE_DWORD",
640 ])
641
642 D3DVS = Flags(DWORD, [
643     "D3DVS_X_X",
644     "D3DVS_X_Y",
645     "D3DVS_X_Z",
646     "D3DVS_X_W",
647     "D3DVS_Y_X",
648     "D3DVS_Y_Y",
649     "D3DVS_Y_Z",
650     "D3DVS_Y_W",
651     "D3DVS_Z_X",
652     "D3DVS_Z_Y",
653     "D3DVS_Z_Z",
654     "D3DVS_Z_W",
655     "D3DVS_W_X",
656     "D3DVS_W_Y",
657     "D3DVS_W_Z",
658     "D3DVS_W_W",
659     "D3DVS_NOSWIZZLE",
660 ])
661
662 D3DSP = Flags(DWORD, [
663     "D3DSP_NOSWIZZLE",
664     "D3DSP_REPLICATERED",
665     "D3DSP_REPLICATEGREEN",
666     "D3DSP_REPLICATEBLUE",
667     "D3DSP_REPLICATEALPHA",
668 ])
669
670 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
671     "D3DSPSM_NONE",
672     "D3DSPSM_NEG",
673     "D3DSPSM_BIAS",
674     "D3DSPSM_BIASNEG",
675     "D3DSPSM_SIGN",
676     "D3DSPSM_SIGNNEG",
677     "D3DSPSM_COMP",
678     "D3DSPSM_X2",
679     "D3DSPSM_X2NEG",
680     "D3DSPSM_DZ",
681     "D3DSPSM_DW",
682     "D3DSPSM_FORCE_DWORD",
683 ])
684
685 D3DBASISTYPE = Enum("D3DBASISTYPE", [
686     "D3DBASIS_BEZIER",
687     "D3DBASIS_BSPLINE",
688     "D3DBASIS_INTERPOLATE",
689     "D3DBASIS_FORCE_DWORD",
690 ])
691
692 D3DORDERTYPE = Enum("D3DORDERTYPE", [
693     "D3DORDER_LINEAR",
694     "D3DORDER_QUADRATIC",
695     "D3DORDER_CUBIC",
696     "D3DORDER_QUINTIC",
697     "D3DORDER_FORCE_DWORD",
698 ])
699
700 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
701     "D3DPATCHEDGE_DISCRETE",
702     "D3DPATCHEDGE_CONTINUOUS",
703     "D3DPATCHEDGE_FORCE_DWORD",
704 ])
705
706 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
707     "D3DSBT_ALL",
708     "D3DSBT_PIXELSTATE",
709     "D3DSBT_VERTEXSTATE",
710     "D3DSBT_FORCE_DWORD",
711 ])
712
713 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
714     "D3DVBF_DISABLE",
715     "D3DVBF_1WEIGHTS",
716     "D3DVBF_2WEIGHTS",
717     "D3DVBF_3WEIGHTS",
718     "D3DVBF_TWEENING",
719     "D3DVBF_0WEIGHTS",
720     "D3DVBF_FORCE_DWORD",
721 ])
722
723 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
724     "D3DTTFF_DISABLE",
725     "D3DTTFF_COUNT1",
726     "D3DTTFF_COUNT2",
727     "D3DTTFF_COUNT3",
728     "D3DTTFF_COUNT4",
729     "D3DTTFF_PROJECTED",
730     "D3DTTFF_FORCE_DWORD",
731 ])
732
733 D3DDEVTYPE = Enum("D3DDEVTYPE", [
734     "D3DDEVTYPE_HAL",
735     "D3DDEVTYPE_REF",
736     "D3DDEVTYPE_SW",
737     "D3DDEVTYPE_FORCE_DWORD",
738 ])
739
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",
758 ])
759
760 D3DFORMAT = Enum("D3DFORMAT", [
761     "D3DFMT_UNKNOWN",
762     "D3DFMT_R8G8B8",
763     "D3DFMT_A8R8G8B8",
764     "D3DFMT_X8R8G8B8",
765     "D3DFMT_R5G6B5",
766     "D3DFMT_X1R5G5B5",
767     "D3DFMT_A1R5G5B5",
768     "D3DFMT_A4R4G4B4",
769     "D3DFMT_R3G3B2",
770     "D3DFMT_A8",
771     "D3DFMT_A8R3G3B2",
772     "D3DFMT_X4R4G4B4",
773     "D3DFMT_A2B10G10R10",
774     "D3DFMT_G16R16",
775     "D3DFMT_A8P8",
776     "D3DFMT_P8",
777     "D3DFMT_L8",
778     "D3DFMT_A8L8",
779     "D3DFMT_A4L4",
780     "D3DFMT_V8U8",
781     "D3DFMT_L6V5U5",
782     "D3DFMT_X8L8V8U8",
783     "D3DFMT_Q8W8V8U8",
784     "D3DFMT_V16U16",
785     "D3DFMT_W11V11U10",
786     "D3DFMT_A2W10V10U10",
787     "D3DFMT_UYVY",
788     "D3DFMT_YUY2",
789     "D3DFMT_DXT1",
790     "D3DFMT_DXT2",
791     "D3DFMT_DXT3",
792     "D3DFMT_DXT4",
793     "D3DFMT_DXT5",
794     "D3DFMT_D16_LOCKABLE",
795     "D3DFMT_D32",
796     "D3DFMT_D15S1",
797     "D3DFMT_D24S8",
798     "D3DFMT_D16",
799     "D3DFMT_D24X8",
800     "D3DFMT_D24X4S4",
801     "D3DFMT_VERTEXDATA",
802     "D3DFMT_INDEX16",
803     "D3DFMT_INDEX32",
804     "D3DFMT_FORCE_DWORD",
805 ])
806
807 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
808     (UINT, "Width"),
809     (UINT, "Height"),
810     (UINT, "RefreshRate"),
811     (D3DFORMAT, "Format"),
812 ])
813
814 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
815     (UINT, "AdapterOrdinal"),
816     (D3DDEVTYPE, "DeviceType"),
817     (HWND, "hFocusWindow"),
818     (DWORD, "BehaviorFlags"),
819 ])
820
821 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
822     "D3DSWAPEFFECT_DISCARD",
823     "D3DSWAPEFFECT_FLIP",
824     "D3DSWAPEFFECT_COPY",
825     "D3DSWAPEFFECT_COPY_VSYNC",
826     "D3DSWAPEFFECT_FORCE_DWORD",
827 ])
828
829 D3DPOOL = Enum("D3DPOOL", [
830     "D3DPOOL_DEFAULT",
831     "D3DPOOL_MANAGED",
832     "D3DPOOL_SYSTEMMEM",
833     "D3DPOOL_SCRATCH",
834     "D3DPOOL_FORCE_DWORD",
835 ])
836
837 D3DPRESENT = Flags(DWORD, [
838     "D3DPRESENT_RATE_DEFAULT",
839     "D3DPRESENT_RATE_UNLIMITED",
840 ])
841
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"),
850     (BOOL, "Windowed"),
851     (BOOL, "EnableAutoDepthStencil"),
852     (D3DFORMAT, "AutoDepthStencilFormat"),
853     (DWORD, "Flags"),
854     (UINT, "FullScreen_RefreshRateInHz"),
855     (UINT, "FullScreen_PresentationInterval"),
856 ])
857
858 D3DPRESENTFLAG = Flags(DWORD, [
859     "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
860 ])
861
862 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
863     (WORD, "red[256]"),
864     (WORD, "green[256]"),
865     (WORD, "blue[256]"),
866 ])
867
868 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
869     "D3DBACKBUFFER_TYPE_MONO",
870     "D3DBACKBUFFER_TYPE_LEFT",
871     "D3DBACKBUFFER_TYPE_RIGHT",
872     "D3DBACKBUFFER_TYPE_FORCE_DWORD",
873 ])
874
875 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
876     "D3DRTYPE_SURFACE",
877     "D3DRTYPE_VOLUME",
878     "D3DRTYPE_TEXTURE",
879     "D3DRTYPE_VOLUMETEXTURE",
880     "D3DRTYPE_CUBETEXTURE",
881     "D3DRTYPE_VERTEXBUFFER",
882     "D3DRTYPE_INDEXBUFFER",
883     "D3DRTYPE_FORCE_DWORD",
884 ])
885
886 D3DUSAGE = Flags(DWORD, [
887     "D3DUSAGE_RENDERTARGET",
888     "D3DUSAGE_DEPTHSTENCIL",
889     "D3DUSAGE_WRITEONLY",
890     "D3DUSAGE_SOFTWAREPROCESSING",
891     "D3DUSAGE_DONOTCLIP",
892     "D3DUSAGE_POINTS",
893     "D3DUSAGE_RTPATCHES",
894     "D3DUSAGE_NPATCHES",
895     "D3DUSAGE_DYNAMIC",
896 ])
897
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",
906 ])
907
908 D3DLOCK = Flags(DWORD, [
909     "D3DLOCK_READONLY",
910     "D3DLOCK_DISCARD",
911     "D3DLOCK_NOOVERWRITE",
912     "D3DLOCK_NOSYSLOCK",
913     "D3DLOCK_NO_DIRTY_UPDATE",
914 ])
915
916 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
917     (D3DFORMAT, "Format"),
918     (D3DRESOURCETYPE, "Type"),
919     (DWORD, "Usage"),
920     (D3DPOOL, "Pool"),
921     (UINT, "Size"),
922     (DWORD, "FVF"),
923 ])
924
925 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
926     (D3DFORMAT, "Format"),
927     (D3DRESOURCETYPE, "Type"),
928     (DWORD, "Usage"),
929     (D3DPOOL, "Pool"),
930     (UINT, "Size"),
931 ])
932
933 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
934     (D3DFORMAT, "Format"),
935     (D3DRESOURCETYPE, "Type"),
936     (DWORD, "Usage"),
937     (D3DPOOL, "Pool"),
938     (UINT, "Size"),
939     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
940     (UINT, "Width"),
941     (UINT, "Height"),
942 ])
943
944 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
945     (D3DFORMAT, "Format"),
946     (D3DRESOURCETYPE, "Type"),
947     (DWORD, "Usage"),
948     (D3DPOOL, "Pool"),
949     (UINT, "Size"),
950     (UINT, "Width"),
951     (UINT, "Height"),
952     (UINT, "Depth"),
953 ])
954
955 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
956     (INT, "Pitch"),
957     (PVOID, "pBits"),
958 ])
959
960 D3DBOX = Struct("D3DBOX", [
961     (UINT, "Left"),
962     (UINT, "Top"),
963     (UINT, "Right"),
964     (UINT, "Bottom"),
965     (UINT, "Front"),
966     (UINT, "Back"),
967 ])
968
969 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
970     (INT, "RowPitch"),
971     (INT, "SlicePitch"),
972     (PVOID, "pBits"),
973 ])
974
975 D3DRANGE = Struct("D3DRANGE", [
976     (UINT, "Offset"),
977     (UINT, "Size"),
978 ])
979
980 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
981     (UINT, "StartVertexOffsetWidth"),
982     (UINT, "StartVertexOffsetHeight"),
983     (UINT, "Width"),
984     (UINT, "Height"),
985     (UINT, "Stride"),
986     (D3DBASISTYPE, "Basis"),
987     (D3DORDERTYPE, "Order"),
988 ])
989
990 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
991     (UINT, "StartVertexOffset"),
992     (UINT, "NumVertices"),
993     (D3DBASISTYPE, "Basis"),
994     (D3DORDERTYPE, "Order"),
995 ])
996
997 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
998     (String, "Driver"),
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"),
1007 ])
1008
1009 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1010     (BOOL, "InVBlank"),
1011     (UINT, "ScanLine"),
1012 ])
1013
1014 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
1015     "D3DDMT_ENABLE",
1016     "D3DDMT_DISABLE",
1017     "D3DDMT_FORCE_DWORD",
1018 ])
1019
1020 D3DDEVINFOID = Flags(DWORD, [
1021     "D3DDEVINFOID_RESOURCEMANAGER",
1022     "D3DDEVINFOID_VERTEXSTATS",
1023 ])
1024
1025 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1026     (BOOL, "bThrashing"),
1027     (DWORD, "ApproxBytesDownloaded"),
1028     (DWORD, "NumEvicts"),
1029     (DWORD, "NumVidCreates"),
1030     (DWORD, "LastPri"),
1031     (DWORD, "NumUsed"),
1032     (DWORD, "NumUsedInVidMem"),
1033     (DWORD, "WorkingSet"),
1034     (DWORD, "WorkingSetBytes"),
1035     (DWORD, "TotalManaged"),
1036     (DWORD, "TotalBytes"),
1037 ])
1038
1039 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1040     (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1041 ])
1042
1043 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1044     (DWORD, "NumRenderedTriangles"),
1045     (DWORD, "NumExtraClippingTriangles"),
1046 ])
1047