1 |
/* |
2 |
|
3 |
d3d9caps.h - Header file for the Direct3D9 API |
4 |
|
5 |
Written by Filip Navara <xnavara@volny.cz> |
6 |
|
7 |
This library is distributed in the hope that it will be useful, |
8 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
9 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
10 |
|
11 |
*/ |
12 |
|
13 |
#ifndef _D3D9_CAPS_H |
14 |
#define _D3D9_CAPS_H |
15 |
#if __GNUC__ >=3 |
16 |
#pragma GCC system_header |
17 |
#endif |
18 |
|
19 |
#ifndef DIRECT3D_VERSION |
20 |
#define DIRECT3D_VERSION 0x0900 |
21 |
#endif |
22 |
|
23 |
#if (DIRECT3D_VERSION >= 0x0900) |
24 |
|
25 |
#define D3DCURSORCAPS_COLOR 1 |
26 |
#define D3DCURSORCAPS_LOWRES 2 |
27 |
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x10 |
28 |
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x20 |
29 |
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x40 |
30 |
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x80 |
31 |
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x100 |
32 |
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x200 |
33 |
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x400 |
34 |
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x800 |
35 |
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x1000 |
36 |
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x2000 |
37 |
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x4000 |
38 |
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x8000 |
39 |
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x10000 |
40 |
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x20000 |
41 |
#define D3DDEVCAPS_HWRASTERIZATION 0x80000 |
42 |
#define D3DDEVCAPS_PUREDEVICE 0x100000 |
43 |
#define D3DDEVCAPS_QUINTICRTPATCHES 0x200000 |
44 |
#define D3DDEVCAPS_RTPATCHES 0x400000 |
45 |
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x800000 |
46 |
#define D3DDEVCAPS_NPATCHES 0x1000000 |
47 |
#define D3DDEVCAPS2_STREAMOFFSET 0x01 |
48 |
#define D3DDEVCAPS2_DMAPNPATCH 0x02 |
49 |
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x04 |
50 |
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH 0x08 |
51 |
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x10 |
52 |
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x20 |
53 |
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x40 |
54 |
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0xFFFF |
55 |
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x80000 |
56 |
#define D3DFVFCAPS_PSIZE 0x100000 |
57 |
#define D3DLINECAPS_TEXTURE 0x01 |
58 |
#define D3DLINECAPS_ZTEST 0x02 |
59 |
#define D3DLINECAPS_BLEND 0x04 |
60 |
#define D3DLINECAPS_ALPHACMP 0x08 |
61 |
#define D3DLINECAPS_FOG 0x10 |
62 |
#define D3DLINECAPS_ANTIALIAS 0x20 |
63 |
#define D3DPBLENDCAPS_ZERO 0x01 |
64 |
#define D3DPBLENDCAPS_ONE 0x02 |
65 |
#define D3DPBLENDCAPS_SRCCOLOR 0x04 |
66 |
#define D3DPBLENDCAPS_INVSRCCOLOR 0x08 |
67 |
#define D3DPBLENDCAPS_SRCALPHA 0x10 |
68 |
#define D3DPBLENDCAPS_INVSRCALPHA 0x20 |
69 |
#define D3DPBLENDCAPS_DESTALPHA 0x40 |
70 |
#define D3DPBLENDCAPS_INVDESTALPHA 0x80 |
71 |
#define D3DPBLENDCAPS_DESTCOLOR 0x100 |
72 |
#define D3DPBLENDCAPS_INVDESTCOLOR 0x200 |
73 |
#define D3DPBLENDCAPS_SRCALPHASAT 0x400 |
74 |
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x800 |
75 |
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x1000 |
76 |
#define D3DPBLENDCAPS_BLENDFACTOR 0x2000 |
77 |
#define D3DPCMPCAPS_NEVER 0x01 |
78 |
#define D3DPCMPCAPS_LESS 0x02 |
79 |
#define D3DPCMPCAPS_EQUAL 0x04 |
80 |
#define D3DPCMPCAPS_LESSEQUAL 0x08 |
81 |
#define D3DPCMPCAPS_GREATER 0x10 |
82 |
#define D3DPCMPCAPS_NOTEQUAL 0x20 |
83 |
#define D3DPCMPCAPS_GREATEREQUAL 0x40 |
84 |
#define D3DPCMPCAPS_ALWAYS 0x80 |
85 |
#define D3DPMISCCAPS_MASKZ 0x02 |
86 |
#define D3DPMISCCAPS_CULLNONE 0x10 |
87 |
#define D3DPMISCCAPS_CULLCW 0x20 |
88 |
#define D3DPMISCCAPS_CULLCCW 0x40 |
89 |
#define D3DPMISCCAPS_COLORWRITEENABLE 0x80 |
90 |
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x100 |
91 |
#define D3DPMISCCAPS_CLIPTLVERTS 0x200 |
92 |
#define D3DPMISCCAPS_TSSARGTEMP 0x400 |
93 |
#define D3DPMISCCAPS_BLENDOP 0x800 |
94 |
#define D3DPMISCCAPS_NULLREFERENCE 0x1000 |
95 |
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x4000 |
96 |
#define D3DPMISCCAPS_PERSTAGECONSTANT 0x8000 |
97 |
#define D3DPMISCCAPS_FOGANDSPECULARALPHA 0x10000 |
98 |
#define D3DPMISCCAPS_SEPARATEALPHABLEND 0x20000 |
99 |
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x40000 |
100 |
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x80000 |
101 |
#define D3DPMISCCAPS_FOGVERTEXCLAMPED 0x100000 |
102 |
#define D3DPRASTERCAPS_DITHER 0x01 |
103 |
#define D3DPRASTERCAPS_ZTEST 0x10 |
104 |
#define D3DPRASTERCAPS_FOGVERTEX 0x80 |
105 |
#define D3DPRASTERCAPS_FOGTABLE 0x100 |
106 |
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x2000 |
107 |
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x8000 |
108 |
#define D3DPRASTERCAPS_FOGRANGE 0x10000 |
109 |
#define D3DPRASTERCAPS_ANISOTROPY 0x20000 |
110 |
#define D3DPRASTERCAPS_WBUFFER 0x40000 |
111 |
#define D3DPRASTERCAPS_WFOG 0x100000 |
112 |
#define D3DPRASTERCAPS_ZFOG 0x200000 |
113 |
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x400000 |
114 |
#define D3DPRASTERCAPS_SCISSORTEST 0x1000000 |
115 |
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x2000000 |
116 |
#define D3DPRASTERCAPS_DEPTHBIAS 0x4000000 |
117 |
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x8000000 |
118 |
#define D3DPRESENT_INTERVAL_DEFAULT 0x00 |
119 |
#define D3DPRESENT_INTERVAL_ONE 0x01 |
120 |
#define D3DPRESENT_INTERVAL_TWO 0x02 |
121 |
#define D3DPRESENT_INTERVAL_THREE 0x04 |
122 |
#define D3DPRESENT_INTERVAL_FOUR 0x08 |
123 |
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000L |
124 |
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x08 |
125 |
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x200 |
126 |
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x4000 |
127 |
#define D3DPSHADECAPS_FOGGOURAUD 0x80000 |
128 |
#define D3DPTADDRESSCAPS_WRAP 0x01 |
129 |
#define D3DPTADDRESSCAPS_MIRROR 0x02 |
130 |
#define D3DPTADDRESSCAPS_CLAMP 0x04 |
131 |
#define D3DPTADDRESSCAPS_BORDER 0x08 |
132 |
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x10 |
133 |
#define D3DPTADDRESSCAPS_MIRRORONCE 0x20 |
134 |
#define D3DPTEXTURECAPS_PERSPECTIVE 0x01 |
135 |
#define D3DPTEXTURECAPS_POW2 0x02 |
136 |
#define D3DPTEXTURECAPS_ALPHA 0x04 |
137 |
#define D3DPTEXTURECAPS_SQUAREONLY 0x20 |
138 |
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x40 |
139 |
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x80 |
140 |
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x100 |
141 |
#define D3DPTEXTURECAPS_PROJECTED 0x400 |
142 |
#define D3DPTEXTURECAPS_CUBEMAP 0x800 |
143 |
#define D3DPTEXTURECAPS_VOLUMEMAP 0x2000 |
144 |
#define D3DPTEXTURECAPS_MIPMAP 0x4000 |
145 |
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x8000 |
146 |
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x10000 |
147 |
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x20000 |
148 |
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x40000 |
149 |
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x200000 |
150 |
#define D3DPTFILTERCAPS_MINFPOINT 0x100 |
151 |
#define D3DPTFILTERCAPS_MINFLINEAR 0x200 |
152 |
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x400 |
153 |
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD 0x800 |
154 |
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD 0x1000 |
155 |
#define D3DPTFILTERCAPS_MIPFPOINT 0x10000 |
156 |
#define D3DPTFILTERCAPS_MIPFLINEAR 0x20000 |
157 |
#define D3DPTFILTERCAPS_MAGFPOINT 0x1000000 |
158 |
#define D3DPTFILTERCAPS_MAGFLINEAR 0x2000000 |
159 |
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x4000000 |
160 |
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x8000000 |
161 |
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000 |
162 |
#define D3DSTENCILCAPS_KEEP 0x01 |
163 |
#define D3DSTENCILCAPS_ZERO 0x02 |
164 |
#define D3DSTENCILCAPS_REPLACE 0x04 |
165 |
#define D3DSTENCILCAPS_INCRSAT 0x08 |
166 |
#define D3DSTENCILCAPS_DECRSAT 0x10 |
167 |
#define D3DSTENCILCAPS_INVERT 0x20 |
168 |
#define D3DSTENCILCAPS_INCR 0x40 |
169 |
#define D3DSTENCILCAPS_DECR 0x80 |
170 |
#define D3DSTENCILCAPS_TWOSIDED 0x100 |
171 |
#define D3DTEXOPCAPS_DISABLE 0x01 |
172 |
#define D3DTEXOPCAPS_SELECTARG1 0x02 |
173 |
#define D3DTEXOPCAPS_SELECTARG2 0x04 |
174 |
#define D3DTEXOPCAPS_MODULATE 0x08 |
175 |
#define D3DTEXOPCAPS_MODULATE2X 0x10 |
176 |
#define D3DTEXOPCAPS_MODULATE4X 0x20 |
177 |
#define D3DTEXOPCAPS_ADD 0x40 |
178 |
#define D3DTEXOPCAPS_ADDSIGNED 0x80 |
179 |
#define D3DTEXOPCAPS_ADDSIGNED2X 0x100 |
180 |
#define D3DTEXOPCAPS_SUBTRACT 0x200 |
181 |
#define D3DTEXOPCAPS_ADDSMOOTH 0x400 |
182 |
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x800 |
183 |
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x1000 |
184 |
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x2000 |
185 |
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x4000 |
186 |
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x8000 |
187 |
#define D3DTEXOPCAPS_PREMODULATE 0x10000 |
188 |
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x20000 |
189 |
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x40000 |
190 |
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x80000 |
191 |
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x100000 |
192 |
#define D3DTEXOPCAPS_BUMPENVMAP 0x200000 |
193 |
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x400000 |
194 |
#define D3DTEXOPCAPS_DOTPRODUCT3 0x800000 |
195 |
#define D3DTEXOPCAPS_MULTIPLYADD 0x1000000 |
196 |
#define D3DTEXOPCAPS_LERP 0x2000000 |
197 |
#define D3DVTXPCAPS_TEXGEN 0x01 |
198 |
#define D3DVTXPCAPS_MATERIALSOURCE7 0x02 |
199 |
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x08 |
200 |
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x10 |
201 |
#define D3DVTXPCAPS_LOCALVIEWER 0x20 |
202 |
#define D3DVTXPCAPS_TWEENING 0x40 |
203 |
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP 0x100 |
204 |
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x200 |
205 |
#define D3DCAPS_READ_SCANLINE 0x20000 |
206 |
#define D3DCAPS2_FULLSCREENGAMMA 0x20000L |
207 |
#define D3DCAPS2_CANCALIBRATEGAMMA 0x100000L |
208 |
#define D3DCAPS2_RESERVED 0x2000000L |
209 |
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L |
210 |
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L |
211 |
#define D3DCAPS2_CANAUTOGENMIPMAP 0x40000000L |
212 |
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x20 |
213 |
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x80 |
214 |
#define D3DCAPS3_COPY_TO_VIDMEM 0x100 |
215 |
#define D3DCAPS3_COPY_TO_SYSTEMMEM 0x200 |
216 |
#define D3DCAPS3_RESERVED 0x8000001fL |
217 |
#define D3DDTCAPS_UBYTE4 0x01 |
218 |
#define D3DDTCAPS_UBYTE4N 0x02 |
219 |
#define D3DDTCAPS_SHORT2N 0x04 |
220 |
#define D3DDTCAPS_SHORT4N 0x08 |
221 |
#define D3DDTCAPS_USHORT2N 0x10 |
222 |
#define D3DDTCAPS_USHORT4N 0x20 |
223 |
#define D3DDTCAPS_UDEC3 0x40 |
224 |
#define D3DDTCAPS_DEC3N 0x80 |
225 |
#define D3DDTCAPS_FLOAT16_2 0x100 |
226 |
#define D3DDTCAPS_FLOAT16_4 0x200 |
227 |
#define D3DMIN30SHADERINSTRUCTIONS 512 |
228 |
#define D3DMAX30SHADERINSTRUCTIONS 32768 |
229 |
#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24 |
230 |
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0 |
231 |
#define D3DPS20_MAX_NUMTEMPS 32 |
232 |
#define D3DPS20_MIN_NUMTEMPS 12 |
233 |
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH 4 |
234 |
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH 0 |
235 |
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS 512 |
236 |
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS 96 |
237 |
#define D3DPS20CAPS_ARBITRARYSWIZZLE 0x1 |
238 |
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS 0x2 |
239 |
#define D3DPS20CAPS_PREDICATION 0x4 |
240 |
#define D3DPS20CAPS_NODEPENDENTREADLIMIT 0x8 |
241 |
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT 0x10 |
242 |
#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24 |
243 |
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0 |
244 |
#define D3DVS20_MAX_NUMTEMPS 32 |
245 |
#define D3DVS20_MIN_NUMTEMPS 12 |
246 |
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH 4 |
247 |
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH 1 |
248 |
#define D3DVS20CAPS_PREDICATION 1 |
249 |
|
250 |
typedef struct _D3DVSHADERCAPS2_0 { |
251 |
DWORD Caps; |
252 |
INT DynamicFlowControlDepth; |
253 |
INT NumTemps; |
254 |
INT StaticFlowControlDepth; |
255 |
} D3DVSHADERCAPS2_0; |
256 |
|
257 |
typedef struct _D3DPSHADERCAPS2_0 { |
258 |
DWORD Caps; |
259 |
INT DynamicFlowControlDepth; |
260 |
INT NumTemps; |
261 |
INT StaticFlowControlDepth; |
262 |
INT NumInstructionSlots; |
263 |
} D3DPSHADERCAPS2_0; |
264 |
|
265 |
typedef struct _D3DCAPS9 { |
266 |
D3DDEVTYPE DeviceType; |
267 |
UINT AdapterOrdinal; |
268 |
DWORD Caps; |
269 |
DWORD Caps2; |
270 |
DWORD Caps3; |
271 |
DWORD PresentationIntervals; |
272 |
DWORD CursorCaps; |
273 |
DWORD DevCaps; |
274 |
DWORD PrimitiveMiscCaps; |
275 |
DWORD RasterCaps; |
276 |
DWORD ZCmpCaps; |
277 |
DWORD SrcBlendCaps; |
278 |
DWORD DestBlendCaps; |
279 |
DWORD AlphaCmpCaps; |
280 |
DWORD ShadeCaps; |
281 |
DWORD TextureCaps; |
282 |
DWORD TextureFilterCaps; |
283 |
DWORD CubeTextureFilterCaps; |
284 |
DWORD VolumeTextureFilterCaps; |
285 |
DWORD TextureAddressCaps; |
286 |
DWORD VolumeTextureAddressCaps; |
287 |
DWORD LineCaps; |
288 |
DWORD MaxTextureWidth; |
289 |
DWORD MaxTextureHeight; |
290 |
DWORD MaxVolumeExtent; |
291 |
DWORD MaxTextureRepeat; |
292 |
DWORD MaxTextureAspectRatio; |
293 |
DWORD MaxAnisotropy; |
294 |
float MaxVertexW; |
295 |
float GuardBandLeft; |
296 |
float GuardBandTop; |
297 |
float GuardBandRight; |
298 |
float GuardBandBottom; |
299 |
float ExtentsAdjust; |
300 |
DWORD StencilCaps; |
301 |
DWORD FVFCaps; |
302 |
DWORD TextureOpCaps; |
303 |
DWORD MaxTextureBlendStages; |
304 |
DWORD MaxSimultaneousTextures; |
305 |
DWORD VertexProcessingCaps; |
306 |
DWORD MaxActiveLights; |
307 |
DWORD MaxUserClipPlanes; |
308 |
DWORD MaxVertexBlendMatrices; |
309 |
DWORD MaxVertexBlendMatrixIndex; |
310 |
float MaxPointSize; |
311 |
DWORD MaxPrimitiveCount; |
312 |
DWORD MaxVertexIndex; |
313 |
DWORD MaxStreams; |
314 |
DWORD MaxStreamStride; |
315 |
DWORD VertexShaderVersion; |
316 |
DWORD MaxVertexShaderConst; |
317 |
DWORD PixelShaderVersion; |
318 |
float PixelShader1xMaxValue; |
319 |
DWORD DevCaps2; |
320 |
float MaxNpatchTessellationLevel; |
321 |
DWORD Reserved5; |
322 |
UINT MasterAdapterOrdinal; |
323 |
UINT AdapterOrdinalInGroup; |
324 |
UINT NumberOfAdaptersInGroup; |
325 |
DWORD DeclTypes; |
326 |
DWORD NumSimultaneousRTs; |
327 |
DWORD StretchRectFilterCaps; |
328 |
D3DVSHADERCAPS2_0 VS20Caps; |
329 |
D3DPSHADERCAPS2_0 PS20Caps; |
330 |
DWORD VertexTextureFilterCaps; |
331 |
DWORD MaxVShaderInstructionsExecuted; |
332 |
DWORD MaxPShaderInstructionsExecuted; |
333 |
DWORD MaxVertexShader30InstructionSlots; |
334 |
DWORD MaxPixelShader30InstructionSlots; |
335 |
} D3DCAPS9; |
336 |
|
337 |
#endif |
338 |
#endif |