1 #############################################################################
3 # Copyright 2008 Tungsten Graphics, Inc.
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.
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.
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/>.
18 #############################################################################
23 from d3dtypes import *
25 D3DTRANSFORMCAPS = Flags(DWORD, [
26 "D3DTRANSFORMCAPS_CLIP",
29 D3DTRANSFORMCAPS = Struct("D3DTRANSFORMCAPS", [
34 D3DLIGHTINGCAPS = Struct("D3DLIGHTINGCAPS", [
37 (DWORD, "dwLightingModel"),
38 (DWORD, "dwNumLights"),
41 D3DLIGHTINGMODEL = Flags(DWORD, [
42 "D3DLIGHTINGMODEL_RGB",
43 "D3DLIGHTINGMODEL_MONO",
46 D3DLIGHTCAPS = Flags(DWORD, [
49 "D3DLIGHTCAPS_DIRECTIONAL",
50 "D3DLIGHTCAPS_PARALLELPOINT",
51 "D3DLIGHTCAPS_GLSPOT",
54 D3DPRIMCAPS = Struct("D3DPRIMCAPS", [
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"),
71 D3DPMISCCAPS = Flags(DWORD, [
72 "D3DPMISCCAPS_MASKPLANES",
74 "D3DPMISCCAPS_LINEPATTERNREP",
75 "D3DPMISCCAPS_CONFORMANT",
76 "D3DPMISCCAPS_CULLNONE",
77 "D3DPMISCCAPS_CULLCW",
78 "D3DPMISCCAPS_CULLCCW",
81 D3DXD3DPRASTERCAPSXX = Flags(DWORD, [
82 "D3DPRASTERCAPS_DITHER",
83 "D3DPRASTERCAPS_ROP2",
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",
106 D3DPCMPCAPS = Flags(DWORD, [
110 "D3DPCMPCAPS_LESSEQUAL",
111 "D3DPCMPCAPS_GREATER",
112 "D3DPCMPCAPS_NOTEQUAL",
113 "D3DPCMPCAPS_GREATEREQUAL",
114 "D3DPCMPCAPS_ALWAYS",
117 D3DPBLENDCAPS = Flags(DWORD, [
118 "D3DPBLENDCAPS_ZERO",
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",
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",
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",
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",
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",
202 D3DPTADDRESSCAPS = Flags(DWORD, [
203 "D3DPTADDRESSCAPS_WRAP",
204 "D3DPTADDRESSCAPS_MIRROR",
205 "D3DPTADDRESSCAPS_CLAMP",
206 "D3DPTADDRESSCAPS_BORDER",
207 "D3DPTADDRESSCAPS_INDEPENDENTUV",
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",
221 D3DTEXOPCAPS = Flags(DWORD, [
222 "D3DTEXOPCAPS_DISABLE",
223 "D3DTEXOPCAPS_SELECTARG1",
224 "D3DTEXOPCAPS_SELECTARG2",
225 "D3DTEXOPCAPS_MODULATE",
226 "D3DTEXOPCAPS_MODULATE2X",
227 "D3DTEXOPCAPS_MODULATE4X",
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",
248 D3DFVFCAPS = Flags(DWORD, [
249 "D3DFVFCAPS_TEXCOORDCOUNTMASK",
250 "D3DFVFCAPS_DONOTSTRIPELEMENTS",
253 D3DDD = Flags(DWORD, [
256 "D3DDD_TRANSFORMCAPS",
257 "D3DDD_LIGHTINGCAPS",
261 "D3DDD_DEVICERENDERBITDEPTH",
262 "D3DDD_DEVICEZBUFFERBITDEPTH",
263 "D3DDD_MAXBUFFERSIZE",
264 "D3DDD_MAXVERTEXCOUNT",
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",
289 D3DVTXPCAPS = Flags(DWORD, [
290 "D3DVTXPCAPS_TEXGEN",
291 "D3DVTXPCAPS_MATERIALSOURCE7",
292 "D3DVTXPCAPS_VERTEXFOG",
293 "D3DVTXPCAPS_DIRECTIONALLIGHTS",
294 "D3DVTXPCAPS_POSITIONALLIGHTS",
295 "D3DVTXPCAPS_LOCALVIEWER",
298 D3DFDS = Flags(DWORD, [
307 "D3DFDS_ALPHACMPCAPS",
308 "D3DFDS_SRCBLENDCAPS",
309 "D3DFDS_DSTBLENDCAPS",
311 "D3DFDS_TEXTURECAPS",
312 "D3DFDS_TEXTUREFILTERCAPS",
313 "D3DFDS_TEXTUREBLENDCAPS",
314 "D3DFDS_TEXTUREADDRESSCAPS",
317 D3DFINDDEVICESEARCH = Struct("D3DFINDDEVICESEARCH", [
321 (D3DCOLORMODEL, "dcmColorModel"),
324 (D3DPRIMCAPS, "dpcPrimCaps"),
326 LPD3DFINDDEVICESEARCH = Pointer(D3DFINDDEVICESEARCH)
328 D3DEXECUTEBUFFERDESC = Struct("D3DEXECUTEBUFFERDESC", [
332 (DWORD, "dwBufferSize"),
335 LPD3DEXECUTEBUFFERDESC = Pointer(D3DEXECUTEBUFFERDESC)
337 D3DDEB = Flags(DWORD, [
343 D3DDEBCAPS = Flags(DWORD, [
344 "D3DDEBCAPS_SYSTEMMEMORY",
345 "D3DDEBCAPS_VIDEOMEMORY",
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"),
363 D3DDEVINFO_TEXTURING = Struct("D3DDEVINFO_TEXTURING", [
364 (DWORD, "dwNumLoads"),
365 (DWORD, "dwApproxBytesLoaded"),
366 (DWORD, "dwNumPreLoads"),
368 (DWORD, "dwNumCreates"),
369 (DWORD, "dwNumDestroys"),
370 (DWORD, "dwNumSetPriorities"),
371 (DWORD, "dwNumSetLODs"),
372 (DWORD, "dwNumLocks"),
373 (DWORD, "dwNumGetDCs"),
376 D3DDEVICEDESC = Struct("D3DDEVICEDESC", [
379 (D3DCOLORMODEL, "dcmColorModel"),
380 (DWORD, "dwDevCaps"),
381 (D3DTRANSFORMCAPS, "dtcTransformCaps"),
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"),
412 LPD3DDEVICEDESC = Pointer(D3DDEVICEDESC)
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"),
448 LPD3DDEVICEDESC7 = Pointer(D3DDEVICEDESC7)
450 D3DFINDDEVICERESULT = Struct("D3DFINDDEVICERESULT", [
453 (D3DDEVICEDESC, "ddHwDesc"),
454 (D3DDEVICEDESC, "ddSwDesc"),
456 LPD3DFINDDEVICERESULT = Pointer(D3DFINDDEVICERESULT)
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])