]> git.notmuchmail.org Git - apitrace/blob - d3dcaps.py
Basic support for tracing d3d7.
[apitrace] / d3dcaps.py
1 #############################################################################
2 #
3 # Copyright 2008 Tungsten Graphics, Inc.
4 #
5 # This program is free software: you can redistribute it and/or modify it
6 # under the terms of the GNU Lesser General Public License as published
7 # by the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU Lesser General Public License for more details.
14 #
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 #
18 #############################################################################
19
20 """d3dcaps.h"""
21
22 from windows import *
23 from d3dtypes import *
24
25 D3DTRANSFORMCAPS = Flags(DWORD, [
26     "D3DTRANSFORMCAPS_CLIP",
27 ])
28
29 D3DTRANSFORMCAPS = Struct("D3DTRANSFORMCAPS", [
30     (DWORD, "dwSize"),
31     (DWORD, "dwCaps"),
32 ])
33
34 D3DLIGHTINGCAPS = Struct("D3DLIGHTINGCAPS", [
35     (DWORD, "dwSize"),
36     (DWORD, "dwCaps"),
37     (DWORD, "dwLightingModel"),
38     (DWORD, "dwNumLights"),
39 ])
40
41 D3DLIGHTINGMODEL = Flags(DWORD, [
42     "D3DLIGHTINGMODEL_RGB",
43     "D3DLIGHTINGMODEL_MONO",
44 ])
45
46 D3DLIGHTCAPS = Flags(DWORD, [
47     "D3DLIGHTCAPS_POINT",
48     "D3DLIGHTCAPS_SPOT",
49     "D3DLIGHTCAPS_DIRECTIONAL",
50     "D3DLIGHTCAPS_PARALLELPOINT",
51     "D3DLIGHTCAPS_GLSPOT",
52 ])
53
54 D3DPRIMCAPS = Struct("D3DPRIMCAPS", [
55     (DWORD, "dwSize"),
56     (DWORD, "dwMiscCaps"),
57     (DWORD, "dwRasterCaps"),
58     (DWORD, "dwZCmpCaps"),
59     (DWORD, "dwSrcBlendCaps"),
60     (DWORD, "dwDestBlendCaps"),
61     (DWORD, "dwAlphaCmpCaps"),
62     (DWORD, "dwShadeCaps"),
63     (DWORD, "dwTextureCaps"),
64     (DWORD, "dwTextureFilterCaps"),
65     (DWORD, "dwTextureBlendCaps"),
66     (DWORD, "dwTextureAddressCaps"),
67     (DWORD, "dwStippleWidth"),
68     (DWORD, "dwStippleHeight"),
69 ])
70
71 D3DPMISCCAPS = Flags(DWORD, [
72     "D3DPMISCCAPS_MASKPLANES",
73     "D3DPMISCCAPS_MASKZ",
74     "D3DPMISCCAPS_LINEPATTERNREP",
75     "D3DPMISCCAPS_CONFORMANT",
76     "D3DPMISCCAPS_CULLNONE",
77     "D3DPMISCCAPS_CULLCW",
78     "D3DPMISCCAPS_CULLCCW",
79 ])
80
81 D3DXD3DPRASTERCAPSXX = Flags(DWORD, [
82     "D3DPRASTERCAPS_DITHER",
83     "D3DPRASTERCAPS_ROP2",
84     "D3DPRASTERCAPS_XOR",
85     "D3DPRASTERCAPS_PAT",
86     "D3DPRASTERCAPS_ZTEST",
87     "D3DPRASTERCAPS_SUBPIXEL",
88     "D3DPRASTERCAPS_SUBPIXELX",
89     "D3DPRASTERCAPS_FOGVERTEX",
90     "D3DPRASTERCAPS_FOGTABLE",
91     "D3DPRASTERCAPS_STIPPLE",
92     "D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT",
93     "D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT",
94     "D3DPRASTERCAPS_ANTIALIASEDGES",
95     "D3DPRASTERCAPS_MIPMAPLODBIAS",
96     "D3DPRASTERCAPS_ZBIAS",
97     "D3DPRASTERCAPS_ZBUFFERLESSHSR",
98     "D3DPRASTERCAPS_FOGRANGE",
99     "D3DPRASTERCAPS_ANISOTROPY",
100     "D3DPRASTERCAPS_WBUFFER",
101     "D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT",
102     "D3DPRASTERCAPS_WFOG",
103     "D3DPRASTERCAPS_ZFOG",
104 ])
105
106 D3DPCMPCAPS = Flags(DWORD, [
107     "D3DPCMPCAPS_NEVER",
108     "D3DPCMPCAPS_LESS",
109     "D3DPCMPCAPS_EQUAL",
110     "D3DPCMPCAPS_LESSEQUAL",
111     "D3DPCMPCAPS_GREATER",
112     "D3DPCMPCAPS_NOTEQUAL",
113     "D3DPCMPCAPS_GREATEREQUAL",
114     "D3DPCMPCAPS_ALWAYS",
115 ])
116
117 D3DPBLENDCAPS = Flags(DWORD, [
118     "D3DPBLENDCAPS_ZERO",
119     "D3DPBLENDCAPS_ONE",
120     "D3DPBLENDCAPS_SRCCOLOR",
121     "D3DPBLENDCAPS_INVSRCCOLOR",
122     "D3DPBLENDCAPS_SRCALPHA",
123     "D3DPBLENDCAPS_INVSRCALPHA",
124     "D3DPBLENDCAPS_DESTALPHA",
125     "D3DPBLENDCAPS_INVDESTALPHA",
126     "D3DPBLENDCAPS_DESTCOLOR",
127     "D3DPBLENDCAPS_INVDESTCOLOR",
128     "D3DPBLENDCAPS_SRCALPHASAT",
129     "D3DPBLENDCAPS_BOTHSRCALPHA",
130     "D3DPBLENDCAPS_BOTHINVSRCALPHA",
131 ])
132
133 D3DPSHADECAPS = Flags(DWORD, [
134     "D3DPSHADECAPS_COLORFLATMONO",
135     "D3DPSHADECAPS_COLORFLATRGB",
136     "D3DPSHADECAPS_COLORGOURAUDMONO",
137     "D3DPSHADECAPS_COLORGOURAUDRGB",
138     "D3DPSHADECAPS_COLORPHONGMONO",
139     "D3DPSHADECAPS_COLORPHONGRGB",
140     "D3DPSHADECAPS_SPECULARFLATMONO",
141     "D3DPSHADECAPS_SPECULARFLATRGB",
142     "D3DPSHADECAPS_SPECULARGOURAUDMONO",
143     "D3DPSHADECAPS_SPECULARGOURAUDRGB",
144     "D3DPSHADECAPS_SPECULARPHONGMONO",
145     "D3DPSHADECAPS_SPECULARPHONGRGB",
146     "D3DPSHADECAPS_ALPHAFLATBLEND",
147     "D3DPSHADECAPS_ALPHAFLATSTIPPLED",
148     "D3DPSHADECAPS_ALPHAGOURAUDBLEND",
149     "D3DPSHADECAPS_ALPHAGOURAUDSTIPPLED",
150     "D3DPSHADECAPS_ALPHAPHONGBLEND",
151     "D3DPSHADECAPS_ALPHAPHONGSTIPPLED",
152     "D3DPSHADECAPS_FOGFLAT",
153     "D3DPSHADECAPS_FOGGOURAUD",
154     "D3DPSHADECAPS_FOGPHONG",
155 ])
156
157 D3DPTEXTURECAPS = Flags(DWORD, [
158     "D3DPTEXTURECAPS_PERSPECTIVE",
159     "D3DPTEXTURECAPS_POW2",
160     "D3DPTEXTURECAPS_ALPHA",
161     "D3DPTEXTURECAPS_TRANSPARENCY",
162     "D3DPTEXTURECAPS_BORDER",
163     "D3DPTEXTURECAPS_SQUAREONLY",
164     "D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE",
165     "D3DPTEXTURECAPS_ALPHAPALETTE",
166     "D3DPTEXTURECAPS_NONPOW2CONDITIONAL",
167     "D3DPTEXTURECAPS_PROJECTED",
168     "D3DPTEXTURECAPS_CUBEMAP",
169     "D3DPTEXTURECAPS_COLORKEYBLEND",
170 ])
171
172 D3DPTFILTERCAPS = Flags(DWORD, [
173     "D3DPTFILTERCAPS_NEAREST",
174     "D3DPTFILTERCAPS_LINEAR",
175     "D3DPTFILTERCAPS_MIPNEAREST",
176     "D3DPTFILTERCAPS_MIPLINEAR",
177     "D3DPTFILTERCAPS_LINEARMIPNEAREST",
178     "D3DPTFILTERCAPS_LINEARMIPLINEAR",
179     "D3DPTFILTERCAPS_MINFPOINT",
180     "D3DPTFILTERCAPS_MINFLINEAR",
181     "D3DPTFILTERCAPS_MINFANISOTROPIC",
182     "D3DPTFILTERCAPS_MIPFPOINT",
183     "D3DPTFILTERCAPS_MIPFLINEAR",
184     "D3DPTFILTERCAPS_MAGFPOINT",
185     "D3DPTFILTERCAPS_MAGFLINEAR",
186     "D3DPTFILTERCAPS_MAGFANISOTROPIC",
187     "D3DPTFILTERCAPS_MAGFAFLATCUBIC",
188     "D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC",
189 ])
190
191 D3DPTBLENDCAPS = Flags(DWORD, [
192     "D3DPTBLENDCAPS_DECAL",
193     "D3DPTBLENDCAPS_MODULATE",
194     "D3DPTBLENDCAPS_DECALALPHA",
195     "D3DPTBLENDCAPS_MODULATEALPHA",
196     "D3DPTBLENDCAPS_DECALMASK",
197     "D3DPTBLENDCAPS_MODULATEMASK",
198     "D3DPTBLENDCAPS_COPY",
199     "D3DPTBLENDCAPS_ADD",
200 ])
201
202 D3DPTADDRESSCAPS = Flags(DWORD, [
203     "D3DPTADDRESSCAPS_WRAP",
204     "D3DPTADDRESSCAPS_MIRROR",
205     "D3DPTADDRESSCAPS_CLAMP",
206     "D3DPTADDRESSCAPS_BORDER",
207     "D3DPTADDRESSCAPS_INDEPENDENTUV",
208 ])
209
210 D3DSTENCILCAPS = Flags(DWORD, [
211     "D3DSTENCILCAPS_KEEP",
212     "D3DSTENCILCAPS_ZERO",
213     "D3DSTENCILCAPS_REPLACE",
214     "D3DSTENCILCAPS_INCRSAT",
215     "D3DSTENCILCAPS_DECRSAT",
216     "D3DSTENCILCAPS_INVERT",
217     "D3DSTENCILCAPS_INCR",
218     "D3DSTENCILCAPS_DECR",
219 ])
220
221 D3DTEXOPCAPS = Flags(DWORD, [
222     "D3DTEXOPCAPS_DISABLE",
223     "D3DTEXOPCAPS_SELECTARG1",
224     "D3DTEXOPCAPS_SELECTARG2",
225     "D3DTEXOPCAPS_MODULATE",
226     "D3DTEXOPCAPS_MODULATE2X",
227     "D3DTEXOPCAPS_MODULATE4X",
228     "D3DTEXOPCAPS_ADD",
229     "D3DTEXOPCAPS_ADDSIGNED",
230     "D3DTEXOPCAPS_ADDSIGNED2X",
231     "D3DTEXOPCAPS_SUBTRACT",
232     "D3DTEXOPCAPS_ADDSMOOTH",
233     "D3DTEXOPCAPS_BLENDDIFFUSEALPHA",
234     "D3DTEXOPCAPS_BLENDTEXTUREALPHA",
235     "D3DTEXOPCAPS_BLENDFACTORALPHA",
236     "D3DTEXOPCAPS_BLENDTEXTUREALPHAPM",
237     "D3DTEXOPCAPS_BLENDCURRENTALPHA",
238     "D3DTEXOPCAPS_PREMODULATE",
239     "D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR",
240     "D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA",
241     "D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR",
242     "D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA",
243     "D3DTEXOPCAPS_BUMPENVMAP",
244     "D3DTEXOPCAPS_BUMPENVMAPLUMINANCE",
245     "D3DTEXOPCAPS_DOTPRODUCT3",
246 ])
247
248 D3DFVFCAPS = Flags(DWORD, [
249     "D3DFVFCAPS_TEXCOORDCOUNTMASK",
250     "D3DFVFCAPS_DONOTSTRIPELEMENTS",
251 ])
252
253 D3DDD = Flags(DWORD, [
254     "D3DDD_COLORMODEL",
255     "D3DDD_DEVCAPS",
256     "D3DDD_TRANSFORMCAPS",
257     "D3DDD_LIGHTINGCAPS",
258     "D3DDD_BCLIPPING",
259     "D3DDD_LINECAPS",
260     "D3DDD_TRICAPS",
261     "D3DDD_DEVICERENDERBITDEPTH",
262     "D3DDD_DEVICEZBUFFERBITDEPTH",
263     "D3DDD_MAXBUFFERSIZE",
264     "D3DDD_MAXVERTEXCOUNT",
265 ])
266
267 D3DDEVCAPS = Flags(DWORD, [
268     "D3DDEVCAPS_FLOATTLVERTEX",
269     "D3DDEVCAPS_SORTINCREASINGZ",
270     "D3DDEVCAPS_SORTDECREASINGZ",
271     "D3DDEVCAPS_SORTEXACT",
272     "D3DDEVCAPS_EXECUTESYSTEMMEMORY",
273     "D3DDEVCAPS_EXECUTEVIDEOMEMORY",
274     "D3DDEVCAPS_TLVERTEXSYSTEMMEMORY",
275     "D3DDEVCAPS_TLVERTEXVIDEOMEMORY",
276     "D3DDEVCAPS_TEXTURESYSTEMMEMORY",
277     "D3DDEVCAPS_TEXTUREVIDEOMEMORY",
278     "D3DDEVCAPS_DRAWPRIMTLVERTEX",
279     "D3DDEVCAPS_CANRENDERAFTERFLIP",
280     "D3DDEVCAPS_TEXTURENONLOCALVIDMEM",
281     "D3DDEVCAPS_DRAWPRIMITIVES2",
282     "D3DDEVCAPS_SEPARATETEXTUREMEMORIES",
283     "D3DDEVCAPS_DRAWPRIMITIVES2EX",
284     "D3DDEVCAPS_HWTRANSFORMANDLIGHT",
285     "D3DDEVCAPS_CANBLTSYSTONONLOCAL",
286     "D3DDEVCAPS_HWRASTERIZATION",
287 ])
288
289 D3DVTXPCAPS = Flags(DWORD, [
290     "D3DVTXPCAPS_TEXGEN",
291     "D3DVTXPCAPS_MATERIALSOURCE7",
292     "D3DVTXPCAPS_VERTEXFOG",
293     "D3DVTXPCAPS_DIRECTIONALLIGHTS",
294     "D3DVTXPCAPS_POSITIONALLIGHTS",
295     "D3DVTXPCAPS_LOCALVIEWER",
296 ])
297
298 D3DFDS = Flags(DWORD, [
299     "D3DFDS_COLORMODEL",
300     "D3DFDS_GUID",
301     "D3DFDS_HARDWARE",
302     "D3DFDS_TRIANGLES",
303     "D3DFDS_LINES",
304     "D3DFDS_MISCCAPS",
305     "D3DFDS_RASTERCAPS",
306     "D3DFDS_ZCMPCAPS",
307     "D3DFDS_ALPHACMPCAPS",
308     "D3DFDS_SRCBLENDCAPS",
309     "D3DFDS_DSTBLENDCAPS",
310     "D3DFDS_SHADECAPS",
311     "D3DFDS_TEXTURECAPS",
312     "D3DFDS_TEXTUREFILTERCAPS",
313     "D3DFDS_TEXTUREBLENDCAPS",
314     "D3DFDS_TEXTUREADDRESSCAPS",
315 ])
316
317 D3DFINDDEVICESEARCH = Struct("D3DFINDDEVICESEARCH", [
318     (DWORD, "dwSize"),
319     (DWORD, "dwFlags"),
320     (BOOL, "bHardware"),
321     (D3DCOLORMODEL, "dcmColorModel"),
322     (GUID, "guid"),
323     (DWORD, "dwCaps"),
324     (D3DPRIMCAPS, "dpcPrimCaps"),
325 ])
326 LPD3DFINDDEVICESEARCH = Pointer(D3DFINDDEVICESEARCH)
327
328 D3DEXECUTEBUFFERDESC = Struct("D3DEXECUTEBUFFERDESC", [
329     (DWORD, "dwSize"),
330     (DWORD, "dwFlags"),
331     (DWORD, "dwCaps"),
332     (DWORD, "dwBufferSize"),
333     (LPVOID, "lpData"),
334 ])
335 LPD3DEXECUTEBUFFERDESC = Pointer(D3DEXECUTEBUFFERDESC)
336
337 D3DDEB = Flags(DWORD, [
338     "D3DDEB_BUFSIZE",
339     "D3DDEB_CAPS",
340     "D3DDEB_LPDATA",
341 ])
342
343 D3DDEBCAPS = Flags(DWORD, [
344     "D3DDEBCAPS_SYSTEMMEMORY",
345     "D3DDEBCAPS_VIDEOMEMORY",
346     "D3DDEBCAPS_MEM",
347 ])
348
349 D3DDEVINFO_TEXTUREMANAGER = Struct("D3DDEVINFO_TEXTUREMANAGER", [
350     (BOOL, "bThrashing"),
351     (DWORD, "dwApproxBytesDownloaded"),
352     (DWORD, "dwNumEvicts"),
353     (DWORD, "dwNumVidCreates"),
354     (DWORD, "dwNumTexturesUsed"),
355     (DWORD, "dwNumUsedTexInVid"),
356     (DWORD, "dwWorkingSet"),
357     (DWORD, "dwWorkingSetBytes"),
358     (DWORD, "dwTotalManaged"),
359     (DWORD, "dwTotalBytes"),
360     (DWORD, "dwLastPri"),
361 ])
362
363 D3DDEVINFO_TEXTURING = Struct("D3DDEVINFO_TEXTURING", [
364     (DWORD, "dwNumLoads"),
365     (DWORD, "dwApproxBytesLoaded"),
366     (DWORD, "dwNumPreLoads"),
367     (DWORD, "dwNumSet"),
368     (DWORD, "dwNumCreates"),
369     (DWORD, "dwNumDestroys"),
370     (DWORD, "dwNumSetPriorities"),
371     (DWORD, "dwNumSetLODs"),
372     (DWORD, "dwNumLocks"),
373     (DWORD, "dwNumGetDCs"),
374 ])
375
376 D3DDEVICEDESC = Struct("D3DDEVICEDESC", [
377     (DWORD, "dwSize"),
378     (DWORD, "dwFlags"),
379     (D3DCOLORMODEL, "dcmColorModel"),
380     (DWORD, "dwDevCaps"),
381     (D3DTRANSFORMCAPS, "dtcTransformCaps"),
382     (BOOL, "bClipping"),
383     (D3DLIGHTINGCAPS, "dlcLightingCaps"),
384     (D3DPRIMCAPS, "dpcLineCaps"),
385     (D3DPRIMCAPS, "dpcTriCaps"),
386     (DWORD, "dwDeviceRenderBitDepth"),
387     (DWORD, "dwDeviceZBufferBitDepth"),
388     (DWORD, "dwMaxBufferSize"),
389     (DWORD, "dwMaxVertexCount"),
390     (DWORD, "dwMinTextureWidth"),
391     (DWORD, "dwMinTextureHeight"),
392     (DWORD, "dwMaxTextureWidth"),
393     (DWORD, "dwMaxTextureHeight"),
394     (DWORD, "dwMinStippleWidth"),
395     (DWORD, "dwMaxStippleWidth"),
396     (DWORD, "dwMinStippleHeight"),
397     (DWORD, "dwMaxStippleHeight"),
398     (DWORD, "dwMaxTextureRepeat"),
399     (DWORD, "dwMaxTextureAspectRatio"),
400     (DWORD, "dwMaxAnisotropy"),
401     (D3DVALUE, "dvGuardBandLeft"),
402     (D3DVALUE, "dvGuardBandTop"),
403     (D3DVALUE, "dvGuardBandRight"),
404     (D3DVALUE, "dvGuardBandBottom"),
405     (D3DVALUE, "dvExtentsAdjust"),
406     (DWORD, "dwStencilCaps"),
407     (DWORD, "dwFVFCaps"),
408     (DWORD, "dwTextureOpCaps"),
409     (WORD, "wMaxTextureBlendStages"),
410     (WORD, "wMaxSimultaneousTextures"),
411 ])
412 LPD3DDEVICEDESC = Pointer(D3DDEVICEDESC)
413
414 D3DDEVICEDESC7 = Struct("D3DDEVICEDESC7", [
415     (DWORD, "dwDevCaps"),
416     (D3DPRIMCAPS, "dpcLineCaps"),
417     (D3DPRIMCAPS, "dpcTriCaps"),
418     (DWORD, "dwDeviceRenderBitDepth"),
419     (DWORD, "dwDeviceZBufferBitDepth"),
420     (DWORD, "dwMinTextureWidth"),
421     (DWORD, "dwMinTextureHeight"),
422     (DWORD, "dwMaxTextureWidth"),
423     (DWORD, "dwMaxTextureHeight"),
424     (DWORD, "dwMaxTextureRepeat"),
425     (DWORD, "dwMaxTextureAspectRatio"),
426     (DWORD, "dwMaxAnisotropy"),
427     (D3DVALUE, "dvGuardBandLeft"),
428     (D3DVALUE, "dvGuardBandTop"),
429     (D3DVALUE, "dvGuardBandRight"),
430     (D3DVALUE, "dvGuardBandBottom"),
431     (D3DVALUE, "dvExtentsAdjust"),
432     (DWORD, "dwStencilCaps"),
433     (DWORD, "dwFVFCaps"),
434     (DWORD, "dwTextureOpCaps"),
435     (WORD, "wMaxTextureBlendStages"),
436     (WORD, "wMaxSimultaneousTextures"),
437     (DWORD, "dwMaxActiveLights"),
438     (D3DVALUE, "dvMaxVertexW"),
439     (GUID, "deviceGUID"),
440     (WORD, "wMaxUserClipPlanes"),
441     (WORD, "wMaxVertexBlendMatrices"),
442     (DWORD, "dwVertexProcessingCaps"),
443     (DWORD, "dwReserved1"),
444     (DWORD, "dwReserved2"),
445     (DWORD, "dwReserved3"),
446     (DWORD, "dwReserved4"),
447 ])
448 LPD3DDEVICEDESC7 = Pointer(D3DDEVICEDESC7)
449
450 D3DFINDDEVICERESULT = Struct("D3DFINDDEVICERESULT", [
451     (DWORD, "dwSize"),
452     (GUID, "guid"),
453     (D3DDEVICEDESC, "ddHwDesc"),
454     (D3DDEVICEDESC, "ddSwDesc"),
455 ])
456 LPD3DFINDDEVICERESULT = Pointer(D3DFINDDEVICERESULT)
457
458 LPD3DENUMDEVICESCALLBACK = Function(HRESULT, "LPD3DENUMDEVICESCALLBACK", [(Pointer(GUID), "lpGuid"), (LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC, LPD3DDEVICEDESC, LPVOID])
459 LPD3DENUMDEVICESCALLBACK7 = Function(HRESULT, "LPD3DENUMDEVICESCALLBACK7", [(LPSTR, "lpDeviceDescription"), (LPSTR, "lpDeviceName"), LPD3DDEVICEDESC7, LPVOID])
460