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 d3d8types import *
25 D3DCAPS = Flags(DWORD, [
26 "D3DCAPS_READ_SCANLINE",
29 D3DCAPS2 = Flags(DWORD, [
30 "D3DCAPS2_NO2DDURING3DSCENE",
31 "D3DCAPS2_FULLSCREENGAMMA",
32 "D3DCAPS2_CANRENDERWINDOWED",
33 "D3DCAPS2_CANCALIBRATEGAMMA",
35 "D3DCAPS2_CANMANAGERESOURCE",
36 "D3DCAPS2_DYNAMICTEXTURES",
39 D3DCAPS3 = Flags(DWORD, [
41 "D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD",
44 D3DPRESENT_INTERVAL = Flags(DWORD, [
45 "D3DPRESENT_INTERVAL_DEFAULT",
46 "D3DPRESENT_INTERVAL_ONE",
47 "D3DPRESENT_INTERVAL_TWO",
48 "D3DPRESENT_INTERVAL_THREE",
49 "D3DPRESENT_INTERVAL_FOUR",
50 "D3DPRESENT_INTERVAL_IMMEDIATE",
53 D3DCURSORCAPS = Flags(DWORD, [
54 "D3DCURSORCAPS_COLOR",
55 "D3DCURSORCAPS_LOWRES",
58 D3DDEVCAPS = Flags(DWORD, [
59 "D3DDEVCAPS_EXECUTESYSTEMMEMORY",
60 "D3DDEVCAPS_EXECUTEVIDEOMEMORY",
61 "D3DDEVCAPS_TLVERTEXSYSTEMMEMORY",
62 "D3DDEVCAPS_TLVERTEXVIDEOMEMORY",
63 "D3DDEVCAPS_TEXTURESYSTEMMEMORY",
64 "D3DDEVCAPS_TEXTUREVIDEOMEMORY",
65 "D3DDEVCAPS_DRAWPRIMTLVERTEX",
66 "D3DDEVCAPS_CANRENDERAFTERFLIP",
67 "D3DDEVCAPS_TEXTURENONLOCALVIDMEM",
68 "D3DDEVCAPS_DRAWPRIMITIVES2",
69 "D3DDEVCAPS_SEPARATETEXTUREMEMORIES",
70 "D3DDEVCAPS_DRAWPRIMITIVES2EX",
71 "D3DDEVCAPS_HWTRANSFORMANDLIGHT",
72 "D3DDEVCAPS_CANBLTSYSTONONLOCAL",
73 "D3DDEVCAPS_HWRASTERIZATION",
74 "D3DDEVCAPS_PUREDEVICE",
75 "D3DDEVCAPS_QUINTICRTPATCHES",
76 "D3DDEVCAPS_RTPATCHES",
77 "D3DDEVCAPS_RTPATCHHANDLEZERO",
78 "D3DDEVCAPS_NPATCHES",
81 D3DPMISCCAPS = Flags(DWORD, [
83 "D3DPMISCCAPS_LINEPATTERNREP",
84 "D3DPMISCCAPS_CULLNONE",
85 "D3DPMISCCAPS_CULLCW",
86 "D3DPMISCCAPS_CULLCCW",
87 "D3DPMISCCAPS_COLORWRITEENABLE",
88 "D3DPMISCCAPS_CLIPPLANESCALEDPOINTS",
89 "D3DPMISCCAPS_CLIPTLVERTS",
90 "D3DPMISCCAPS_TSSARGTEMP",
91 "D3DPMISCCAPS_BLENDOP",
92 "D3DPMISCCAPS_NULLREFERENCE",
95 D3DLINECAPS = Flags(DWORD, [
96 "D3DLINECAPS_TEXTURE",
99 "D3DLINECAPS_ALPHACMP",
103 D3DPRASTERCAPS = Flags(DWORD, [
104 "D3DPRASTERCAPS_DITHER",
105 "D3DPRASTERCAPS_PAT",
106 "D3DPRASTERCAPS_ZTEST",
107 "D3DPRASTERCAPS_FOGVERTEX",
108 "D3DPRASTERCAPS_FOGTABLE",
109 "D3DPRASTERCAPS_ANTIALIASEDGES",
110 "D3DPRASTERCAPS_MIPMAPLODBIAS",
111 "D3DPRASTERCAPS_ZBIAS",
112 "D3DPRASTERCAPS_ZBUFFERLESSHSR",
113 "D3DPRASTERCAPS_FOGRANGE",
114 "D3DPRASTERCAPS_ANISOTROPY",
115 "D3DPRASTERCAPS_WBUFFER",
116 "D3DPRASTERCAPS_WFOG",
117 "D3DPRASTERCAPS_ZFOG",
118 "D3DPRASTERCAPS_COLORPERSPECTIVE",
119 "D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE",
122 D3DPCMPCAPS = Flags(DWORD, [
126 "D3DPCMPCAPS_LESSEQUAL",
127 "D3DPCMPCAPS_GREATER",
128 "D3DPCMPCAPS_NOTEQUAL",
129 "D3DPCMPCAPS_GREATEREQUAL",
130 "D3DPCMPCAPS_ALWAYS",
133 D3DPBLENDCAPS = Flags(DWORD, [
134 "D3DPBLENDCAPS_ZERO",
136 "D3DPBLENDCAPS_SRCCOLOR",
137 "D3DPBLENDCAPS_INVSRCCOLOR",
138 "D3DPBLENDCAPS_SRCALPHA",
139 "D3DPBLENDCAPS_INVSRCALPHA",
140 "D3DPBLENDCAPS_DESTALPHA",
141 "D3DPBLENDCAPS_INVDESTALPHA",
142 "D3DPBLENDCAPS_DESTCOLOR",
143 "D3DPBLENDCAPS_INVDESTCOLOR",
144 "D3DPBLENDCAPS_SRCALPHASAT",
145 "D3DPBLENDCAPS_BOTHSRCALPHA",
146 "D3DPBLENDCAPS_BOTHINVSRCALPHA",
149 D3DPSHADECAPS = Flags(DWORD, [
150 "D3DPSHADECAPS_COLORGOURAUDRGB",
151 "D3DPSHADECAPS_SPECULARGOURAUDRGB",
152 "D3DPSHADECAPS_ALPHAGOURAUDBLEND",
153 "D3DPSHADECAPS_FOGGOURAUD",
156 D3DPTEXTURECAPS = Flags(DWORD, [
157 "D3DPTEXTURECAPS_PERSPECTIVE",
158 "D3DPTEXTURECAPS_POW2",
159 "D3DPTEXTURECAPS_ALPHA",
160 "D3DPTEXTURECAPS_SQUAREONLY",
161 "D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE",
162 "D3DPTEXTURECAPS_ALPHAPALETTE",
163 "D3DPTEXTURECAPS_NONPOW2CONDITIONAL",
164 "D3DPTEXTURECAPS_PROJECTED",
165 "D3DPTEXTURECAPS_CUBEMAP",
166 "D3DPTEXTURECAPS_VOLUMEMAP",
167 "D3DPTEXTURECAPS_MIPMAP",
168 "D3DPTEXTURECAPS_MIPVOLUMEMAP",
169 "D3DPTEXTURECAPS_MIPCUBEMAP",
170 "D3DPTEXTURECAPS_CUBEMAP_POW2",
171 "D3DPTEXTURECAPS_VOLUMEMAP_POW2",
174 D3DPTFILTERCAPS = Flags(DWORD, [
175 "D3DPTFILTERCAPS_MINFPOINT",
176 "D3DPTFILTERCAPS_MINFLINEAR",
177 "D3DPTFILTERCAPS_MINFANISOTROPIC",
178 "D3DPTFILTERCAPS_MIPFPOINT",
179 "D3DPTFILTERCAPS_MIPFLINEAR",
180 "D3DPTFILTERCAPS_MAGFPOINT",
181 "D3DPTFILTERCAPS_MAGFLINEAR",
182 "D3DPTFILTERCAPS_MAGFANISOTROPIC",
183 "D3DPTFILTERCAPS_MAGFAFLATCUBIC",
184 "D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC",
187 D3DPTADDRESSCAPS = Flags(DWORD, [
188 "D3DPTADDRESSCAPS_WRAP",
189 "D3DPTADDRESSCAPS_MIRROR",
190 "D3DPTADDRESSCAPS_CLAMP",
191 "D3DPTADDRESSCAPS_BORDER",
192 "D3DPTADDRESSCAPS_INDEPENDENTUV",
193 "D3DPTADDRESSCAPS_MIRRORONCE",
196 D3DSTENCILCAPS = Flags(DWORD, [
197 "D3DSTENCILCAPS_KEEP",
198 "D3DSTENCILCAPS_ZERO",
199 "D3DSTENCILCAPS_REPLACE",
200 "D3DSTENCILCAPS_INCRSAT",
201 "D3DSTENCILCAPS_DECRSAT",
202 "D3DSTENCILCAPS_INVERT",
203 "D3DSTENCILCAPS_INCR",
204 "D3DSTENCILCAPS_DECR",
207 D3DTEXOPCAPS = Flags(DWORD, [
208 "D3DTEXOPCAPS_DISABLE",
209 "D3DTEXOPCAPS_SELECTARG1",
210 "D3DTEXOPCAPS_SELECTARG2",
211 "D3DTEXOPCAPS_MODULATE",
212 "D3DTEXOPCAPS_MODULATE2X",
213 "D3DTEXOPCAPS_MODULATE4X",
215 "D3DTEXOPCAPS_ADDSIGNED",
216 "D3DTEXOPCAPS_ADDSIGNED2X",
217 "D3DTEXOPCAPS_SUBTRACT",
218 "D3DTEXOPCAPS_ADDSMOOTH",
219 "D3DTEXOPCAPS_BLENDDIFFUSEALPHA",
220 "D3DTEXOPCAPS_BLENDTEXTUREALPHA",
221 "D3DTEXOPCAPS_BLENDFACTORALPHA",
222 "D3DTEXOPCAPS_BLENDTEXTUREALPHAPM",
223 "D3DTEXOPCAPS_BLENDCURRENTALPHA",
224 "D3DTEXOPCAPS_PREMODULATE",
225 "D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR",
226 "D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA",
227 "D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR",
228 "D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA",
229 "D3DTEXOPCAPS_BUMPENVMAP",
230 "D3DTEXOPCAPS_BUMPENVMAPLUMINANCE",
231 "D3DTEXOPCAPS_DOTPRODUCT3",
232 "D3DTEXOPCAPS_MULTIPLYADD",
236 D3DFVFCAPS = Flags(DWORD, [
237 "D3DFVFCAPS_TEXCOORDCOUNTMASK",
238 "D3DFVFCAPS_DONOTSTRIPELEMENTS",
242 D3DVTXPCAPS = Flags(DWORD, [
243 "D3DVTXPCAPS_TEXGEN",
244 "D3DVTXPCAPS_MATERIALSOURCE7",
245 "D3DVTXPCAPS_DIRECTIONALLIGHTS",
246 "D3DVTXPCAPS_POSITIONALLIGHTS",
247 "D3DVTXPCAPS_LOCALVIEWER",
248 "D3DVTXPCAPS_TWEENING",
249 "D3DVTXPCAPS_NO_VSDT_UBYTE4",
252 #D3DPS_VERSION = Enum("DWORD", [
253 # "D3DPS_VERSION(0,0)",
254 # "D3DPS_VERSION(1,0)",
255 # "D3DPS_VERSION(1,1)",
256 # "D3DPS_VERSION(1,2)",
257 # "D3DPS_VERSION(1,3)",
258 # "D3DPS_VERSION(1,4)",
259 # "D3DPS_VERSION(2,0)",
260 # "D3DPS_VERSION(3,0)",
262 D3DPS_VERSION = DWORD
264 #D3DVS_VERSION = Enum("DWORD", [
265 # "D3DVS_VERSION(0,0)",
266 # "D3DVS_VERSION(1,0)",
267 # "D3DVS_VERSION(1,1)",
268 # "D3DVS_VERSION(2,0)",
269 # "D3DVS_VERSION(3,0)",
271 D3DVS_VERSION = DWORD
274 D3DCAPS8 = Struct("D3DCAPS8", [
275 (D3DDEVTYPE, "DeviceType"),
276 (UINT, "AdapterOrdinal"),
280 (D3DPRESENT_INTERVAL, "PresentationIntervals"),
281 (D3DCURSORCAPS, "CursorCaps"),
282 (D3DDEVCAPS, "DevCaps"),
283 (D3DPMISCCAPS, "PrimitiveMiscCaps"),
284 (D3DPRASTERCAPS, "RasterCaps"),
285 (D3DPCMPCAPS, "ZCmpCaps"),
286 (D3DPBLENDCAPS, "SrcBlendCaps"),
287 (D3DPBLENDCAPS, "DestBlendCaps"),
288 (D3DPCMPCAPS, "AlphaCmpCaps"),
289 (D3DPSHADECAPS, "ShadeCaps"),
290 (D3DPTEXTURECAPS, "TextureCaps"),
291 (D3DPTFILTERCAPS, "TextureFilterCaps"),
292 (D3DPTFILTERCAPS, "CubeTextureFilterCaps"),
293 (D3DPTFILTERCAPS, "VolumeTextureFilterCaps"),
294 (D3DPTADDRESSCAPS, "TextureAddressCaps"),
295 (D3DPTADDRESSCAPS, "VolumeTextureAddressCaps"),
296 (D3DLINECAPS, "LineCaps"),
297 (DWORD, "MaxTextureWidth"),
298 (DWORD, "MaxTextureHeight"),
299 (DWORD, "MaxVolumeExtent"),
300 (DWORD, "MaxTextureRepeat"),
301 (DWORD, "MaxTextureAspectRatio"),
302 (DWORD, "MaxAnisotropy"),
303 (Float, "MaxVertexW"),
304 (Float, "GuardBandLeft"),
305 (Float, "GuardBandTop"),
306 (Float, "GuardBandRight"),
307 (Float, "GuardBandBottom"),
308 (Float, "ExtentsAdjust"),
309 (D3DSTENCILCAPS, "StencilCaps"),
310 (D3DFVFCAPS, "FVFCaps"),
311 (D3DTEXOPCAPS, "TextureOpCaps"),
312 (DWORD, "MaxTextureBlendStages"),
313 (DWORD, "MaxSimultaneousTextures"),
314 (D3DVTXPCAPS, "VertexProcessingCaps"),
315 (DWORD, "MaxActiveLights"),
316 (DWORD, "MaxUserClipPlanes"),
317 (DWORD, "MaxVertexBlendMatrices"),
318 (DWORD, "MaxVertexBlendMatrixIndex"),
319 (Float, "MaxPointSize"),
320 (DWORD, "MaxPrimitiveCount"),
321 (DWORD, "MaxVertexIndex"),
322 (DWORD, "MaxStreams"),
323 (DWORD, "MaxStreamStride"),
324 (D3DVS_VERSION, "VertexShaderVersion"),
325 (DWORD, "MaxVertexShaderConst"),
326 (D3DPS_VERSION, "PixelShaderVersion"),
327 (Float, "MaxPixelShaderValue"),