summaryrefslogtreecommitdiffstats
path: root/include/D3D9/d3d9caps.h
blob: 70f9919c53da22961df343746bba281a84022b1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
/*
 * Copyright 2011 Joakim Sindholt <opensource@zhasha.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * on the rights to use, copy, modify, merge, publish, distribute, sub
 * license, and/or sell copies of the Software, and to permit persons to whom
 * the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice (including the next
 * paragraph) shall be included in all copies or substantial portions of the
 * Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
 * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 * USE OR OTHER DEALINGS IN THE SOFTWARE. */

#ifndef _D3D9CAPS_H_
#define _D3D9CAPS_H_

#include "d3d9types.h"

/* Caps flags */
#define D3DCAPS_OVERLAY       0x00000800
#define D3DCAPS_READ_SCANLINE 0x00020000

#define D3DCAPS2_FULLSCREENGAMMA   0x00020000
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000
#define D3DCAPS2_RESERVED          0x02000000
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000
#define D3DCAPS2_DYNAMICTEXTURES   0x20000000
#define D3DCAPS2_CANAUTOGENMIPMAP  0x40000000
#define D3DCAPS2_CANSHARERESOURCE  0x80000000

#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
#define D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION      0x00000080
#define D3DCAPS3_COPY_TO_VIDMEM                   0x00000100
#define D3DCAPS3_COPY_TO_SYSTEMMEM                0x00000200
#define D3DCAPS3_DXVAHD                           0x00000400
#define D3DCAPS3_RESERVED                         0x8000001F

#define D3DPRESENT_INTERVAL_DEFAULT   0x00000000
#define D3DPRESENT_INTERVAL_ONE       0x00000001
#define D3DPRESENT_INTERVAL_TWO       0x00000002
#define D3DPRESENT_INTERVAL_THREE     0x00000004
#define D3DPRESENT_INTERVAL_FOUR      0x00000008
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000

#define D3DCURSORCAPS_COLOR  0x00000001
#define D3DCURSORCAPS_LOWRES 0x00000002

#define D3DDEVCAPS_EXECUTESYSTEMMEMORY     0x00000010
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY      0x00000020
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY    0x00000040
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY     0x00000080
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY     0x00000100
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY      0x00000200
#define D3DDEVCAPS_DRAWPRIMTLVERTEX        0x00000400
#define D3DDEVCAPS_CANRENDERAFTERFLIP      0x00000800
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM   0x00001000
#define D3DDEVCAPS_DRAWPRIMITIVES2         0x00002000
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
#define D3DDEVCAPS_DRAWPRIMITIVES2EX       0x00008000
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT     0x00010000
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL     0x00020000
#define D3DDEVCAPS_HWRASTERIZATION         0x00080000
#define D3DDEVCAPS_PUREDEVICE              0x00100000
#define D3DDEVCAPS_QUINTICRTPATCHES        0x00200000
#define D3DDEVCAPS_RTPATCHES               0x00400000
#define D3DDEVCAPS_RTPATCHHANDLEZERO       0x00800000
#define D3DDEVCAPS_NPATCHES                0x01000000

#define D3DPMISCCAPS_MASKZ                      0x00000002
#define D3DPMISCCAPS_CULLNONE                   0x00000010
#define D3DPMISCCAPS_CULLCW                     0x00000020
#define D3DPMISCCAPS_CULLCCW                    0x00000040
#define D3DPMISCCAPS_COLORWRITEENABLE           0x00000080
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS      0x00000100
#define D3DPMISCCAPS_CLIPTLVERTS                0x00000200
#define D3DPMISCCAPS_TSSARGTEMP                 0x00000400
#define D3DPMISCCAPS_BLENDOP                    0x00000800
#define D3DPMISCCAPS_NULLREFERENCE              0x00001000
#define D3DPMISCCAPS_INDEPENDENTWRITEMASKS      0x00004000
#define D3DPMISCCAPS_PERSTAGECONSTANT           0x00008000
#define D3DPMISCCAPS_FOGANDSPECULARALPHA        0x00010000
#define D3DPMISCCAPS_SEPARATEALPHABLEND         0x00020000
#define D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS    0x00040000
#define D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000
#define D3DPMISCCAPS_FOGVERTEXCLAMPED           0x00100000
#define D3DPMISCCAPS_POSTBLENDSRGBCONVERT       0x00200000

#define D3DPRASTERCAPS_DITHER              0x00000001
#define D3DPRASTERCAPS_ZTEST               0x00000010
#define D3DPRASTERCAPS_FOGVERTEX           0x00000080
#define D3DPRASTERCAPS_FOGTABLE            0x00000100
#define D3DPRASTERCAPS_MIPMAPLODBIAS       0x00002000
#define D3DPRASTERCAPS_ZBUFFERLESSHSR      0x00008000
#define D3DPRASTERCAPS_FOGRANGE            0x00010000
#define D3DPRASTERCAPS_ANISOTROPY          0x00020000
#define D3DPRASTERCAPS_WBUFFER             0x00040000
#define D3DPRASTERCAPS_WFOG                0x00100000
#define D3DPRASTERCAPS_ZFOG                0x00200000
#define D3DPRASTERCAPS_COLORPERSPECTIVE    0x00400000
#define D3DPRASTERCAPS_SCISSORTEST         0x01000000
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000
#define D3DPRASTERCAPS_DEPTHBIAS           0x04000000
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE  0x08000000

#define D3DPCMPCAPS_NEVER        0x00000001
#define D3DPCMPCAPS_LESS         0x00000002
#define D3DPCMPCAPS_EQUAL        0x00000004
#define D3DPCMPCAPS_LESSEQUAL    0x00000008
#define D3DPCMPCAPS_GREATER      0x00000010
#define D3DPCMPCAPS_NOTEQUAL     0x00000020
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040
#define D3DPCMPCAPS_ALWAYS       0x00000080

#define D3DPBLENDCAPS_ZERO            0x00000001
#define D3DPBLENDCAPS_ONE             0x00000002
#define D3DPBLENDCAPS_SRCCOLOR        0x00000004
#define D3DPBLENDCAPS_INVSRCCOLOR     0x00000008
#define D3DPBLENDCAPS_SRCALPHA        0x00000010
#define D3DPBLENDCAPS_INVSRCALPHA     0x00000020
#define D3DPBLENDCAPS_DESTALPHA       0x00000040
#define D3DPBLENDCAPS_INVDESTALPHA    0x00000080
#define D3DPBLENDCAPS_DESTCOLOR       0x00000100
#define D3DPBLENDCAPS_INVDESTCOLOR    0x00000200
#define D3DPBLENDCAPS_SRCALPHASAT     0x00000400
#define D3DPBLENDCAPS_BOTHSRCALPHA    0x00000800
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
#define D3DPBLENDCAPS_BLENDFACTOR     0x00002000
#ifndef D3D_DISABLE_9EX
# define D3DPBLENDCAPS_SRCCOLOR2      0x00004000
# define D3DPBLENDCAPS_INVSRCCOLOR2   0x00008000
#endif

#define D3DPSHADECAPS_COLORGOURAUDRGB    0x00000008
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND  0x00004000
#define D3DPSHADECAPS_FOGGOURAUD         0x00080000

#define D3DPTEXTURECAPS_PERSPECTIVE              0x00000001
#define D3DPTEXTURECAPS_POW2                     0x00000002
#define D3DPTEXTURECAPS_ALPHA                    0x00000004
#define D3DPTEXTURECAPS_SQUAREONLY               0x00000020
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
#define D3DPTEXTURECAPS_ALPHAPALETTE             0x00000080
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL       0x00000100
#define D3DPTEXTURECAPS_PROJECTED                0x00000400
#define D3DPTEXTURECAPS_CUBEMAP                  0x00000800
#define D3DPTEXTURECAPS_VOLUMEMAP                0x00002000
#define D3DPTEXTURECAPS_MIPMAP                   0x00004000
#define D3DPTEXTURECAPS_MIPVOLUMEMAP             0x00008000
#define D3DPTEXTURECAPS_MIPCUBEMAP               0x00010000
#define D3DPTEXTURECAPS_CUBEMAP_POW2             0x00020000
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2           0x00040000
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV       0x00200000

#define D3DPTFILTERCAPS_MINFPOINT         0x00000100
#define D3DPTFILTERCAPS_MINFLINEAR        0x00000200
#define D3DPTFILTERCAPS_MINFANISOTROPIC   0x00000400
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD 0x00000800
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD  0x00001000
#define D3DPTFILTERCAPS_MIPFPOINT         0x00010000
#define D3DPTFILTERCAPS_MIPFLINEAR        0x00020000
#define D3DPTFILTERCAPS_MAGFPOINT         0x01000000
#define D3DPTFILTERCAPS_MAGFLINEAR        0x02000000
#define D3DPTFILTERCAPS_MAGFANISOTROPIC   0x04000000
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD  0x10000000

#define D3DPTADDRESSCAPS_WRAP          0x00000001
#define D3DPTADDRESSCAPS_MIRROR        0x00000002
#define D3DPTADDRESSCAPS_CLAMP         0x00000004
#define D3DPTADDRESSCAPS_BORDER        0x00000008
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
#define D3DPTADDRESSCAPS_MIRRORONCE    0x00000020

#define D3DLINECAPS_TEXTURE   0x00000001
#define D3DLINECAPS_ZTEST     0x00000002
#define D3DLINECAPS_BLEND     0x00000004
#define D3DLINECAPS_ALPHACMP  0x00000008
#define D3DLINECAPS_FOG       0x00000010
#define D3DLINECAPS_ANTIALIAS 0x00000020

#define D3DSTENCILCAPS_KEEP     0x00000001
#define D3DSTENCILCAPS_ZERO     0x00000002
#define D3DSTENCILCAPS_REPLACE  0x00000004
#define D3DSTENCILCAPS_INCRSAT  0x00000008
#define D3DSTENCILCAPS_DECRSAT  0x00000010
#define D3DSTENCILCAPS_INVERT   0x00000020
#define D3DSTENCILCAPS_INCR     0x00000040
#define D3DSTENCILCAPS_DECR     0x00000080
#define D3DSTENCILCAPS_TWOSIDED 0x00000100

#define D3DFVFCAPS_TEXCOORDCOUNTMASK  0x0000FFFF
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
#define D3DFVFCAPS_PSIZE              0x00100000

#define D3DTEXOPCAPS_DISABLE                   0x00000001
#define D3DTEXOPCAPS_SELECTARG1                0x00000002
#define D3DTEXOPCAPS_SELECTARG2                0x00000004
#define D3DTEXOPCAPS_MODULATE                  0x00000008
#define D3DTEXOPCAPS_MODULATE2X                0x00000010
#define D3DTEXOPCAPS_MODULATE4X                0x00000020
#define D3DTEXOPCAPS_ADD                       0x00000040
#define D3DTEXOPCAPS_ADDSIGNED                 0x00000080
#define D3DTEXOPCAPS_ADDSIGNED2X               0x00000100
#define D3DTEXOPCAPS_SUBTRACT                  0x00000200
#define D3DTEXOPCAPS_ADDSMOOTH                 0x00000400
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA         0x00000800
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA         0x00001000
#define D3DTEXOPCAPS_BLENDFACTORALPHA          0x00002000
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM       0x00004000
#define D3DTEXOPCAPS_BLENDCURRENTALPHA         0x00008000
#define D3DTEXOPCAPS_PREMODULATE               0x00010000
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR    0x00020000
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA    0x00040000
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
#define D3DTEXOPCAPS_BUMPENVMAP                0x00200000
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE       0x00400000
#define D3DTEXOPCAPS_DOTPRODUCT3               0x00800000
#define D3DTEXOPCAPS_MULTIPLYADD               0x01000000
#define D3DTEXOPCAPS_LERP                      0x02000000

#define D3DVTXPCAPS_TEXGEN                   0x00000001
#define D3DVTXPCAPS_MATERIALSOURCE7          0x00000002
#define D3DVTXPCAPS_DIRECTIONALLIGHTS        0x00000008
#define D3DVTXPCAPS_POSITIONALLIGHTS         0x00000010
#define D3DVTXPCAPS_LOCALVIEWER              0x00000020
#define D3DVTXPCAPS_TWEENING                 0x00000040
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP         0x00000100
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200

#define D3DDEVCAPS2_STREAMOFFSET                       0x00000001
#define D3DDEVCAPS2_DMAPNPATCH                         0x00000002
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH                0x00000004
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH                 0x00000008
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES      0x00000010
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH               0x00000020
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040

#define D3DDTCAPS_UBYTE4    0x00000001
#define D3DDTCAPS_UBYTE4N   0x00000002
#define D3DDTCAPS_SHORT2N   0x00000004
#define D3DDTCAPS_SHORT4N   0x00000008
#define D3DDTCAPS_USHORT2N  0x00000010
#define D3DDTCAPS_USHORT4N  0x00000020
#define D3DDTCAPS_UDEC3     0x00000040
#define D3DDTCAPS_DEC3N     0x00000080
#define D3DDTCAPS_FLOAT16_2 0x00000100
#define D3DDTCAPS_FLOAT16_4 0x00000200


#define D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
#define D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
#define D3DVS20_MAX_NUMTEMPS                 32
#define D3DVS20_MIN_NUMTEMPS                 12
#define D3DVS20_MAX_STATICFLOWCONTROLDEPTH   4
#define D3DVS20_MIN_STATICFLOWCONTROLDEPTH   1

#define D3DVS20CAPS_PREDICATION              (1 << 0)

#define D3DPS20CAPS_ARBITRARYSWIZZLE         (1 << 0)
#define D3DPS20CAPS_GRADIENTINSTRUCTIONS     (1 << 1)
#define D3DPS20CAPS_PREDICATION              (1 << 2)
#define D3DPS20CAPS_NODEPENDENTREADLIMIT     (1 << 3)
#define D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT    (1 << 4)

#define D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH  24
#define D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH  0
#define D3DPS20_MAX_NUMTEMPS                 32
#define D3DPS20_MIN_NUMTEMPS                 12
#define D3DPS20_MAX_STATICFLOWCONTROLDEPTH   4
#define D3DPS20_MIN_STATICFLOWCONTROLDEPTH   0
#define D3DPS20_MAX_NUMINSTRUCTIONSLOTS      512
#define D3DPS20_MIN_NUMINSTRUCTIONSLOTS      96

#define D3DMIN30SHADERINSTRUCTIONS          512
#define D3DMAX30SHADERINSTRUCTIONS          32768

/* Structs */
typedef struct _D3DVSHADERCAPS2_0 {
	DWORD Caps;
	INT DynamicFlowControlDepth;
	INT NumTemps;
	INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0, *PD3DVSHADERCAPS2_0, *LPD3DVSHADERCAPS2_0;

typedef struct _D3DPSHADERCAPS2_0 {
	DWORD Caps;
	INT DynamicFlowControlDepth;
	INT NumTemps;
	INT StaticFlowControlDepth;
	INT NumInstructionSlots;
} D3DPSHADERCAPS2_0, *PD3DPSHADERCAPS2_0, *LPD3DPSHADERCAPS2_0;

typedef struct _D3DCAPS9 {
	D3DDEVTYPE DeviceType;
	UINT AdapterOrdinal;
	DWORD Caps;
	DWORD Caps2;
	DWORD Caps3;
	DWORD PresentationIntervals;
	DWORD CursorCaps;
	DWORD DevCaps;
	DWORD PrimitiveMiscCaps;
	DWORD RasterCaps;
	DWORD ZCmpCaps;
	DWORD SrcBlendCaps;
	DWORD DestBlendCaps;
	DWORD AlphaCmpCaps;
	DWORD ShadeCaps;
	DWORD TextureCaps;
	DWORD TextureFilterCaps;
	DWORD CubeTextureFilterCaps;
	DWORD VolumeTextureFilterCaps;
	DWORD TextureAddressCaps;
	DWORD VolumeTextureAddressCaps;
	DWORD LineCaps;
	DWORD MaxTextureWidth;
	DWORD MaxTextureHeight;
	DWORD MaxVolumeExtent;
	DWORD MaxTextureRepeat;
	DWORD MaxTextureAspectRatio;
	DWORD MaxAnisotropy;
	float MaxVertexW;
	float GuardBandLeft;
	float GuardBandTop;
	float GuardBandRight;
	float GuardBandBottom;
	float ExtentsAdjust;
	DWORD StencilCaps;
	DWORD FVFCaps;
	DWORD TextureOpCaps;
	DWORD MaxTextureBlendStages;
	DWORD MaxSimultaneousTextures;
	DWORD VertexProcessingCaps;
	DWORD MaxActiveLights;
	DWORD MaxUserClipPlanes;
	DWORD MaxVertexBlendMatrices;
	DWORD MaxVertexBlendMatrixIndex;
	float MaxPointSize;
	DWORD MaxPrimitiveCount;
	DWORD MaxVertexIndex;
	DWORD MaxStreams;
	DWORD MaxStreamStride;
	DWORD VertexShaderVersion;
	DWORD MaxVertexShaderConst;
	DWORD PixelShaderVersion;
	float PixelShader1xMaxValue;
	DWORD DevCaps2;
	float MaxNpatchTessellationLevel;
	DWORD Reserved5;
	UINT MasterAdapterOrdinal;
	UINT AdapterOrdinalInGroup;
	UINT NumberOfAdaptersInGroup;
	DWORD DeclTypes;
	DWORD NumSimultaneousRTs;
	DWORD StretchRectFilterCaps;
	D3DVSHADERCAPS2_0 VS20Caps;
	D3DPSHADERCAPS2_0 PS20Caps;
	DWORD VertexTextureFilterCaps;
	DWORD MaxVShaderInstructionsExecuted;
	DWORD MaxPShaderInstructionsExecuted;
	DWORD MaxVertexShader30InstructionSlots;
	DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9, *PD3DCAPS9, *LPD3DCAPS9;

typedef struct _D3DCONTENTPROTECTIONCAPS {
    DWORD Caps;
    GUID KeyExchangeType;
    UINT BufferAlignmentStart;
    UINT BlockAlignmentSize;
    ULONGLONG ProtectedMemorySize;
} D3DCONTENTPROTECTIONCAPS, *PD3DCONTENTPROTECTIONCAPS, *LPD3DCONTENTPROTECTIONCAPS;

typedef struct _D3DOVERLAYCAPS {
    UINT Caps;
    UINT MaxOverlayDisplayWidth;
    UINT MaxOverlayDisplayHeight;
} D3DOVERLAYCAPS, *PD3DOVERLAYCAPS, *LPD3DOVERLAYCAPS;

#endif /* _D3D9CAPS_H_ */