master
  1/*
  2 * Copyright (C) 2002-2003 Jason Edmeades
  3 *                         Raphael Junqueira
  4 *
  5 * This library is free software; you can redistribute it and/or
  6 * modify it under the terms of the GNU Lesser General Public
  7 * License as published by the Free Software Foundation; either
  8 * version 2.1 of the License, or (at your option) any later version.
  9 *
 10 * This library 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 GNU
 13 * Lesser General Public License for more details.
 14 *
 15 * You should have received a copy of the GNU Lesser General Public
 16 * License along with this library; if not, write to the Free Software
 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 18 */
 19
 20#ifndef __WINE_D3D9CAPS_H
 21#define __WINE_D3D9CAPS_H
 22
 23#ifdef __i386__
 24#pragma pack(push,4)
 25#endif
 26
 27/*
 28 * Definitions
 29 */
 30#define D3DCAPS_OVERLAY       __MSABI_LONG(0x00000800)
 31#define D3DCAPS_READ_SCANLINE __MSABI_LONG(0x00020000)
 32
 33#define D3DCURSORCAPS_COLOR   1
 34#define D3DCURSORCAPS_LOWRES  2
 35
 36
 37#define D3DDEVCAPS2_STREAMOFFSET                        __MSABI_LONG(0x00000001)
 38#define D3DDEVCAPS2_DMAPNPATCH                          __MSABI_LONG(0x00000002)
 39#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                 __MSABI_LONG(0x00000004)
 40#define D3DDEVCAPS2_ADAPTIVETESSNPATCH                  __MSABI_LONG(0x00000008)
 41#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES       __MSABI_LONG(0x00000010)
 42#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                __MSABI_LONG(0x00000020)
 43#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET  __MSABI_LONG(0x00000040)
 44
 45#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x0000010
 46#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x0000020
 47#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x0000040
 48#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x0000080
 49#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x0000100
 50#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x0000200
 51#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x0000400
 52#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x0000800
 53#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x0001000
 54#define D3DDEVCAPS_DRAWPRIMITIVES2         0x0002000
 55#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x0004000
 56#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x0008000
 57#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x0010000
 58#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x0020000
 59#define D3DDEVCAPS_HWRASTERIZATION         0x0080000
 60#define D3DDEVCAPS_PUREDEVICE              0x0100000
 61#define D3DDEVCAPS_QUINTICRTPATCHES        0x0200000
 62#define D3DDEVCAPS_RTPATCHES               0x0400000
 63#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x0800000
 64#define D3DDEVCAPS_NPATCHES                0x1000000
 65
 66#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x00FFFF
 67#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x080000
 68#define D3DFVFCAPS_PSIZE              0x100000
 69
 70#define D3DLINECAPS_TEXTURE           0x01
 71#define D3DLINECAPS_ZTEST             0x02
 72#define D3DLINECAPS_BLEND             0x04
 73#define D3DLINECAPS_ALPHACMP          0x08
 74#define D3DLINECAPS_FOG               0x10
 75#define D3DLINECAPS_ANTIALIAS         0x20
 76
 77#define D3DPBLENDCAPS_ZERO            __MSABI_LONG(0x00000001)
 78#define D3DPBLENDCAPS_ONE             __MSABI_LONG(0x00000002)
 79#define D3DPBLENDCAPS_SRCCOLOR        __MSABI_LONG(0x00000004)
 80#define D3DPBLENDCAPS_INVSRCCOLOR     __MSABI_LONG(0x00000008)
 81#define D3DPBLENDCAPS_SRCALPHA        __MSABI_LONG(0x00000010)
 82#define D3DPBLENDCAPS_INVSRCALPHA     __MSABI_LONG(0x00000020)
 83#define D3DPBLENDCAPS_DESTALPHA       __MSABI_LONG(0x00000040)
 84#define D3DPBLENDCAPS_INVDESTALPHA    __MSABI_LONG(0x00000080)
 85#define D3DPBLENDCAPS_DESTCOLOR       __MSABI_LONG(0x00000100)
 86#define D3DPBLENDCAPS_INVDESTCOLOR    __MSABI_LONG(0x00000200)
 87#define D3DPBLENDCAPS_SRCALPHASAT     __MSABI_LONG(0x00000400)
 88#define D3DPBLENDCAPS_BOTHSRCALPHA    __MSABI_LONG(0x00000800)
 89#define D3DPBLENDCAPS_BOTHINVSRCALPHA __MSABI_LONG(0x00001000)
 90#define D3DPBLENDCAPS_BLENDFACTOR     __MSABI_LONG(0x00002000)
 91#ifndef D3D_DISABLE_9EX
 92#define D3DPBLENDCAPS_SRCCOLOR2       __MSABI_LONG(0x00004000)
 93#define D3DPBLENDCAPS_INVSRCCOLOR2    __MSABI_LONG(0x00008000)
 94#endif
 95
 96#define D3DPCMPCAPS_NEVER        0x01
 97#define D3DPCMPCAPS_LESS         0x02
 98#define D3DPCMPCAPS_EQUAL        0x04
 99#define D3DPCMPCAPS_LESSEQUAL    0x08
100#define D3DPCMPCAPS_GREATER      0x10
101#define D3DPCMPCAPS_NOTEQUAL     0x20
102#define D3DPCMPCAPS_GREATEREQUAL 0x40
103#define D3DPCMPCAPS_ALWAYS       0x80
104
105#define D3DPMISCCAPS_MASKZ                      __MSABI_LONG(0x00000002)
106#define D3DPMISCCAPS_LINEPATTERNREP             __MSABI_LONG(0x00000004)
107#define D3DPMISCCAPS_CULLNONE                   __MSABI_LONG(0x00000010)
108#define D3DPMISCCAPS_CULLCW                     __MSABI_LONG(0x00000020)
109#define D3DPMISCCAPS_CULLCCW                    __MSABI_LONG(0x00000040)
110#define D3DPMISCCAPS_COLORWRITEENABLE           __MSABI_LONG(0x00000080)
111#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS      __MSABI_LONG(0x00000100)
112#define D3DPMISCCAPS_CLIPTLVERTS                __MSABI_LONG(0x00000200)
113#define D3DPMISCCAPS_TSSARGTEMP                 __MSABI_LONG(0x00000400)
114#define D3DPMISCCAPS_BLENDOP                    __MSABI_LONG(0x00000800)
115#define D3DPMISCCAPS_NULLREFERENCE              __MSABI_LONG(0x00001000)
116#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS      __MSABI_LONG(0x00004000)
117#define D3DPMISCCAPS_PERSTAGECONSTANT           __MSABI_LONG(0x00008000)
118#define D3DPMISCCAPS_FOGANDSPECULARALPHA        __MSABI_LONG(0x00010000)
119#define D3DPMISCCAPS_SEPARATEALPHABLEND         __MSABI_LONG(0x00020000)
120#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    __MSABI_LONG(0x00040000)
121#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING __MSABI_LONG(0x00080000)
122#define D3DPMISCCAPS_FOGVERTEXCLAMPED           __MSABI_LONG(0x00100000)
123#ifndef D3D_DISABLE_9EX
124#define D3DPMISCCAPS_POSTBLENDSRGBCONVERT       __MSABI_LONG(0x00200000)
125#endif
126
127#define D3DPRASTERCAPS_DITHER                     __MSABI_LONG(0x00000001)
128#define D3DPRASTERCAPS_ZTEST                      __MSABI_LONG(0x00000010)
129#define D3DPRASTERCAPS_FOGVERTEX                  __MSABI_LONG(0x00000080)
130#define D3DPRASTERCAPS_FOGTABLE                   __MSABI_LONG(0x00000100)
131#define D3DPRASTERCAPS_MIPMAPLODBIAS              __MSABI_LONG(0x00002000)
132#define D3DPRASTERCAPS_ZBUFFERLESSHSR             __MSABI_LONG(0x00008000)
133#define D3DPRASTERCAPS_FOGRANGE                   __MSABI_LONG(0x00010000)
134#define D3DPRASTERCAPS_ANISOTROPY                 __MSABI_LONG(0x00020000)
135#define D3DPRASTERCAPS_WBUFFER                    __MSABI_LONG(0x00040000)
136#define D3DPRASTERCAPS_WFOG                       __MSABI_LONG(0x00100000)
137#define D3DPRASTERCAPS_ZFOG                       __MSABI_LONG(0x00200000)
138#define D3DPRASTERCAPS_COLORPERSPECTIVE           __MSABI_LONG(0x00400000)
139#define D3DPRASTERCAPS_SCISSORTEST                __MSABI_LONG(0x01000000)
140#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS        __MSABI_LONG(0x02000000)
141#define D3DPRASTERCAPS_DEPTHBIAS                  __MSABI_LONG(0x04000000)
142#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE         __MSABI_LONG(0x08000000)
143
144#define D3DPRESENT_INTERVAL_DEFAULT               0x00000000
145#define D3DPRESENT_INTERVAL_ONE                   0x00000001
146#define D3DPRESENT_INTERVAL_TWO                   0x00000002
147#define D3DPRESENT_INTERVAL_THREE                 0x00000004
148#define D3DPRESENT_INTERVAL_FOUR                  0x00000008
149#define D3DPRESENT_INTERVAL_IMMEDIATE             0x80000000
150
151#define D3DPSHADECAPS_COLORGOURAUDRGB             0x00008
152#define D3DPSHADECAPS_SPECULARGOURAUDRGB          0x00200
153#define D3DPSHADECAPS_ALPHAGOURAUDBLEND           0x04000
154#define D3DPSHADECAPS_FOGGOURAUD                  0x80000
155
156#define D3DPTADDRESSCAPS_WRAP                     0x01
157#define D3DPTADDRESSCAPS_MIRROR                   0x02
158#define D3DPTADDRESSCAPS_CLAMP                    0x04
159#define D3DPTADDRESSCAPS_BORDER                   0x08
160#define D3DPTADDRESSCAPS_INDEPENDENTUV            0x10
161#define D3DPTADDRESSCAPS_MIRRORONCE               0x20
162
163#define D3DPTEXTURECAPS_PERSPECTIVE              __MSABI_LONG(0x00000001)
164#define D3DPTEXTURECAPS_POW2                     __MSABI_LONG(0x00000002)
165#define D3DPTEXTURECAPS_ALPHA                    __MSABI_LONG(0x00000004)
166#define D3DPTEXTURECAPS_SQUAREONLY               __MSABI_LONG(0x00000020)
167#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE __MSABI_LONG(0x00000040)
168#define D3DPTEXTURECAPS_ALPHAPALETTE             __MSABI_LONG(0x00000080)
169#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       __MSABI_LONG(0x00000100)
170#define D3DPTEXTURECAPS_PROJECTED                __MSABI_LONG(0x00000400)
171#define D3DPTEXTURECAPS_CUBEMAP                  __MSABI_LONG(0x00000800)
172#define D3DPTEXTURECAPS_VOLUMEMAP                __MSABI_LONG(0x00002000)
173#define D3DPTEXTURECAPS_MIPMAP                   __MSABI_LONG(0x00004000)
174#define D3DPTEXTURECAPS_MIPVOLUMEMAP             __MSABI_LONG(0x00008000)
175#define D3DPTEXTURECAPS_MIPCUBEMAP               __MSABI_LONG(0x00010000)
176#define D3DPTEXTURECAPS_CUBEMAP_POW2             __MSABI_LONG(0x00020000)
177#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           __MSABI_LONG(0x00040000)
178#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV       __MSABI_LONG(0x00200000)
179
180#define D3DPTFILTERCAPS_MINFPOINT                __MSABI_LONG(0x00000100)
181#define D3DPTFILTERCAPS_MINFLINEAR               __MSABI_LONG(0x00000200)
182#define D3DPTFILTERCAPS_MINFANISOTROPIC          __MSABI_LONG(0x00000400)
183#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD        __MSABI_LONG(0x00000800)
184#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD         __MSABI_LONG(0x00001000)
185#define D3DPTFILTERCAPS_MIPFPOINT                __MSABI_LONG(0x00010000)
186#define D3DPTFILTERCAPS_MIPFLINEAR               __MSABI_LONG(0x00020000)
187#ifndef D3D_DISABLE_9EX
188#define D3DPTFILTERCAPS_CONVOLUTIONMONO          __MSABI_LONG(0x00040000)
189#endif
190#define D3DPTFILTERCAPS_MAGFPOINT                __MSABI_LONG(0x01000000)
191#define D3DPTFILTERCAPS_MAGFLINEAR               __MSABI_LONG(0x02000000)
192#define D3DPTFILTERCAPS_MAGFANISOTROPIC          __MSABI_LONG(0x04000000)
193#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD        __MSABI_LONG(0x08000000)
194#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD         __MSABI_LONG(0x10000000)
195
196#define D3DSTENCILCAPS_KEEP                      0x01
197#define D3DSTENCILCAPS_ZERO                      0x02
198#define D3DSTENCILCAPS_REPLACE                   0x04
199#define D3DSTENCILCAPS_INCRSAT                   0x08
200#define D3DSTENCILCAPS_DECRSAT                   0x10
201#define D3DSTENCILCAPS_INVERT                    0x20
202#define D3DSTENCILCAPS_INCR                      0x40
203#define D3DSTENCILCAPS_DECR                      0x80
204#define D3DSTENCILCAPS_TWOSIDED                  0x100
205
206#define D3DTEXOPCAPS_DISABLE                     0x0000001
207#define D3DTEXOPCAPS_SELECTARG1                  0x0000002
208#define D3DTEXOPCAPS_SELECTARG2                  0x0000004
209#define D3DTEXOPCAPS_MODULATE                    0x0000008
210#define D3DTEXOPCAPS_MODULATE2X                  0x0000010
211#define D3DTEXOPCAPS_MODULATE4X                  0x0000020
212#define D3DTEXOPCAPS_ADD                         0x0000040
213#define D3DTEXOPCAPS_ADDSIGNED                   0x0000080
214#define D3DTEXOPCAPS_ADDSIGNED2X                 0x0000100
215#define D3DTEXOPCAPS_SUBTRACT                    0x0000200
216#define D3DTEXOPCAPS_ADDSMOOTH                   0x0000400
217#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA           0x0000800
218#define D3DTEXOPCAPS_BLENDTEXTUREALPHA           0x0001000
219#define D3DTEXOPCAPS_BLENDFACTORALPHA            0x0002000
220#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM         0x0004000
221#define D3DTEXOPCAPS_BLENDCURRENTALPHA           0x0008000
222#define D3DTEXOPCAPS_PREMODULATE                 0x0010000
223#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR      0x0020000
224#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA      0x0040000
225#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR   0x0080000
226#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA   0x0100000
227#define D3DTEXOPCAPS_BUMPENVMAP                  0x0200000
228#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE         0x0400000
229#define D3DTEXOPCAPS_DOTPRODUCT3                 0x0800000
230#define D3DTEXOPCAPS_MULTIPLYADD                 0x1000000
231#define D3DTEXOPCAPS_LERP                        0x2000000
232
233#define D3DVTXPCAPS_TEXGEN                         __MSABI_LONG(0x00000001)
234#define D3DVTXPCAPS_MATERIALSOURCE7                __MSABI_LONG(0x00000002)
235#define D3DVTXPCAPS_DIRECTIONALLIGHTS              __MSABI_LONG(0x00000008)
236#define D3DVTXPCAPS_POSITIONALLIGHTS               __MSABI_LONG(0x00000010)
237#define D3DVTXPCAPS_LOCALVIEWER                    __MSABI_LONG(0x00000020)
238#define D3DVTXPCAPS_TWEENING                       __MSABI_LONG(0x00000040)
239#define D3DVTXPCAPS_TEXGEN_SPHEREMAP               __MSABI_LONG(0x00000100)
240#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER       __MSABI_LONG(0x00000200)
241
242#define D3DDTCAPS_UBYTE4                           __MSABI_LONG(0x00000001)
243#define D3DDTCAPS_UBYTE4N                          __MSABI_LONG(0x00000002)
244#define D3DDTCAPS_SHORT2N                          __MSABI_LONG(0x00000004)
245#define D3DDTCAPS_SHORT4N                          __MSABI_LONG(0x00000008)
246#define D3DDTCAPS_USHORT2N                         __MSABI_LONG(0x00000010)
247#define D3DDTCAPS_USHORT4N                         __MSABI_LONG(0x00000020)
248#define D3DDTCAPS_UDEC3                            __MSABI_LONG(0x00000040)
249#define D3DDTCAPS_DEC3N                            __MSABI_LONG(0x00000080)
250#define D3DDTCAPS_FLOAT16_2                        __MSABI_LONG(0x00000100)
251#define D3DDTCAPS_FLOAT16_4                        __MSABI_LONG(0x00000200)
252
253#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD  __MSABI_LONG(0x00000020)
254#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION       __MSABI_LONG(0x00000080)
255#define D3DCAPS3_COPY_TO_VIDMEM                    __MSABI_LONG(0x00000100)
256#define D3DCAPS3_COPY_TO_SYSTEMMEM                 __MSABI_LONG(0x00000200)
257#define D3DCAPS3_DXVAHD                            __MSABI_LONG(0x00000400)
258#define D3DCAPS3_DXVAHD_LIMITED                    __MSABI_LONG(0x00000800)
259#define D3DCAPS3_RESERVED                          __MSABI_LONG(0x8000001F)
260
261#define D3DCAPS2_FULLSCREENGAMMA                   __MSABI_LONG(0x00020000)
262#define D3DCAPS2_CANCALIBRATEGAMMA                 __MSABI_LONG(0x00100000)
263#define D3DCAPS2_RESERVED                          __MSABI_LONG(0x02000000)
264#define D3DCAPS2_CANMANAGERESOURCE                 __MSABI_LONG(0x10000000)
265#define D3DCAPS2_DYNAMICTEXTURES                   __MSABI_LONG(0x20000000)
266#define D3DCAPS2_CANAUTOGENMIPMAP                  __MSABI_LONG(0x40000000)
267#ifndef D3D_DISABLE_9EX
268#define D3DCAPS2_CANSHARERESOURCE                  __MSABI_LONG(0x80000000)
269#endif
270
271#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
272#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
273#define D3DVS20_MAX_NUMTEMPS                 32
274#define D3DVS20_MIN_NUMTEMPS                 12
275#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH   4
276#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH   1
277
278#define D3DVS20CAPS_PREDICATION              (1 << 0)
279
280#define D3DPS20CAPS_ARBITRARYSWIZZLE         (1 << 0)
281#define D3DPS20CAPS_GRADIENTINSTRUCTIONS     (1 << 1)
282#define D3DPS20CAPS_PREDICATION              (1 << 2)
283#define D3DPS20CAPS_NODEPENDENTREADLIMIT     (1 << 3)
284#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    (1 << 4)
285
286#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
287#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
288#define D3DPS20_MAX_NUMTEMPS                 32
289#define D3DPS20_MIN_NUMTEMPS                 12
290#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH   4
291#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH   0
292#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS      512
293#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS      96
294
295#define D3DMIN30SHADERINSTRUCTIONS          512
296#define D3DMAX30SHADERINSTRUCTIONS          32768
297
298
299typedef struct _D3DVSHADERCAPS2_0 {
300  DWORD  Caps;
301  INT    DynamicFlowControlDepth;
302  INT    NumTemps;
303  INT    StaticFlowControlDepth;
304} D3DVSHADERCAPS2_0;
305
306typedef struct _D3DPSHADERCAPS2_0 {
307  DWORD  Caps;
308  INT    DynamicFlowControlDepth;
309  INT    NumTemps;
310  INT    StaticFlowControlDepth;
311  INT    NumInstructionSlots;
312} D3DPSHADERCAPS2_0;
313
314/*
315 * The d3dcaps9 structure
316 */
317typedef struct _D3DCAPS9 {
318  D3DDEVTYPE          DeviceType;
319  UINT                AdapterOrdinal;
320  
321  DWORD               Caps;
322  DWORD               Caps2;
323  DWORD               Caps3;
324  DWORD               PresentationIntervals;
325  
326  DWORD               CursorCaps;
327  
328  DWORD               DevCaps;
329  
330  DWORD               PrimitiveMiscCaps;
331  DWORD               RasterCaps;
332  DWORD               ZCmpCaps;
333  DWORD               SrcBlendCaps;
334  DWORD               DestBlendCaps;
335  DWORD               AlphaCmpCaps;
336  DWORD               ShadeCaps;
337  DWORD               TextureCaps;
338  DWORD               TextureFilterCaps;
339  DWORD               CubeTextureFilterCaps;
340  DWORD               VolumeTextureFilterCaps;
341  DWORD               TextureAddressCaps;
342  DWORD               VolumeTextureAddressCaps;
343  
344  DWORD               LineCaps;
345  
346  DWORD               MaxTextureWidth, MaxTextureHeight;
347  DWORD               MaxVolumeExtent;
348  
349  DWORD               MaxTextureRepeat;
350  DWORD               MaxTextureAspectRatio;
351  DWORD               MaxAnisotropy;
352  float               MaxVertexW;
353  
354  float               GuardBandLeft;
355  float               GuardBandTop;
356  float               GuardBandRight;
357  float               GuardBandBottom;
358  
359  float               ExtentsAdjust;
360  DWORD               StencilCaps;
361  
362  DWORD               FVFCaps;
363  DWORD               TextureOpCaps;
364  DWORD               MaxTextureBlendStages;
365  DWORD               MaxSimultaneousTextures;
366  
367  DWORD               VertexProcessingCaps;
368  DWORD               MaxActiveLights;
369  DWORD               MaxUserClipPlanes;
370  DWORD               MaxVertexBlendMatrices;
371  DWORD               MaxVertexBlendMatrixIndex;
372  
373  float               MaxPointSize;
374  
375  DWORD               MaxPrimitiveCount;
376  DWORD               MaxVertexIndex;
377  DWORD               MaxStreams;
378  DWORD               MaxStreamStride;
379  
380  DWORD               VertexShaderVersion;
381  DWORD               MaxVertexShaderConst;
382  
383  DWORD               PixelShaderVersion;
384  float               PixelShader1xMaxValue;
385
386  /* DX 9 */
387  DWORD               DevCaps2;
388
389  float               MaxNpatchTessellationLevel;
390  DWORD               Reserved5;
391
392  UINT                MasterAdapterOrdinal;   
393  UINT                AdapterOrdinalInGroup;  
394  UINT                NumberOfAdaptersInGroup;
395  DWORD               DeclTypes;              
396  DWORD               NumSimultaneousRTs;     
397  DWORD               StretchRectFilterCaps;  
398  D3DVSHADERCAPS2_0   VS20Caps;
399  D3DPSHADERCAPS2_0   PS20Caps;
400  DWORD               VertexTextureFilterCaps;
401  DWORD               MaxVShaderInstructionsExecuted;
402  DWORD               MaxPShaderInstructionsExecuted;
403  DWORD               MaxVertexShader30InstructionSlots; 
404  DWORD               MaxPixelShader30InstructionSlots;
405
406} D3DCAPS9;
407
408#ifndef D3D_DISABLE_9EX
409
410#define D3DOVERLAYCAPS_FULLRANGERGB      0x00000001
411#define D3DOVERLAYCAPS_LIMITEDRANGERGB   0x00000002
412#define D3DOVERLAYCAPS_YCbCr_BT601       0x00000004
413#define D3DOVERLAYCAPS_YCbCr_BT709       0x00000008
414#define D3DOVERLAYCAPS_YCbCr_BT601_xvYCC 0x00000010
415#define D3DOVERLAYCAPS_YCbCr_BT709_xvYCC 0x00000020
416#define D3DOVERLAYCAPS_STRETCHX          0x00000040
417#define D3DOVERLAYCAPS_STRETCHY          0x00000080
418
419typedef struct _D3DOVERLAYCAPS {
420  UINT   Caps;
421  UINT   MaxOverlayDisplayWidth;
422  UINT   MaxOverlayDisplayHeight;
423} D3DOVERLAYCAPS;
424
425#define D3DCPCAPS_SOFTWARE               0x00000001
426#define D3DCPCAPS_HARDWARE               0x00000002
427#define D3DCPCAPS_PROTECTIONALWAYSON     0x00000004
428#define D3DCPCAPS_PARTIALDECRYPTION      0x00000008
429#define D3DCPCAPS_CONTENTKEY             0x00000010
430#define D3DCPCAPS_FRESHENSESSIONKEY      0x00000020
431#define D3DCPCAPS_ENCRYPTEDREADBACK      0x00000040
432#define D3DCPCAPS_ENCRYPTEDREADBACKKEY   0x00000080
433#define D3DCPCAPS_SEQUENTIAL_CTR_IV      0x00000100
434#define D3DCPCAPS_ENCRYPTSLICEDATAONLY   0x00000200
435
436typedef struct _D3DCONTENTPROTECTIONCAPS {
437  DWORD     Caps;
438  GUID      KeyExchangeType;
439  UINT      BufferAlignmentStart;
440  UINT      BlockAlignmentSize;
441  ULONGLONG ProtectedMemorySize;
442} D3DCONTENTPROTECTIONCAPS;
443
444DEFINE_GUID(D3DCRYPTOTYPE_AES128_CTR,   0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f);
445DEFINE_GUID(D3DCRYPTOTYPE_PROPRIETARY,  0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x8, 0x69, 0x91, 0x7b, 0xd, 0xe8);
446DEFINE_GUID(D3DKEYEXCHANGE_RSAES_OAEP,  0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20);
447DEFINE_GUID(D3DKEYEXCHANGE_DXVA,        0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b);
448
449#endif
450
451#ifdef __i386__
452#pragma pack(pop)
453#endif
454
455#endif