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