]> git.cworth.org Git - apitrace/blob - d3d8types.py
Match GL specs.
[apitrace] / d3d8types.py
1 ##########################################################################
2 #
3 # Copyright 2008-2009 VMware, Inc.
4 # All Rights Reserved.
5 #
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:
12 #
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
15 #
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
22 # THE SOFTWARE.
23 #
24 ##########################################################################/
25
26 """d3d8types.h"""
27
28 from windows import *
29
30 D3DCOLOR = Alias("D3DCOLOR", DWORD)
31
32 D3DVECTOR = Struct("D3DVECTOR", [
33     (Float, "x"),
34     (Float, "y"),
35     (Float, "z"),
36 ])
37
38 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
39     (Float, "r"),
40     (Float, "g"),
41     (Float, "b"),
42     (Float, "a"),
43 ])
44
45 D3DRECT = Struct("D3DRECT", [
46     (LONG, "x1"),
47     (LONG, "y1"),
48     (LONG, "x2"),
49     (LONG, "y2"),
50 ])
51
52 D3DMATRIX = Struct("D3DMATRIX", [
53     (Array(Array(Float, "4"), "4"), "m"),
54 ])
55
56 D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
57     (DWORD, "X"),
58     (DWORD, "Y"),
59     (DWORD, "Width"),
60     (DWORD, "Height"),
61     (Float, "MinZ"),
62     (Float, "MaxZ"),
63 ])
64
65 D3DCLIP = Flags(DWORD, [
66     "D3DCLIPPLANE0",
67     "D3DCLIPPLANE1",
68     "D3DCLIPPLANE2",
69     "D3DCLIPPLANE3",
70     "D3DCLIPPLANE4",
71     "D3DCLIPPLANE5",
72 ])
73
74 D3DCS = Flags(DWORD, [
75     "D3DCS_ALL",
76     "D3DCS_LEFT",
77     "D3DCS_RIGHT",
78     "D3DCS_TOP",
79     "D3DCS_BOTTOM",
80     "D3DCS_FRONT",
81     "D3DCS_BACK",
82     "D3DCS_PLANE0",
83     "D3DCS_PLANE1",
84     "D3DCS_PLANE2",
85     "D3DCS_PLANE3",
86     "D3DCS_PLANE4",
87     "D3DCS_PLANE5",
88 ])
89
90 D3DCLIPSTATUS8 = Struct("D3DCLIPSTATUS8", [
91     (DWORD, "ClipUnion"),
92     (DWORD, "ClipIntersection"),
93 ])
94
95 D3DMATERIAL8 = Struct("D3DMATERIAL8", [
96     (D3DCOLORVALUE, "Diffuse"),
97     (D3DCOLORVALUE, "Ambient"),
98     (D3DCOLORVALUE, "Specular"),
99     (D3DCOLORVALUE, "Emissive"),
100     (Float, "Power"),
101 ])
102
103 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
104     "D3DLIGHT_POINT",
105     "D3DLIGHT_SPOT",
106     "D3DLIGHT_DIRECTIONAL",
107     "D3DLIGHT_FORCE_DWORD",
108 ])
109
110 D3DLIGHT8 = Struct("D3DLIGHT8", [
111     (D3DLIGHTTYPE, "Type"),
112     (D3DCOLORVALUE, "Diffuse"),
113     (D3DCOLORVALUE, "Specular"),
114     (D3DCOLORVALUE, "Ambient"),
115     (D3DVECTOR, "Position"),
116     (D3DVECTOR, "Direction"),
117     (Float, "Range"),
118     (Float, "Falloff"),
119     (Float, "Attenuation0"),
120     (Float, "Attenuation1"),
121     (Float, "Attenuation2"),
122     (Float, "Theta"),
123     (Float, "Phi"),
124 ])
125
126 D3DCS = Flags(DWORD, [
127     "D3DCLEAR_TARGET",
128     "D3DCLEAR_ZBUFFER",
129     "D3DCLEAR_STENCIL",
130 ])
131
132 D3DSHADEMODE = Enum("D3DSHADEMODE", [
133     "D3DSHADE_FLAT",
134     "D3DSHADE_GOURAUD",
135     "D3DSHADE_PHONG",
136     "D3DSHADE_FORCE_DWORD",
137 ])
138
139 D3DFILLMODE = Enum("D3DFILLMODE", [
140     "D3DFILL_POINT",
141     "D3DFILL_WIREFRAME",
142     "D3DFILL_SOLID",
143     "D3DFILL_FORCE_DWORD",
144 ])
145
146 D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
147     (WORD, "wRepeatFactor"),
148     (WORD, "wLinePattern"),
149 ])
150
151 D3DBLEND = Enum("D3DBLEND", [
152     "D3DBLEND_ZERO",
153     "D3DBLEND_ONE",
154     "D3DBLEND_SRCCOLOR",
155     "D3DBLEND_INVSRCCOLOR",
156     "D3DBLEND_SRCALPHA",
157     "D3DBLEND_INVSRCALPHA",
158     "D3DBLEND_DESTALPHA",
159     "D3DBLEND_INVDESTALPHA",
160     "D3DBLEND_DESTCOLOR",
161     "D3DBLEND_INVDESTCOLOR",
162     "D3DBLEND_SRCALPHASAT",
163     "D3DBLEND_BOTHSRCALPHA",
164     "D3DBLEND_BOTHINVSRCALPHA",
165     "D3DBLEND_FORCE_DWORD",
166 ])
167
168 D3DBLENDOP = Enum("D3DBLENDOP", [
169     "D3DBLENDOP_ADD",
170     "D3DBLENDOP_SUBTRACT",
171     "D3DBLENDOP_REVSUBTRACT",
172     "D3DBLENDOP_MIN",
173     "D3DBLENDOP_MAX",
174     "D3DBLENDOP_FORCE_DWORD",
175 ])
176
177 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
178     "D3DTADDRESS_WRAP",
179     "D3DTADDRESS_MIRROR",
180     "D3DTADDRESS_CLAMP",
181     "D3DTADDRESS_BORDER",
182     "D3DTADDRESS_MIRRORONCE",
183     "D3DTADDRESS_FORCE_DWORD",
184 ])
185
186 D3DCULL = Enum("D3DCULL", [
187     "D3DCULL_NONE",
188     "D3DCULL_CW",
189     "D3DCULL_CCW",
190     "D3DCULL_FORCE_DWORD",
191 ])
192
193 D3DCMPFUNC = Enum("D3DCMPFUNC", [
194     "D3DCMP_NEVER",
195     "D3DCMP_LESS",
196     "D3DCMP_EQUAL",
197     "D3DCMP_LESSEQUAL",
198     "D3DCMP_GREATER",
199     "D3DCMP_NOTEQUAL",
200     "D3DCMP_GREATEREQUAL",
201     "D3DCMP_ALWAYS",
202     "D3DCMP_FORCE_DWORD",
203 ])
204
205 D3DSTENCILOP = Enum("D3DSTENCILOP", [
206     "D3DSTENCILOP_KEEP",
207     "D3DSTENCILOP_ZERO",
208     "D3DSTENCILOP_REPLACE",
209     "D3DSTENCILOP_INCRSAT",
210     "D3DSTENCILOP_DECRSAT",
211     "D3DSTENCILOP_INVERT",
212     "D3DSTENCILOP_INCR",
213     "D3DSTENCILOP_DECR",
214     "D3DSTENCILOP_FORCE_DWORD",
215 ])
216
217 D3DFOGMODE = Enum("D3DFOGMODE", [
218     "D3DFOG_NONE",
219     "D3DFOG_EXP",
220     "D3DFOG_EXP2",
221     "D3DFOG_LINEAR",
222     "D3DFOG_FORCE_DWORD",
223 ])
224
225 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
226     "D3DZB_FALSE",
227     "D3DZB_TRUE",
228     "D3DZB_USEW",
229     "D3DZB_FORCE_DWORD",
230 ])
231
232 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
233     "D3DPT_POINTLIST",
234     "D3DPT_LINELIST",
235     "D3DPT_LINESTRIP",
236     "D3DPT_TRIANGLELIST",
237     "D3DPT_TRIANGLESTRIP",
238     "D3DPT_TRIANGLEFAN",
239     "D3DPT_FORCE_DWORD",
240 ])
241
242 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
243     "D3DTS_VIEW",
244     "D3DTS_PROJECTION",
245     "D3DTS_TEXTURE0",
246     "D3DTS_TEXTURE1",
247     "D3DTS_TEXTURE2",
248     "D3DTS_TEXTURE3",
249     "D3DTS_TEXTURE4",
250     "D3DTS_TEXTURE5",
251     "D3DTS_TEXTURE6",
252     "D3DTS_TEXTURE7",
253     "D3DTS_FORCE_DWORD",
254 ])
255
256 D3DTS = Flags(DWORD, [
257     "D3DTS_WORLD",
258     "D3DTS_WORLD1",
259     "D3DTS_WORLD2",
260     "D3DTS_WORLD3",
261 ])
262
263 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
264     "D3DRS_ZENABLE",
265     "D3DRS_FILLMODE",
266     "D3DRS_SHADEMODE",
267     "D3DRS_LINEPATTERN",
268     "D3DRS_ZWRITEENABLE",
269     "D3DRS_ALPHATESTENABLE",
270     "D3DRS_LASTPIXEL",
271     "D3DRS_SRCBLEND",
272     "D3DRS_DESTBLEND",
273     "D3DRS_CULLMODE",
274     "D3DRS_ZFUNC",
275     "D3DRS_ALPHAREF",
276     "D3DRS_ALPHAFUNC",
277     "D3DRS_DITHERENABLE",
278     "D3DRS_ALPHABLENDENABLE",
279     "D3DRS_FOGENABLE",
280     "D3DRS_SPECULARENABLE",
281     "D3DRS_ZVISIBLE",
282     "D3DRS_FOGCOLOR",
283     "D3DRS_FOGTABLEMODE",
284     "D3DRS_FOGSTART",
285     "D3DRS_FOGEND",
286     "D3DRS_FOGDENSITY",
287     "D3DRS_EDGEANTIALIAS",
288     "D3DRS_ZBIAS",
289     "D3DRS_RANGEFOGENABLE",
290     "D3DRS_STENCILENABLE",
291     "D3DRS_STENCILFAIL",
292     "D3DRS_STENCILZFAIL",
293     "D3DRS_STENCILPASS",
294     "D3DRS_STENCILFUNC",
295     "D3DRS_STENCILREF",
296     "D3DRS_STENCILMASK",
297     "D3DRS_STENCILWRITEMASK",
298     "D3DRS_TEXTUREFACTOR",
299     "D3DRS_WRAP0",
300     "D3DRS_WRAP1",
301     "D3DRS_WRAP2",
302     "D3DRS_WRAP3",
303     "D3DRS_WRAP4",
304     "D3DRS_WRAP5",
305     "D3DRS_WRAP6",
306     "D3DRS_WRAP7",
307     "D3DRS_CLIPPING",
308     "D3DRS_LIGHTING",
309     "D3DRS_AMBIENT",
310     "D3DRS_FOGVERTEXMODE",
311     "D3DRS_COLORVERTEX",
312     "D3DRS_LOCALVIEWER",
313     "D3DRS_NORMALIZENORMALS",
314     "D3DRS_DIFFUSEMATERIALSOURCE",
315     "D3DRS_SPECULARMATERIALSOURCE",
316     "D3DRS_AMBIENTMATERIALSOURCE",
317     "D3DRS_EMISSIVEMATERIALSOURCE",
318     "D3DRS_VERTEXBLEND",
319     "D3DRS_CLIPPLANEENABLE",
320     "D3DRS_SOFTWAREVERTEXPROCESSING",
321     "D3DRS_POINTSIZE",
322     "D3DRS_POINTSIZE_MIN",
323     "D3DRS_POINTSPRITEENABLE",
324     "D3DRS_POINTSCALEENABLE",
325     "D3DRS_POINTSCALE_A",
326     "D3DRS_POINTSCALE_B",
327     "D3DRS_POINTSCALE_C",
328     "D3DRS_MULTISAMPLEANTIALIAS",
329     "D3DRS_MULTISAMPLEMASK",
330     "D3DRS_PATCHEDGESTYLE",
331     "D3DRS_PATCHSEGMENTS",
332     "D3DRS_DEBUGMONITORTOKEN",
333     "D3DRS_POINTSIZE_MAX",
334     "D3DRS_INDEXEDVERTEXBLENDENABLE",
335     "D3DRS_COLORWRITEENABLE",
336     "D3DRS_TWEENFACTOR",
337     "D3DRS_BLENDOP",
338     "D3DRS_POSITIONORDER",
339     "D3DRS_NORMALORDER",
340     "D3DRS_FORCE_DWORD",
341 ])
342
343 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
344     "D3DMCS_MATERIAL",
345     "D3DMCS_COLOR1",
346     "D3DMCS_COLOR2",
347     "D3DMCS_FORCE_DWORD",
348 ])
349
350 D3DWRAP = Flags(DWORD, [
351     "D3DWRAP_U",
352     "D3DWRAP_V",
353     "D3DWRAP_W",
354 ])
355
356 D3DWRAPCOORD = Flags(DWORD, [
357     "D3DWRAPCOORD_0",
358     "D3DWRAPCOORD_1",
359     "D3DWRAPCOORD_2",
360     "D3DWRAPCOORD_3",
361 ])
362
363 D3DCOLORWRITEENABLE = Flags(DWORD, [
364     "D3DCOLORWRITEENABLE_RED",
365     "D3DCOLORWRITEENABLE_GREEN",
366     "D3DCOLORWRITEENABLE_BLUE",
367     "D3DCOLORWRITEENABLE_ALPHA",
368 ])
369
370 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
371     "D3DTSS_COLOROP",
372     "D3DTSS_COLORARG1",
373     "D3DTSS_COLORARG2",
374     "D3DTSS_ALPHAOP",
375     "D3DTSS_ALPHAARG1",
376     "D3DTSS_ALPHAARG2",
377     "D3DTSS_BUMPENVMAT00",
378     "D3DTSS_BUMPENVMAT01",
379     "D3DTSS_BUMPENVMAT10",
380     "D3DTSS_BUMPENVMAT11",
381     "D3DTSS_TEXCOORDINDEX",
382     "D3DTSS_ADDRESSU",
383     "D3DTSS_ADDRESSV",
384     "D3DTSS_BORDERCOLOR",
385     "D3DTSS_MAGFILTER",
386     "D3DTSS_MINFILTER",
387     "D3DTSS_MIPFILTER",
388     "D3DTSS_MIPMAPLODBIAS",
389     "D3DTSS_MAXMIPLEVEL",
390     "D3DTSS_MAXANISOTROPY",
391     "D3DTSS_BUMPENVLSCALE",
392     "D3DTSS_BUMPENVLOFFSET",
393     "D3DTSS_TEXTURETRANSFORMFLAGS",
394     "D3DTSS_ADDRESSW",
395     "D3DTSS_COLORARG0",
396     "D3DTSS_ALPHAARG0",
397     "D3DTSS_RESULTARG",
398     "D3DTSS_FORCE_DWORD",
399 ])
400
401 D3DTSS = Flags(DWORD, [
402     "D3DTSS_TCI_PASSTHRU",
403     "D3DTSS_TCI_CAMERASPACENORMAL",
404     "D3DTSS_TCI_CAMERASPACEPOSITION",
405     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
406 ])
407
408 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
409     "D3DTOP_DISABLE",
410     "D3DTOP_SELECTARG1",
411     "D3DTOP_SELECTARG2",
412     "D3DTOP_MODULATE",
413     "D3DTOP_MODULATE2X",
414     "D3DTOP_MODULATE4X",
415     "D3DTOP_ADD",
416     "D3DTOP_ADDSIGNED",
417     "D3DTOP_ADDSIGNED2X",
418     "D3DTOP_SUBTRACT",
419     "D3DTOP_ADDSMOOTH",
420     "D3DTOP_BLENDDIFFUSEALPHA",
421     "D3DTOP_BLENDTEXTUREALPHA",
422     "D3DTOP_BLENDFACTORALPHA",
423     "D3DTOP_BLENDTEXTUREALPHAPM",
424     "D3DTOP_BLENDCURRENTALPHA",
425     "D3DTOP_PREMODULATE",
426     "D3DTOP_MODULATEALPHA_ADDCOLOR",
427     "D3DTOP_MODULATECOLOR_ADDALPHA",
428     "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
429     "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
430     "D3DTOP_BUMPENVMAP",
431     "D3DTOP_BUMPENVMAPLUMINANCE",
432     "D3DTOP_DOTPRODUCT3",
433     "D3DTOP_MULTIPLYADD",
434     "D3DTOP_LERP",
435     "D3DTOP_FORCE_DWORD",
436 ])
437
438 D3DTA = Flags(DWORD, [
439     "D3DTA_SELECTMASK",
440     "D3DTA_DIFFUSE",
441     "D3DTA_CURRENT",
442     "D3DTA_TEXTURE",
443     "D3DTA_TFACTOR",
444     "D3DTA_SPECULAR",
445     "D3DTA_TEMP",
446     "D3DTA_COMPLEMENT",
447     "D3DTA_ALPHAREPLICATE",
448 ])
449
450 D3DTEXTUREFILTERTYPE = Enum("D3DTEXTUREFILTERTYPE", [
451     "D3DTEXF_NONE",
452     "D3DTEXF_POINT",
453     "D3DTEXF_LINEAR",
454     "D3DTEXF_ANISOTROPIC",
455     "D3DTEXF_FLATCUBIC",
456     "D3DTEXF_GAUSSIANCUBIC",
457     "D3DTEXF_FORCE_DWORD",
458 ])
459
460 D3DPV = Flags(DWORD, [
461     "D3DPV_DONOTCOPYDATA",
462 ])
463
464 D3DFVF = Flags(DWORD, [
465     "D3DFVF_RESERVED0",
466     "D3DFVF_POSITION_MASK",
467     "D3DFVF_XYZ",
468     "D3DFVF_XYZRHW",
469     "D3DFVF_XYZB1",
470     "D3DFVF_XYZB2",
471     "D3DFVF_XYZB3",
472     "D3DFVF_XYZB4",
473     "D3DFVF_XYZB5",
474     "D3DFVF_NORMAL",
475     "D3DFVF_PSIZE",
476     "D3DFVF_DIFFUSE",
477     "D3DFVF_SPECULAR",
478     "D3DFVF_TEXCOUNT_MASK",
479     "D3DFVF_TEXCOUNT_SHIFT",
480     "D3DFVF_TEX0",
481     "D3DFVF_TEX1",
482     "D3DFVF_TEX2",
483     "D3DFVF_TEX3",
484     "D3DFVF_TEX4",
485     "D3DFVF_TEX5",
486     "D3DFVF_TEX6",
487     "D3DFVF_TEX7",
488     "D3DFVF_TEX8",
489     "D3DFVF_LASTBETA_UBYTE4",
490     "D3DFVF_RESERVED2",
491     "D3DFVF_TEXCOORDSIZE3(0)",
492     "D3DFVF_TEXCOORDSIZE2(0)",
493     "D3DFVF_TEXCOORDSIZE4(0)",
494     "D3DFVF_TEXCOORDSIZE1(0)",
495     "D3DFVF_TEXCOORDSIZE3(1)",
496     "D3DFVF_TEXCOORDSIZE2(1)",
497     "D3DFVF_TEXCOORDSIZE4(1)",
498     "D3DFVF_TEXCOORDSIZE1(1)",
499     "D3DFVF_TEXCOORDSIZE3(2)",
500     "D3DFVF_TEXCOORDSIZE2(2)",
501     "D3DFVF_TEXCOORDSIZE4(2)",
502     "D3DFVF_TEXCOORDSIZE1(2)",
503     "D3DFVF_TEXCOORDSIZE3(3)",
504     "D3DFVF_TEXCOORDSIZE2(3)",
505     "D3DFVF_TEXCOORDSIZE4(3)",
506     "D3DFVF_TEXCOORDSIZE1(3)",
507 ])
508
509 D3DVSD_TOKENTYPE = Enum("D3DVSD_TOKENTYPE", [
510     "D3DVSD_TOKEN_NOP",
511     "D3DVSD_TOKEN_STREAM",
512     "D3DVSD_TOKEN_STREAMDATA",
513     "D3DVSD_TOKEN_TESSELLATOR",
514     "D3DVSD_TOKEN_CONSTMEM",
515     "D3DVSD_TOKEN_EXT",
516     "D3DVSD_TOKEN_END",
517     "D3DVSD_FORCE_DWORD",
518 ])
519
520 D3DVSDT = Flags(DWORD, [
521     "D3DVSDT_FLOAT1",
522     "D3DVSDT_FLOAT2",
523     "D3DVSDT_FLOAT3",
524     "D3DVSDT_FLOAT4",
525     "D3DVSDT_D3DCOLOR",
526     "D3DVSDT_UBYTE4",
527     "D3DVSDT_SHORT2",
528     "D3DVSDT_SHORT4",
529     "D3DVSDE_POSITION",
530     "D3DVSDE_BLENDWEIGHT",
531     "D3DVSDE_BLENDINDICES",
532     "D3DVSDE_NORMAL",
533     "D3DVSDE_PSIZE",
534     "D3DVSDE_DIFFUSE",
535     "D3DVSDE_SPECULAR",
536     "D3DVSDE_TEXCOORD0",
537     "D3DVSDE_TEXCOORD1",
538     "D3DVSDE_TEXCOORD2",
539     "D3DVSDE_TEXCOORD3",
540     "D3DVSDE_TEXCOORD4",
541     "D3DVSDE_TEXCOORD5",
542     "D3DVSDE_TEXCOORD6",
543     "D3DVSDE_TEXCOORD7",
544     "D3DVSDE_POSITION2",
545     "D3DVSDE_NORMAL2",
546     "D3DDP_MAXTEXCOORD",
547     "D3DSI_OPCODE_MASK",
548 ])
549
550 D3DSHADER_INSTRUCTION_OPCODE_TYPE = Enum("D3DSHADER_INSTRUCTION_OPCODE_TYPE", [
551     "D3DSIO_NOP",
552     "D3DSIO_MOV",
553     "D3DSIO_ADD",
554     "D3DSIO_SUB",
555     "D3DSIO_MAD",
556     "D3DSIO_MUL",
557     "D3DSIO_RCP",
558     "D3DSIO_RSQ",
559     "D3DSIO_DP3",
560     "D3DSIO_DP4",
561     "D3DSIO_MIN",
562     "D3DSIO_MAX",
563     "D3DSIO_SLT",
564     "D3DSIO_SGE",
565     "D3DSIO_EXP",
566     "D3DSIO_LOG",
567     "D3DSIO_LIT",
568     "D3DSIO_DST",
569     "D3DSIO_LRP",
570     "D3DSIO_FRC",
571     "D3DSIO_M4x4",
572     "D3DSIO_M4x3",
573     "D3DSIO_M3x4",
574     "D3DSIO_M3x3",
575     "D3DSIO_M3x2",
576     "D3DSIO_TEXCOORD",
577     "D3DSIO_TEXKILL",
578     "D3DSIO_TEX",
579     "D3DSIO_TEXBEM",
580     "D3DSIO_TEXBEML",
581     "D3DSIO_TEXREG2AR",
582     "D3DSIO_TEXREG2GB",
583     "D3DSIO_TEXM3x2PAD",
584     "D3DSIO_TEXM3x2TEX",
585     "D3DSIO_TEXM3x3PAD",
586     "D3DSIO_TEXM3x3TEX",
587     "D3DSIO_TEXM3x3DIFF",
588     "D3DSIO_TEXM3x3SPEC",
589     "D3DSIO_TEXM3x3VSPEC",
590     "D3DSIO_EXPP",
591     "D3DSIO_LOGP",
592     "D3DSIO_CND",
593     "D3DSIO_DEF",
594     "D3DSIO_TEXREG2RGB",
595     "D3DSIO_TEXDP3TEX",
596     "D3DSIO_TEXM3x2DEPTH",
597     "D3DSIO_TEXDP3",
598     "D3DSIO_TEXM3x3",
599     "D3DSIO_TEXDEPTH",
600     "D3DSIO_CMP",
601     "D3DSIO_BEM",
602     "D3DSIO_PHASE",
603     "D3DSIO_COMMENT",
604     "D3DSIO_END",
605     "D3DSIO_FORCE_DWORD",
606 ])
607
608 D3DSP = Flags(DWORD, [
609     "D3DSP_WRITEMASK_0",
610     "D3DSP_WRITEMASK_1",
611     "D3DSP_WRITEMASK_2",
612     "D3DSP_WRITEMASK_3",
613     "D3DSP_WRITEMASK_ALL",
614 ])
615
616 D3DSHADER_PARAM_DSTMOD_TYPE = Enum("D3DSHADER_PARAM_DSTMOD_TYPE", [
617     "D3DSPDM_NONE",
618     "D3DSPDM_SATURATE",
619     "D3DSPDM_FORCE_DWORD",
620 ])
621
622 D3DSHADER_PARAM_REGISTER_TYPE = Enum("D3DSHADER_PARAM_REGISTER_TYPE", [
623     "D3DSPR_TEMP",
624     "D3DSPR_INPUT",
625     "D3DSPR_CONST",
626     "D3DSPR_ADDR|D3DSPR_TEXTURE",
627     "D3DSPR_RASTOUT",
628     "D3DSPR_ATTROUT",
629     "D3DSPR_TEXCRDOUT",
630     "D3DSPR_FORCE_DWORD",
631 ])
632
633 D3DVS_RASTOUT_OFFSETS = Enum("D3DVS_RASTOUT_OFFSETS", [
634     "D3DSRO_POSITION",
635     "D3DSRO_FOG",
636     "D3DSRO_POINT_SIZE",
637     "D3DSRO_FORCE_DWORD",
638 ])
639
640 D3DVS_ADDRESSMODE_TYPE = Enum("D3DVS_ADDRESSMODE_TYPE", [
641     "D3DVS_ADDRMODE_ABSOLUTE",
642     "D3DVS_ADDRMODE_RELATIVE",
643     "D3DVS_ADDRMODE_FORCE_DWORD",
644 ])
645
646 D3DVS = Flags(DWORD, [
647     "D3DVS_X_X",
648     "D3DVS_X_Y",
649     "D3DVS_X_Z",
650     "D3DVS_X_W",
651     "D3DVS_Y_X",
652     "D3DVS_Y_Y",
653     "D3DVS_Y_Z",
654     "D3DVS_Y_W",
655     "D3DVS_Z_X",
656     "D3DVS_Z_Y",
657     "D3DVS_Z_Z",
658     "D3DVS_Z_W",
659     "D3DVS_W_X",
660     "D3DVS_W_Y",
661     "D3DVS_W_Z",
662     "D3DVS_W_W",
663     "D3DVS_NOSWIZZLE",
664 ])
665
666 D3DSP = Flags(DWORD, [
667     "D3DSP_NOSWIZZLE",
668     "D3DSP_REPLICATERED",
669     "D3DSP_REPLICATEGREEN",
670     "D3DSP_REPLICATEBLUE",
671     "D3DSP_REPLICATEALPHA",
672 ])
673
674 D3DSHADER_PARAM_SRCMOD_TYPE = Enum("D3DSHADER_PARAM_SRCMOD_TYPE", [
675     "D3DSPSM_NONE",
676     "D3DSPSM_NEG",
677     "D3DSPSM_BIAS",
678     "D3DSPSM_BIASNEG",
679     "D3DSPSM_SIGN",
680     "D3DSPSM_SIGNNEG",
681     "D3DSPSM_COMP",
682     "D3DSPSM_X2",
683     "D3DSPSM_X2NEG",
684     "D3DSPSM_DZ",
685     "D3DSPSM_DW",
686     "D3DSPSM_FORCE_DWORD",
687 ])
688
689 D3DBASISTYPE = Enum("D3DBASISTYPE", [
690     "D3DBASIS_BEZIER",
691     "D3DBASIS_BSPLINE",
692     "D3DBASIS_INTERPOLATE",
693     "D3DBASIS_FORCE_DWORD",
694 ])
695
696 D3DORDERTYPE = Enum("D3DORDERTYPE", [
697     "D3DORDER_LINEAR",
698     "D3DORDER_QUADRATIC",
699     "D3DORDER_CUBIC",
700     "D3DORDER_QUINTIC",
701     "D3DORDER_FORCE_DWORD",
702 ])
703
704 D3DPATCHEDGESTYLE = Enum("D3DPATCHEDGESTYLE", [
705     "D3DPATCHEDGE_DISCRETE",
706     "D3DPATCHEDGE_CONTINUOUS",
707     "D3DPATCHEDGE_FORCE_DWORD",
708 ])
709
710 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
711     "D3DSBT_ALL",
712     "D3DSBT_PIXELSTATE",
713     "D3DSBT_VERTEXSTATE",
714     "D3DSBT_FORCE_DWORD",
715 ])
716
717 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
718     "D3DVBF_DISABLE",
719     "D3DVBF_1WEIGHTS",
720     "D3DVBF_2WEIGHTS",
721     "D3DVBF_3WEIGHTS",
722     "D3DVBF_TWEENING",
723     "D3DVBF_0WEIGHTS",
724     "D3DVBF_FORCE_DWORD",
725 ])
726
727 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
728     "D3DTTFF_DISABLE",
729     "D3DTTFF_COUNT1",
730     "D3DTTFF_COUNT2",
731     "D3DTTFF_COUNT3",
732     "D3DTTFF_COUNT4",
733     "D3DTTFF_PROJECTED",
734     "D3DTTFF_FORCE_DWORD",
735 ])
736
737 D3DDEVTYPE = Enum("D3DDEVTYPE", [
738     "D3DDEVTYPE_HAL",
739     "D3DDEVTYPE_REF",
740     "D3DDEVTYPE_SW",
741     "D3DDEVTYPE_FORCE_DWORD",
742 ])
743
744 D3DMULTISAMPLE_TYPE = Enum("D3DMULTISAMPLE_TYPE", [
745     "D3DMULTISAMPLE_NONE",
746     "D3DMULTISAMPLE_2_SAMPLES",
747     "D3DMULTISAMPLE_3_SAMPLES",
748     "D3DMULTISAMPLE_4_SAMPLES",
749     "D3DMULTISAMPLE_5_SAMPLES",
750     "D3DMULTISAMPLE_6_SAMPLES",
751     "D3DMULTISAMPLE_7_SAMPLES",
752     "D3DMULTISAMPLE_8_SAMPLES",
753     "D3DMULTISAMPLE_9_SAMPLES",
754     "D3DMULTISAMPLE_10_SAMPLES",
755     "D3DMULTISAMPLE_11_SAMPLES",
756     "D3DMULTISAMPLE_12_SAMPLES",
757     "D3DMULTISAMPLE_13_SAMPLES",
758     "D3DMULTISAMPLE_14_SAMPLES",
759     "D3DMULTISAMPLE_15_SAMPLES",
760     "D3DMULTISAMPLE_16_SAMPLES",
761     "D3DMULTISAMPLE_FORCE_DWORD",
762 ])
763
764 D3DFORMAT = Enum("D3DFORMAT", [
765     "D3DFMT_UNKNOWN",
766     "D3DFMT_R8G8B8",
767     "D3DFMT_A8R8G8B8",
768     "D3DFMT_X8R8G8B8",
769     "D3DFMT_R5G6B5",
770     "D3DFMT_X1R5G5B5",
771     "D3DFMT_A1R5G5B5",
772     "D3DFMT_A4R4G4B4",
773     "D3DFMT_R3G3B2",
774     "D3DFMT_A8",
775     "D3DFMT_A8R3G3B2",
776     "D3DFMT_X4R4G4B4",
777     "D3DFMT_A2B10G10R10",
778     "D3DFMT_G16R16",
779     "D3DFMT_A8P8",
780     "D3DFMT_P8",
781     "D3DFMT_L8",
782     "D3DFMT_A8L8",
783     "D3DFMT_A4L4",
784     "D3DFMT_V8U8",
785     "D3DFMT_L6V5U5",
786     "D3DFMT_X8L8V8U8",
787     "D3DFMT_Q8W8V8U8",
788     "D3DFMT_V16U16",
789     "D3DFMT_W11V11U10",
790     "D3DFMT_A2W10V10U10",
791     "D3DFMT_UYVY",
792     "D3DFMT_YUY2",
793     "D3DFMT_DXT1",
794     "D3DFMT_DXT2",
795     "D3DFMT_DXT3",
796     "D3DFMT_DXT4",
797     "D3DFMT_DXT5",
798     "D3DFMT_D16_LOCKABLE",
799     "D3DFMT_D32",
800     "D3DFMT_D15S1",
801     "D3DFMT_D24S8",
802     "D3DFMT_D16",
803     "D3DFMT_D24X8",
804     "D3DFMT_D24X4S4",
805     "D3DFMT_VERTEXDATA",
806     "D3DFMT_INDEX16",
807     "D3DFMT_INDEX32",
808     "D3DFMT_FORCE_DWORD",
809 ])
810
811 D3DDISPLAYMODE = Struct("D3DDISPLAYMODE", [
812     (UINT, "Width"),
813     (UINT, "Height"),
814     (UINT, "RefreshRate"),
815     (D3DFORMAT, "Format"),
816 ])
817
818 D3DDEVICE_CREATION_PARAMETERS = Struct("D3DDEVICE_CREATION_PARAMETERS", [
819     (UINT, "AdapterOrdinal"),
820     (D3DDEVTYPE, "DeviceType"),
821     (HWND, "hFocusWindow"),
822     (DWORD, "BehaviorFlags"),
823 ])
824
825 D3DSWAPEFFECT = Enum("D3DSWAPEFFECT", [
826     "D3DSWAPEFFECT_DISCARD",
827     "D3DSWAPEFFECT_FLIP",
828     "D3DSWAPEFFECT_COPY",
829     "D3DSWAPEFFECT_COPY_VSYNC",
830     "D3DSWAPEFFECT_FORCE_DWORD",
831 ])
832
833 D3DPOOL = Enum("D3DPOOL", [
834     "D3DPOOL_DEFAULT",
835     "D3DPOOL_MANAGED",
836     "D3DPOOL_SYSTEMMEM",
837     "D3DPOOL_SCRATCH",
838     "D3DPOOL_FORCE_DWORD",
839 ])
840
841 D3DPRESENT = Flags(DWORD, [
842     "D3DPRESENT_RATE_DEFAULT",
843     "D3DPRESENT_RATE_UNLIMITED",
844 ])
845
846 D3DPRESENT_PARAMETERS = Struct("D3DPRESENT_PARAMETERS", [
847     (UINT, "BackBufferWidth"),
848     (UINT, "BackBufferHeight"),
849     (D3DFORMAT, "BackBufferFormat"),
850     (UINT, "BackBufferCount"),
851     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
852     (D3DSWAPEFFECT, "SwapEffect"),
853     (HWND, "hDeviceWindow"),
854     (BOOL, "Windowed"),
855     (BOOL, "EnableAutoDepthStencil"),
856     (D3DFORMAT, "AutoDepthStencilFormat"),
857     (DWORD, "Flags"),
858     (UINT, "FullScreen_RefreshRateInHz"),
859     (UINT, "FullScreen_PresentationInterval"),
860 ])
861
862 D3DPRESENTFLAG = Flags(DWORD, [
863     "D3DPRESENTFLAG_LOCKABLE_BACKBUFFER",
864 ])
865
866 D3DGAMMARAMP = Struct("D3DGAMMARAMP", [
867     (WORD, "red[256]"),
868     (WORD, "green[256]"),
869     (WORD, "blue[256]"),
870 ])
871
872 D3DBACKBUFFER_TYPE = Enum("D3DBACKBUFFER_TYPE", [
873     "D3DBACKBUFFER_TYPE_MONO",
874     "D3DBACKBUFFER_TYPE_LEFT",
875     "D3DBACKBUFFER_TYPE_RIGHT",
876     "D3DBACKBUFFER_TYPE_FORCE_DWORD",
877 ])
878
879 D3DRESOURCETYPE = Enum("D3DRESOURCETYPE", [
880     "D3DRTYPE_SURFACE",
881     "D3DRTYPE_VOLUME",
882     "D3DRTYPE_TEXTURE",
883     "D3DRTYPE_VOLUMETEXTURE",
884     "D3DRTYPE_CUBETEXTURE",
885     "D3DRTYPE_VERTEXBUFFER",
886     "D3DRTYPE_INDEXBUFFER",
887     "D3DRTYPE_FORCE_DWORD",
888 ])
889
890 D3DUSAGE = Flags(DWORD, [
891     "D3DUSAGE_RENDERTARGET",
892     "D3DUSAGE_DEPTHSTENCIL",
893     "D3DUSAGE_WRITEONLY",
894     "D3DUSAGE_SOFTWAREPROCESSING",
895     "D3DUSAGE_DONOTCLIP",
896     "D3DUSAGE_POINTS",
897     "D3DUSAGE_RTPATCHES",
898     "D3DUSAGE_NPATCHES",
899     "D3DUSAGE_DYNAMIC",
900 ])
901
902 D3DCUBEMAP_FACES = Enum("D3DCUBEMAP_FACES", [
903     "D3DCUBEMAP_FACE_POSITIVE_X",
904     "D3DCUBEMAP_FACE_NEGATIVE_X",
905     "D3DCUBEMAP_FACE_POSITIVE_Y",
906     "D3DCUBEMAP_FACE_NEGATIVE_Y",
907     "D3DCUBEMAP_FACE_POSITIVE_Z",
908     "D3DCUBEMAP_FACE_NEGATIVE_Z",
909     "D3DCUBEMAP_FACE_FORCE_DWORD",
910 ])
911
912 D3DLOCK = Flags(DWORD, [
913     "D3DLOCK_READONLY",
914     "D3DLOCK_DISCARD",
915     "D3DLOCK_NOOVERWRITE",
916     "D3DLOCK_NOSYSLOCK",
917     "D3DLOCK_NO_DIRTY_UPDATE",
918 ])
919
920 D3DVERTEXBUFFER_DESC = Struct("D3DVERTEXBUFFER_DESC", [
921     (D3DFORMAT, "Format"),
922     (D3DRESOURCETYPE, "Type"),
923     (DWORD, "Usage"),
924     (D3DPOOL, "Pool"),
925     (UINT, "Size"),
926     (DWORD, "FVF"),
927 ])
928
929 D3DINDEXBUFFER_DESC = Struct("D3DINDEXBUFFER_DESC", [
930     (D3DFORMAT, "Format"),
931     (D3DRESOURCETYPE, "Type"),
932     (DWORD, "Usage"),
933     (D3DPOOL, "Pool"),
934     (UINT, "Size"),
935 ])
936
937 D3DSURFACE_DESC = Struct("D3DSURFACE_DESC", [
938     (D3DFORMAT, "Format"),
939     (D3DRESOURCETYPE, "Type"),
940     (DWORD, "Usage"),
941     (D3DPOOL, "Pool"),
942     (UINT, "Size"),
943     (D3DMULTISAMPLE_TYPE, "MultiSampleType"),
944     (UINT, "Width"),
945     (UINT, "Height"),
946 ])
947
948 D3DVOLUME_DESC = Struct("D3DVOLUME_DESC", [
949     (D3DFORMAT, "Format"),
950     (D3DRESOURCETYPE, "Type"),
951     (DWORD, "Usage"),
952     (D3DPOOL, "Pool"),
953     (UINT, "Size"),
954     (UINT, "Width"),
955     (UINT, "Height"),
956     (UINT, "Depth"),
957 ])
958
959 D3DLOCKED_RECT = Struct("D3DLOCKED_RECT", [
960     (INT, "Pitch"),
961     (PVOID, "pBits"),
962 ])
963
964 D3DBOX = Struct("D3DBOX", [
965     (UINT, "Left"),
966     (UINT, "Top"),
967     (UINT, "Right"),
968     (UINT, "Bottom"),
969     (UINT, "Front"),
970     (UINT, "Back"),
971 ])
972
973 D3DLOCKED_BOX = Struct("D3DLOCKED_BOX", [
974     (INT, "RowPitch"),
975     (INT, "SlicePitch"),
976     (PVOID, "pBits"),
977 ])
978
979 D3DRANGE = Struct("D3DRANGE", [
980     (UINT, "Offset"),
981     (UINT, "Size"),
982 ])
983
984 D3DRECTPATCH_INFO = Struct("D3DRECTPATCH_INFO", [
985     (UINT, "StartVertexOffsetWidth"),
986     (UINT, "StartVertexOffsetHeight"),
987     (UINT, "Width"),
988     (UINT, "Height"),
989     (UINT, "Stride"),
990     (D3DBASISTYPE, "Basis"),
991     (D3DORDERTYPE, "Order"),
992 ])
993
994 D3DTRIPATCH_INFO = Struct("D3DTRIPATCH_INFO", [
995     (UINT, "StartVertexOffset"),
996     (UINT, "NumVertices"),
997     (D3DBASISTYPE, "Basis"),
998     (D3DORDERTYPE, "Order"),
999 ])
1000
1001 D3DADAPTER_IDENTIFIER8 = Struct("D3DADAPTER_IDENTIFIER8", [
1002     (CString, "Driver"),
1003     (CString, "Description"),
1004     (LARGE_INTEGER, "DriverVersion"),
1005     (DWORD, "VendorId"),
1006     (DWORD, "DeviceId"),
1007     (DWORD, "SubSysId"),
1008     (DWORD, "Revision"),
1009     (GUID, "DeviceIdentifier"),
1010     (DWORD, "WHQLLevel"),
1011 ])
1012
1013 D3DRASTER_STATUS = Struct("D3DRASTER_STATUS", [
1014     (BOOL, "InVBlank"),
1015     (UINT, "ScanLine"),
1016 ])
1017
1018 D3DDEBUGMONITORTOKENS = Enum("D3DDEBUGMONITORTOKENS", [
1019     "D3DDMT_ENABLE",
1020     "D3DDMT_DISABLE",
1021     "D3DDMT_FORCE_DWORD",
1022 ])
1023
1024 D3DDEVINFOID = Flags(DWORD, [
1025     "D3DDEVINFOID_RESOURCEMANAGER",
1026     "D3DDEVINFOID_VERTEXSTATS",
1027 ])
1028
1029 D3DRESOURCESTATS = Struct("D3DRESOURCESTATS", [
1030     (BOOL, "bThrashing"),
1031     (DWORD, "ApproxBytesDownloaded"),
1032     (DWORD, "NumEvicts"),
1033     (DWORD, "NumVidCreates"),
1034     (DWORD, "LastPri"),
1035     (DWORD, "NumUsed"),
1036     (DWORD, "NumUsedInVidMem"),
1037     (DWORD, "WorkingSet"),
1038     (DWORD, "WorkingSetBytes"),
1039     (DWORD, "TotalManaged"),
1040     (DWORD, "TotalBytes"),
1041 ])
1042
1043 D3DDEVINFO_RESOURCEMANAGER = Struct("D3DDEVINFO_RESOURCEMANAGER", [
1044     (D3DRESOURCESTATS, "stats[D3DRTYPECOUNT]"),
1045 ])
1046
1047 D3DDEVINFO_D3DVERTEXSTATS = Struct("D3DDEVINFO_D3DVERTEXSTATS", [
1048     (DWORD, "NumRenderedTriangles"),
1049     (DWORD, "NumExtraClippingTriangles"),
1050 ])
1051