]> git.cworth.org Git - apitrace/blob - d3dtypes.py
Synchronize X and GL on windows resizes.
[apitrace] / d3dtypes.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 """d3dtypes.h"""
27
28 from winapi import *
29 from ddraw import *
30
31 D3DVALUE = Float
32 LPD3DVALUE = Pointer(Float)
33 D3DFIXED = LONG
34
35 LPD3DVALIDATECALLBACK = LPVOID
36 LPD3DENUMTEXTUREFORMATSCALLBACK = LPVOID
37 LPD3DENUMPIXELFORMATSCALLBACK = LPVOID
38
39 D3DCOLOR = DWORD
40 LPD3DCOLOR = Pointer(D3DCOLOR)
41
42 D3DMATERIALHANDLE = DWORD
43 LPD3DMATERIALHANDLE = Pointer(D3DMATERIALHANDLE)
44
45 D3DTEXTUREHANDLE = DWORD
46 LPD3DTEXTUREHANDLE = Pointer(D3DTEXTUREHANDLE)
47
48 D3DMATRIXHANDLE = DWORD
49 LPD3DMATRIXHANDLE = Pointer(D3DMATRIXHANDLE)
50
51 D3DCOLORVALUE = Struct("D3DCOLORVALUE", [
52     (D3DVALUE, "r"),
53     (D3DVALUE, "g"),
54     (D3DVALUE, "b"),
55     (D3DVALUE, "a"),
56 ])
57 LPD3DCOLORVALUE = Pointer(D3DCOLORVALUE)
58
59 D3DRECT = Struct("D3DRECT", [
60     (LONG, "x1"),
61     (LONG, "y1"),
62     (LONG, "x2"),
63     (LONG, "y2"),
64 ])
65 LPD3DRECT = Pointer(D3DRECT)
66
67 D3DVECTOR = Struct("D3DVECTOR", [
68     (D3DVALUE, "x"),
69     (D3DVALUE, "y"),
70     (D3DVALUE, "z"),
71 ])
72 LPD3DVECTOR = Pointer(D3DVECTOR)
73
74 D3DHVERTEX = Struct("D3DHVERTEX", [
75     (DWORD, "dwFlags"),
76     (D3DVALUE, "hx"),
77     (D3DVALUE, "hy"),
78     (D3DVALUE, "hz"),
79 ])
80 LPD3DHVERTEX = Pointer(D3DHVERTEX)
81
82 D3DTLVERTEX = Struct("D3DTLVERTEX", [
83     (D3DVALUE, "sx"),
84     (D3DVALUE, "sy"),
85     (D3DVALUE, "sz"),
86     (D3DVALUE, "rhw"),
87     (D3DCOLOR, "color"),
88     (D3DCOLOR, "specular"),
89     (D3DVALUE, "tu"),
90     (D3DVALUE, "tv"),
91 ])
92 LPD3DTLVERTEX = Pointer(D3DTLVERTEX)
93
94 D3DLVERTEX = Struct("D3DLVERTEX", [
95     (D3DVALUE, "x"),
96     (D3DVALUE, "y"),
97     (D3DVALUE, "z"),
98     (DWORD, "dwReserved"),
99     (D3DCOLOR, "color"),
100     (D3DCOLOR, "specular"),
101     (D3DVALUE, "tu"),
102     (D3DVALUE, "tv"),
103 ])
104 LPD3DLVERTEX = Pointer(D3DLVERTEX)
105
106 D3DVERTEX = Struct("D3DVERTEX", [
107     (D3DVALUE, "x"),
108     (D3DVALUE, "y"),
109     (D3DVALUE, "z"),
110     (D3DVALUE, "nx"),
111     (D3DVALUE, "ny"),
112     (D3DVALUE, "nz"),
113     (D3DVALUE, "tu"),
114     (D3DVALUE, "tv"),
115 ])
116 LPD3DVERTEX = Pointer(D3DVERTEX)
117
118 D3DMATRIX = Struct("D3DMATRIX", [
119     (D3DVALUE, "m[4][4]"),
120 ])
121 LPD3DMATRIX = Pointer(D3DMATRIX)
122
123 D3DVIEWPORT = Struct("D3DVIEWPORT", [
124     (DWORD, "dwSize"),
125     (DWORD, "dwX"),
126     (DWORD, "dwY"),
127     (DWORD, "dwWidth"),
128     (DWORD, "dwHeight"),
129     (D3DVALUE, "dvScaleX"),
130     (D3DVALUE, "dvScaleY"),
131     (D3DVALUE, "dvMaxX"),
132     (D3DVALUE, "dvMaxY"),
133     (D3DVALUE, "dvMinZ"),
134     (D3DVALUE, "dvMaxZ"),
135 ])
136 LPD3DVIEWPORT = Pointer(D3DVIEWPORT)
137
138 D3DVIEWPORT2 = Struct("D3DVIEWPORT2", [
139     (DWORD, "dwSize"),
140     (DWORD, "dwX"),
141     (DWORD, "dwY"),
142     (DWORD, "dwWidth"),
143     (DWORD, "dwHeight"),
144     (D3DVALUE, "dvClipX"),
145     (D3DVALUE, "dvClipY"),
146     (D3DVALUE, "dvClipWidth"),
147     (D3DVALUE, "dvClipHeight"),
148     (D3DVALUE, "dvMinZ"),
149     (D3DVALUE, "dvMaxZ"),
150 ])
151 LPD3DVIEWPORT2 = Pointer(D3DVIEWPORT2)
152
153 D3DVIEWPORT7 = Struct("D3DVIEWPORT7", [
154     (DWORD, "dwX"),
155     (DWORD, "dwY"),
156     (DWORD, "dwWidth"),
157     (DWORD, "dwHeight"),
158     (D3DVALUE, "dvMinZ"),
159     (D3DVALUE, "dvMaxZ"),
160 ])
161 LPD3DVIEWPORT7 = Pointer(D3DVIEWPORT7)
162
163 D3DCLIP = Flags(DWORD, [
164     "D3DCLIP_LEFT",
165     "D3DCLIP_RIGHT",
166     "D3DCLIP_TOP",
167     "D3DCLIP_BOTTOM",
168     "D3DCLIP_FRONT",
169     "D3DCLIP_BACK",
170     "D3DCLIP_GEN0",
171     "D3DCLIP_GEN1",
172     "D3DCLIP_GEN2",
173     "D3DCLIP_GEN3",
174     "D3DCLIP_GEN4",
175     "D3DCLIP_GEN5",
176 ])
177
178 D3DSTATUS = Flags(DWORD, [
179     "D3DSTATUS_DEFAULT",
180     "D3DSTATUS_CLIPUNIONALL",
181     "D3DSTATUS_CLIPUNIONLEFT",
182     "D3DSTATUS_CLIPUNIONRIGHT",
183     "D3DSTATUS_CLIPUNIONTOP",
184     "D3DSTATUS_CLIPUNIONBOTTOM",
185     "D3DSTATUS_CLIPUNIONFRONT",
186     "D3DSTATUS_CLIPUNIONBACK",
187     "D3DSTATUS_CLIPUNIONGEN0",
188     "D3DSTATUS_CLIPUNIONGEN1",
189     "D3DSTATUS_CLIPUNIONGEN2",
190     "D3DSTATUS_CLIPUNIONGEN3",
191     "D3DSTATUS_CLIPUNIONGEN4",
192     "D3DSTATUS_CLIPUNIONGEN5",
193     "D3DSTATUS_CLIPINTERSECTIONALL",
194     "D3DSTATUS_CLIPINTERSECTIONLEFT",
195     "D3DSTATUS_CLIPINTERSECTIONRIGHT",
196     "D3DSTATUS_CLIPINTERSECTIONTOP",
197     "D3DSTATUS_CLIPINTERSECTIONBOTTOM",
198     "D3DSTATUS_CLIPINTERSECTIONFRONT",
199     "D3DSTATUS_CLIPINTERSECTIONBACK",
200     "D3DSTATUS_CLIPINTERSECTIONGEN0",
201     "D3DSTATUS_CLIPINTERSECTIONGEN1",
202     "D3DSTATUS_CLIPINTERSECTIONGEN2",
203     "D3DSTATUS_CLIPINTERSECTIONGEN3",
204     "D3DSTATUS_CLIPINTERSECTIONGEN4",
205     "D3DSTATUS_CLIPINTERSECTIONGEN5",
206     "D3DSTATUS_ZNOTVISIBLE",
207 ])
208
209 D3DTRANSFORM = Flags(DWORD, [
210     "D3DTRANSFORM_CLIPPED",
211     "D3DTRANSFORM_UNCLIPPED",
212 ])
213
214 D3DTRANSFORMDATA = Struct("D3DTRANSFORMDATA", [
215     (DWORD, "dwSize"),
216     (LPVOID, "lpIn"),
217     (DWORD, "dwInSize"),
218     (LPVOID, "lpOut"),
219     (DWORD, "dwOutSize"),
220     (LPD3DHVERTEX, "lpHOut"),
221     (DWORD, "dwClip"),
222     (DWORD, "dwClipIntersection"),
223     (DWORD, "dwClipUnion"),
224     (D3DRECT, "drExtent"),
225 ])
226 LPD3DTRANSFORMDATA = Pointer(D3DTRANSFORMDATA)
227
228 D3DLIGHTINGELEMENT = Struct("D3DLIGHTINGELEMENT", [
229     (D3DVECTOR, "dvPosition"),
230     (D3DVECTOR, "dvNormal"),
231 ])
232 LPD3DLIGHTINGELEMENT = Pointer(D3DLIGHTINGELEMENT)
233
234 D3DMATERIAL = Struct("D3DMATERIAL", [
235     (DWORD, "dwSize"),
236     (D3DCOLORVALUE, "diffuse"),
237     (D3DCOLORVALUE, "ambient"),
238     (D3DCOLORVALUE, "specular"),
239     (D3DCOLORVALUE, "emissive"),
240     (D3DVALUE, "power"),
241     (D3DTEXTUREHANDLE, "hTexture"),
242     (DWORD, "dwRampSize"),
243 ])
244 LPD3DMATERIAL = Pointer(D3DMATERIAL)
245
246 D3DMATERIAL7 = Struct("D3DMATERIAL7", [
247     (D3DCOLORVALUE, "diffuse"),
248     (D3DCOLORVALUE, "ambient"),
249     (D3DCOLORVALUE, "specular"),
250     (D3DCOLORVALUE, "emissive"),
251     (D3DVALUE, "power"),
252 ])
253 LPD3DMATERIAL7 = Pointer(D3DMATERIAL7)
254
255 D3DLIGHTTYPE = Enum("D3DLIGHTTYPE", [
256     "D3DLIGHT_POINT",
257     "D3DLIGHT_SPOT",
258     "D3DLIGHT_DIRECTIONAL",
259     "D3DLIGHT_PARALLELPOINT",
260     "D3DLIGHT_GLSPOT",
261 ])
262
263 D3DLIGHT = Struct("D3DLIGHT", [
264     (DWORD, "dwSize"),
265     (D3DLIGHTTYPE, "dltType"),
266     (D3DCOLORVALUE, "dcvColor"),
267     (D3DVECTOR, "dvPosition"),
268     (D3DVECTOR, "dvDirection"),
269     (D3DVALUE, "dvRange"),
270     (D3DVALUE, "dvFalloff"),
271     (D3DVALUE, "dvAttenuation0"),
272     (D3DVALUE, "dvAttenuation1"),
273     (D3DVALUE, "dvAttenuation2"),
274     (D3DVALUE, "dvTheta"),
275     (D3DVALUE, "dvPhi"),
276 ])
277 LPD3DLIGHT = Pointer(D3DLIGHT)
278
279 D3DLIGHT7 = Struct("D3DLIGHT7", [
280     (D3DLIGHTTYPE, "dltType"),
281     (D3DCOLORVALUE, "dcvDiffuse"),
282     (D3DCOLORVALUE, "dcvSpecular"),
283     (D3DCOLORVALUE, "dcvAmbient"),
284     (D3DVECTOR, "dvPosition"),
285     (D3DVECTOR, "dvDirection"),
286     (D3DVALUE, "dvRange"),
287     (D3DVALUE, "dvFalloff"),
288     (D3DVALUE, "dvAttenuation0"),
289     (D3DVALUE, "dvAttenuation1"),
290     (D3DVALUE, "dvAttenuation2"),
291     (D3DVALUE, "dvTheta"),
292     (D3DVALUE, "dvPhi"),
293 ])
294 LPD3DLIGHT7 = Pointer(D3DLIGHT7)
295
296 D3DLIGHTFLAGS = Flags(DWORD, [
297     "D3DLIGHT_ACTIVE",
298     "D3DLIGHT_NO_SPECULAR",
299     "D3DLIGHT_ALL",
300 ])
301
302 D3DLIGHT2 = Struct("D3DLIGHT2", [
303     (DWORD, "dwSize"),
304     (D3DLIGHTTYPE, "dltType"),
305     (D3DCOLORVALUE, "dcvColor"),
306     (D3DVECTOR, "dvPosition"),
307     (D3DVECTOR, "dvDirection"),
308     (D3DVALUE, "dvRange"),
309     (D3DVALUE, "dvFalloff"),
310     (D3DVALUE, "dvAttenuation0"),
311     (D3DVALUE, "dvAttenuation1"),
312     (D3DVALUE, "dvAttenuation2"),
313     (D3DVALUE, "dvTheta"),
314     (D3DVALUE, "dvPhi"),
315     (DWORD, "dwFlags"),
316 ])
317 LPD3DLIGHT2 = Pointer(D3DLIGHT2)
318
319 D3DLIGHTDATA = Struct("D3DLIGHTDATA", [
320     (DWORD, "dwSize"),
321     (LPD3DLIGHTINGELEMENT, "lpIn"),
322     (DWORD, "dwInSize"),
323     (LPD3DTLVERTEX, "lpOut"),
324     (DWORD, "dwOutSize"),
325 ])
326 LPD3DLIGHTDATA = Pointer(D3DLIGHTDATA)
327
328 D3DCOLOR = Flags(DWORD, [
329     "D3DCOLOR_MONO",
330     "D3DCOLOR_RGB",
331 ])
332
333 D3DCOLORMODEL = DWORD
334
335 D3DCLEAR = Flags(DWORD, [
336     "D3DCLEAR_TARGET",
337     "D3DCLEAR_ZBUFFER",
338     "D3DCLEAR_STENCIL",
339 ])
340
341 D3DOPCODE = Enum("D3DOPCODE", [
342     "D3DOP_POINT",
343     "D3DOP_LINE",
344     "D3DOP_TRIANGLE",
345     "D3DOP_MATRIXLOAD",
346     "D3DOP_MATRIXMULTIPLY",
347     "D3DOP_STATETRANSFORM",
348     "D3DOP_STATELIGHT",
349     "D3DOP_STATERENDER",
350     "D3DOP_PROCESSVERTICES",
351     "D3DOP_TEXTURELOAD",
352     "D3DOP_EXIT",
353     "D3DOP_BRANCHFORWARD",
354     "D3DOP_SPAN",
355     "D3DOP_SETSTATUS",
356 ])
357
358 D3DINSTRUCTION = Struct("D3DINSTRUCTION", [
359     (BYTE, "bOpcode"),
360     (BYTE, "bSize"),
361     (WORD, "wCount"),
362 ])
363
364 D3DTEXTURELOAD = Struct("D3DTEXTURELOAD", [
365     (D3DTEXTUREHANDLE, "hDestTexture"),
366     (D3DTEXTUREHANDLE, "hSrcTexture"),
367 ])
368
369 D3DPICKRECORD = Struct("D3DPICKRECORD", [
370     (BYTE, "bOpcode"),
371     (BYTE, "bPad"),
372     (DWORD, "dwOffset"),
373     (D3DVALUE, "dvZ"),
374 ])
375 LPD3DPICKRECORD = Pointer(D3DPICKRECORD)
376
377 D3DSHADEMODE = Enum("D3DSHADEMODE", [
378     "D3DSHADE_FLAT",
379     "D3DSHADE_GOURAUD",
380     "D3DSHADE_PHONG",
381 ])
382
383 D3DFILLMODE = Enum("D3DFILLMODE", [
384     "D3DFILL_POINT",
385     "D3DFILL_WIREFRAME",
386     "D3DFILL_SOLID",
387 ])
388
389 D3DLINEPATTERN = Struct("D3DLINEPATTERN", [
390     (WORD, "wRepeatFactor"),
391     (WORD, "wLinePattern"),
392 ])
393
394 D3DTEXTUREFILTER = Enum("D3DTEXTUREFILTER", [
395     "D3DFILTER_NEAREST",
396     "D3DFILTER_LINEAR",
397     "D3DFILTER_MIPNEAREST",
398     "D3DFILTER_MIPLINEAR",
399     "D3DFILTER_LINEARMIPNEAREST",
400     "D3DFILTER_LINEARMIPLINEAR",
401 ])
402
403 D3DBLEND = Enum("D3DBLEND", [
404     "D3DBLEND_ZERO",
405     "D3DBLEND_ONE",
406     "D3DBLEND_SRCCOLOR",
407     "D3DBLEND_INVSRCCOLOR",
408     "D3DBLEND_SRCALPHA",
409     "D3DBLEND_INVSRCALPHA",
410     "D3DBLEND_DESTALPHA",
411     "D3DBLEND_INVDESTALPHA",
412     "D3DBLEND_DESTCOLOR",
413     "D3DBLEND_INVDESTCOLOR",
414     "D3DBLEND_SRCALPHASAT",
415     "D3DBLEND_BOTHSRCALPHA",
416     "D3DBLEND_BOTHINVSRCALPHA",
417 ])
418
419 D3DTEXTUREBLEND = Enum("D3DTEXTUREBLEND", [
420     "D3DTBLEND_DECAL",
421     "D3DTBLEND_MODULATE",
422     "D3DTBLEND_DECALALPHA",
423     "D3DTBLEND_MODULATEALPHA",
424     "D3DTBLEND_DECALMASK",
425     "D3DTBLEND_MODULATEMASK",
426     "D3DTBLEND_COPY",
427     "D3DTBLEND_ADD",
428 ])
429
430 D3DTEXTUREADDRESS = Enum("D3DTEXTUREADDRESS", [
431     "D3DTADDRESS_WRAP",
432     "D3DTADDRESS_MIRROR",
433     "D3DTADDRESS_CLAMP",
434     "D3DTADDRESS_BORDER",
435 ])
436
437 D3DCULL = Enum("D3DCULL", [
438     "D3DCULL_NONE",
439     "D3DCULL_CW",
440     "D3DCULL_CCW",
441 ])
442
443 D3DCMPFUNC = Enum("D3DCMPFUNC", [
444     "D3DCMP_NEVER",
445     "D3DCMP_LESS",
446     "D3DCMP_EQUAL",
447     "D3DCMP_LESSEQUAL",
448     "D3DCMP_GREATER",
449     "D3DCMP_NOTEQUAL",
450     "D3DCMP_GREATEREQUAL",
451     "D3DCMP_ALWAYS",
452 ])
453
454 D3DSTENCILOP = Enum("D3DSTENCILOP", [
455     "D3DSTENCILOP_KEEP",
456     "D3DSTENCILOP_ZERO",
457     "D3DSTENCILOP_REPLACE",
458     "D3DSTENCILOP_INCRSAT",
459     "D3DSTENCILOP_DECRSAT",
460     "D3DSTENCILOP_INVERT",
461     "D3DSTENCILOP_INCR",
462     "D3DSTENCILOP_DECR",
463 ])
464
465 D3DFOGMODE = Enum("D3DFOGMODE", [
466     "D3DFOG_NONE",
467     "D3DFOG_EXP",
468     "D3DFOG_EXP2",
469     "D3DFOG_LINEAR",
470 ])
471
472 D3DZBUFFERTYPE = Enum("D3DZBUFFERTYPE", [
473     "D3DZB_FALSE",
474     "D3DZB_TRUE",
475     "D3DZB_USEW",
476 ])
477
478 D3DANTIALIASMODE = Enum("D3DANTIALIASMODE", [
479     "D3DANTIALIAS_NONE",
480     "D3DANTIALIAS_SORTDEPENDENT",
481     "D3DANTIALIAS_SORTINDEPENDENT",
482 ])
483
484 D3DVERTEXTYPE = Enum("D3DVERTEXTYPE", [
485     "D3DVT_VERTEX",
486     "D3DVT_LVERTEX",
487     "D3DVT_TLVERTEX",
488 ])
489
490 D3DPRIMITIVETYPE = Enum("D3DPRIMITIVETYPE", [
491     "D3DPT_POINTLIST",
492     "D3DPT_LINELIST",
493     "D3DPT_LINESTRIP",
494     "D3DPT_TRIANGLELIST",
495     "D3DPT_TRIANGLESTRIP",
496     "D3DPT_TRIANGLEFAN",
497 ])
498
499 D3DTRANSFORMSTATETYPE = Enum("D3DTRANSFORMSTATETYPE", [
500     "D3DTRANSFORMSTATE_WORLD",
501     "D3DTRANSFORMSTATE_VIEW",
502     "D3DTRANSFORMSTATE_PROJECTION",
503     "D3DTRANSFORMSTATE_WORLD1",
504     "D3DTRANSFORMSTATE_WORLD2",
505     "D3DTRANSFORMSTATE_WORLD3",
506     "D3DTRANSFORMSTATE_TEXTURE0",
507     "D3DTRANSFORMSTATE_TEXTURE1",
508     "D3DTRANSFORMSTATE_TEXTURE2",
509     "D3DTRANSFORMSTATE_TEXTURE3",
510     "D3DTRANSFORMSTATE_TEXTURE4",
511     "D3DTRANSFORMSTATE_TEXTURE5",
512     "D3DTRANSFORMSTATE_TEXTURE6",
513     "D3DTRANSFORMSTATE_TEXTURE7",
514 ])
515
516 D3DLIGHTSTATETYPE = Enum("D3DLIGHTSTATETYPE", [
517     "D3DLIGHTSTATE_MATERIAL",
518     "D3DLIGHTSTATE_AMBIENT",
519     "D3DLIGHTSTATE_COLORMODEL",
520     "D3DLIGHTSTATE_FOGMODE",
521     "D3DLIGHTSTATE_FOGSTART",
522     "D3DLIGHTSTATE_FOGEND",
523     "D3DLIGHTSTATE_FOGDENSITY",
524     "D3DLIGHTSTATE_COLORVERTEX",
525 ])
526
527 D3DRENDERSTATETYPE = Enum("D3DRENDERSTATETYPE", [
528     "D3DRENDERSTATE_ANTIALIAS",
529     "D3DRENDERSTATE_TEXTUREPERSPECTIVE",
530     "D3DRENDERSTATE_ZENABLE",
531     "D3DRENDERSTATE_FILLMODE",
532     "D3DRENDERSTATE_SHADEMODE",
533     "D3DRENDERSTATE_LINEPATTERN",
534     "D3DRENDERSTATE_ZWRITEENABLE",
535     "D3DRENDERSTATE_ALPHATESTENABLE",
536     "D3DRENDERSTATE_LASTPIXEL",
537     "D3DRENDERSTATE_SRCBLEND",
538     "D3DRENDERSTATE_DESTBLEND",
539     "D3DRENDERSTATE_CULLMODE",
540     "D3DRENDERSTATE_ZFUNC",
541     "D3DRENDERSTATE_ALPHAREF",
542     "D3DRENDERSTATE_ALPHAFUNC",
543     "D3DRENDERSTATE_DITHERENABLE",
544     "D3DRENDERSTATE_ALPHABLENDENABLE",
545     "D3DRENDERSTATE_FOGENABLE",
546     "D3DRENDERSTATE_SPECULARENABLE",
547     "D3DRENDERSTATE_ZVISIBLE",
548     "D3DRENDERSTATE_STIPPLEDALPHA",
549     "D3DRENDERSTATE_FOGCOLOR",
550     "D3DRENDERSTATE_FOGTABLEMODE",
551     "D3DRENDERSTATE_FOGSTART",
552     "D3DRENDERSTATE_FOGEND",
553     "D3DRENDERSTATE_FOGDENSITY",
554     "D3DRENDERSTATE_EDGEANTIALIAS",
555     "D3DRENDERSTATE_COLORKEYENABLE",
556     "D3DRENDERSTATE_ZBIAS",
557     "D3DRENDERSTATE_RANGEFOGENABLE",
558     "D3DRENDERSTATE_STENCILENABLE",
559     "D3DRENDERSTATE_STENCILFAIL",
560     "D3DRENDERSTATE_STENCILZFAIL",
561     "D3DRENDERSTATE_STENCILPASS",
562     "D3DRENDERSTATE_STENCILFUNC",
563     "D3DRENDERSTATE_STENCILREF",
564     "D3DRENDERSTATE_STENCILMASK",
565     "D3DRENDERSTATE_STENCILWRITEMASK",
566     "D3DRENDERSTATE_TEXTUREFACTOR",
567     "D3DRENDERSTATE_WRAP0",
568     "D3DRENDERSTATE_WRAP1",
569     "D3DRENDERSTATE_WRAP2",
570     "D3DRENDERSTATE_WRAP3",
571     "D3DRENDERSTATE_WRAP4",
572     "D3DRENDERSTATE_WRAP5",
573     "D3DRENDERSTATE_WRAP6",
574     "D3DRENDERSTATE_WRAP7",
575     "D3DRENDERSTATE_CLIPPING",
576     "D3DRENDERSTATE_LIGHTING",
577     "D3DRENDERSTATE_EXTENTS",
578     "D3DRENDERSTATE_AMBIENT",
579     "D3DRENDERSTATE_FOGVERTEXMODE",
580     "D3DRENDERSTATE_COLORVERTEX",
581     "D3DRENDERSTATE_LOCALVIEWER",
582     "D3DRENDERSTATE_NORMALIZENORMALS",
583     "D3DRENDERSTATE_COLORKEYBLENDENABLE",
584     "D3DRENDERSTATE_DIFFUSEMATERIALSOURCE",
585     "D3DRENDERSTATE_SPECULARMATERIALSOURCE",
586     "D3DRENDERSTATE_AMBIENTMATERIALSOURCE",
587     "D3DRENDERSTATE_EMISSIVEMATERIALSOURCE",
588     "D3DRENDERSTATE_VERTEXBLEND",
589     "D3DRENDERSTATE_CLIPPLANEENABLE",
590     "D3DRENDERSTATE_TEXTUREHANDLE",
591     "D3DRENDERSTATE_TEXTUREADDRESS",
592     "D3DRENDERSTATE_WRAPU",
593     "D3DRENDERSTATE_WRAPV",
594     "D3DRENDERSTATE_MONOENABLE",
595     "D3DRENDERSTATE_ROP2",
596     "D3DRENDERSTATE_PLANEMASK",
597     "D3DRENDERSTATE_TEXTUREMAG",
598     "D3DRENDERSTATE_TEXTUREMIN",
599     "D3DRENDERSTATE_TEXTUREMAPBLEND",
600     "D3DRENDERSTATE_SUBPIXEL",
601     "D3DRENDERSTATE_SUBPIXELX",
602     "D3DRENDERSTATE_STIPPLEENABLE",
603     "D3DRENDERSTATE_BORDERCOLOR",
604     "D3DRENDERSTATE_TEXTUREADDRESSU",
605     "D3DRENDERSTATE_TEXTUREADDRESSV",
606     "D3DRENDERSTATE_MIPMAPLODBIAS",
607     "D3DRENDERSTATE_ANISOTROPY",
608     "D3DRENDERSTATE_FLUSHBATCH",
609     "D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT",
610     "D3DRENDERSTATE_STIPPLEPATTERN00",
611     "D3DRENDERSTATE_STIPPLEPATTERN01",
612     "D3DRENDERSTATE_STIPPLEPATTERN02",
613     "D3DRENDERSTATE_STIPPLEPATTERN03",
614     "D3DRENDERSTATE_STIPPLEPATTERN04",
615     "D3DRENDERSTATE_STIPPLEPATTERN05",
616     "D3DRENDERSTATE_STIPPLEPATTERN06",
617     "D3DRENDERSTATE_STIPPLEPATTERN07",
618     "D3DRENDERSTATE_STIPPLEPATTERN08",
619     "D3DRENDERSTATE_STIPPLEPATTERN09",
620     "D3DRENDERSTATE_STIPPLEPATTERN10",
621     "D3DRENDERSTATE_STIPPLEPATTERN11",
622     "D3DRENDERSTATE_STIPPLEPATTERN12",
623     "D3DRENDERSTATE_STIPPLEPATTERN13",
624     "D3DRENDERSTATE_STIPPLEPATTERN14",
625     "D3DRENDERSTATE_STIPPLEPATTERN15",
626     "D3DRENDERSTATE_STIPPLEPATTERN16",
627     "D3DRENDERSTATE_STIPPLEPATTERN17",
628     "D3DRENDERSTATE_STIPPLEPATTERN18",
629     "D3DRENDERSTATE_STIPPLEPATTERN19",
630     "D3DRENDERSTATE_STIPPLEPATTERN20",
631     "D3DRENDERSTATE_STIPPLEPATTERN21",
632     "D3DRENDERSTATE_STIPPLEPATTERN22",
633     "D3DRENDERSTATE_STIPPLEPATTERN23",
634     "D3DRENDERSTATE_STIPPLEPATTERN24",
635     "D3DRENDERSTATE_STIPPLEPATTERN25",
636     "D3DRENDERSTATE_STIPPLEPATTERN26",
637     "D3DRENDERSTATE_STIPPLEPATTERN27",
638     "D3DRENDERSTATE_STIPPLEPATTERN28",
639     "D3DRENDERSTATE_STIPPLEPATTERN29",
640     "D3DRENDERSTATE_STIPPLEPATTERN30",
641     "D3DRENDERSTATE_STIPPLEPATTERN31",
642     "D3DRENDERSTATE_FOGTABLESTART",
643     "D3DRENDERSTATE_FOGTABLEEND",
644     "D3DRENDERSTATE_FOGTABLEDENSITY",
645 ])
646
647 D3DMATERIALCOLORSOURCE = Enum("D3DMATERIALCOLORSOURCE", [
648     "D3DMCS_MATERIAL",
649     "D3DMCS_COLOR1",
650     "D3DMCS_COLOR2",
651 ])
652
653 D3DWRAP = Flags(DWORD, [
654     "D3DWRAP_U",
655     "D3DWRAP_V",
656     "D3DWRAPCOORD_0",
657     "D3DWRAPCOORD_1",
658     "D3DWRAPCOORD_2",
659     "D3DWRAPCOORD_3",
660 ])
661
662 D3DSTATE = Struct("D3DSTATE", [
663     (D3DTRANSFORMSTATETYPE, "dtstTransformStateType"),
664     (D3DLIGHTSTATETYPE, "dlstLightStateType"),
665     (D3DRENDERSTATETYPE, "drstRenderStateType"),
666     (DWORD, "dwArg[1]"),
667     (D3DVALUE, "dvArg[1]"),
668 ])
669
670 D3DMATRIXLOAD = Struct("D3DMATRIXLOAD", [
671     (D3DMATRIXHANDLE, "hDestMatrix"),
672     (D3DMATRIXHANDLE, "hSrcMatrix"),
673 ])
674
675 D3DMATRIXMULTIPLY = Struct("D3DMATRIXMULTIPLY", [
676     (D3DMATRIXHANDLE, "hDestMatrix"),
677     (D3DMATRIXHANDLE, "hSrcMatrix1"),
678     (D3DMATRIXHANDLE, "hSrcMatrix2"),
679 ])
680
681 D3DPROCESSVERTICES = Struct("D3DPROCESSVERTICES", [
682     (DWORD, "dwFlags"),
683     (WORD, "wStart"),
684     (WORD, "wDest"),
685     (DWORD, "dwCount"),
686     (DWORD, "dwReserved"),
687 ])
688
689 D3DPROCESSVERTICES = Flags(DWORD, [
690     "D3DPROCESSVERTICES_TRANSFORMLIGHT",
691     "D3DPROCESSVERTICES_TRANSFORM",
692     "D3DPROCESSVERTICES_COPY",
693     "D3DPROCESSVERTICES_OPMASK",
694     "D3DPROCESSVERTICES_UPDATEEXTENTS",
695     "D3DPROCESSVERTICES_NOCOLOR",
696 ])
697
698 D3DTEXTURESTAGESTATETYPE = Enum("D3DTEXTURESTAGESTATETYPE", [
699     "D3DTSS_COLOROP",
700     "D3DTSS_COLORARG1",
701     "D3DTSS_COLORARG2",
702     "D3DTSS_ALPHAOP",
703     "D3DTSS_ALPHAARG1",
704     "D3DTSS_ALPHAARG2",
705     "D3DTSS_BUMPENVMAT00",
706     "D3DTSS_BUMPENVMAT01",
707     "D3DTSS_BUMPENVMAT10",
708     "D3DTSS_BUMPENVMAT11",
709     "D3DTSS_TEXCOORDINDEX",
710     "D3DTSS_ADDRESS",
711     "D3DTSS_ADDRESSU",
712     "D3DTSS_ADDRESSV",
713     "D3DTSS_BORDERCOLOR",
714     "D3DTSS_MAGFILTER",
715     "D3DTSS_MINFILTER",
716     "D3DTSS_MIPFILTER",
717     "D3DTSS_MIPMAPLODBIAS",
718     "D3DTSS_MAXMIPLEVEL",
719     "D3DTSS_MAXANISOTROPY",
720     "D3DTSS_BUMPENVLSCALE",
721     "D3DTSS_BUMPENVLOFFSET",
722     "D3DTSS_TEXTURETRANSFORMFLAGS",
723 ])
724
725 D3DTSS_TCI = Flags(DWORD, [
726     "D3DTSS_TCI_PASSTHRU",
727     "D3DTSS_TCI_CAMERASPACENORMAL",
728     "D3DTSS_TCI_CAMERASPACEPOSITION",
729     "D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR",
730 ])
731
732 D3DTEXTUREOP = Enum("D3DTEXTUREOP", [
733     "D3DTOP_DISABLE",
734     "D3DTOP_SELECTARG1",
735     "D3DTOP_SELECTARG2",
736     "D3DTOP_MODULATE",
737     "D3DTOP_MODULATE2X",
738     "D3DTOP_MODULATE4X",
739     "D3DTOP_ADD",
740     "D3DTOP_ADDSIGNED",
741     "D3DTOP_ADDSIGNED2X",
742     "D3DTOP_SUBTRACT",
743     "D3DTOP_ADDSMOOTH",
744     "D3DTOP_BLENDDIFFUSEALPHA",
745     "D3DTOP_BLENDTEXTUREALPHA",
746     "D3DTOP_BLENDFACTORALPHA",
747     "D3DTOP_BLENDTEXTUREALPHAPM",
748     "D3DTOP_BLENDCURRENTALPHA",
749     "D3DTOP_PREMODULATE",
750     "D3DTOP_MODULATEALPHA_ADDCOLOR",
751     "D3DTOP_MODULATECOLOR_ADDALPHA",
752     "D3DTOP_MODULATEINVALPHA_ADDCOLOR",
753     "D3DTOP_MODULATEINVCOLOR_ADDALPHA",
754     "D3DTOP_BUMPENVMAP",
755     "D3DTOP_BUMPENVMAPLUMINANCE",
756     "D3DTOP_DOTPRODUCT3",
757 ])
758
759 D3DTA = Flags(DWORD, [
760     "D3DTA_SELECTMASK",
761     "D3DTA_DIFFUSE",
762     "D3DTA_CURRENT",
763     "D3DTA_TEXTURE",
764     "D3DTA_TFACTOR",
765     "D3DTA_SPECULAR",
766     "D3DTA_COMPLEMENT",
767     "D3DTA_ALPHAREPLICATE",
768 ])
769
770 D3DTEXTUREMAGFILTER = Enum("D3DTEXTUREMAGFILTER", [
771     "D3DTFG_POINT",
772     "D3DTFG_LINEAR",
773     "D3DTFG_FLATCUBIC",
774     "D3DTFG_GAUSSIANCUBIC",
775     "D3DTFG_ANISOTROPIC",
776 ])
777
778 D3DTEXTUREMINFILTER = Enum("D3DTEXTUREMINFILTER", [
779     "D3DTFN_POINT",
780     "D3DTFN_LINEAR",
781     "D3DTFN_ANISOTROPIC",
782 ])
783
784 D3DTEXTUREMIPFILTER = Enum("D3DTEXTUREMIPFILTER", [
785     "D3DTFP_NONE",
786     "D3DTFP_POINT",
787     "D3DTFP_LINEAR",
788 ])
789
790 D3DTRIFLAG = Flags(DWORD, [
791     "D3DTRIFLAG_START",
792     "D3DTRIFLAG_STARTFLAT(len)",
793     "D3DTRIFLAG_ODD",
794     "D3DTRIFLAG_EVEN",
795     "D3DTRIFLAG_EDGEENABLETRIANGLE",
796     "D3DTRIFLAG_EDGEENABLE1",
797     "D3DTRIFLAG_EDGEENABLE2",
798     "D3DTRIFLAG_EDGEENABLE3",
799 ])
800
801 D3DTRIANGLE = Struct("D3DTRIANGLE", [
802     (WORD, "v1"),
803     (WORD, "v2"),
804     (WORD, "v3"),
805     (WORD, "wFlags"),
806 ])
807
808 D3DLINE = Struct("D3DLINE", [
809     (WORD, "v1"),
810     (WORD, "v2"),
811 ])
812
813 D3DSPAN = Struct("D3DSPAN", [
814     (WORD, "wCount"),
815     (WORD, "wFirst"),
816 ])
817
818 D3DPOINT = Struct("D3DPOINT", [
819     (WORD, "wCount"),
820     (WORD, "wFirst"),
821 ])
822
823 D3DBRANCH = Struct("D3DBRANCH", [
824     (DWORD, "dwMask"),
825     (DWORD, "dwValue"),
826     (BOOL, "bNegate"),
827     (DWORD, "dwOffset"),
828 ])
829
830 D3DSTATUS = Struct("D3DSTATUS", [
831     (DWORD, "dwFlags"),
832     (DWORD, "dwStatus"),
833     (D3DRECT, "drExtent"),
834 ])
835
836 D3DSETSTATUS = Flags(DWORD, [
837     "D3DSETSTATUS_STATUS",
838     "D3DSETSTATUS_EXTENTS",
839     "D3DSETSTATUS_ALL",
840 ])
841
842 D3DCLIPSTATUS = Struct("D3DCLIPSTATUS", [
843     (DWORD, "dwFlags"),
844     (DWORD, "dwStatus"),
845     (Float, "minx"),
846     (Float, "maxx"),
847     (Float, "miny"),
848     (Float, "maxy"),
849     (Float, "minz"),
850     (Float, "maxz"),
851 ])
852 LPD3DCLIPSTATUS = Pointer(D3DCLIPSTATUS)
853
854 D3DCLIPSTATUS = Flags(DWORD, [
855     "D3DCLIPSTATUS_STATUS",
856     "D3DCLIPSTATUS_EXTENTS2",
857     "D3DCLIPSTATUS_EXTENTS3",
858 ])
859
860 D3DSTATS = Struct("D3DSTATS", [
861     (DWORD, "dwSize"),
862     (DWORD, "dwTrianglesDrawn"),
863     (DWORD, "dwLinesDrawn"),
864     (DWORD, "dwPointsDrawn"),
865     (DWORD, "dwSpansDrawn"),
866     (DWORD, "dwVerticesProcessed"),
867 ])
868 LPD3DSTATS = Pointer(D3DSTATS)
869
870 D3DEXECUTE = Flags(DWORD, [
871     "D3DEXECUTE_CLIPPED",
872     "D3DEXECUTE_UNCLIPPED",
873 ])
874
875 D3DEXECUTEDATA = Struct("D3DEXECUTEDATA", [
876     (DWORD, "dwSize"),
877     (DWORD, "dwVertexOffset"),
878     (DWORD, "dwVertexCount"),
879     (DWORD, "dwInstructionOffset"),
880     (DWORD, "dwInstructionLength"),
881     (DWORD, "dwHVertexOffset"),
882     (D3DSTATUS, "dsStatus"),
883 ])
884 LPD3DEXECUTEDATA = Pointer(D3DEXECUTEDATA)
885
886 D3DPAL = Flags(DWORD, [
887     "D3DPAL_FREE",
888     "D3DPAL_READONLY",
889     "D3DPAL_RESERVED",
890 ])
891
892 D3DVERTEXBUFFERDESC = Struct("D3DVERTEXBUFFERDESC", [
893     (DWORD, "dwSize"),
894     (DWORD, "dwCaps"),
895     (DWORD, "dwFVF"),
896     (DWORD, "dwNumVertices"),
897 ])
898 LPD3DVERTEXBUFFERDESC = Pointer(D3DVERTEXBUFFERDESC)
899
900 D3DVBCAPS = Flags(DWORD, [
901     "D3DVBCAPS_SYSTEMMEMORY",
902     "D3DVBCAPS_WRITEONLY",
903     "D3DVBCAPS_OPTIMIZED",
904     "D3DVBCAPS_DONOTCLIP",
905 ])
906
907 D3DVOP = Flags(DWORD, [
908     "D3DVOP_LIGHT",
909     "D3DVOP_TRANSFORM",
910     "D3DVOP_CLIP",
911     "D3DVOP_EXTENTS",
912 ])
913
914 D3DPV = Flags(DWORD, [
915     "D3DPV_DONOTCOPYDATA",
916 ])
917
918 D3DFVF = Flags(DWORD, [
919     "D3DFVF_RESERVED0",
920     "D3DFVF_POSITION_MASK",
921     "D3DFVF_XYZ",
922     "D3DFVF_XYZRHW",
923     "D3DFVF_XYZB1",
924     "D3DFVF_XYZB2",
925     "D3DFVF_XYZB3",
926     "D3DFVF_XYZB4",
927     "D3DFVF_XYZB5",
928     "D3DFVF_NORMAL",
929     "D3DFVF_RESERVED1",
930     "D3DFVF_DIFFUSE",
931     "D3DFVF_SPECULAR",
932     "D3DFVF_TEXCOUNT_MASK",
933     "D3DFVF_TEXCOUNT_SHIFT",
934     "D3DFVF_TEX0",
935     "D3DFVF_TEX1",
936     "D3DFVF_TEX2",
937     "D3DFVF_TEX3",
938     "D3DFVF_TEX4",
939     "D3DFVF_TEX5",
940     "D3DFVF_TEX6",
941     "D3DFVF_TEX7",
942     "D3DFVF_TEX8",
943     "D3DFVF_RESERVED2",
944     "D3DFVF_RESERVED1",
945     "D3DFVF_VERTEX",
946     "D3DFVF_LVERTEX",
947     "D3DFVF_TLVERTEX",
948     "D3DFVF_TEXCOORDSIZE1(0)",
949     "D3DFVF_TEXCOORDSIZE1(1)",
950     "D3DFVF_TEXCOORDSIZE2(0)",
951     "D3DFVF_TEXCOORDSIZE2(1)",
952     "D3DFVF_TEXCOORDSIZE3(0)",
953     "D3DFVF_TEXCOORDSIZE3(1)",
954     "D3DFVF_TEXCOORDSIZE4(0)",
955     "D3DFVF_TEXCOORDSIZE4(1)",
956 ])
957
958 D3DDP_PTRSTRIDE = Struct("D3DDP_PTRSTRIDE", [
959     (LPVOID, "lpvData"),
960     (DWORD, "dwStride"),
961 ])
962
963 D3DDRAWPRIMITIVESTRIDEDDATA = Struct("D3DDRAWPRIMITIVESTRIDEDDATA", [
964     (D3DDP_PTRSTRIDE, "position"),
965     (D3DDP_PTRSTRIDE, "normal"),
966     (D3DDP_PTRSTRIDE, "diffuse"),
967     (D3DDP_PTRSTRIDE, "specular"),
968     (D3DDP_PTRSTRIDE, "textureCoords[D3DDP_MAXTEXCOORD]"),
969 ])
970 LPD3DDRAWPRIMITIVESTRIDEDDATA = Pointer(D3DDRAWPRIMITIVESTRIDEDDATA)
971
972 D3DVIS = Flags(DWORD, [
973     "D3DVIS_INSIDE_FRUSTUM",
974     "D3DVIS_INTERSECT_FRUSTUM",
975     "D3DVIS_OUTSIDE_FRUSTUM",
976     "D3DVIS_INSIDE_LEFT",
977     "D3DVIS_INTERSECT_LEFT",
978     "D3DVIS_OUTSIDE_LEFT",
979     "D3DVIS_INSIDE_RIGHT",
980     "D3DVIS_INTERSECT_RIGHT",
981     "D3DVIS_OUTSIDE_RIGHT",
982     "D3DVIS_INSIDE_TOP",
983     "D3DVIS_INTERSECT_TOP",
984     "D3DVIS_OUTSIDE_TOP",
985     "D3DVIS_INSIDE_BOTTOM",
986     "D3DVIS_INTERSECT_BOTTOM",
987     "D3DVIS_OUTSIDE_BOTTOM",
988     "D3DVIS_INSIDE_NEAR",
989     "D3DVIS_INTERSECT_NEAR",
990     "D3DVIS_OUTSIDE_NEAR",
991     "D3DVIS_INSIDE_FAR",
992     "D3DVIS_INTERSECT_FAR",
993     "D3DVIS_OUTSIDE_FAR",
994     "D3DVIS_MASK_FRUSTUM",
995     "D3DVIS_MASK_LEFT",
996     "D3DVIS_MASK_RIGHT",
997     "D3DVIS_MASK_TOP",
998     "D3DVIS_MASK_BOTTOM",
999     "D3DVIS_MASK_NEAR",
1000     "D3DVIS_MASK_FAR",
1001 ])
1002
1003 D3DDEVINFOID = Flags(DWORD, [
1004     "D3DDEVINFOID_TEXTUREMANAGER",
1005     "D3DDEVINFOID_D3DTEXTUREMANAGER",
1006     "D3DDEVINFOID_TEXTURING",
1007 ])
1008
1009 D3DSTATEBLOCKTYPE = Enum("D3DSTATEBLOCKTYPE", [
1010     "D3DSBT_ALL",
1011     "D3DSBT_PIXELSTATE",
1012     "D3DSBT_VERTEXSTATE",
1013 ])
1014
1015 D3DVERTEXBLENDFLAGS = Enum("D3DVERTEXBLENDFLAGS", [
1016     "D3DVBLEND_DISABLE",
1017     "D3DVBLEND_1WEIGHT",
1018     "D3DVBLEND_2WEIGHTS",
1019     "D3DVBLEND_3WEIGHTS",
1020 ])
1021
1022 D3DTEXTURETRANSFORMFLAGS = Enum("D3DTEXTURETRANSFORMFLAGS", [
1023     "D3DTTFF_DISABLE",
1024     "D3DTTFF_COUNT1",
1025     "D3DTTFF_COUNT2",
1026     "D3DTTFF_COUNT3",
1027     "D3DTTFF_COUNT4",
1028     "D3DTTFF_PROJECTED",
1029 ])