1 #############################################################################
3 # Copyright 2008 Jose Fonseca
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)",
263 D3DVS_VERSION = Enum("DWORD", [
264 "D3DVS_VERSION(0,0)",
265 "D3DVS_VERSION(1,0)",
266 "D3DVS_VERSION(1,1)",
267 "D3DVS_VERSION(2,0)",
268 "D3DVS_VERSION(3,0)",
271 D3DCAPS8 = Struct("D3DCAPS8", [
272 (D3DDEVTYPE, "DeviceType"),
273 (UINT, "AdapterOrdinal"),
277 (D3DPRESENT_INTERVAL, "PresentationIntervals"),
278 (D3DCURSORCAPS, "CursorCaps"),
279 (D3DDEVCAPS, "DevCaps"),
280 (D3DPMISCCAPS, "PrimitiveMiscCaps"),
281 (D3DPRASTERCAPS, "RasterCaps"),
282 (D3DPCMPCAPS, "ZCmpCaps"),
283 (D3DPBLENDCAPS, "SrcBlendCaps"),
284 (D3DPBLENDCAPS, "DestBlendCaps"),
285 (D3DPCMPCAPS, "AlphaCmpCaps"),
286 (D3DPSHADECAPS, "ShadeCaps"),
287 (D3DPTEXTURECAPS, "TextureCaps"),
288 (D3DPTFILTERCAPS, "TextureFilterCaps"),
289 (D3DPTFILTERCAPS, "CubeTextureFilterCaps"),
290 (D3DPTFILTERCAPS, "VolumeTextureFilterCaps"),
291 (D3DPTADDRESSCAPS, "TextureAddressCaps"),
292 (D3DPTADDRESSCAPS, "VolumeTextureAddressCaps"),
293 (D3DLINECAPS, "LineCaps"),
294 (DWORD, "MaxTextureWidth"),
295 (DWORD, "MaxTextureHeight"),
296 (DWORD, "MaxVolumeExtent"),
297 (DWORD, "MaxTextureRepeat"),
298 (DWORD, "MaxTextureAspectRatio"),
299 (DWORD, "MaxAnisotropy"),
300 (Float, "MaxVertexW"),
301 (Float, "GuardBandLeft"),
302 (Float, "GuardBandTop"),
303 (Float, "GuardBandRight"),
304 (Float, "GuardBandBottom"),
305 (Float, "ExtentsAdjust"),
306 (D3DSTENCILCAPS, "StencilCaps"),
307 (D3DFVFCAPS, "FVFCaps"),
308 (D3DTEXOPCAPS, "TextureOpCaps"),
309 (DWORD, "MaxTextureBlendStages"),
310 (DWORD, "MaxSimultaneousTextures"),
311 (D3DVTXPCAPS, "VertexProcessingCaps"),
312 (DWORD, "MaxActiveLights"),
313 (DWORD, "MaxUserClipPlanes"),
314 (DWORD, "MaxVertexBlendMatrices"),
315 (DWORD, "MaxVertexBlendMatrixIndex"),
316 (Float, "MaxPointSize"),
317 (DWORD, "MaxPrimitiveCount"),
318 (DWORD, "MaxVertexIndex"),
319 (DWORD, "MaxStreams"),
320 (DWORD, "MaxStreamStride"),
321 (D3DVS_VERSION, "VertexShaderVersion"),
322 (DWORD, "MaxVertexShaderConst"),
323 (D3DPS_VERSION, "PixelShaderVersion"),
324 (Float, "MaxPixelShaderValue"),