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