Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | pmbaty | 1 | /*==========================================================================; |
2 | * |
||
3 | * Copyright (C) Microsoft Corporation. All Rights Reserved. |
||
4 | * |
||
5 | * File: ddraw.h |
||
6 | * Content: DirectDraw include file |
||
7 | * |
||
8 | ***************************************************************************/ |
||
9 | |||
10 | #ifndef __DDRAW_INCLUDED__ |
||
11 | #define __DDRAW_INCLUDED__ |
||
12 | |||
13 | //Disable the nameless union warning when building internally |
||
14 | #undef ENABLE_NAMELESS_UNION_PRAGMA |
||
15 | #ifdef DIRECTX_REDIST |
||
16 | #define ENABLE_NAMELESS_UNION_PRAGMA |
||
17 | #endif |
||
18 | |||
19 | #ifdef ENABLE_NAMELESS_UNION_PRAGMA |
||
20 | #pragma warning(disable:4201) |
||
21 | #endif |
||
22 | |||
23 | /* |
||
24 | * If you wish an application built against the newest version of DirectDraw |
||
25 | * to run against an older DirectDraw run time then define DIRECTDRAW_VERSION |
||
26 | * to be the earlies version of DirectDraw you wish to run against. For, |
||
27 | * example if you wish an application to run against a DX 3 runtime define |
||
28 | * DIRECTDRAW_VERSION to be 0x0300. |
||
29 | */ |
||
30 | #ifndef DIRECTDRAW_VERSION |
||
31 | #define DIRECTDRAW_VERSION 0x0700 |
||
32 | #endif /* DIRECTDRAW_VERSION */ |
||
33 | |||
34 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
35 | #define COM_NO_WINDOWS_H |
||
36 | #include <objbase.h> |
||
37 | #else |
||
38 | #define IUnknown void |
||
39 | #if !defined( NT_BUILD_ENVIRONMENT ) && !defined(WINNT) |
||
40 | #define CO_E_NOTINITIALIZED 0x800401F0L |
||
41 | #endif |
||
42 | #endif |
||
43 | |||
44 | #define _FACDD 0x876 |
||
45 | #define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code ) |
||
46 | |||
47 | #ifdef __cplusplus |
||
48 | extern "C" { |
||
49 | #endif |
||
50 | |||
51 | // |
||
52 | // For compilers that don't support nameless unions, do a |
||
53 | // |
||
54 | // #define NONAMELESSUNION |
||
55 | // |
||
56 | // before #include <ddraw.h> |
||
57 | // |
||
58 | #ifndef DUMMYUNIONNAMEN |
||
59 | #if defined(__cplusplus) || !defined(NONAMELESSUNION) |
||
60 | #define DUMMYUNIONNAMEN(n) |
||
61 | #else |
||
62 | #define DUMMYUNIONNAMEN(n) u##n |
||
63 | #endif |
||
64 | #endif |
||
65 | |||
66 | #ifndef MAKEFOURCC |
||
67 | #define MAKEFOURCC(ch0, ch1, ch2, ch3) \ |
||
68 | ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ |
||
69 | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) |
||
70 | #endif //defined(MAKEFOURCC) |
||
71 | |||
72 | /* |
||
73 | * FOURCC codes for DX compressed-texture pixel formats |
||
74 | */ |
||
75 | #define FOURCC_DXT1 (MAKEFOURCC('D','X','T','1')) |
||
76 | #define FOURCC_DXT2 (MAKEFOURCC('D','X','T','2')) |
||
77 | #define FOURCC_DXT3 (MAKEFOURCC('D','X','T','3')) |
||
78 | #define FOURCC_DXT4 (MAKEFOURCC('D','X','T','4')) |
||
79 | #define FOURCC_DXT5 (MAKEFOURCC('D','X','T','5')) |
||
80 | |||
81 | /* |
||
82 | * GUIDS used by DirectDraw objects |
||
83 | */ |
||
84 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
85 | |||
86 | DEFINE_GUID( CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 ); |
||
87 | DEFINE_GUID( CLSID_DirectDraw7, 0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x00,0xc0,0x4f,0xd9,0x30,0xc5 ); |
||
88 | DEFINE_GUID( CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 ); |
||
89 | DEFINE_GUID( IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); |
||
90 | DEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 ); |
||
91 | DEFINE_GUID( IID_IDirectDraw4, 0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 ); |
||
92 | DEFINE_GUID( IID_IDirectDraw7, 0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); |
||
93 | DEFINE_GUID( IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); |
||
94 | DEFINE_GUID( IID_IDirectDrawSurface2, 0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 ); |
||
95 | DEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB ); |
||
96 | DEFINE_GUID( IID_IDirectDrawSurface4, 0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B ); |
||
97 | DEFINE_GUID( IID_IDirectDrawSurface7, 0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); |
||
98 | DEFINE_GUID( IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); |
||
99 | DEFINE_GUID( IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); |
||
100 | DEFINE_GUID( IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 ); |
||
101 | DEFINE_GUID( IID_IDirectDrawGammaControl, 0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E ); |
||
102 | |||
103 | #endif |
||
104 | |||
105 | /*============================================================================ |
||
106 | * |
||
107 | * DirectDraw Structures |
||
108 | * |
||
109 | * Various structures used to invoke DirectDraw. |
||
110 | * |
||
111 | *==========================================================================*/ |
||
112 | |||
113 | struct IDirectDraw; |
||
114 | struct IDirectDrawSurface; |
||
115 | struct IDirectDrawPalette; |
||
116 | struct IDirectDrawClipper; |
||
117 | |||
118 | typedef struct IDirectDraw FAR *LPDIRECTDRAW; |
||
119 | typedef struct IDirectDraw2 FAR *LPDIRECTDRAW2; |
||
120 | typedef struct IDirectDraw4 FAR *LPDIRECTDRAW4; |
||
121 | typedef struct IDirectDraw7 FAR *LPDIRECTDRAW7; |
||
122 | typedef struct IDirectDrawSurface FAR *LPDIRECTDRAWSURFACE; |
||
123 | typedef struct IDirectDrawSurface2 FAR *LPDIRECTDRAWSURFACE2; |
||
124 | typedef struct IDirectDrawSurface3 FAR *LPDIRECTDRAWSURFACE3; |
||
125 | typedef struct IDirectDrawSurface4 FAR *LPDIRECTDRAWSURFACE4; |
||
126 | typedef struct IDirectDrawSurface7 FAR *LPDIRECTDRAWSURFACE7; |
||
127 | typedef struct IDirectDrawPalette FAR *LPDIRECTDRAWPALETTE; |
||
128 | typedef struct IDirectDrawClipper FAR *LPDIRECTDRAWCLIPPER; |
||
129 | typedef struct IDirectDrawColorControl FAR *LPDIRECTDRAWCOLORCONTROL; |
||
130 | typedef struct IDirectDrawGammaControl FAR *LPDIRECTDRAWGAMMACONTROL; |
||
131 | |||
132 | typedef struct _DDFXROP FAR *LPDDFXROP; |
||
133 | typedef struct _DDSURFACEDESC FAR *LPDDSURFACEDESC; |
||
134 | typedef struct _DDSURFACEDESC2 FAR *LPDDSURFACEDESC2; |
||
135 | typedef struct _DDCOLORCONTROL FAR *LPDDCOLORCONTROL; |
||
136 | |||
137 | /* |
||
138 | * API's |
||
139 | */ |
||
140 | #if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM ) |
||
141 | //#if defined( _WIN32 ) && !defined( _NO_ENUM ) |
||
142 | typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID); |
||
143 | typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID); |
||
144 | extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext ); |
||
145 | extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext ); |
||
146 | /* |
||
147 | * Protect against old SDKs |
||
148 | */ |
||
149 | #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) |
||
150 | #define HMONITOR_DECLARED |
||
151 | DECLARE_HANDLE(HMONITOR); |
||
152 | #endif |
||
153 | typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR); |
||
154 | typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR); |
||
155 | extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); |
||
156 | extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); |
||
157 | typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); |
||
158 | typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); |
||
159 | |||
160 | #ifdef UNICODE |
||
161 | typedef LPDDENUMCALLBACKW LPDDENUMCALLBACK; |
||
162 | #define DirectDrawEnumerate DirectDrawEnumerateW |
||
163 | typedef LPDDENUMCALLBACKEXW LPDDENUMCALLBACKEX; |
||
164 | typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX; |
||
165 | #define DirectDrawEnumerateEx DirectDrawEnumerateExW |
||
166 | #else |
||
167 | typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK; |
||
168 | #define DirectDrawEnumerate DirectDrawEnumerateA |
||
169 | typedef LPDDENUMCALLBACKEXA LPDDENUMCALLBACKEX; |
||
170 | typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX; |
||
171 | #define DirectDrawEnumerateEx DirectDrawEnumerateExA |
||
172 | #endif |
||
173 | extern HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter ); |
||
174 | extern HRESULT WINAPI DirectDrawCreateEx( GUID FAR * lpGuid, LPVOID *lplpDD, REFIID iid,IUnknown FAR *pUnkOuter ); |
||
175 | extern HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCLIPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter ); |
||
176 | #endif |
||
177 | /* |
||
178 | * Flags for DirectDrawEnumerateEx |
||
179 | * DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAddress to |
||
180 | * obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnumerateEx. |
||
181 | * By default, only the primary display device is enumerated. |
||
182 | * DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYDEVICES) |
||
183 | */ |
||
184 | |||
185 | /* |
||
186 | * This flag causes enumeration of any GDI display devices which are part of |
||
187 | * the Windows Desktop |
||
188 | */ |
||
189 | #define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001L |
||
190 | |||
191 | /* |
||
192 | * This flag causes enumeration of any GDI display devices which are not |
||
193 | * part of the Windows Desktop |
||
194 | */ |
||
195 | #define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002L |
||
196 | |||
197 | /* |
||
198 | * This flag causes enumeration of non-display devices |
||
199 | */ |
||
200 | #define DDENUM_NONDISPLAYDEVICES 0x00000004L |
||
201 | |||
202 | |||
203 | #define REGSTR_KEY_DDHW_DESCRIPTION "Description" |
||
204 | #define REGSTR_KEY_DDHW_DRIVERNAME "DriverName" |
||
205 | #define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers" |
||
206 | |||
207 | #define DDCREATE_HARDWAREONLY 0x00000001l |
||
208 | #define DDCREATE_EMULATIONONLY 0x00000002l |
||
209 | |||
210 | #if defined(WINNT) || !defined(WIN32) |
||
211 | #ifndef _HRESULT_DEFINED |
||
212 | #define _HRESULT_DEFINED |
||
213 | typedef __success(return >= 0) long HRESULT; |
||
214 | #endif // !_HRESULT_DEFINED |
||
215 | #endif |
||
216 | |||
217 | //#ifndef WINNT |
||
218 | typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID); |
||
219 | typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID); |
||
220 | typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID); |
||
221 | typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID); |
||
222 | typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID); |
||
223 | //#endif |
||
224 | |||
225 | /* |
||
226 | * Generic pixel format with 8-bit RGB and alpha components |
||
227 | */ |
||
228 | typedef struct _DDARGB |
||
229 | { |
||
230 | BYTE blue; |
||
231 | BYTE green; |
||
232 | BYTE red; |
||
233 | BYTE alpha; |
||
234 | } DDARGB; |
||
235 | |||
236 | typedef DDARGB FAR *LPDDARGB; |
||
237 | |||
238 | /* |
||
239 | * This version of the structure remains for backwards source compatibility. |
||
240 | * The DDARGB structure is the one that should be used for all DirectDraw APIs. |
||
241 | */ |
||
242 | typedef struct _DDRGBA |
||
243 | { |
||
244 | BYTE red; |
||
245 | BYTE green; |
||
246 | BYTE blue; |
||
247 | BYTE alpha; |
||
248 | } DDRGBA; |
||
249 | |||
250 | typedef DDRGBA FAR *LPDDRGBA; |
||
251 | |||
252 | |||
253 | /* |
||
254 | * DDCOLORKEY |
||
255 | */ |
||
256 | typedef struct _DDCOLORKEY |
||
257 | { |
||
258 | DWORD dwColorSpaceLowValue; // low boundary of color space that is to |
||
259 | // be treated as Color Key, inclusive |
||
260 | DWORD dwColorSpaceHighValue; // high boundary of color space that is |
||
261 | // to be treated as Color Key, inclusive |
||
262 | } DDCOLORKEY; |
||
263 | |||
264 | typedef DDCOLORKEY FAR* LPDDCOLORKEY; |
||
265 | |||
266 | /* |
||
267 | * DDBLTFX |
||
268 | * Used to pass override information to the DIRECTDRAWSURFACE callback Blt. |
||
269 | */ |
||
270 | typedef struct _DDBLTFX |
||
271 | { |
||
272 | DWORD dwSize; // size of structure |
||
273 | DWORD dwDDFX; // FX operations |
||
274 | DWORD dwROP; // Win32 raster operations |
||
275 | DWORD dwDDROP; // Raster operations new for DirectDraw |
||
276 | DWORD dwRotationAngle; // Rotation angle for blt |
||
277 | DWORD dwZBufferOpCode; // ZBuffer compares |
||
278 | DWORD dwZBufferLow; // Low limit of Z buffer |
||
279 | DWORD dwZBufferHigh; // High limit of Z buffer |
||
280 | DWORD dwZBufferBaseDest; // Destination base value |
||
281 | DWORD dwZDestConstBitDepth; // Bit depth used to specify Z constant for destination |
||
282 | union |
||
283 | { |
||
284 | DWORD dwZDestConst; // Constant to use as Z buffer for dest |
||
285 | LPDIRECTDRAWSURFACE lpDDSZBufferDest; // Surface to use as Z buffer for dest |
||
286 | } DUMMYUNIONNAMEN(1); |
||
287 | DWORD dwZSrcConstBitDepth; // Bit depth used to specify Z constant for source |
||
288 | union |
||
289 | { |
||
290 | DWORD dwZSrcConst; // Constant to use as Z buffer for src |
||
291 | LPDIRECTDRAWSURFACE lpDDSZBufferSrc; // Surface to use as Z buffer for src |
||
292 | } DUMMYUNIONNAMEN(2); |
||
293 | DWORD dwAlphaEdgeBlendBitDepth; // Bit depth used to specify constant for alpha edge blend |
||
294 | DWORD dwAlphaEdgeBlend; // Alpha for edge blending |
||
295 | DWORD dwReserved; |
||
296 | DWORD dwAlphaDestConstBitDepth; // Bit depth used to specify alpha constant for destination |
||
297 | union |
||
298 | { |
||
299 | DWORD dwAlphaDestConst; // Constant to use as Alpha Channel |
||
300 | LPDIRECTDRAWSURFACE lpDDSAlphaDest; // Surface to use as Alpha Channel |
||
301 | } DUMMYUNIONNAMEN(3); |
||
302 | DWORD dwAlphaSrcConstBitDepth; // Bit depth used to specify alpha constant for source |
||
303 | union |
||
304 | { |
||
305 | DWORD dwAlphaSrcConst; // Constant to use as Alpha Channel |
||
306 | LPDIRECTDRAWSURFACE lpDDSAlphaSrc; // Surface to use as Alpha Channel |
||
307 | } DUMMYUNIONNAMEN(4); |
||
308 | union |
||
309 | { |
||
310 | DWORD dwFillColor; // color in RGB or Palettized |
||
311 | DWORD dwFillDepth; // depth value for z-buffer |
||
312 | DWORD dwFillPixel; // pixel value for RGBA or RGBZ |
||
313 | LPDIRECTDRAWSURFACE lpDDSPattern; // Surface to use as pattern |
||
314 | } DUMMYUNIONNAMEN(5); |
||
315 | DDCOLORKEY ddckDestColorkey; // DestColorkey override |
||
316 | DDCOLORKEY ddckSrcColorkey; // SrcColorkey override |
||
317 | } DDBLTFX; |
||
318 | |||
319 | typedef DDBLTFX FAR* LPDDBLTFX; |
||
320 | |||
321 | |||
322 | |||
323 | /* |
||
324 | * DDSCAPS |
||
325 | */ |
||
326 | typedef struct _DDSCAPS |
||
327 | { |
||
328 | DWORD dwCaps; // capabilities of surface wanted |
||
329 | } DDSCAPS; |
||
330 | |||
331 | typedef DDSCAPS FAR* LPDDSCAPS; |
||
332 | |||
333 | |||
334 | /* |
||
335 | * DDOSCAPS |
||
336 | */ |
||
337 | typedef struct _DDOSCAPS |
||
338 | { |
||
339 | DWORD dwCaps; // capabilities of surface wanted |
||
340 | } DDOSCAPS; |
||
341 | |||
342 | typedef DDOSCAPS FAR* LPDDOSCAPS; |
||
343 | |||
344 | /* |
||
345 | * This structure is used internally by DirectDraw. |
||
346 | */ |
||
347 | typedef struct _DDSCAPSEX |
||
348 | { |
||
349 | DWORD dwCaps2; |
||
350 | DWORD dwCaps3; |
||
351 | union |
||
352 | { |
||
353 | DWORD dwCaps4; |
||
354 | DWORD dwVolumeDepth; |
||
355 | } DUMMYUNIONNAMEN(1); |
||
356 | } DDSCAPSEX, FAR * LPDDSCAPSEX; |
||
357 | |||
358 | /* |
||
359 | * DDSCAPS2 |
||
360 | */ |
||
361 | typedef struct _DDSCAPS2 |
||
362 | { |
||
363 | DWORD dwCaps; // capabilities of surface wanted |
||
364 | DWORD dwCaps2; |
||
365 | DWORD dwCaps3; |
||
366 | union |
||
367 | { |
||
368 | DWORD dwCaps4; |
||
369 | DWORD dwVolumeDepth; |
||
370 | } DUMMYUNIONNAMEN(1); |
||
371 | } DDSCAPS2; |
||
372 | |||
373 | typedef DDSCAPS2 FAR* LPDDSCAPS2; |
||
374 | |||
375 | /* |
||
376 | * DDCAPS |
||
377 | */ |
||
378 | #define DD_ROP_SPACE (256/32) // space required to store ROP array |
||
379 | /* |
||
380 | * NOTE: Our choosen structure number scheme is to append a single digit to |
||
381 | * the end of the structure giving the version that structure is associated |
||
382 | * with. |
||
383 | */ |
||
384 | |||
385 | /* |
||
386 | * This structure represents the DDCAPS structure released in DirectDraw 1.0. It is used internally |
||
387 | * by DirectDraw to interpret caps passed into ddraw by drivers written prior to the release of DirectDraw 2.0. |
||
388 | * New applications should use the DDCAPS structure defined below. |
||
389 | */ |
||
390 | typedef struct _DDCAPS_DX1 |
||
391 | { |
||
392 | DWORD dwSize; // size of the DDDRIVERCAPS structure |
||
393 | DWORD dwCaps; // driver specific capabilities |
||
394 | DWORD dwCaps2; // more driver specific capabilites |
||
395 | DWORD dwCKeyCaps; // color key capabilities of the surface |
||
396 | DWORD dwFXCaps; // driver specific stretching and effects capabilites |
||
397 | DWORD dwFXAlphaCaps; // alpha driver specific capabilities |
||
398 | DWORD dwPalCaps; // palette capabilities |
||
399 | DWORD dwSVCaps; // stereo vision capabilities |
||
400 | DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 |
||
401 | DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 |
||
402 | DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 |
||
403 | DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 |
||
404 | DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 |
||
405 | DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 |
||
406 | DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 |
||
407 | DWORD dwVidMemTotal; // total amount of video memory |
||
408 | DWORD dwVidMemFree; // amount of free video memory |
||
409 | DWORD dwMaxVisibleOverlays; // maximum number of visible overlays |
||
410 | DWORD dwCurrVisibleOverlays; // current number of visible overlays |
||
411 | DWORD dwNumFourCCCodes; // number of four cc codes |
||
412 | DWORD dwAlignBoundarySrc; // source rectangle alignment |
||
413 | DWORD dwAlignSizeSrc; // source rectangle byte size |
||
414 | DWORD dwAlignBoundaryDest; // dest rectangle alignment |
||
415 | DWORD dwAlignSizeDest; // dest rectangle byte size |
||
416 | DWORD dwAlignStrideAlign; // stride alignment |
||
417 | DWORD dwRops[DD_ROP_SPACE]; // ROPS supported |
||
418 | DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities |
||
419 | DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
420 | DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
421 | DWORD dwMinLiveVideoStretch; // OBSOLETE! This field remains for compatability reasons only |
||
422 | DWORD dwMaxLiveVideoStretch; // OBSOLETE! This field remains for compatability reasons only |
||
423 | DWORD dwMinHwCodecStretch; // OBSOLETE! This field remains for compatability reasons only |
||
424 | DWORD dwMaxHwCodecStretch; // OBSOLETE! This field remains for compatability reasons only |
||
425 | DWORD dwReserved1; // reserved |
||
426 | DWORD dwReserved2; // reserved |
||
427 | DWORD dwReserved3; // reserved |
||
428 | } DDCAPS_DX1; |
||
429 | |||
430 | typedef DDCAPS_DX1 FAR* LPDDCAPS_DX1; |
||
431 | |||
432 | /* |
||
433 | * This structure is the DDCAPS structure as it was in version 2 and 3 of Direct X. |
||
434 | * It is present for back compatability. |
||
435 | */ |
||
436 | typedef struct _DDCAPS_DX3 |
||
437 | { |
||
438 | DWORD dwSize; // size of the DDDRIVERCAPS structure |
||
439 | DWORD dwCaps; // driver specific capabilities |
||
440 | DWORD dwCaps2; // more driver specific capabilites |
||
441 | DWORD dwCKeyCaps; // color key capabilities of the surface |
||
442 | DWORD dwFXCaps; // driver specific stretching and effects capabilites |
||
443 | DWORD dwFXAlphaCaps; // alpha driver specific capabilities |
||
444 | DWORD dwPalCaps; // palette capabilities |
||
445 | DWORD dwSVCaps; // stereo vision capabilities |
||
446 | DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 |
||
447 | DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 |
||
448 | DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 |
||
449 | DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 |
||
450 | DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 |
||
451 | DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 |
||
452 | DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 |
||
453 | DWORD dwVidMemTotal; // total amount of video memory |
||
454 | DWORD dwVidMemFree; // amount of free video memory |
||
455 | DWORD dwMaxVisibleOverlays; // maximum number of visible overlays |
||
456 | DWORD dwCurrVisibleOverlays; // current number of visible overlays |
||
457 | DWORD dwNumFourCCCodes; // number of four cc codes |
||
458 | DWORD dwAlignBoundarySrc; // source rectangle alignment |
||
459 | DWORD dwAlignSizeSrc; // source rectangle byte size |
||
460 | DWORD dwAlignBoundaryDest; // dest rectangle alignment |
||
461 | DWORD dwAlignSizeDest; // dest rectangle byte size |
||
462 | DWORD dwAlignStrideAlign; // stride alignment |
||
463 | DWORD dwRops[DD_ROP_SPACE]; // ROPS supported |
||
464 | DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities |
||
465 | DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
466 | DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
467 | DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
468 | DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
469 | DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
470 | DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
471 | DWORD dwReserved1; // reserved |
||
472 | DWORD dwReserved2; // reserved |
||
473 | DWORD dwReserved3; // reserved |
||
474 | DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts |
||
475 | DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts |
||
476 | DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts |
||
477 | DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts |
||
478 | DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts |
||
479 | DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts |
||
480 | DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts |
||
481 | DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts |
||
482 | DWORD dwSSBCaps; // driver specific capabilities for System->System blts |
||
483 | DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts |
||
484 | DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts |
||
485 | DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts |
||
486 | DWORD dwReserved4; // reserved |
||
487 | DWORD dwReserved5; // reserved |
||
488 | DWORD dwReserved6; // reserved |
||
489 | } DDCAPS_DX3; |
||
490 | typedef DDCAPS_DX3 FAR* LPDDCAPS_DX3; |
||
491 | |||
492 | /* |
||
493 | * This structure is the DDCAPS structure as it was in version 5 of Direct X. |
||
494 | * It is present for back compatability. |
||
495 | */ |
||
496 | typedef struct _DDCAPS_DX5 |
||
497 | { |
||
498 | /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure |
||
499 | /* 4*/ DWORD dwCaps; // driver specific capabilities |
||
500 | /* 8*/ DWORD dwCaps2; // more driver specific capabilites |
||
501 | /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface |
||
502 | /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites |
||
503 | /* 14*/ DWORD dwFXAlphaCaps; // alpha driver specific capabilities |
||
504 | /* 18*/ DWORD dwPalCaps; // palette capabilities |
||
505 | /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities |
||
506 | /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 |
||
507 | /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 |
||
508 | /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 |
||
509 | /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 |
||
510 | /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 |
||
511 | /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 |
||
512 | /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 |
||
513 | /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory |
||
514 | /* 40*/ DWORD dwVidMemFree; // amount of free video memory |
||
515 | /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays |
||
516 | /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays |
||
517 | /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes |
||
518 | /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment |
||
519 | /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size |
||
520 | /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment |
||
521 | /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size |
||
522 | /* 60*/ DWORD dwAlignStrideAlign; // stride alignment |
||
523 | /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported |
||
524 | /* 84*/ DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities |
||
525 | /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
526 | /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
527 | /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
528 | /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
529 | /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
530 | /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
531 | /* a0*/ DWORD dwReserved1; // reserved |
||
532 | /* a4*/ DWORD dwReserved2; // reserved |
||
533 | /* a8*/ DWORD dwReserved3; // reserved |
||
534 | /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts |
||
535 | /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts |
||
536 | /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts |
||
537 | /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts |
||
538 | /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts |
||
539 | /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts |
||
540 | /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts |
||
541 | /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts |
||
542 | /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts |
||
543 | /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts |
||
544 | /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts |
||
545 | /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts |
||
546 | // Members added for DX5: |
||
547 | /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports |
||
548 | /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used |
||
549 | /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts |
||
550 | /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts |
||
551 | /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts |
||
552 | /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts |
||
553 | /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts |
||
554 | /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts |
||
555 | } DDCAPS_DX5; |
||
556 | typedef DDCAPS_DX5 FAR* LPDDCAPS_DX5; |
||
557 | |||
558 | typedef struct _DDCAPS_DX6 |
||
559 | { |
||
560 | /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure |
||
561 | /* 4*/ DWORD dwCaps; // driver specific capabilities |
||
562 | /* 8*/ DWORD dwCaps2; // more driver specific capabilites |
||
563 | /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface |
||
564 | /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites |
||
565 | /* 14*/ DWORD dwFXAlphaCaps; // alpha caps |
||
566 | /* 18*/ DWORD dwPalCaps; // palette capabilities |
||
567 | /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities |
||
568 | /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 |
||
569 | /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 |
||
570 | /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 |
||
571 | /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 |
||
572 | /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 |
||
573 | /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 |
||
574 | /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 |
||
575 | /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory |
||
576 | /* 40*/ DWORD dwVidMemFree; // amount of free video memory |
||
577 | /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays |
||
578 | /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays |
||
579 | /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes |
||
580 | /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment |
||
581 | /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size |
||
582 | /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment |
||
583 | /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size |
||
584 | /* 60*/ DWORD dwAlignStrideAlign; // stride alignment |
||
585 | /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported |
||
586 | /* 84*/ DDSCAPS ddsOldCaps; // Was DDSCAPS ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
||
587 | /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
588 | /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
589 | /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
590 | /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
591 | /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
592 | /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
593 | /* a0*/ DWORD dwReserved1; // reserved |
||
594 | /* a4*/ DWORD dwReserved2; // reserved |
||
595 | /* a8*/ DWORD dwReserved3; // reserved |
||
596 | /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts |
||
597 | /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts |
||
598 | /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts |
||
599 | /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts |
||
600 | /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts |
||
601 | /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts |
||
602 | /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts |
||
603 | /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts |
||
604 | /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts |
||
605 | /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts |
||
606 | /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts |
||
607 | /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts |
||
608 | /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports |
||
609 | /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used |
||
610 | /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts |
||
611 | /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts |
||
612 | /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts |
||
613 | /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts |
||
614 | /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts |
||
615 | /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts |
||
616 | // Members added for DX6 release |
||
617 | /*16c*/ DDSCAPS2 ddsCaps; // Surface Caps |
||
618 | } DDCAPS_DX6; |
||
619 | typedef DDCAPS_DX6 FAR* LPDDCAPS_DX6; |
||
620 | |||
621 | typedef struct _DDCAPS_DX7 |
||
622 | { |
||
623 | /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure |
||
624 | /* 4*/ DWORD dwCaps; // driver specific capabilities |
||
625 | /* 8*/ DWORD dwCaps2; // more driver specific capabilites |
||
626 | /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface |
||
627 | /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites |
||
628 | /* 14*/ DWORD dwFXAlphaCaps; // alpha driver specific capabilities |
||
629 | /* 18*/ DWORD dwPalCaps; // palette capabilities |
||
630 | /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities |
||
631 | /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 |
||
632 | /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 |
||
633 | /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 |
||
634 | /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 |
||
635 | /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 |
||
636 | /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 |
||
637 | /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 |
||
638 | /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory |
||
639 | /* 40*/ DWORD dwVidMemFree; // amount of free video memory |
||
640 | /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays |
||
641 | /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays |
||
642 | /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes |
||
643 | /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment |
||
644 | /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size |
||
645 | /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment |
||
646 | /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size |
||
647 | /* 60*/ DWORD dwAlignStrideAlign; // stride alignment |
||
648 | /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported |
||
649 | /* 84*/ DDSCAPS ddsOldCaps; // Was DDSCAPS ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 |
||
650 | /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
651 | /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
652 | /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
653 | /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
654 | /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
655 | /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 |
||
656 | /* a0*/ DWORD dwReserved1; // reserved |
||
657 | /* a4*/ DWORD dwReserved2; // reserved |
||
658 | /* a8*/ DWORD dwReserved3; // reserved |
||
659 | /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts |
||
660 | /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts |
||
661 | /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts |
||
662 | /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts |
||
663 | /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts |
||
664 | /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts |
||
665 | /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts |
||
666 | /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts |
||
667 | /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts |
||
668 | /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts |
||
669 | /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts |
||
670 | /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts |
||
671 | /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports |
||
672 | /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used |
||
673 | /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts |
||
674 | /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts |
||
675 | /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts |
||
676 | /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts |
||
677 | /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts |
||
678 | /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts |
||
679 | // Members added for DX6 release |
||
680 | /*16c*/ DDSCAPS2 ddsCaps; // Surface Caps |
||
681 | } DDCAPS_DX7; |
||
682 | typedef DDCAPS_DX7 FAR* LPDDCAPS_DX7; |
||
683 | |||
684 | |||
685 | #if DIRECTDRAW_VERSION <= 0x300 |
||
686 | typedef DDCAPS_DX3 DDCAPS; |
||
687 | #elif DIRECTDRAW_VERSION <= 0x500 |
||
688 | typedef DDCAPS_DX5 DDCAPS; |
||
689 | #elif DIRECTDRAW_VERSION <= 0x600 |
||
690 | typedef DDCAPS_DX6 DDCAPS; |
||
691 | #else |
||
692 | typedef DDCAPS_DX7 DDCAPS; |
||
693 | #endif |
||
694 | |||
695 | typedef DDCAPS FAR* LPDDCAPS; |
||
696 | |||
697 | |||
698 | |||
699 | /* |
||
700 | * DDPIXELFORMAT |
||
701 | */ |
||
702 | typedef struct _DDPIXELFORMAT |
||
703 | { |
||
704 | DWORD dwSize; // size of structure |
||
705 | DWORD dwFlags; // pixel format flags |
||
706 | DWORD dwFourCC; // (FOURCC code) |
||
707 | union |
||
708 | { |
||
709 | DWORD dwRGBBitCount; // how many bits per pixel |
||
710 | DWORD dwYUVBitCount; // how many bits per pixel |
||
711 | DWORD dwZBufferBitDepth; // how many total bits/pixel in z buffer (including any stencil bits) |
||
712 | DWORD dwAlphaBitDepth; // how many bits for alpha channels |
||
713 | DWORD dwLuminanceBitCount; // how many bits per pixel |
||
714 | DWORD dwBumpBitCount; // how many bits per "buxel", total |
||
715 | DWORD dwPrivateFormatBitCount;// Bits per pixel of private driver formats. Only valid in texture |
||
716 | // format list and if DDPF_D3DFORMAT is set |
||
717 | } DUMMYUNIONNAMEN(1); |
||
718 | union |
||
719 | { |
||
720 | DWORD dwRBitMask; // mask for red bit |
||
721 | DWORD dwYBitMask; // mask for Y bits |
||
722 | DWORD dwStencilBitDepth; // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits) |
||
723 | DWORD dwLuminanceBitMask; // mask for luminance bits |
||
724 | DWORD dwBumpDuBitMask; // mask for bump map U delta bits |
||
725 | DWORD dwOperations; // DDPF_D3DFORMAT Operations |
||
726 | } DUMMYUNIONNAMEN(2); |
||
727 | union |
||
728 | { |
||
729 | DWORD dwGBitMask; // mask for green bits |
||
730 | DWORD dwUBitMask; // mask for U bits |
||
731 | DWORD dwZBitMask; // mask for Z bits |
||
732 | DWORD dwBumpDvBitMask; // mask for bump map V delta bits |
||
733 | struct |
||
734 | { |
||
735 | WORD wFlipMSTypes; // Multisample methods supported via flip for this D3DFORMAT |
||
736 | WORD wBltMSTypes; // Multisample methods supported via blt for this D3DFORMAT |
||
737 | } MultiSampleCaps; |
||
738 | |||
739 | } DUMMYUNIONNAMEN(3); |
||
740 | union |
||
741 | { |
||
742 | DWORD dwBBitMask; // mask for blue bits |
||
743 | DWORD dwVBitMask; // mask for V bits |
||
744 | DWORD dwStencilBitMask; // mask for stencil bits |
||
745 | DWORD dwBumpLuminanceBitMask; // mask for luminance in bump map |
||
746 | } DUMMYUNIONNAMEN(4); |
||
747 | union |
||
748 | { |
||
749 | DWORD dwRGBAlphaBitMask; // mask for alpha channel |
||
750 | DWORD dwYUVAlphaBitMask; // mask for alpha channel |
||
751 | DWORD dwLuminanceAlphaBitMask;// mask for alpha channel |
||
752 | DWORD dwRGBZBitMask; // mask for Z channel |
||
753 | DWORD dwYUVZBitMask; // mask for Z channel |
||
754 | } DUMMYUNIONNAMEN(5); |
||
755 | } DDPIXELFORMAT; |
||
756 | |||
757 | typedef DDPIXELFORMAT FAR* LPDDPIXELFORMAT; |
||
758 | |||
759 | /* |
||
760 | * DDOVERLAYFX |
||
761 | */ |
||
762 | typedef struct _DDOVERLAYFX |
||
763 | { |
||
764 | DWORD dwSize; // size of structure |
||
765 | DWORD dwAlphaEdgeBlendBitDepth; // Bit depth used to specify constant for alpha edge blend |
||
766 | DWORD dwAlphaEdgeBlend; // Constant to use as alpha for edge blend |
||
767 | DWORD dwReserved; |
||
768 | DWORD dwAlphaDestConstBitDepth; // Bit depth used to specify alpha constant for destination |
||
769 | union |
||
770 | { |
||
771 | DWORD dwAlphaDestConst; // Constant to use as alpha channel for dest |
||
772 | LPDIRECTDRAWSURFACE lpDDSAlphaDest; // Surface to use as alpha channel for dest |
||
773 | } DUMMYUNIONNAMEN(1); |
||
774 | DWORD dwAlphaSrcConstBitDepth; // Bit depth used to specify alpha constant for source |
||
775 | union |
||
776 | { |
||
777 | DWORD dwAlphaSrcConst; // Constant to use as alpha channel for src |
||
778 | LPDIRECTDRAWSURFACE lpDDSAlphaSrc; // Surface to use as alpha channel for src |
||
779 | } DUMMYUNIONNAMEN(2); |
||
780 | DDCOLORKEY dckDestColorkey; // DestColorkey override |
||
781 | DDCOLORKEY dckSrcColorkey; // DestColorkey override |
||
782 | DWORD dwDDFX; // Overlay FX |
||
783 | DWORD dwFlags; // flags |
||
784 | } DDOVERLAYFX; |
||
785 | |||
786 | typedef DDOVERLAYFX FAR *LPDDOVERLAYFX; |
||
787 | |||
788 | |||
789 | /* |
||
790 | * DDBLTBATCH: BltBatch entry structure |
||
791 | */ |
||
792 | typedef struct _DDBLTBATCH |
||
793 | { |
||
794 | LPRECT lprDest; |
||
795 | LPDIRECTDRAWSURFACE lpDDSSrc; |
||
796 | LPRECT lprSrc; |
||
797 | DWORD dwFlags; |
||
798 | LPDDBLTFX lpDDBltFx; |
||
799 | } DDBLTBATCH; |
||
800 | |||
801 | typedef DDBLTBATCH FAR * LPDDBLTBATCH; |
||
802 | |||
803 | |||
804 | /* |
||
805 | * DDGAMMARAMP |
||
806 | */ |
||
807 | typedef struct _DDGAMMARAMP |
||
808 | { |
||
809 | WORD red[256]; |
||
810 | WORD green[256]; |
||
811 | WORD blue[256]; |
||
812 | } DDGAMMARAMP; |
||
813 | typedef DDGAMMARAMP FAR * LPDDGAMMARAMP; |
||
814 | |||
815 | /* |
||
816 | * This is the structure within which DirectDraw returns data about the current graphics driver and chipset |
||
817 | */ |
||
818 | |||
819 | #define MAX_DDDEVICEID_STRING 512 |
||
820 | |||
821 | typedef struct tagDDDEVICEIDENTIFIER |
||
822 | { |
||
823 | /* |
||
824 | * These elements are for presentation to the user only. They should not be used to identify particular |
||
825 | * drivers, since this is unreliable and many different strings may be associated with the same |
||
826 | * device, and the same driver from different vendors. |
||
827 | */ |
||
828 | char szDriver[MAX_DDDEVICEID_STRING]; |
||
829 | char szDescription[MAX_DDDEVICEID_STRING]; |
||
830 | |||
831 | /* |
||
832 | * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons |
||
833 | * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic |
||
834 | * drivers. It is recommended that guidDeviceIdentifier is used for this purpose. |
||
835 | * |
||
836 | * This version has the form: |
||
837 | * wProduct = HIWORD(liDriverVersion.HighPart) |
||
838 | * wVersion = LOWORD(liDriverVersion.HighPart) |
||
839 | * wSubVersion = HIWORD(liDriverVersion.LowPart) |
||
840 | * wBuild = LOWORD(liDriverVersion.LowPart) |
||
841 | */ |
||
842 | #ifdef _WIN32 |
||
843 | LARGE_INTEGER liDriverVersion; /* Defined for applications and other 32 bit components */ |
||
844 | #else |
||
845 | DWORD dwDriverVersionLowPart; /* Defined for 16 bit driver components */ |
||
846 | DWORD dwDriverVersionHighPart; |
||
847 | #endif |
||
848 | |||
849 | |||
850 | /* |
||
851 | * These elements can be used to identify particular chipsets. Use with extreme caution. |
||
852 | * dwVendorId Identifies the manufacturer. May be zero if unknown. |
||
853 | * dwDeviceId Identifies the type of chipset. May be zero if unknown. |
||
854 | * dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. |
||
855 | * dwRevision Identifies the revision level of the chipset. May be zero if unknown. |
||
856 | */ |
||
857 | DWORD dwVendorId; |
||
858 | DWORD dwDeviceId; |
||
859 | DWORD dwSubSysId; |
||
860 | DWORD dwRevision; |
||
861 | |||
862 | /* |
||
863 | * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the |
||
864 | * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to |
||
865 | * reprofile the graphics subsystem. |
||
866 | * This element can also be used to identify particular problematic drivers. |
||
867 | */ |
||
868 | GUID guidDeviceIdentifier; |
||
869 | } DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER; |
||
870 | |||
871 | typedef struct tagDDDEVICEIDENTIFIER2 |
||
872 | { |
||
873 | /* |
||
874 | * These elements are for presentation to the user only. They should not be used to identify particular |
||
875 | * drivers, since this is unreliable and many different strings may be associated with the same |
||
876 | * device, and the same driver from different vendors. |
||
877 | */ |
||
878 | char szDriver[MAX_DDDEVICEID_STRING]; |
||
879 | char szDescription[MAX_DDDEVICEID_STRING]; |
||
880 | |||
881 | /* |
||
882 | * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons |
||
883 | * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic |
||
884 | * drivers. It is recommended that guidDeviceIdentifier is used for this purpose. |
||
885 | * |
||
886 | * This version has the form: |
||
887 | * wProduct = HIWORD(liDriverVersion.HighPart) |
||
888 | * wVersion = LOWORD(liDriverVersion.HighPart) |
||
889 | * wSubVersion = HIWORD(liDriverVersion.LowPart) |
||
890 | * wBuild = LOWORD(liDriverVersion.LowPart) |
||
891 | */ |
||
892 | #ifdef _WIN32 |
||
893 | LARGE_INTEGER liDriverVersion; /* Defined for applications and other 32 bit components */ |
||
894 | #else |
||
895 | DWORD dwDriverVersionLowPart; /* Defined for 16 bit driver components */ |
||
896 | DWORD dwDriverVersionHighPart; |
||
897 | #endif |
||
898 | |||
899 | |||
900 | /* |
||
901 | * These elements can be used to identify particular chipsets. Use with extreme caution. |
||
902 | * dwVendorId Identifies the manufacturer. May be zero if unknown. |
||
903 | * dwDeviceId Identifies the type of chipset. May be zero if unknown. |
||
904 | * dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. |
||
905 | * dwRevision Identifies the revision level of the chipset. May be zero if unknown. |
||
906 | */ |
||
907 | DWORD dwVendorId; |
||
908 | DWORD dwDeviceId; |
||
909 | DWORD dwSubSysId; |
||
910 | DWORD dwRevision; |
||
911 | |||
912 | /* |
||
913 | * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the |
||
914 | * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to |
||
915 | * reprofile the graphics subsystem. |
||
916 | * This element can also be used to identify particular problematic drivers. |
||
917 | */ |
||
918 | GUID guidDeviceIdentifier; |
||
919 | |||
920 | /* |
||
921 | * This element is used to determine the Windows Hardware Quality Lab (WHQL) |
||
922 | * certification level for this driver/device pair. |
||
923 | */ |
||
924 | DWORD dwWHQLLevel; |
||
925 | |||
926 | } DDDEVICEIDENTIFIER2, * LPDDDEVICEIDENTIFIER2; |
||
927 | |||
928 | /* |
||
929 | * Flags for the IDirectDraw4::GetDeviceIdentifier method |
||
930 | */ |
||
931 | |||
932 | /* |
||
933 | * This flag causes GetDeviceIdentifier to return information about the host (typically 2D) adapter in a system equipped |
||
934 | * with a stacked secondary 3D adapter. Such an adapter appears to the application as if it were part of the |
||
935 | * host adapter, but is typically physcially located on a separate card. The stacked secondary's information is |
||
936 | * returned when GetDeviceIdentifier's dwFlags field is zero, since this most accurately reflects the qualities |
||
937 | * of the DirectDraw object involved. |
||
938 | */ |
||
939 | #define DDGDI_GETHOSTIDENTIFIER 0x00000001L |
||
940 | |||
941 | /* |
||
942 | * Macros for interpretting DDEVICEIDENTIFIER2.dwWHQLLevel |
||
943 | */ |
||
944 | #define GET_WHQL_YEAR( dwWHQLLevel ) \ |
||
945 | ( (dwWHQLLevel) / 0x10000 ) |
||
946 | #define GET_WHQL_MONTH( dwWHQLLevel ) \ |
||
947 | ( ( (dwWHQLLevel) / 0x100 ) & 0x00ff ) |
||
948 | #define GET_WHQL_DAY( dwWHQLLevel ) \ |
||
949 | ( (dwWHQLLevel) & 0xff ) |
||
950 | |||
951 | |||
952 | /* |
||
953 | * callbacks |
||
954 | */ |
||
955 | typedef DWORD (FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext ); |
||
956 | #ifdef STREAMING |
||
957 | typedef DWORD (FAR PASCAL *LPSURFACESTREAMINGCALLBACK)(DWORD); |
||
958 | #endif |
||
959 | |||
960 | |||
961 | /* |
||
962 | * INTERACES FOLLOW: |
||
963 | * IDirectDraw |
||
964 | * IDirectDrawClipper |
||
965 | * IDirectDrawPalette |
||
966 | * IDirectDrawSurface |
||
967 | */ |
||
968 | |||
969 | /* |
||
970 | * IDirectDraw |
||
971 | */ |
||
972 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
973 | #undef INTERFACE |
||
974 | #define INTERFACE IDirectDraw |
||
975 | DECLARE_INTERFACE_( IDirectDraw, IUnknown ) |
||
976 | { |
||
977 | /*** IUnknown methods ***/ |
||
978 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
979 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
980 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
981 | /*** IDirectDraw methods ***/ |
||
982 | STDMETHOD(Compact)(THIS) PURE; |
||
983 | STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; |
||
984 | STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; |
||
985 | STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE; |
||
986 | STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE; |
||
987 | STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; |
||
988 | STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; |
||
989 | STDMETHOD(FlipToGDISurface)(THIS) PURE; |
||
990 | STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; |
||
991 | STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; |
||
992 | STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; |
||
993 | STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE; |
||
994 | STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; |
||
995 | STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; |
||
996 | STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; |
||
997 | STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; |
||
998 | STDMETHOD(RestoreDisplayMode)(THIS) PURE; |
||
999 | STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; |
||
1000 | STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE; |
||
1001 | STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; |
||
1002 | }; |
||
1003 | |||
1004 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1005 | #define IDirectDraw_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1006 | #define IDirectDraw_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1007 | #define IDirectDraw_Release(p) (p)->lpVtbl->Release(p) |
||
1008 | #define IDirectDraw_Compact(p) (p)->lpVtbl->Compact(p) |
||
1009 | #define IDirectDraw_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) |
||
1010 | #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) |
||
1011 | #define IDirectDraw_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) |
||
1012 | #define IDirectDraw_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) |
||
1013 | #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) |
||
1014 | #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) |
||
1015 | #define IDirectDraw_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) |
||
1016 | #define IDirectDraw_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) |
||
1017 | #define IDirectDraw_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) |
||
1018 | #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) |
||
1019 | #define IDirectDraw_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) |
||
1020 | #define IDirectDraw_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) |
||
1021 | #define IDirectDraw_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) |
||
1022 | #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) |
||
1023 | #define IDirectDraw_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) |
||
1024 | #define IDirectDraw_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) |
||
1025 | #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) |
||
1026 | #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->lpVtbl->SetDisplayMode(p, a, b, c) |
||
1027 | #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) |
||
1028 | #else |
||
1029 | #define IDirectDraw_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1030 | #define IDirectDraw_AddRef(p) (p)->AddRef() |
||
1031 | #define IDirectDraw_Release(p) (p)->Release() |
||
1032 | #define IDirectDraw_Compact(p) (p)->Compact() |
||
1033 | #define IDirectDraw_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) |
||
1034 | #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) |
||
1035 | #define IDirectDraw_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) |
||
1036 | #define IDirectDraw_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) |
||
1037 | #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) |
||
1038 | #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) |
||
1039 | #define IDirectDraw_FlipToGDISurface(p) (p)->FlipToGDISurface() |
||
1040 | #define IDirectDraw_GetCaps(p, a, b) (p)->GetCaps(a, b) |
||
1041 | #define IDirectDraw_GetDisplayMode(p, a) (p)->GetDisplayMode(a) |
||
1042 | #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) |
||
1043 | #define IDirectDraw_GetGDISurface(p, a) (p)->GetGDISurface(a) |
||
1044 | #define IDirectDraw_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) |
||
1045 | #define IDirectDraw_GetScanLine(p, a) (p)->GetScanLine(a) |
||
1046 | #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) |
||
1047 | #define IDirectDraw_Initialize(p, a) (p)->Initialize(a) |
||
1048 | #define IDirectDraw_RestoreDisplayMode(p) (p)->RestoreDisplayMode() |
||
1049 | #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) |
||
1050 | #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->SetDisplayMode(a, b, c) |
||
1051 | #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) |
||
1052 | #endif |
||
1053 | |||
1054 | #endif |
||
1055 | |||
1056 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1057 | #undef INTERFACE |
||
1058 | #define INTERFACE IDirectDraw2 |
||
1059 | DECLARE_INTERFACE_( IDirectDraw2, IUnknown ) |
||
1060 | { |
||
1061 | /*** IUnknown methods ***/ |
||
1062 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1063 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1064 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1065 | /*** IDirectDraw methods ***/ |
||
1066 | STDMETHOD(Compact)(THIS) PURE; |
||
1067 | STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; |
||
1068 | STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; |
||
1069 | STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE; |
||
1070 | STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE; |
||
1071 | STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; |
||
1072 | STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; |
||
1073 | STDMETHOD(FlipToGDISurface)(THIS) PURE; |
||
1074 | STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; |
||
1075 | STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; |
||
1076 | STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; |
||
1077 | STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE; |
||
1078 | STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; |
||
1079 | STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; |
||
1080 | STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; |
||
1081 | STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; |
||
1082 | STDMETHOD(RestoreDisplayMode)(THIS) PURE; |
||
1083 | STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; |
||
1084 | STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; |
||
1085 | STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; |
||
1086 | /*** Added in the v2 interface ***/ |
||
1087 | STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE; |
||
1088 | }; |
||
1089 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1090 | #define IDirectDraw2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1091 | #define IDirectDraw2_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1092 | #define IDirectDraw2_Release(p) (p)->lpVtbl->Release(p) |
||
1093 | #define IDirectDraw2_Compact(p) (p)->lpVtbl->Compact(p) |
||
1094 | #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) |
||
1095 | #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) |
||
1096 | #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) |
||
1097 | #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) |
||
1098 | #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) |
||
1099 | #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) |
||
1100 | #define IDirectDraw2_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) |
||
1101 | #define IDirectDraw2_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) |
||
1102 | #define IDirectDraw2_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) |
||
1103 | #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) |
||
1104 | #define IDirectDraw2_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) |
||
1105 | #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) |
||
1106 | #define IDirectDraw2_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) |
||
1107 | #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) |
||
1108 | #define IDirectDraw2_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) |
||
1109 | #define IDirectDraw2_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) |
||
1110 | #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) |
||
1111 | #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) |
||
1112 | #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) |
||
1113 | #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) |
||
1114 | #else |
||
1115 | #define IDirectDraw2_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1116 | #define IDirectDraw2_AddRef(p) (p)->AddRef() |
||
1117 | #define IDirectDraw2_Release(p) (p)->Release() |
||
1118 | #define IDirectDraw2_Compact(p) (p)->Compact() |
||
1119 | #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) |
||
1120 | #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) |
||
1121 | #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) |
||
1122 | #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) |
||
1123 | #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) |
||
1124 | #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) |
||
1125 | #define IDirectDraw2_FlipToGDISurface(p) (p)->FlipToGDISurface() |
||
1126 | #define IDirectDraw2_GetCaps(p, a, b) (p)->GetCaps(a, b) |
||
1127 | #define IDirectDraw2_GetDisplayMode(p, a) (p)->GetDisplayMode(a) |
||
1128 | #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) |
||
1129 | #define IDirectDraw2_GetGDISurface(p, a) (p)->GetGDISurface(a) |
||
1130 | #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) |
||
1131 | #define IDirectDraw2_GetScanLine(p, a) (p)->GetScanLine(a) |
||
1132 | #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) |
||
1133 | #define IDirectDraw2_Initialize(p, a) (p)->Initialize(a) |
||
1134 | #define IDirectDraw2_RestoreDisplayMode(p) (p)->RestoreDisplayMode() |
||
1135 | #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) |
||
1136 | #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) |
||
1137 | #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) |
||
1138 | #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) |
||
1139 | #endif |
||
1140 | |||
1141 | #endif |
||
1142 | |||
1143 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1144 | #undef INTERFACE |
||
1145 | #define INTERFACE IDirectDraw4 |
||
1146 | DECLARE_INTERFACE_( IDirectDraw4, IUnknown ) |
||
1147 | { |
||
1148 | /*** IUnknown methods ***/ |
||
1149 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1150 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1151 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1152 | /*** IDirectDraw methods ***/ |
||
1153 | STDMETHOD(Compact)(THIS) PURE; |
||
1154 | STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; |
||
1155 | STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; |
||
1156 | STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 FAR *, IUnknown FAR *) PURE; |
||
1157 | STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) PURE; |
||
1158 | STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; |
||
1159 | STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE; |
||
1160 | STDMETHOD(FlipToGDISurface)(THIS) PURE; |
||
1161 | STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; |
||
1162 | STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; |
||
1163 | STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; |
||
1164 | STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 FAR *) PURE; |
||
1165 | STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; |
||
1166 | STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; |
||
1167 | STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; |
||
1168 | STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; |
||
1169 | STDMETHOD(RestoreDisplayMode)(THIS) PURE; |
||
1170 | STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; |
||
1171 | STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; |
||
1172 | STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; |
||
1173 | /*** Added in the v2 interface ***/ |
||
1174 | STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; |
||
1175 | /*** Added in the V4 Interface ***/ |
||
1176 | STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE; |
||
1177 | STDMETHOD(RestoreAllSurfaces)(THIS) PURE; |
||
1178 | STDMETHOD(TestCooperativeLevel)(THIS) PURE; |
||
1179 | STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE; |
||
1180 | }; |
||
1181 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1182 | #define IDirectDraw4_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1183 | #define IDirectDraw4_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1184 | #define IDirectDraw4_Release(p) (p)->lpVtbl->Release(p) |
||
1185 | #define IDirectDraw4_Compact(p) (p)->lpVtbl->Compact(p) |
||
1186 | #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) |
||
1187 | #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) |
||
1188 | #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) |
||
1189 | #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) |
||
1190 | #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) |
||
1191 | #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) |
||
1192 | #define IDirectDraw4_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) |
||
1193 | #define IDirectDraw4_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) |
||
1194 | #define IDirectDraw4_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) |
||
1195 | #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) |
||
1196 | #define IDirectDraw4_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) |
||
1197 | #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) |
||
1198 | #define IDirectDraw4_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) |
||
1199 | #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) |
||
1200 | #define IDirectDraw4_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) |
||
1201 | #define IDirectDraw4_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) |
||
1202 | #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) |
||
1203 | #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) |
||
1204 | #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) |
||
1205 | #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) |
||
1206 | #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) |
||
1207 | #define IDirectDraw4_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) |
||
1208 | #define IDirectDraw4_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) |
||
1209 | #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) |
||
1210 | #else |
||
1211 | #define IDirectDraw4_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1212 | #define IDirectDraw4_AddRef(p) (p)->AddRef() |
||
1213 | #define IDirectDraw4_Release(p) (p)->Release() |
||
1214 | #define IDirectDraw4_Compact(p) (p)->Compact() |
||
1215 | #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) |
||
1216 | #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) |
||
1217 | #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) |
||
1218 | #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) |
||
1219 | #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) |
||
1220 | #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) |
||
1221 | #define IDirectDraw4_FlipToGDISurface(p) (p)->FlipToGDISurface() |
||
1222 | #define IDirectDraw4_GetCaps(p, a, b) (p)->GetCaps(a, b) |
||
1223 | #define IDirectDraw4_GetDisplayMode(p, a) (p)->GetDisplayMode(a) |
||
1224 | #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) |
||
1225 | #define IDirectDraw4_GetGDISurface(p, a) (p)->GetGDISurface(a) |
||
1226 | #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) |
||
1227 | #define IDirectDraw4_GetScanLine(p, a) (p)->GetScanLine(a) |
||
1228 | #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) |
||
1229 | #define IDirectDraw4_Initialize(p, a) (p)->Initialize(a) |
||
1230 | #define IDirectDraw4_RestoreDisplayMode(p) (p)->RestoreDisplayMode() |
||
1231 | #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) |
||
1232 | #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) |
||
1233 | #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) |
||
1234 | #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) |
||
1235 | #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) |
||
1236 | #define IDirectDraw4_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() |
||
1237 | #define IDirectDraw4_TestCooperativeLevel(p) (p)->TestCooperativeLevel() |
||
1238 | #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) |
||
1239 | #endif |
||
1240 | |||
1241 | #endif |
||
1242 | |||
1243 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1244 | #undef INTERFACE |
||
1245 | #define INTERFACE IDirectDraw7 |
||
1246 | DECLARE_INTERFACE_( IDirectDraw7, IUnknown ) |
||
1247 | { |
||
1248 | /*** IUnknown methods ***/ |
||
1249 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1250 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1251 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1252 | /*** IDirectDraw methods ***/ |
||
1253 | STDMETHOD(Compact)(THIS) PURE; |
||
1254 | STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; |
||
1255 | STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; |
||
1256 | STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 FAR *, IUnknown FAR *) PURE; |
||
1257 | STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 FAR * ) PURE; |
||
1258 | STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; |
||
1259 | STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ) PURE; |
||
1260 | STDMETHOD(FlipToGDISurface)(THIS) PURE; |
||
1261 | STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; |
||
1262 | STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; |
||
1263 | STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; |
||
1264 | STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 FAR *) PURE; |
||
1265 | STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; |
||
1266 | STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; |
||
1267 | STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; |
||
1268 | STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; |
||
1269 | STDMETHOD(RestoreDisplayMode)(THIS) PURE; |
||
1270 | STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; |
||
1271 | STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; |
||
1272 | STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; |
||
1273 | /*** Added in the v2 interface ***/ |
||
1274 | STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; |
||
1275 | /*** Added in the V4 Interface ***/ |
||
1276 | STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE; |
||
1277 | STDMETHOD(RestoreAllSurfaces)(THIS) PURE; |
||
1278 | STDMETHOD(TestCooperativeLevel)(THIS) PURE; |
||
1279 | STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2, DWORD ) PURE; |
||
1280 | STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD ) PURE; |
||
1281 | STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD * ) PURE; |
||
1282 | }; |
||
1283 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1284 | #define IDirectDraw7_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1285 | #define IDirectDraw7_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1286 | #define IDirectDraw7_Release(p) (p)->lpVtbl->Release(p) |
||
1287 | #define IDirectDraw7_Compact(p) (p)->lpVtbl->Compact(p) |
||
1288 | #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) |
||
1289 | #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) |
||
1290 | #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) |
||
1291 | #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) |
||
1292 | #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) |
||
1293 | #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) |
||
1294 | #define IDirectDraw7_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) |
||
1295 | #define IDirectDraw7_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) |
||
1296 | #define IDirectDraw7_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) |
||
1297 | #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) |
||
1298 | #define IDirectDraw7_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) |
||
1299 | #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) |
||
1300 | #define IDirectDraw7_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) |
||
1301 | #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) |
||
1302 | #define IDirectDraw7_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) |
||
1303 | #define IDirectDraw7_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) |
||
1304 | #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) |
||
1305 | #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) |
||
1306 | #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) |
||
1307 | #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) |
||
1308 | #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) |
||
1309 | #define IDirectDraw7_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) |
||
1310 | #define IDirectDraw7_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) |
||
1311 | #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) |
||
1312 | #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(p,a,b,c) |
||
1313 | #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(p,a,b) |
||
1314 | #else |
||
1315 | #define IDirectDraw7_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1316 | #define IDirectDraw7_AddRef(p) (p)->AddRef() |
||
1317 | #define IDirectDraw7_Release(p) (p)->Release() |
||
1318 | #define IDirectDraw7_Compact(p) (p)->Compact() |
||
1319 | #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) |
||
1320 | #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) |
||
1321 | #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) |
||
1322 | #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) |
||
1323 | #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) |
||
1324 | #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) |
||
1325 | #define IDirectDraw7_FlipToGDISurface(p) (p)->FlipToGDISurface() |
||
1326 | #define IDirectDraw7_GetCaps(p, a, b) (p)->GetCaps(a, b) |
||
1327 | #define IDirectDraw7_GetDisplayMode(p, a) (p)->GetDisplayMode(a) |
||
1328 | #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) |
||
1329 | #define IDirectDraw7_GetGDISurface(p, a) (p)->GetGDISurface(a) |
||
1330 | #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) |
||
1331 | #define IDirectDraw7_GetScanLine(p, a) (p)->GetScanLine(a) |
||
1332 | #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) |
||
1333 | #define IDirectDraw7_Initialize(p, a) (p)->Initialize(a) |
||
1334 | #define IDirectDraw7_RestoreDisplayMode(p) (p)->RestoreDisplayMode() |
||
1335 | #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) |
||
1336 | #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) |
||
1337 | #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) |
||
1338 | #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) |
||
1339 | #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) |
||
1340 | #define IDirectDraw7_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() |
||
1341 | #define IDirectDraw7_TestCooperativeLevel(p) (p)->TestCooperativeLevel() |
||
1342 | #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) |
||
1343 | #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(a,b,c) |
||
1344 | #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(a,b) |
||
1345 | #endif |
||
1346 | |||
1347 | #endif |
||
1348 | |||
1349 | |||
1350 | /* |
||
1351 | * IDirectDrawPalette |
||
1352 | */ |
||
1353 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1354 | #undef INTERFACE |
||
1355 | #define INTERFACE IDirectDrawPalette |
||
1356 | DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown ) |
||
1357 | { |
||
1358 | /*** IUnknown methods ***/ |
||
1359 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1360 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1361 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1362 | /*** IDirectDrawPalette methods ***/ |
||
1363 | STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE; |
||
1364 | STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; |
||
1365 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE; |
||
1366 | STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; |
||
1367 | }; |
||
1368 | |||
1369 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1370 | #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1371 | #define IDirectDrawPalette_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1372 | #define IDirectDrawPalette_Release(p) (p)->lpVtbl->Release(p) |
||
1373 | #define IDirectDrawPalette_GetCaps(p, a) (p)->lpVtbl->GetCaps(p, a) |
||
1374 | #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->lpVtbl->GetEntries(p, a, b, c, d) |
||
1375 | #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->lpVtbl->Initialize(p, a, b, c) |
||
1376 | #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->lpVtbl->SetEntries(p, a, b, c, d) |
||
1377 | #else |
||
1378 | #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1379 | #define IDirectDrawPalette_AddRef(p) (p)->AddRef() |
||
1380 | #define IDirectDrawPalette_Release(p) (p)->Release() |
||
1381 | #define IDirectDrawPalette_GetCaps(p, a) (p)->GetCaps(a) |
||
1382 | #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->GetEntries(a, b, c, d) |
||
1383 | #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->Initialize(a, b, c) |
||
1384 | #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->SetEntries(a, b, c, d) |
||
1385 | #endif |
||
1386 | |||
1387 | #endif |
||
1388 | |||
1389 | |||
1390 | /* |
||
1391 | * IDirectDrawClipper |
||
1392 | */ |
||
1393 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1394 | #undef INTERFACE |
||
1395 | #define INTERFACE IDirectDrawClipper |
||
1396 | DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown ) |
||
1397 | { |
||
1398 | /*** IUnknown methods ***/ |
||
1399 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1400 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1401 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1402 | /*** IDirectDrawClipper methods ***/ |
||
1403 | STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE; |
||
1404 | STDMETHOD(GetHWnd)(THIS_ HWND FAR *) PURE; |
||
1405 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE; |
||
1406 | STDMETHOD(IsClipListChanged)(THIS_ BOOL FAR *) PURE; |
||
1407 | STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE; |
||
1408 | STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE; |
||
1409 | }; |
||
1410 | |||
1411 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1412 | #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
1413 | #define IDirectDrawClipper_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1414 | #define IDirectDrawClipper_Release(p) (p)->lpVtbl->Release(p) |
||
1415 | #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->lpVtbl->GetClipList(p, a, b, c) |
||
1416 | #define IDirectDrawClipper_GetHWnd(p, a) (p)->lpVtbl->GetHWnd(p, a) |
||
1417 | #define IDirectDrawClipper_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b) |
||
1418 | #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->lpVtbl->IsClipListChanged(p, a) |
||
1419 | #define IDirectDrawClipper_SetClipList(p, a, b) (p)->lpVtbl->SetClipList(p, a, b) |
||
1420 | #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->lpVtbl->SetHWnd(p, a, b) |
||
1421 | #else |
||
1422 | #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
1423 | #define IDirectDrawClipper_AddRef(p) (p)->AddRef() |
||
1424 | #define IDirectDrawClipper_Release(p) (p)->Release() |
||
1425 | #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->GetClipList(a, b, c) |
||
1426 | #define IDirectDrawClipper_GetHWnd(p, a) (p)->GetHWnd(a) |
||
1427 | #define IDirectDrawClipper_Initialize(p, a, b) (p)->Initialize(a, b) |
||
1428 | #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->IsClipListChanged(a) |
||
1429 | #define IDirectDrawClipper_SetClipList(p, a, b) (p)->SetClipList(a, b) |
||
1430 | #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->SetHWnd(a, b) |
||
1431 | #endif |
||
1432 | |||
1433 | #endif |
||
1434 | |||
1435 | /* |
||
1436 | * IDirectDrawSurface and related interfaces |
||
1437 | */ |
||
1438 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
1439 | #undef INTERFACE |
||
1440 | #define INTERFACE IDirectDrawSurface |
||
1441 | DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown ) |
||
1442 | { |
||
1443 | /*** IUnknown methods ***/ |
||
1444 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1445 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1446 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1447 | /*** IDirectDrawSurface methods ***/ |
||
1448 | STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE; |
||
1449 | STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; |
||
1450 | STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE; |
||
1451 | STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; |
||
1452 | STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE; |
||
1453 | STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE; |
||
1454 | STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1455 | STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1456 | STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE; |
||
1457 | STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *) PURE; |
||
1458 | STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; |
||
1459 | STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; |
||
1460 | STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; |
||
1461 | STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1462 | STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; |
||
1463 | STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; |
||
1464 | STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; |
||
1465 | STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; |
||
1466 | STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; |
||
1467 | STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; |
||
1468 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; |
||
1469 | STDMETHOD(IsLost)(THIS) PURE; |
||
1470 | STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; |
||
1471 | STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; |
||
1472 | STDMETHOD(Restore)(THIS) PURE; |
||
1473 | STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; |
||
1474 | STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1475 | STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; |
||
1476 | STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; |
||
1477 | STDMETHOD(Unlock)(THIS_ LPVOID) PURE; |
||
1478 | STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE; |
||
1479 | STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; |
||
1480 | STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE; |
||
1481 | }; |
||
1482 | |||
1483 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1484 | #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
||
1485 | #define IDirectDrawSurface_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1486 | #define IDirectDrawSurface_Release(p) (p)->lpVtbl->Release(p) |
||
1487 | #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) |
||
1488 | #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) |
||
1489 | #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) |
||
1490 | #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) |
||
1491 | #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) |
||
1492 | #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) |
||
1493 | #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) |
||
1494 | #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) |
||
1495 | #define IDirectDrawSurface_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) |
||
1496 | #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) |
||
1497 | #define IDirectDrawSurface_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) |
||
1498 | #define IDirectDrawSurface_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) |
||
1499 | #define IDirectDrawSurface_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) |
||
1500 | #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) |
||
1501 | #define IDirectDrawSurface_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) |
||
1502 | #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) |
||
1503 | #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) |
||
1504 | #define IDirectDrawSurface_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) |
||
1505 | #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) |
||
1506 | #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) |
||
1507 | #define IDirectDrawSurface_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) |
||
1508 | #define IDirectDrawSurface_IsLost(p) (p)->lpVtbl->IsLost(p) |
||
1509 | #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) |
||
1510 | #define IDirectDrawSurface_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) |
||
1511 | #define IDirectDrawSurface_Restore(p) (p)->lpVtbl->Restore(p) |
||
1512 | #define IDirectDrawSurface_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) |
||
1513 | #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) |
||
1514 | #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) |
||
1515 | #define IDirectDrawSurface_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) |
||
1516 | #define IDirectDrawSurface_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) |
||
1517 | #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) |
||
1518 | #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) |
||
1519 | #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) |
||
1520 | #else |
||
1521 | #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
||
1522 | #define IDirectDrawSurface_AddRef(p) (p)->AddRef() |
||
1523 | #define IDirectDrawSurface_Release(p) (p)->Release() |
||
1524 | #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) |
||
1525 | #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) |
||
1526 | #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) |
||
1527 | #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) |
||
1528 | #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) |
||
1529 | #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) |
||
1530 | #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) |
||
1531 | #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) |
||
1532 | #define IDirectDrawSurface_Flip(p,a,b) (p)->Flip(a,b) |
||
1533 | #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) |
||
1534 | #define IDirectDrawSurface_GetBltStatus(p,a) (p)->GetBltStatus(a) |
||
1535 | #define IDirectDrawSurface_GetCaps(p,b) (p)->GetCaps(b) |
||
1536 | #define IDirectDrawSurface_GetClipper(p,a) (p)->GetClipper(a) |
||
1537 | #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->GetColorKey(a,b) |
||
1538 | #define IDirectDrawSurface_GetDC(p,a) (p)->GetDC(a) |
||
1539 | #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->GetFlipStatus(a) |
||
1540 | #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) |
||
1541 | #define IDirectDrawSurface_GetPalette(p,a) (p)->GetPalette(a) |
||
1542 | #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->GetPixelFormat(a) |
||
1543 | #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) |
||
1544 | #define IDirectDrawSurface_Initialize(p,a,b) (p)->Initialize(a,b) |
||
1545 | #define IDirectDrawSurface_IsLost(p) (p)->IsLost() |
||
1546 | #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) |
||
1547 | #define IDirectDrawSurface_ReleaseDC(p,a) (p)->ReleaseDC(a) |
||
1548 | #define IDirectDrawSurface_Restore(p) (p)->Restore() |
||
1549 | #define IDirectDrawSurface_SetClipper(p,a) (p)->SetClipper(a) |
||
1550 | #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->SetColorKey(a,b) |
||
1551 | #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) |
||
1552 | #define IDirectDrawSurface_SetPalette(p,a) (p)->SetPalette(a) |
||
1553 | #define IDirectDrawSurface_Unlock(p,b) (p)->Unlock(b) |
||
1554 | #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) |
||
1555 | #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) |
||
1556 | #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) |
||
1557 | #endif |
||
1558 | |||
1559 | /* |
||
1560 | * IDirectDrawSurface2 and related interfaces |
||
1561 | */ |
||
1562 | #undef INTERFACE |
||
1563 | #define INTERFACE IDirectDrawSurface2 |
||
1564 | DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown ) |
||
1565 | { |
||
1566 | /*** IUnknown methods ***/ |
||
1567 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1568 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1569 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1570 | /*** IDirectDrawSurface methods ***/ |
||
1571 | STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE; |
||
1572 | STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; |
||
1573 | STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE; |
||
1574 | STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; |
||
1575 | STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE; |
||
1576 | STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE; |
||
1577 | STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1578 | STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1579 | STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE; |
||
1580 | STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *) PURE; |
||
1581 | STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; |
||
1582 | STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; |
||
1583 | STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; |
||
1584 | STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1585 | STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; |
||
1586 | STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; |
||
1587 | STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; |
||
1588 | STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; |
||
1589 | STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; |
||
1590 | STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; |
||
1591 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; |
||
1592 | STDMETHOD(IsLost)(THIS) PURE; |
||
1593 | STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; |
||
1594 | STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; |
||
1595 | STDMETHOD(Restore)(THIS) PURE; |
||
1596 | STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; |
||
1597 | STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1598 | STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; |
||
1599 | STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; |
||
1600 | STDMETHOD(Unlock)(THIS_ LPVOID) PURE; |
||
1601 | STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE; |
||
1602 | STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; |
||
1603 | STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE; |
||
1604 | /*** Added in the v2 interface ***/ |
||
1605 | STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; |
||
1606 | STDMETHOD(PageLock)(THIS_ DWORD) PURE; |
||
1607 | STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; |
||
1608 | }; |
||
1609 | |||
1610 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1611 | #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
||
1612 | #define IDirectDrawSurface2_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1613 | #define IDirectDrawSurface2_Release(p) (p)->lpVtbl->Release(p) |
||
1614 | #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) |
||
1615 | #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) |
||
1616 | #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) |
||
1617 | #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) |
||
1618 | #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) |
||
1619 | #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) |
||
1620 | #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) |
||
1621 | #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) |
||
1622 | #define IDirectDrawSurface2_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) |
||
1623 | #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) |
||
1624 | #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) |
||
1625 | #define IDirectDrawSurface2_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) |
||
1626 | #define IDirectDrawSurface2_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) |
||
1627 | #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) |
||
1628 | #define IDirectDrawSurface2_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) |
||
1629 | #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) |
||
1630 | #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) |
||
1631 | #define IDirectDrawSurface2_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) |
||
1632 | #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) |
||
1633 | #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) |
||
1634 | #define IDirectDrawSurface2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) |
||
1635 | #define IDirectDrawSurface2_IsLost(p) (p)->lpVtbl->IsLost(p) |
||
1636 | #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) |
||
1637 | #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) |
||
1638 | #define IDirectDrawSurface2_Restore(p) (p)->lpVtbl->Restore(p) |
||
1639 | #define IDirectDrawSurface2_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) |
||
1640 | #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) |
||
1641 | #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) |
||
1642 | #define IDirectDrawSurface2_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) |
||
1643 | #define IDirectDrawSurface2_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) |
||
1644 | #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) |
||
1645 | #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) |
||
1646 | #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) |
||
1647 | #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) |
||
1648 | #define IDirectDrawSurface2_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) |
||
1649 | #define IDirectDrawSurface2_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) |
||
1650 | #else |
||
1651 | #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
||
1652 | #define IDirectDrawSurface2_AddRef(p) (p)->AddRef() |
||
1653 | #define IDirectDrawSurface2_Release(p) (p)->Release() |
||
1654 | #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) |
||
1655 | #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) |
||
1656 | #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) |
||
1657 | #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) |
||
1658 | #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) |
||
1659 | #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) |
||
1660 | #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) |
||
1661 | #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) |
||
1662 | #define IDirectDrawSurface2_Flip(p,a,b) (p)->Flip(a,b) |
||
1663 | #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) |
||
1664 | #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->GetBltStatus(a) |
||
1665 | #define IDirectDrawSurface2_GetCaps(p,b) (p)->GetCaps(b) |
||
1666 | #define IDirectDrawSurface2_GetClipper(p,a) (p)->GetClipper(a) |
||
1667 | #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->GetColorKey(a,b) |
||
1668 | #define IDirectDrawSurface2_GetDC(p,a) (p)->GetDC(a) |
||
1669 | #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->GetFlipStatus(a) |
||
1670 | #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) |
||
1671 | #define IDirectDrawSurface2_GetPalette(p,a) (p)->GetPalette(a) |
||
1672 | #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->GetPixelFormat(a) |
||
1673 | #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) |
||
1674 | #define IDirectDrawSurface2_Initialize(p,a,b) (p)->Initialize(a,b) |
||
1675 | #define IDirectDrawSurface2_IsLost(p) (p)->IsLost() |
||
1676 | #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) |
||
1677 | #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->ReleaseDC(a) |
||
1678 | #define IDirectDrawSurface2_Restore(p) (p)->Restore() |
||
1679 | #define IDirectDrawSurface2_SetClipper(p,a) (p)->SetClipper(a) |
||
1680 | #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->SetColorKey(a,b) |
||
1681 | #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) |
||
1682 | #define IDirectDrawSurface2_SetPalette(p,a) (p)->SetPalette(a) |
||
1683 | #define IDirectDrawSurface2_Unlock(p,b) (p)->Unlock(b) |
||
1684 | #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) |
||
1685 | #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) |
||
1686 | #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) |
||
1687 | #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->GetDDInterface(a) |
||
1688 | #define IDirectDrawSurface2_PageLock(p,a) (p)->PageLock(a) |
||
1689 | #define IDirectDrawSurface2_PageUnlock(p,a) (p)->PageUnlock(a) |
||
1690 | #endif |
||
1691 | |||
1692 | /* |
||
1693 | * IDirectDrawSurface3 and related interfaces |
||
1694 | */ |
||
1695 | #undef INTERFACE |
||
1696 | #define INTERFACE IDirectDrawSurface3 |
||
1697 | DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown ) |
||
1698 | { |
||
1699 | /*** IUnknown methods ***/ |
||
1700 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1701 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1702 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1703 | /*** IDirectDrawSurface methods ***/ |
||
1704 | STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE; |
||
1705 | STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; |
||
1706 | STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE; |
||
1707 | STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; |
||
1708 | STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE; |
||
1709 | STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE; |
||
1710 | STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1711 | STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; |
||
1712 | STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE; |
||
1713 | STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *) PURE; |
||
1714 | STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; |
||
1715 | STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; |
||
1716 | STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; |
||
1717 | STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1718 | STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; |
||
1719 | STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; |
||
1720 | STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; |
||
1721 | STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; |
||
1722 | STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; |
||
1723 | STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; |
||
1724 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; |
||
1725 | STDMETHOD(IsLost)(THIS) PURE; |
||
1726 | STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; |
||
1727 | STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; |
||
1728 | STDMETHOD(Restore)(THIS) PURE; |
||
1729 | STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; |
||
1730 | STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1731 | STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; |
||
1732 | STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; |
||
1733 | STDMETHOD(Unlock)(THIS_ LPVOID) PURE; |
||
1734 | STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE; |
||
1735 | STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; |
||
1736 | STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE; |
||
1737 | /*** Added in the v2 interface ***/ |
||
1738 | STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; |
||
1739 | STDMETHOD(PageLock)(THIS_ DWORD) PURE; |
||
1740 | STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; |
||
1741 | /*** Added in the V3 interface ***/ |
||
1742 | STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE; |
||
1743 | }; |
||
1744 | |||
1745 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1746 | #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
||
1747 | #define IDirectDrawSurface3_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1748 | #define IDirectDrawSurface3_Release(p) (p)->lpVtbl->Release(p) |
||
1749 | #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) |
||
1750 | #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) |
||
1751 | #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) |
||
1752 | #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) |
||
1753 | #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) |
||
1754 | #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) |
||
1755 | #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) |
||
1756 | #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) |
||
1757 | #define IDirectDrawSurface3_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) |
||
1758 | #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) |
||
1759 | #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) |
||
1760 | #define IDirectDrawSurface3_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) |
||
1761 | #define IDirectDrawSurface3_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) |
||
1762 | #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) |
||
1763 | #define IDirectDrawSurface3_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) |
||
1764 | #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) |
||
1765 | #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) |
||
1766 | #define IDirectDrawSurface3_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) |
||
1767 | #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) |
||
1768 | #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) |
||
1769 | #define IDirectDrawSurface3_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) |
||
1770 | #define IDirectDrawSurface3_IsLost(p) (p)->lpVtbl->IsLost(p) |
||
1771 | #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) |
||
1772 | #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) |
||
1773 | #define IDirectDrawSurface3_Restore(p) (p)->lpVtbl->Restore(p) |
||
1774 | #define IDirectDrawSurface3_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) |
||
1775 | #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) |
||
1776 | #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) |
||
1777 | #define IDirectDrawSurface3_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) |
||
1778 | #define IDirectDrawSurface3_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) |
||
1779 | #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) |
||
1780 | #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) |
||
1781 | #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) |
||
1782 | #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) |
||
1783 | #define IDirectDrawSurface3_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) |
||
1784 | #define IDirectDrawSurface3_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) |
||
1785 | #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) |
||
1786 | #else |
||
1787 | #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
||
1788 | #define IDirectDrawSurface3_AddRef(p) (p)->AddRef() |
||
1789 | #define IDirectDrawSurface3_Release(p) (p)->Release() |
||
1790 | #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) |
||
1791 | #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) |
||
1792 | #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) |
||
1793 | #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) |
||
1794 | #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) |
||
1795 | #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) |
||
1796 | #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) |
||
1797 | #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) |
||
1798 | #define IDirectDrawSurface3_Flip(p,a,b) (p)->Flip(a,b) |
||
1799 | #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) |
||
1800 | #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->GetBltStatus(a) |
||
1801 | #define IDirectDrawSurface3_GetCaps(p,b) (p)->GetCaps(b) |
||
1802 | #define IDirectDrawSurface3_GetClipper(p,a) (p)->GetClipper(a) |
||
1803 | #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->GetColorKey(a,b) |
||
1804 | #define IDirectDrawSurface3_GetDC(p,a) (p)->GetDC(a) |
||
1805 | #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->GetFlipStatus(a) |
||
1806 | #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) |
||
1807 | #define IDirectDrawSurface3_GetPalette(p,a) (p)->GetPalette(a) |
||
1808 | #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->GetPixelFormat(a) |
||
1809 | #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) |
||
1810 | #define IDirectDrawSurface3_Initialize(p,a,b) (p)->Initialize(a,b) |
||
1811 | #define IDirectDrawSurface3_IsLost(p) (p)->IsLost() |
||
1812 | #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) |
||
1813 | #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->ReleaseDC(a) |
||
1814 | #define IDirectDrawSurface3_Restore(p) (p)->Restore() |
||
1815 | #define IDirectDrawSurface3_SetClipper(p,a) (p)->SetClipper(a) |
||
1816 | #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->SetColorKey(a,b) |
||
1817 | #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) |
||
1818 | #define IDirectDrawSurface3_SetPalette(p,a) (p)->SetPalette(a) |
||
1819 | #define IDirectDrawSurface3_Unlock(p,b) (p)->Unlock(b) |
||
1820 | #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) |
||
1821 | #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) |
||
1822 | #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) |
||
1823 | #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->GetDDInterface(a) |
||
1824 | #define IDirectDrawSurface3_PageLock(p,a) (p)->PageLock(a) |
||
1825 | #define IDirectDrawSurface3_PageUnlock(p,a) (p)->PageUnlock(a) |
||
1826 | #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) |
||
1827 | #endif |
||
1828 | |||
1829 | /* |
||
1830 | * IDirectDrawSurface4 and related interfaces |
||
1831 | */ |
||
1832 | #undef INTERFACE |
||
1833 | #define INTERFACE IDirectDrawSurface4 |
||
1834 | DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown ) |
||
1835 | { |
||
1836 | /*** IUnknown methods ***/ |
||
1837 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1838 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1839 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1840 | /*** IDirectDrawSurface methods ***/ |
||
1841 | STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE; |
||
1842 | STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; |
||
1843 | STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE; |
||
1844 | STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; |
||
1845 | STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE; |
||
1846 | STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE; |
||
1847 | STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; |
||
1848 | STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; |
||
1849 | STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE; |
||
1850 | STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *) PURE; |
||
1851 | STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; |
||
1852 | STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; |
||
1853 | STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; |
||
1854 | STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1855 | STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; |
||
1856 | STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; |
||
1857 | STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; |
||
1858 | STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; |
||
1859 | STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; |
||
1860 | STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; |
||
1861 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; |
||
1862 | STDMETHOD(IsLost)(THIS) PURE; |
||
1863 | STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; |
||
1864 | STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; |
||
1865 | STDMETHOD(Restore)(THIS) PURE; |
||
1866 | STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; |
||
1867 | STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
1868 | STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; |
||
1869 | STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; |
||
1870 | STDMETHOD(Unlock)(THIS_ LPRECT) PURE; |
||
1871 | STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE; |
||
1872 | STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; |
||
1873 | STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE; |
||
1874 | /*** Added in the v2 interface ***/ |
||
1875 | STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; |
||
1876 | STDMETHOD(PageLock)(THIS_ DWORD) PURE; |
||
1877 | STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; |
||
1878 | /*** Added in the v3 interface ***/ |
||
1879 | STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; |
||
1880 | /*** Added in the v4 interface ***/ |
||
1881 | STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; |
||
1882 | STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; |
||
1883 | STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; |
||
1884 | STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; |
||
1885 | STDMETHOD(ChangeUniquenessValue)(THIS) PURE; |
||
1886 | }; |
||
1887 | |||
1888 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
1889 | #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
||
1890 | #define IDirectDrawSurface4_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
1891 | #define IDirectDrawSurface4_Release(p) (p)->lpVtbl->Release(p) |
||
1892 | #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) |
||
1893 | #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) |
||
1894 | #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) |
||
1895 | #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) |
||
1896 | #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) |
||
1897 | #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) |
||
1898 | #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) |
||
1899 | #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) |
||
1900 | #define IDirectDrawSurface4_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) |
||
1901 | #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) |
||
1902 | #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) |
||
1903 | #define IDirectDrawSurface4_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) |
||
1904 | #define IDirectDrawSurface4_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) |
||
1905 | #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) |
||
1906 | #define IDirectDrawSurface4_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) |
||
1907 | #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) |
||
1908 | #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) |
||
1909 | #define IDirectDrawSurface4_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) |
||
1910 | #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) |
||
1911 | #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) |
||
1912 | #define IDirectDrawSurface4_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) |
||
1913 | #define IDirectDrawSurface4_IsLost(p) (p)->lpVtbl->IsLost(p) |
||
1914 | #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) |
||
1915 | #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) |
||
1916 | #define IDirectDrawSurface4_Restore(p) (p)->lpVtbl->Restore(p) |
||
1917 | #define IDirectDrawSurface4_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) |
||
1918 | #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) |
||
1919 | #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) |
||
1920 | #define IDirectDrawSurface4_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) |
||
1921 | #define IDirectDrawSurface4_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) |
||
1922 | #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) |
||
1923 | #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) |
||
1924 | #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) |
||
1925 | #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) |
||
1926 | #define IDirectDrawSurface4_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) |
||
1927 | #define IDirectDrawSurface4_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) |
||
1928 | #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) |
||
1929 | #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) |
||
1930 | #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) |
||
1931 | #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) |
||
1932 | #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) |
||
1933 | #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) |
||
1934 | #else |
||
1935 | #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
||
1936 | #define IDirectDrawSurface4_AddRef(p) (p)->AddRef() |
||
1937 | #define IDirectDrawSurface4_Release(p) (p)->Release() |
||
1938 | #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) |
||
1939 | #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) |
||
1940 | #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) |
||
1941 | #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) |
||
1942 | #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) |
||
1943 | #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) |
||
1944 | #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) |
||
1945 | #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) |
||
1946 | #define IDirectDrawSurface4_Flip(p,a,b) (p)->Flip(a,b) |
||
1947 | #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) |
||
1948 | #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->GetBltStatus(a) |
||
1949 | #define IDirectDrawSurface4_GetCaps(p,b) (p)->GetCaps(b) |
||
1950 | #define IDirectDrawSurface4_GetClipper(p,a) (p)->GetClipper(a) |
||
1951 | #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->GetColorKey(a,b) |
||
1952 | #define IDirectDrawSurface4_GetDC(p,a) (p)->GetDC(a) |
||
1953 | #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->GetFlipStatus(a) |
||
1954 | #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) |
||
1955 | #define IDirectDrawSurface4_GetPalette(p,a) (p)->GetPalette(a) |
||
1956 | #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->GetPixelFormat(a) |
||
1957 | #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) |
||
1958 | #define IDirectDrawSurface4_Initialize(p,a,b) (p)->Initialize(a,b) |
||
1959 | #define IDirectDrawSurface4_IsLost(p) (p)->IsLost() |
||
1960 | #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) |
||
1961 | #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->ReleaseDC(a) |
||
1962 | #define IDirectDrawSurface4_Restore(p) (p)->Restore() |
||
1963 | #define IDirectDrawSurface4_SetClipper(p,a) (p)->SetClipper(a) |
||
1964 | #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->SetColorKey(a,b) |
||
1965 | #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) |
||
1966 | #define IDirectDrawSurface4_SetPalette(p,a) (p)->SetPalette(a) |
||
1967 | #define IDirectDrawSurface4_Unlock(p,b) (p)->Unlock(b) |
||
1968 | #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) |
||
1969 | #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) |
||
1970 | #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) |
||
1971 | #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->GetDDInterface(a) |
||
1972 | #define IDirectDrawSurface4_PageLock(p,a) (p)->PageLock(a) |
||
1973 | #define IDirectDrawSurface4_PageUnlock(p,a) (p)->PageUnlock(a) |
||
1974 | #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) |
||
1975 | #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) |
||
1976 | #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) |
||
1977 | #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->FreePrivateData(a) |
||
1978 | #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) |
||
1979 | #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() |
||
1980 | #endif |
||
1981 | |||
1982 | /* |
||
1983 | * IDirectDrawSurface7 and related interfaces |
||
1984 | */ |
||
1985 | #undef INTERFACE |
||
1986 | #define INTERFACE IDirectDrawSurface7 |
||
1987 | DECLARE_INTERFACE_( IDirectDrawSurface7, IUnknown ) |
||
1988 | { |
||
1989 | /*** IUnknown methods ***/ |
||
1990 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
1991 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
1992 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
1993 | /*** IDirectDrawSurface methods ***/ |
||
1994 | STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7) PURE; |
||
1995 | STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; |
||
1996 | STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX) PURE; |
||
1997 | STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; |
||
1998 | STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD) PURE; |
||
1999 | STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE7) PURE; |
||
2000 | STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; |
||
2001 | STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; |
||
2002 | STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7, DWORD) PURE; |
||
2003 | STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE7 FAR *) PURE; |
||
2004 | STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; |
||
2005 | STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; |
||
2006 | STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; |
||
2007 | STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
2008 | STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; |
||
2009 | STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; |
||
2010 | STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; |
||
2011 | STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; |
||
2012 | STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; |
||
2013 | STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; |
||
2014 | STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; |
||
2015 | STDMETHOD(IsLost)(THIS) PURE; |
||
2016 | STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; |
||
2017 | STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; |
||
2018 | STDMETHOD(Restore)(THIS) PURE; |
||
2019 | STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; |
||
2020 | STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; |
||
2021 | STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; |
||
2022 | STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; |
||
2023 | STDMETHOD(Unlock)(THIS_ LPRECT) PURE; |
||
2024 | STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX) PURE; |
||
2025 | STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; |
||
2026 | STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE7) PURE; |
||
2027 | /*** Added in the v2 interface ***/ |
||
2028 | STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; |
||
2029 | STDMETHOD(PageLock)(THIS_ DWORD) PURE; |
||
2030 | STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; |
||
2031 | /*** Added in the v3 interface ***/ |
||
2032 | STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; |
||
2033 | /*** Added in the v4 interface ***/ |
||
2034 | STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; |
||
2035 | STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; |
||
2036 | STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; |
||
2037 | STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; |
||
2038 | STDMETHOD(ChangeUniquenessValue)(THIS) PURE; |
||
2039 | /*** Moved Texture7 methods here ***/ |
||
2040 | STDMETHOD(SetPriority)(THIS_ DWORD) PURE; |
||
2041 | STDMETHOD(GetPriority)(THIS_ LPDWORD) PURE; |
||
2042 | STDMETHOD(SetLOD)(THIS_ DWORD) PURE; |
||
2043 | STDMETHOD(GetLOD)(THIS_ LPDWORD) PURE; |
||
2044 | }; |
||
2045 | |||
2046 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
2047 | #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) |
||
2048 | #define IDirectDrawSurface7_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
2049 | #define IDirectDrawSurface7_Release(p) (p)->lpVtbl->Release(p) |
||
2050 | #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) |
||
2051 | #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) |
||
2052 | #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) |
||
2053 | #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) |
||
2054 | #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) |
||
2055 | #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) |
||
2056 | #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) |
||
2057 | #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) |
||
2058 | #define IDirectDrawSurface7_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) |
||
2059 | #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) |
||
2060 | #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) |
||
2061 | #define IDirectDrawSurface7_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) |
||
2062 | #define IDirectDrawSurface7_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) |
||
2063 | #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) |
||
2064 | #define IDirectDrawSurface7_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) |
||
2065 | #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) |
||
2066 | #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) |
||
2067 | #define IDirectDrawSurface7_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) |
||
2068 | #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) |
||
2069 | #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) |
||
2070 | #define IDirectDrawSurface7_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) |
||
2071 | #define IDirectDrawSurface7_IsLost(p) (p)->lpVtbl->IsLost(p) |
||
2072 | #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) |
||
2073 | #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) |
||
2074 | #define IDirectDrawSurface7_Restore(p) (p)->lpVtbl->Restore(p) |
||
2075 | #define IDirectDrawSurface7_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) |
||
2076 | #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) |
||
2077 | #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) |
||
2078 | #define IDirectDrawSurface7_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) |
||
2079 | #define IDirectDrawSurface7_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) |
||
2080 | #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) |
||
2081 | #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) |
||
2082 | #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) |
||
2083 | #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) |
||
2084 | #define IDirectDrawSurface7_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) |
||
2085 | #define IDirectDrawSurface7_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) |
||
2086 | #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) |
||
2087 | #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) |
||
2088 | #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) |
||
2089 | #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) |
||
2090 | #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) |
||
2091 | #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) |
||
2092 | #define IDirectDrawSurface7_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) |
||
2093 | #define IDirectDrawSurface7_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) |
||
2094 | #define IDirectDrawSurface7_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) |
||
2095 | #define IDirectDrawSurface7_GetLOD(p,a) (p)->lpVtbl->GetLOD(p,a) |
||
2096 | #else |
||
2097 | #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) |
||
2098 | #define IDirectDrawSurface7_AddRef(p) (p)->AddRef() |
||
2099 | #define IDirectDrawSurface7_Release(p) (p)->Release() |
||
2100 | #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) |
||
2101 | #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) |
||
2102 | #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) |
||
2103 | #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) |
||
2104 | #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) |
||
2105 | #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) |
||
2106 | #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) |
||
2107 | #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) |
||
2108 | #define IDirectDrawSurface7_Flip(p,a,b) (p)->Flip(a,b) |
||
2109 | #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) |
||
2110 | #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->GetBltStatus(a) |
||
2111 | #define IDirectDrawSurface7_GetCaps(p,b) (p)->GetCaps(b) |
||
2112 | #define IDirectDrawSurface7_GetClipper(p,a) (p)->GetClipper(a) |
||
2113 | #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->GetColorKey(a,b) |
||
2114 | #define IDirectDrawSurface7_GetDC(p,a) (p)->GetDC(a) |
||
2115 | #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->GetFlipStatus(a) |
||
2116 | #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) |
||
2117 | #define IDirectDrawSurface7_GetPalette(p,a) (p)->GetPalette(a) |
||
2118 | #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->GetPixelFormat(a) |
||
2119 | #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) |
||
2120 | #define IDirectDrawSurface7_Initialize(p,a,b) (p)->Initialize(a,b) |
||
2121 | #define IDirectDrawSurface7_IsLost(p) (p)->IsLost() |
||
2122 | #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) |
||
2123 | #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->ReleaseDC(a) |
||
2124 | #define IDirectDrawSurface7_Restore(p) (p)->Restore() |
||
2125 | #define IDirectDrawSurface7_SetClipper(p,a) (p)->SetClipper(a) |
||
2126 | #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->SetColorKey(a,b) |
||
2127 | #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) |
||
2128 | #define IDirectDrawSurface7_SetPalette(p,a) (p)->SetPalette(a) |
||
2129 | #define IDirectDrawSurface7_Unlock(p,b) (p)->Unlock(b) |
||
2130 | #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) |
||
2131 | #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) |
||
2132 | #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) |
||
2133 | #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->GetDDInterface(a) |
||
2134 | #define IDirectDrawSurface7_PageLock(p,a) (p)->PageLock(a) |
||
2135 | #define IDirectDrawSurface7_PageUnlock(p,a) (p)->PageUnlock(a) |
||
2136 | #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) |
||
2137 | #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) |
||
2138 | #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) |
||
2139 | #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->FreePrivateData(a) |
||
2140 | #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) |
||
2141 | #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() |
||
2142 | #define IDirectDrawSurface7_SetPriority(p,a) (p)->SetPriority(a) |
||
2143 | #define IDirectDrawSurface7_GetPriority(p,a) (p)->GetPriority(a) |
||
2144 | #define IDirectDrawSurface7_SetLOD(p,a) (p)->SetLOD(a) |
||
2145 | #define IDirectDrawSurface7_GetLOD(p,a) (p)->GetLOD(a) |
||
2146 | #endif |
||
2147 | |||
2148 | |||
2149 | /* |
||
2150 | * IDirectDrawColorControl |
||
2151 | */ |
||
2152 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
2153 | #undef INTERFACE |
||
2154 | #define INTERFACE IDirectDrawColorControl |
||
2155 | DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown ) |
||
2156 | { |
||
2157 | /*** IUnknown methods ***/ |
||
2158 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
2159 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
2160 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
2161 | /*** IDirectDrawColorControl methods ***/ |
||
2162 | STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; |
||
2163 | STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; |
||
2164 | }; |
||
2165 | |||
2166 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
2167 | #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
2168 | #define IDirectDrawColorControl_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
2169 | #define IDirectDrawColorControl_Release(p) (p)->lpVtbl->Release(p) |
||
2170 | #define IDirectDrawColorControl_GetColorControls(p, a) (p)->lpVtbl->GetColorControls(p, a) |
||
2171 | #define IDirectDrawColorControl_SetColorControls(p, a) (p)->lpVtbl->SetColorControls(p, a) |
||
2172 | #else |
||
2173 | #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
2174 | #define IDirectDrawColorControl_AddRef(p) (p)->AddRef() |
||
2175 | #define IDirectDrawColorControl_Release(p) (p)->Release() |
||
2176 | #define IDirectDrawColorControl_GetColorControls(p, a) (p)->GetColorControls(a) |
||
2177 | #define IDirectDrawColorControl_SetColorControls(p, a) (p)->SetColorControls(a) |
||
2178 | #endif |
||
2179 | |||
2180 | #endif |
||
2181 | |||
2182 | |||
2183 | /* |
||
2184 | * IDirectDrawGammaControl |
||
2185 | */ |
||
2186 | #if defined( _WIN32 ) && !defined( _NO_COM ) |
||
2187 | #undef INTERFACE |
||
2188 | #define INTERFACE IDirectDrawGammaControl |
||
2189 | DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown ) |
||
2190 | { |
||
2191 | /*** IUnknown methods ***/ |
||
2192 | STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; |
||
2193 | STDMETHOD_(ULONG,AddRef) (THIS) PURE; |
||
2194 | STDMETHOD_(ULONG,Release) (THIS) PURE; |
||
2195 | /*** IDirectDrawGammaControl methods ***/ |
||
2196 | STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; |
||
2197 | STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; |
||
2198 | }; |
||
2199 | |||
2200 | #if !defined(__cplusplus) || defined(CINTERFACE) |
||
2201 | #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) |
||
2202 | #define IDirectDrawGammaControl_AddRef(p) (p)->lpVtbl->AddRef(p) |
||
2203 | #define IDirectDrawGammaControl_Release(p) (p)->lpVtbl->Release(p) |
||
2204 | #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->lpVtbl->GetGammaRamp(p, a, b) |
||
2205 | #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->lpVtbl->SetGammaRamp(p, a, b) |
||
2206 | #else |
||
2207 | #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) |
||
2208 | #define IDirectDrawGammaControl_AddRef(p) (p)->AddRef() |
||
2209 | #define IDirectDrawGammaControl_Release(p) (p)->Release() |
||
2210 | #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->GetGammaRamp(a, b) |
||
2211 | #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->SetGammaRamp(a, b) |
||
2212 | #endif |
||
2213 | |||
2214 | #endif |
||
2215 | |||
2216 | |||
2217 | |||
2218 | #endif |
||
2219 | |||
2220 | |||
2221 | /* |
||
2222 | * DDSURFACEDESC |
||
2223 | */ |
||
2224 | typedef struct _DDSURFACEDESC |
||
2225 | { |
||
2226 | DWORD dwSize; // size of the DDSURFACEDESC structure |
||
2227 | DWORD dwFlags; // determines what fields are valid |
||
2228 | DWORD dwHeight; // height of surface to be created |
||
2229 | DWORD dwWidth; // width of input surface |
||
2230 | union |
||
2231 | { |
||
2232 | LONG lPitch; // distance to start of next line (return value only) |
||
2233 | DWORD dwLinearSize; // Formless late-allocated optimized surface size |
||
2234 | } DUMMYUNIONNAMEN(1); |
||
2235 | DWORD dwBackBufferCount; // number of back buffers requested |
||
2236 | union |
||
2237 | { |
||
2238 | DWORD dwMipMapCount; // number of mip-map levels requested |
||
2239 | DWORD dwZBufferBitDepth; // depth of Z buffer requested |
||
2240 | DWORD dwRefreshRate; // refresh rate (used when display mode is described) |
||
2241 | } DUMMYUNIONNAMEN(2); |
||
2242 | DWORD dwAlphaBitDepth; // depth of alpha buffer requested |
||
2243 | DWORD dwReserved; // reserved |
||
2244 | LPVOID lpSurface; // pointer to the associated surface memory |
||
2245 | DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use |
||
2246 | DDCOLORKEY ddckCKDestBlt; // color key for destination blt use |
||
2247 | DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use |
||
2248 | DDCOLORKEY ddckCKSrcBlt; // color key for source blt use |
||
2249 | DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface |
||
2250 | DDSCAPS ddsCaps; // direct draw surface capabilities |
||
2251 | } DDSURFACEDESC; |
||
2252 | |||
2253 | /* |
||
2254 | * DDSURFACEDESC2 |
||
2255 | */ |
||
2256 | typedef struct _DDSURFACEDESC2 |
||
2257 | { |
||
2258 | DWORD dwSize; // size of the DDSURFACEDESC structure |
||
2259 | DWORD dwFlags; // determines what fields are valid |
||
2260 | DWORD dwHeight; // height of surface to be created |
||
2261 | DWORD dwWidth; // width of input surface |
||
2262 | union |
||
2263 | { |
||
2264 | LONG lPitch; // distance to start of next line (return value only) |
||
2265 | DWORD dwLinearSize; // Formless late-allocated optimized surface size |
||
2266 | } DUMMYUNIONNAMEN(1); |
||
2267 | union |
||
2268 | { |
||
2269 | DWORD dwBackBufferCount; // number of back buffers requested |
||
2270 | DWORD dwDepth; // the depth if this is a volume texture |
||
2271 | } DUMMYUNIONNAMEN(5); |
||
2272 | union |
||
2273 | { |
||
2274 | DWORD dwMipMapCount; // number of mip-map levels requestde |
||
2275 | // dwZBufferBitDepth removed, use ddpfPixelFormat one instead |
||
2276 | DWORD dwRefreshRate; // refresh rate (used when display mode is described) |
||
2277 | DWORD dwSrcVBHandle; // The source used in VB::Optimize |
||
2278 | } DUMMYUNIONNAMEN(2); |
||
2279 | DWORD dwAlphaBitDepth; // depth of alpha buffer requested |
||
2280 | DWORD dwReserved; // reserved |
||
2281 | LPVOID lpSurface; // pointer to the associated surface memory |
||
2282 | union |
||
2283 | { |
||
2284 | DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use |
||
2285 | DWORD dwEmptyFaceColor; // Physical color for empty cubemap faces |
||
2286 | } DUMMYUNIONNAMEN(3); |
||
2287 | DDCOLORKEY ddckCKDestBlt; // color key for destination blt use |
||
2288 | DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use |
||
2289 | DDCOLORKEY ddckCKSrcBlt; // color key for source blt use |
||
2290 | union |
||
2291 | { |
||
2292 | DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface |
||
2293 | DWORD dwFVF; // vertex format description of vertex buffers |
||
2294 | } DUMMYUNIONNAMEN(4); |
||
2295 | DDSCAPS2 ddsCaps; // direct draw surface capabilities |
||
2296 | DWORD dwTextureStage; // stage in multitexture cascade |
||
2297 | } DDSURFACEDESC2; |
||
2298 | |||
2299 | /* |
||
2300 | * ddsCaps field is valid. |
||
2301 | */ |
||
2302 | #define DDSD_CAPS 0x00000001l // default |
||
2303 | |||
2304 | /* |
||
2305 | * dwHeight field is valid. |
||
2306 | */ |
||
2307 | #define DDSD_HEIGHT 0x00000002l |
||
2308 | |||
2309 | /* |
||
2310 | * dwWidth field is valid. |
||
2311 | */ |
||
2312 | #define DDSD_WIDTH 0x00000004l |
||
2313 | |||
2314 | /* |
||
2315 | * lPitch is valid. |
||
2316 | */ |
||
2317 | #define DDSD_PITCH 0x00000008l |
||
2318 | |||
2319 | /* |
||
2320 | * dwBackBufferCount is valid. |
||
2321 | */ |
||
2322 | #define DDSD_BACKBUFFERCOUNT 0x00000020l |
||
2323 | |||
2324 | /* |
||
2325 | * dwZBufferBitDepth is valid. (shouldnt be used in DDSURFACEDESC2) |
||
2326 | */ |
||
2327 | #define DDSD_ZBUFFERBITDEPTH 0x00000040l |
||
2328 | |||
2329 | /* |
||
2330 | * dwAlphaBitDepth is valid. |
||
2331 | */ |
||
2332 | #define DDSD_ALPHABITDEPTH 0x00000080l |
||
2333 | |||
2334 | |||
2335 | /* |
||
2336 | * lpSurface is valid. |
||
2337 | */ |
||
2338 | #define DDSD_LPSURFACE 0x00000800l |
||
2339 | |||
2340 | /* |
||
2341 | * ddpfPixelFormat is valid. |
||
2342 | */ |
||
2343 | #define DDSD_PIXELFORMAT 0x00001000l |
||
2344 | |||
2345 | /* |
||
2346 | * ddckCKDestOverlay is valid. |
||
2347 | */ |
||
2348 | #define DDSD_CKDESTOVERLAY 0x00002000l |
||
2349 | |||
2350 | /* |
||
2351 | * ddckCKDestBlt is valid. |
||
2352 | */ |
||
2353 | #define DDSD_CKDESTBLT 0x00004000l |
||
2354 | |||
2355 | /* |
||
2356 | * ddckCKSrcOverlay is valid. |
||
2357 | */ |
||
2358 | #define DDSD_CKSRCOVERLAY 0x00008000l |
||
2359 | |||
2360 | /* |
||
2361 | * ddckCKSrcBlt is valid. |
||
2362 | */ |
||
2363 | #define DDSD_CKSRCBLT 0x00010000l |
||
2364 | |||
2365 | /* |
||
2366 | * dwMipMapCount is valid. |
||
2367 | */ |
||
2368 | #define DDSD_MIPMAPCOUNT 0x00020000l |
||
2369 | |||
2370 | /* |
||
2371 | * dwRefreshRate is valid |
||
2372 | */ |
||
2373 | #define DDSD_REFRESHRATE 0x00040000l |
||
2374 | |||
2375 | /* |
||
2376 | * dwLinearSize is valid |
||
2377 | */ |
||
2378 | #define DDSD_LINEARSIZE 0x00080000l |
||
2379 | |||
2380 | /* |
||
2381 | * dwTextureStage is valid |
||
2382 | */ |
||
2383 | #define DDSD_TEXTURESTAGE 0x00100000l |
||
2384 | /* |
||
2385 | * dwFVF is valid |
||
2386 | */ |
||
2387 | #define DDSD_FVF 0x00200000l |
||
2388 | /* |
||
2389 | * dwSrcVBHandle is valid |
||
2390 | */ |
||
2391 | #define DDSD_SRCVBHANDLE 0x00400000l |
||
2392 | |||
2393 | /* |
||
2394 | * dwDepth is valid |
||
2395 | */ |
||
2396 | #define DDSD_DEPTH 0x00800000l |
||
2397 | |||
2398 | /* |
||
2399 | * All input fields are valid. |
||
2400 | */ |
||
2401 | #define DDSD_ALL 0x00fff9eel |
||
2402 | |||
2403 | /* |
||
2404 | * DDOPTSURFACEDESC |
||
2405 | */ |
||
2406 | typedef struct _DDOPTSURFACEDESC |
||
2407 | { |
||
2408 | DWORD dwSize; // size of the DDOPTSURFACEDESC structure |
||
2409 | DWORD dwFlags; // determines what fields are valid |
||
2410 | DDSCAPS2 ddSCaps; // Common caps like: Memory type |
||
2411 | DDOSCAPS ddOSCaps; // Common caps like: Memory type |
||
2412 | GUID guid; // Compression technique GUID |
||
2413 | DWORD dwCompressionRatio; // Compression ratio |
||
2414 | } DDOPTSURFACEDESC; |
||
2415 | |||
2416 | /* |
||
2417 | * guid field is valid. |
||
2418 | */ |
||
2419 | #define DDOSD_GUID 0x00000001l |
||
2420 | |||
2421 | /* |
||
2422 | * dwCompressionRatio field is valid. |
||
2423 | */ |
||
2424 | #define DDOSD_COMPRESSION_RATIO 0x00000002l |
||
2425 | |||
2426 | /* |
||
2427 | * ddSCaps field is valid. |
||
2428 | */ |
||
2429 | #define DDOSD_SCAPS 0x00000004l |
||
2430 | |||
2431 | /* |
||
2432 | * ddOSCaps field is valid. |
||
2433 | */ |
||
2434 | #define DDOSD_OSCAPS 0x00000008l |
||
2435 | |||
2436 | /* |
||
2437 | * All input fields are valid. |
||
2438 | */ |
||
2439 | #define DDOSD_ALL 0x0000000fl |
||
2440 | |||
2441 | /* |
||
2442 | * The surface's optimized pixelformat is compressed |
||
2443 | */ |
||
2444 | #define DDOSDCAPS_OPTCOMPRESSED 0x00000001l |
||
2445 | |||
2446 | /* |
||
2447 | * The surface's optimized pixelformat is reordered |
||
2448 | */ |
||
2449 | #define DDOSDCAPS_OPTREORDERED 0x00000002l |
||
2450 | |||
2451 | /* |
||
2452 | * The opt surface is a monolithic mipmap |
||
2453 | */ |
||
2454 | #define DDOSDCAPS_MONOLITHICMIPMAP 0x00000004l |
||
2455 | |||
2456 | /* |
||
2457 | * The valid Surf caps: |
||
2458 | * #define DDSCAPS_SYSTEMMEMORY 0x00000800l |
||
2459 | * #define DDSCAPS_VIDEOMEMORY 0x00004000l |
||
2460 | * #define DDSCAPS_LOCALVIDMEM 0x10000000l |
||
2461 | * #define DDSCAPS_NONLOCALVIDMEM 0x20000000l |
||
2462 | */ |
||
2463 | #define DDOSDCAPS_VALIDSCAPS 0x30004800l |
||
2464 | |||
2465 | /* |
||
2466 | * The valid OptSurf caps |
||
2467 | */ |
||
2468 | #define DDOSDCAPS_VALIDOSCAPS 0x00000007l |
||
2469 | |||
2470 | |||
2471 | /* |
||
2472 | * DDCOLORCONTROL |
||
2473 | */ |
||
2474 | typedef struct _DDCOLORCONTROL |
||
2475 | { |
||
2476 | DWORD dwSize; |
||
2477 | DWORD dwFlags; |
||
2478 | LONG lBrightness; |
||
2479 | LONG lContrast; |
||
2480 | LONG lHue; |
||
2481 | LONG lSaturation; |
||
2482 | LONG lSharpness; |
||
2483 | LONG lGamma; |
||
2484 | LONG lColorEnable; |
||
2485 | DWORD dwReserved1; |
||
2486 | } DDCOLORCONTROL; |
||
2487 | |||
2488 | |||
2489 | /* |
||
2490 | * lBrightness field is valid. |
||
2491 | */ |
||
2492 | #define DDCOLOR_BRIGHTNESS 0x00000001l |
||
2493 | |||
2494 | /* |
||
2495 | * lContrast field is valid. |
||
2496 | */ |
||
2497 | #define DDCOLOR_CONTRAST 0x00000002l |
||
2498 | |||
2499 | /* |
||
2500 | * lHue field is valid. |
||
2501 | */ |
||
2502 | #define DDCOLOR_HUE 0x00000004l |
||
2503 | |||
2504 | /* |
||
2505 | * lSaturation field is valid. |
||
2506 | */ |
||
2507 | #define DDCOLOR_SATURATION 0x00000008l |
||
2508 | |||
2509 | /* |
||
2510 | * lSharpness field is valid. |
||
2511 | */ |
||
2512 | #define DDCOLOR_SHARPNESS 0x00000010l |
||
2513 | |||
2514 | /* |
||
2515 | * lGamma field is valid. |
||
2516 | */ |
||
2517 | #define DDCOLOR_GAMMA 0x00000020l |
||
2518 | |||
2519 | /* |
||
2520 | * lColorEnable field is valid. |
||
2521 | */ |
||
2522 | #define DDCOLOR_COLORENABLE 0x00000040l |
||
2523 | |||
2524 | |||
2525 | |||
2526 | /*============================================================================ |
||
2527 | * |
||
2528 | * Direct Draw Capability Flags |
||
2529 | * |
||
2530 | * These flags are used to describe the capabilities of a given Surface. |
||
2531 | * All flags are bit flags. |
||
2532 | * |
||
2533 | *==========================================================================*/ |
||
2534 | |||
2535 | /**************************************************************************** |
||
2536 | * |
||
2537 | * DIRECTDRAWSURFACE CAPABILITY FLAGS |
||
2538 | * |
||
2539 | ****************************************************************************/ |
||
2540 | |||
2541 | /* |
||
2542 | * This bit is reserved. It should not be specified. |
||
2543 | */ |
||
2544 | #define DDSCAPS_RESERVED1 0x00000001l |
||
2545 | |||
2546 | /* |
||
2547 | * Indicates that this surface contains alpha-only information. |
||
2548 | * (To determine if a surface is RGBA/YUVA, the pixel format must be |
||
2549 | * interrogated.) |
||
2550 | */ |
||
2551 | #define DDSCAPS_ALPHA 0x00000002l |
||
2552 | |||
2553 | /* |
||
2554 | * Indicates that this surface is a backbuffer. It is generally |
||
2555 | * set by CreateSurface when the DDSCAPS_FLIP capability bit is set. |
||
2556 | * It indicates that this surface is THE back buffer of a surface |
||
2557 | * flipping structure. DirectDraw supports N surfaces in a |
||
2558 | * surface flipping structure. Only the surface that immediately |
||
2559 | * precedeces the DDSCAPS_FRONTBUFFER has this capability bit set. |
||
2560 | * The other surfaces are identified as back buffers by the presence |
||
2561 | * of the DDSCAPS_FLIP capability, their attachment order, and the |
||
2562 | * absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER |
||
2563 | * capabilities. The bit is sent to CreateSurface when a standalone |
||
2564 | * back buffer is being created. This surface could be attached to |
||
2565 | * a front buffer and/or back buffers to form a flipping surface |
||
2566 | * structure after the CreateSurface call. See AddAttachments for |
||
2567 | * a detailed description of the behaviors in this case. |
||
2568 | */ |
||
2569 | #define DDSCAPS_BACKBUFFER 0x00000004l |
||
2570 | |||
2571 | /* |
||
2572 | * Indicates a complex surface structure is being described. A |
||
2573 | * complex surface structure results in the creation of more than |
||
2574 | * one surface. The additional surfaces are attached to the root |
||
2575 | * surface. The complex structure can only be destroyed by |
||
2576 | * destroying the root. |
||
2577 | */ |
||
2578 | #define DDSCAPS_COMPLEX 0x00000008l |
||
2579 | |||
2580 | /* |
||
2581 | * Indicates that this surface is a part of a surface flipping structure. |
||
2582 | * When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and |
||
2583 | * DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface |
||
2584 | * on the resulting creations. The dwBackBufferCount field in the |
||
2585 | * DDSURFACEDESC structure must be set to at least 1 in order for |
||
2586 | * the CreateSurface call to succeed. The DDSCAPS_COMPLEX capability |
||
2587 | * must always be set with creating multiple surfaces through CreateSurface. |
||
2588 | */ |
||
2589 | #define DDSCAPS_FLIP 0x00000010l |
||
2590 | |||
2591 | /* |
||
2592 | * Indicates that this surface is THE front buffer of a surface flipping |
||
2593 | * structure. It is generally set by CreateSurface when the DDSCAPS_FLIP |
||
2594 | * capability bit is set. |
||
2595 | * If this capability is sent to CreateSurface then a standalonw front buffer |
||
2596 | * is created. This surface will not have the DDSCAPS_FLIP capability. |
||
2597 | * It can be attached to other back buffers to form a flipping structure. |
||
2598 | * See AddAttachments for a detailed description of the behaviors in this |
||
2599 | * case. |
||
2600 | */ |
||
2601 | #define DDSCAPS_FRONTBUFFER 0x00000020l |
||
2602 | |||
2603 | /* |
||
2604 | * Indicates that this surface is any offscreen surface that is not an overlay, |
||
2605 | * texture, zbuffer, front buffer, back buffer, or alpha surface. It is used |
||
2606 | * to identify plain vanilla surfaces. |
||
2607 | */ |
||
2608 | #define DDSCAPS_OFFSCREENPLAIN 0x00000040l |
||
2609 | |||
2610 | /* |
||
2611 | * Indicates that this surface is an overlay. It may or may not be directly visible |
||
2612 | * depending on whether or not it is currently being overlayed onto the primary |
||
2613 | * surface. DDSCAPS_VISIBLE can be used to determine whether or not it is being |
||
2614 | * overlayed at the moment. |
||
2615 | */ |
||
2616 | #define DDSCAPS_OVERLAY 0x00000080l |
||
2617 | |||
2618 | /* |
||
2619 | * Indicates that unique DirectDrawPalette objects can be created and |
||
2620 | * attached to this surface. |
||
2621 | */ |
||
2622 | #define DDSCAPS_PALETTE 0x00000100l |
||
2623 | |||
2624 | /* |
||
2625 | * Indicates that this surface is the primary surface. The primary |
||
2626 | * surface represents what the user is seeing at the moment. |
||
2627 | */ |
||
2628 | #define DDSCAPS_PRIMARYSURFACE 0x00000200l |
||
2629 | |||
2630 | |||
2631 | /* |
||
2632 | * This flag used to be DDSCAPS_PRIMARYSURFACELEFT, which is now |
||
2633 | * obsolete. |
||
2634 | */ |
||
2635 | #define DDSCAPS_RESERVED3 0x00000400l |
||
2636 | #define DDSCAPS_PRIMARYSURFACELEFT 0x00000000l |
||
2637 | |||
2638 | /* |
||
2639 | * Indicates that this surface memory was allocated in system memory |
||
2640 | */ |
||
2641 | #define DDSCAPS_SYSTEMMEMORY 0x00000800l |
||
2642 | |||
2643 | /* |
||
2644 | * Indicates that this surface can be used as a 3D texture. It does not |
||
2645 | * indicate whether or not the surface is being used for that purpose. |
||
2646 | */ |
||
2647 | #define DDSCAPS_TEXTURE 0x00001000l |
||
2648 | |||
2649 | /* |
||
2650 | * Indicates that a surface may be a destination for 3D rendering. This |
||
2651 | * bit must be set in order to query for a Direct3D Device Interface |
||
2652 | * from this surface. |
||
2653 | */ |
||
2654 | #define DDSCAPS_3DDEVICE 0x00002000l |
||
2655 | |||
2656 | /* |
||
2657 | * Indicates that this surface exists in video memory. |
||
2658 | */ |
||
2659 | #define DDSCAPS_VIDEOMEMORY 0x00004000l |
||
2660 | |||
2661 | /* |
||
2662 | * Indicates that changes made to this surface are immediately visible. |
||
2663 | * It is always set for the primary surface and is set for overlays while |
||
2664 | * they are being overlayed and texture maps while they are being textured. |
||
2665 | */ |
||
2666 | #define DDSCAPS_VISIBLE 0x00008000l |
||
2667 | |||
2668 | /* |
||
2669 | * Indicates that only writes are permitted to the surface. Read accesses |
||
2670 | * from the surface may or may not generate a protection fault, but the |
||
2671 | * results of a read from this surface will not be meaningful. READ ONLY. |
||
2672 | */ |
||
2673 | #define DDSCAPS_WRITEONLY 0x00010000l |
||
2674 | |||
2675 | /* |
||
2676 | * Indicates that this surface is a z buffer. A z buffer does not contain |
||
2677 | * displayable information. Instead it contains bit depth information that is |
||
2678 | * used to determine which pixels are visible and which are obscured. |
||
2679 | */ |
||
2680 | #define DDSCAPS_ZBUFFER 0x00020000l |
||
2681 | |||
2682 | /* |
||
2683 | * Indicates surface will have a DC associated long term |
||
2684 | */ |
||
2685 | #define DDSCAPS_OWNDC 0x00040000l |
||
2686 | |||
2687 | /* |
||
2688 | * Indicates surface should be able to receive live video |
||
2689 | */ |
||
2690 | #define DDSCAPS_LIVEVIDEO 0x00080000l |
||
2691 | |||
2692 | /* |
||
2693 | * Indicates surface should be able to have a stream decompressed |
||
2694 | * to it by the hardware. |
||
2695 | */ |
||
2696 | #define DDSCAPS_HWCODEC 0x00100000l |
||
2697 | |||
2698 | /* |
||
2699 | * Surface is a ModeX surface. |
||
2700 | * |
||
2701 | */ |
||
2702 | #define DDSCAPS_MODEX 0x00200000l |
||
2703 | |||
2704 | /* |
||
2705 | * Indicates surface is one level of a mip-map. This surface will |
||
2706 | * be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map. |
||
2707 | * This can be done explicitly, by creating a number of surfaces and |
||
2708 | * attaching them with AddAttachedSurface or by implicitly by CreateSurface. |
||
2709 | * If this bit is set then DDSCAPS_TEXTURE must also be set. |
||
2710 | */ |
||
2711 | #define DDSCAPS_MIPMAP 0x00400000l |
||
2712 | |||
2713 | /* |
||
2714 | * This bit is reserved. It should not be specified. |
||
2715 | */ |
||
2716 | #define DDSCAPS_RESERVED2 0x00800000l |
||
2717 | |||
2718 | |||
2719 | /* |
||
2720 | * Indicates that memory for the surface is not allocated until the surface |
||
2721 | * is loaded (via the Direct3D texture Load() function). |
||
2722 | */ |
||
2723 | #define DDSCAPS_ALLOCONLOAD 0x04000000l |
||
2724 | |||
2725 | /* |
||
2726 | * Indicates that the surface will recieve data from a video port. |
||
2727 | */ |
||
2728 | #define DDSCAPS_VIDEOPORT 0x08000000l |
||
2729 | |||
2730 | /* |
||
2731 | * Indicates that a video memory surface is resident in true, local video |
||
2732 | * memory rather than non-local video memory. If this flag is specified then |
||
2733 | * so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with |
||
2734 | * DDSCAPS_NONLOCALVIDMEM. |
||
2735 | */ |
||
2736 | #define DDSCAPS_LOCALVIDMEM 0x10000000l |
||
2737 | |||
2738 | /* |
||
2739 | * Indicates that a video memory surface is resident in non-local video |
||
2740 | * memory rather than true, local video memory. If this flag is specified |
||
2741 | * then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with |
||
2742 | * DDSCAPS_LOCALVIDMEM. |
||
2743 | */ |
||
2744 | #define DDSCAPS_NONLOCALVIDMEM 0x20000000l |
||
2745 | |||
2746 | /* |
||
2747 | * Indicates that this surface is a standard VGA mode surface, and not a |
||
2748 | * ModeX surface. (This flag will never be set in combination with the |
||
2749 | * DDSCAPS_MODEX flag). |
||
2750 | */ |
||
2751 | #define DDSCAPS_STANDARDVGAMODE 0x40000000l |
||
2752 | |||
2753 | /* |
||
2754 | * Indicates that this surface will be an optimized surface. This flag is |
||
2755 | * currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface |
||
2756 | * will be created without any underlying video memory until loaded. |
||
2757 | */ |
||
2758 | #define DDSCAPS_OPTIMIZED 0x80000000l |
||
2759 | |||
2760 | |||
2761 | |||
2762 | /* |
||
2763 | * This bit is reserved |
||
2764 | */ |
||
2765 | #define DDSCAPS2_RESERVED4 0x00000002L |
||
2766 | #define DDSCAPS2_HARDWAREDEINTERLACE 0x00000000L |
||
2767 | |||
2768 | /* |
||
2769 | * Indicates to the driver that this surface will be locked very frequently |
||
2770 | * (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap |
||
2771 | * set must also have DDSCAPS_TEXTURE. This cap cannot be used with |
||
2772 | * DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE. |
||
2773 | */ |
||
2774 | #define DDSCAPS2_HINTDYNAMIC 0x00000004L |
||
2775 | |||
2776 | /* |
||
2777 | * Indicates to the driver that this surface can be re-ordered/retiled on |
||
2778 | * load. This operation will not change the size of the texture. It is |
||
2779 | * relatively fast and symmetrical, since the application may lock these |
||
2780 | * bits (although it will take a performance hit when doing so). Surfaces |
||
2781 | * with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be |
||
2782 | * used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE. |
||
2783 | */ |
||
2784 | #define DDSCAPS2_HINTSTATIC 0x00000008L |
||
2785 | |||
2786 | /* |
||
2787 | * Indicates that the client would like this texture surface to be managed by the |
||
2788 | * DirectDraw/Direct3D runtime. Surfaces with this cap set must also have |
||
2789 | * DDSCAPS_TEXTURE set. |
||
2790 | */ |
||
2791 | #define DDSCAPS2_TEXTUREMANAGE 0x00000010L |
||
2792 | |||
2793 | /* |
||
2794 | * These bits are reserved for internal use */ |
||
2795 | #define DDSCAPS2_RESERVED1 0x00000020L |
||
2796 | #define DDSCAPS2_RESERVED2 0x00000040L |
||
2797 | |||
2798 | /* |
||
2799 | * Indicates to the driver that this surface will never be locked again. |
||
2800 | * The driver is free to optimize this surface via retiling and actual compression. |
||
2801 | * All calls to Lock() or Blts from this surface will fail. Surfaces with this |
||
2802 | * cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with |
||
2803 | * DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC. |
||
2804 | */ |
||
2805 | #define DDSCAPS2_OPAQUE 0x00000080L |
||
2806 | |||
2807 | /* |
||
2808 | * Applications should set this bit at CreateSurface time to indicate that they |
||
2809 | * intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set. |
||
2810 | */ |
||
2811 | #define DDSCAPS2_HINTANTIALIASING 0x00000100L |
||
2812 | |||
2813 | |||
2814 | /* |
||
2815 | * This flag is used at CreateSurface time to indicate that this set of |
||
2816 | * surfaces is a cubic environment map |
||
2817 | */ |
||
2818 | #define DDSCAPS2_CUBEMAP 0x00000200L |
||
2819 | |||
2820 | /* |
||
2821 | * These flags preform two functions: |
||
2822 | * - At CreateSurface time, they define which of the six cube faces are |
||
2823 | * required by the application. |
||
2824 | * - After creation, each face in the cubemap will have exactly one of these |
||
2825 | * bits set. |
||
2826 | */ |
||
2827 | #define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400L |
||
2828 | #define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800L |
||
2829 | #define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000L |
||
2830 | #define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000L |
||
2831 | #define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000L |
||
2832 | #define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000L |
||
2833 | |||
2834 | /* |
||
2835 | * This macro may be used to specify all faces of a cube map at CreateSurface time |
||
2836 | */ |
||
2837 | #define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\ |
||
2838 | DDSCAPS2_CUBEMAP_NEGATIVEX |\ |
||
2839 | DDSCAPS2_CUBEMAP_POSITIVEY |\ |
||
2840 | DDSCAPS2_CUBEMAP_NEGATIVEY |\ |
||
2841 | DDSCAPS2_CUBEMAP_POSITIVEZ |\ |
||
2842 | DDSCAPS2_CUBEMAP_NEGATIVEZ ) |
||
2843 | |||
2844 | |||
2845 | /* |
||
2846 | * This flag is an additional flag which is present on mipmap sublevels from DX7 onwards |
||
2847 | * It enables easier use of GetAttachedSurface rather than EnumAttachedSurfaces for surface |
||
2848 | * constructs such as Cube Maps, wherein there are more than one mipmap surface attached |
||
2849 | * to the root surface. |
||
2850 | * This caps bit is ignored by CreateSurface |
||
2851 | */ |
||
2852 | #define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000L |
||
2853 | |||
2854 | /* This flag indicates that the texture should be managed by D3D only */ |
||
2855 | #define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000L |
||
2856 | |||
2857 | /* This flag indicates that the managed surface can be safely lost */ |
||
2858 | #define DDSCAPS2_DONOTPERSIST 0x00040000L |
||
2859 | |||
2860 | /* indicates that this surface is part of a stereo flipping chain */ |
||
2861 | #define DDSCAPS2_STEREOSURFACELEFT 0x00080000L |
||
2862 | |||
2863 | |||
2864 | /* |
||
2865 | * Indicates that the surface is a volume. |
||
2866 | * Can be combined with DDSCAPS_MIPMAP to indicate a multi-level volume |
||
2867 | */ |
||
2868 | #define DDSCAPS2_VOLUME 0x00200000L |
||
2869 | |||
2870 | /* |
||
2871 | * Indicates that the surface may be locked multiple times by the application. |
||
2872 | * This cap cannot be used with DDSCAPS2_OPAQUE. |
||
2873 | */ |
||
2874 | #define DDSCAPS2_NOTUSERLOCKABLE 0x00400000L |
||
2875 | |||
2876 | /* |
||
2877 | * Indicates that the vertex buffer data can be used to render points and |
||
2878 | * point sprites. |
||
2879 | */ |
||
2880 | #define DDSCAPS2_POINTS 0x00800000L |
||
2881 | |||
2882 | /* |
||
2883 | * Indicates that the vertex buffer data can be used to render rt pactches. |
||
2884 | */ |
||
2885 | #define DDSCAPS2_RTPATCHES 0x01000000L |
||
2886 | |||
2887 | /* |
||
2888 | * Indicates that the vertex buffer data can be used to render n patches. |
||
2889 | */ |
||
2890 | #define DDSCAPS2_NPATCHES 0x02000000L |
||
2891 | |||
2892 | /* |
||
2893 | * This bit is reserved for internal use |
||
2894 | */ |
||
2895 | #define DDSCAPS2_RESERVED3 0x04000000L |
||
2896 | |||
2897 | |||
2898 | /* |
||
2899 | * Indicates that the contents of the backbuffer do not have to be preserved |
||
2900 | * the contents of the backbuffer after they are presented. |
||
2901 | */ |
||
2902 | #define DDSCAPS2_DISCARDBACKBUFFER 0x10000000L |
||
2903 | |||
2904 | /* |
||
2905 | * Indicates that all surfaces in this creation chain should be given an alpha channel. |
||
2906 | * This flag will be set on primary surface chains that may have no explicit pixel format |
||
2907 | * (and thus take on the format of the current display mode). |
||
2908 | * The driver should infer that all these surfaces have a format having an alpha channel. |
||
2909 | * (e.g. assume D3DFMT_A8R8G8B8 if the display mode is x888.) |
||
2910 | */ |
||
2911 | #define DDSCAPS2_ENABLEALPHACHANNEL 0x20000000L |
||
2912 | |||
2913 | /* |
||
2914 | * Indicates that all surfaces in this creation chain is extended primary surface format. |
||
2915 | * This flag will be set on extended primary surface chains that always have explicit pixel |
||
2916 | * format and the pixel format is typically GDI (Graphics Device Interface) couldn't handle, |
||
2917 | * thus only used with fullscreen application. (e.g. D3DFMT_A2R10G10B10 format) |
||
2918 | */ |
||
2919 | #define DDSCAPS2_EXTENDEDFORMATPRIMARY 0x40000000L |
||
2920 | |||
2921 | /* |
||
2922 | * Indicates that all surfaces in this creation chain is additional primary surface. |
||
2923 | * This flag will be set on primary surface chains which must present on the adapter |
||
2924 | * id provided on dwCaps4. Typically this will be used to create secondary primary surface |
||
2925 | * on DualView display adapter. |
||
2926 | */ |
||
2927 | #define DDSCAPS2_ADDITIONALPRIMARY 0x80000000L |
||
2928 | |||
2929 | /* |
||
2930 | * This is a mask that indicates the set of bits that may be set |
||
2931 | * at createsurface time to indicate number of samples per pixel |
||
2932 | * when multisampling |
||
2933 | */ |
||
2934 | #define DDSCAPS3_MULTISAMPLE_MASK 0x0000001FL |
||
2935 | |||
2936 | /* |
||
2937 | * This is a mask that indicates the set of bits that may be set |
||
2938 | * at createsurface time to indicate the quality level of rendering |
||
2939 | * for the current number of samples per pixel |
||
2940 | */ |
||
2941 | #define DDSCAPS3_MULTISAMPLE_QUALITY_MASK 0x000000E0L |
||
2942 | #define DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT 5 |
||
2943 | |||
2944 | /* |
||
2945 | * This bit is reserved for internal use |
||
2946 | */ |
||
2947 | #define DDSCAPS3_RESERVED1 0x00000100L |
||
2948 | |||
2949 | /* |
||
2950 | * This bit is reserved for internal use |
||
2951 | */ |
||
2952 | #define DDSCAPS3_RESERVED2 0x00000200L |
||
2953 | |||
2954 | /* |
||
2955 | * This indicates whether this surface has light-weight miplevels |
||
2956 | */ |
||
2957 | #define DDSCAPS3_LIGHTWEIGHTMIPMAP 0x00000400L |
||
2958 | |||
2959 | /* |
||
2960 | * This indicates that the mipsublevels for this surface are auto-generated |
||
2961 | */ |
||
2962 | #define DDSCAPS3_AUTOGENMIPMAP 0x00000800L |
||
2963 | |||
2964 | /* |
||
2965 | * This indicates that the mipsublevels for this surface are auto-generated |
||
2966 | */ |
||
2967 | #define DDSCAPS3_DMAP 0x00001000L |
||
2968 | |||
2969 | /* D3D9Ex only -- */ |
||
2970 | #if !defined(D3D_DISABLE_9EX) |
||
2971 | |||
2972 | /* |
||
2973 | * This indicates that this surface is to be shared by processes |
||
2974 | */ |
||
2975 | #define DDSCAPS3_CREATESHAREDRESOURCE 0x00002000L |
||
2976 | |||
2977 | /* |
||
2978 | * This indicates that this surface need to be initialized before being |
||
2979 | * shared, this bit implies that this surface is read only after initialization |
||
2980 | * absence of this bit implies that this surface allows both read and write |
||
2981 | */ |
||
2982 | #define DDSCAPS3_READONLYRESOURCE 0x00004000L |
||
2983 | |||
2984 | /* |
||
2985 | * This indicates that this surface is to share an existing video memory with |
||
2986 | * another surface created with DDSCAPS3_CREATESHAREDRESOURCE, This bit is never |
||
2987 | * used with DDSCAPS3_CREATESHAREDRESOURCE |
||
2988 | */ |
||
2989 | #define DDSCAPS3_OPENSHAREDRESOURCE 0x00008000L |
||
2990 | |||
2991 | #endif // !D3D_DISABLE_9EX |
||
2992 | /* -- D3D9Ex only */ |
||
2993 | |||
2994 | |||
2995 | /**************************************************************************** |
||
2996 | * |
||
2997 | * DIRECTDRAW DRIVER CAPABILITY FLAGS |
||
2998 | * |
||
2999 | ****************************************************************************/ |
||
3000 | |||
3001 | /* |
||
3002 | * Display hardware has 3D acceleration. |
||
3003 | */ |
||
3004 | #define DDCAPS_3D 0x00000001l |
||
3005 | |||
3006 | /* |
||
3007 | * Indicates that DirectDraw will support only dest rectangles that are aligned |
||
3008 | * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively. |
||
3009 | * READ ONLY. |
||
3010 | */ |
||
3011 | #define DDCAPS_ALIGNBOUNDARYDEST 0x00000002l |
||
3012 | |||
3013 | /* |
||
3014 | * Indicates that DirectDraw will support only source rectangles whose sizes in |
||
3015 | * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively. READ ONLY. |
||
3016 | */ |
||
3017 | #define DDCAPS_ALIGNSIZEDEST 0x00000004l |
||
3018 | /* |
||
3019 | * Indicates that DirectDraw will support only source rectangles that are aligned |
||
3020 | * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively. |
||
3021 | * READ ONLY. |
||
3022 | */ |
||
3023 | #define DDCAPS_ALIGNBOUNDARYSRC 0x00000008l |
||
3024 | |||
3025 | /* |
||
3026 | * Indicates that DirectDraw will support only source rectangles whose sizes in |
||
3027 | * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively. READ ONLY. |
||
3028 | */ |
||
3029 | #define DDCAPS_ALIGNSIZESRC 0x00000010l |
||
3030 | |||
3031 | /* |
||
3032 | * Indicates that DirectDraw will create video memory surfaces that have a stride |
||
3033 | * alignment equal to DIRECTDRAWCAPS.dwAlignStride. READ ONLY. |
||
3034 | */ |
||
3035 | #define DDCAPS_ALIGNSTRIDE 0x00000020l |
||
3036 | |||
3037 | /* |
||
3038 | * Display hardware is capable of blt operations. |
||
3039 | */ |
||
3040 | #define DDCAPS_BLT 0x00000040l |
||
3041 | |||
3042 | /* |
||
3043 | * Display hardware is capable of asynchronous blt operations. |
||
3044 | */ |
||
3045 | #define DDCAPS_BLTQUEUE 0x00000080l |
||
3046 | |||
3047 | /* |
||
3048 | * Display hardware is capable of color space conversions during the blt operation. |
||
3049 | */ |
||
3050 | #define DDCAPS_BLTFOURCC 0x00000100l |
||
3051 | |||
3052 | /* |
||
3053 | * Display hardware is capable of stretching during blt operations. |
||
3054 | */ |
||
3055 | #define DDCAPS_BLTSTRETCH 0x00000200l |
||
3056 | |||
3057 | /* |
||
3058 | * Display hardware is shared with GDI. |
||
3059 | */ |
||
3060 | #define DDCAPS_GDI 0x00000400l |
||
3061 | |||
3062 | /* |
||
3063 | * Display hardware can overlay. |
||
3064 | */ |
||
3065 | #define DDCAPS_OVERLAY 0x00000800l |
||
3066 | |||
3067 | /* |
||
3068 | * Set if display hardware supports overlays but can not clip them. |
||
3069 | */ |
||
3070 | #define DDCAPS_OVERLAYCANTCLIP 0x00001000l |
||
3071 | |||
3072 | /* |
||
3073 | * Indicates that overlay hardware is capable of color space conversions during |
||
3074 | * the overlay operation. |
||
3075 | */ |
||
3076 | #define DDCAPS_OVERLAYFOURCC 0x00002000l |
||
3077 | |||
3078 | /* |
||
3079 | * Indicates that stretching can be done by the overlay hardware. |
||
3080 | */ |
||
3081 | #define DDCAPS_OVERLAYSTRETCH 0x00004000l |
||
3082 | |||
3083 | /* |
||
3084 | * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces |
||
3085 | * other than the primary surface. |
||
3086 | */ |
||
3087 | #define DDCAPS_PALETTE 0x00008000l |
||
3088 | |||
3089 | /* |
||
3090 | * Indicates that palette changes can be syncd with the veritcal refresh. |
||
3091 | */ |
||
3092 | #define DDCAPS_PALETTEVSYNC 0x00010000l |
||
3093 | |||
3094 | /* |
||
3095 | * Display hardware can return the current scan line. |
||
3096 | */ |
||
3097 | #define DDCAPS_READSCANLINE 0x00020000l |
||
3098 | |||
3099 | |||
3100 | /* |
||
3101 | * This flag used to bo DDCAPS_STEREOVIEW, which is now obsolete |
||
3102 | */ |
||
3103 | #define DDCAPS_RESERVED1 0x00040000l |
||
3104 | |||
3105 | /* |
||
3106 | * Display hardware is capable of generating a vertical blank interrupt. |
||
3107 | */ |
||
3108 | #define DDCAPS_VBI 0x00080000l |
||
3109 | |||
3110 | /* |
||
3111 | * Supports the use of z buffers with blt operations. |
||
3112 | */ |
||
3113 | #define DDCAPS_ZBLTS 0x00100000l |
||
3114 | |||
3115 | /* |
||
3116 | * Supports Z Ordering of overlays. |
||
3117 | */ |
||
3118 | #define DDCAPS_ZOVERLAYS 0x00200000l |
||
3119 | |||
3120 | /* |
||
3121 | * Supports color key |
||
3122 | */ |
||
3123 | #define DDCAPS_COLORKEY 0x00400000l |
||
3124 | |||
3125 | /* |
||
3126 | * Supports alpha surfaces |
||
3127 | */ |
||
3128 | #define DDCAPS_ALPHA 0x00800000l |
||
3129 | |||
3130 | /* |
||
3131 | * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set) |
||
3132 | */ |
||
3133 | #define DDCAPS_COLORKEYHWASSIST 0x01000000l |
||
3134 | |||
3135 | /* |
||
3136 | * no hardware support at all |
||
3137 | */ |
||
3138 | #define DDCAPS_NOHARDWARE 0x02000000l |
||
3139 | |||
3140 | /* |
||
3141 | * Display hardware is capable of color fill with bltter |
||
3142 | */ |
||
3143 | #define DDCAPS_BLTCOLORFILL 0x04000000l |
||
3144 | |||
3145 | /* |
||
3146 | * Display hardware is bank switched, and potentially very slow at |
||
3147 | * random access to VRAM. |
||
3148 | */ |
||
3149 | #define DDCAPS_BANKSWITCHED 0x08000000l |
||
3150 | |||
3151 | /* |
||
3152 | * Display hardware is capable of depth filling Z-buffers with bltter |
||
3153 | */ |
||
3154 | #define DDCAPS_BLTDEPTHFILL 0x10000000l |
||
3155 | |||
3156 | /* |
||
3157 | * Display hardware is capable of clipping while bltting. |
||
3158 | */ |
||
3159 | #define DDCAPS_CANCLIP 0x20000000l |
||
3160 | |||
3161 | /* |
||
3162 | * Display hardware is capable of clipping while stretch bltting. |
||
3163 | */ |
||
3164 | #define DDCAPS_CANCLIPSTRETCHED 0x40000000l |
||
3165 | |||
3166 | /* |
||
3167 | * Display hardware is capable of bltting to or from system memory |
||
3168 | */ |
||
3169 | #define DDCAPS_CANBLTSYSMEM 0x80000000l |
||
3170 | |||
3171 | |||
3172 | /**************************************************************************** |
||
3173 | * |
||
3174 | * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2) |
||
3175 | * |
||
3176 | ****************************************************************************/ |
||
3177 | |||
3178 | /* |
||
3179 | * Display hardware is certified |
||
3180 | */ |
||
3181 | #define DDCAPS2_CERTIFIED 0x00000001l |
||
3182 | |||
3183 | /* |
||
3184 | * Driver cannot interleave 2D operations (lock and blt) to surfaces with |
||
3185 | * Direct3D rendering operations between calls to BeginScene() and EndScene() |
||
3186 | */ |
||
3187 | #define DDCAPS2_NO2DDURING3DSCENE 0x00000002l |
||
3188 | |||
3189 | /* |
||
3190 | * Display hardware contains a video port |
||
3191 | */ |
||
3192 | #define DDCAPS2_VIDEOPORT 0x00000004l |
||
3193 | |||
3194 | /* |
||
3195 | * The overlay can be automatically flipped according to the video port |
||
3196 | * VSYNCs, providing automatic doubled buffered display of video port |
||
3197 | * data using an overlay |
||
3198 | */ |
||
3199 | #define DDCAPS2_AUTOFLIPOVERLAY 0x00000008l |
||
3200 | |||
3201 | /* |
||
3202 | * Overlay can display each field of interlaced data individually while |
||
3203 | * it is interleaved in memory without causing jittery artifacts. |
||
3204 | */ |
||
3205 | #define DDCAPS2_CANBOBINTERLEAVED 0x00000010l |
||
3206 | |||
3207 | /* |
||
3208 | * Overlay can display each field of interlaced data individually while |
||
3209 | * it is not interleaved in memory without causing jittery artifacts. |
||
3210 | */ |
||
3211 | #define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020l |
||
3212 | |||
3213 | /* |
||
3214 | * The overlay surface contains color controls (brightness, sharpness, etc.) |
||
3215 | */ |
||
3216 | #define DDCAPS2_COLORCONTROLOVERLAY 0x00000040l |
||
3217 | |||
3218 | /* |
||
3219 | * The primary surface contains color controls (gamma, etc.) |
||
3220 | */ |
||
3221 | #define DDCAPS2_COLORCONTROLPRIMARY 0x00000080l |
||
3222 | |||
3223 | /* |
||
3224 | * RGBZ -> RGB supported for 16:16 RGB:Z |
||
3225 | */ |
||
3226 | #define DDCAPS2_CANDROPZ16BIT 0x00000100l |
||
3227 | |||
3228 | /* |
||
3229 | * Driver supports non-local video memory. |
||
3230 | */ |
||
3231 | #define DDCAPS2_NONLOCALVIDMEM 0x00000200l |
||
3232 | |||
3233 | /* |
||
3234 | * Dirver supports non-local video memory but has different capabilities for |
||
3235 | * non-local video memory surfaces. If this bit is set then so must |
||
3236 | * DDCAPS2_NONLOCALVIDMEM. |
||
3237 | */ |
||
3238 | #define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400l |
||
3239 | |||
3240 | /* |
||
3241 | * Driver neither requires nor prefers surfaces to be pagelocked when performing |
||
3242 | * blts involving system memory surfaces |
||
3243 | */ |
||
3244 | #define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800l |
||
3245 | |||
3246 | /* |
||
3247 | * Driver can create surfaces which are wider than the primary surface |
||
3248 | */ |
||
3249 | #define DDCAPS2_WIDESURFACES 0x00001000l |
||
3250 | |||
3251 | /* |
||
3252 | * Driver supports bob without using a video port by handling the |
||
3253 | * DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip. |
||
3254 | */ |
||
3255 | #define DDCAPS2_CANFLIPODDEVEN 0x00002000l |
||
3256 | |||
3257 | /* |
||
3258 | * Driver supports bob using hardware |
||
3259 | */ |
||
3260 | #define DDCAPS2_CANBOBHARDWARE 0x00004000l |
||
3261 | |||
3262 | /* |
||
3263 | * Driver supports bltting any FOURCC surface to another surface of the same FOURCC |
||
3264 | */ |
||
3265 | #define DDCAPS2_COPYFOURCC 0x00008000l |
||
3266 | |||
3267 | |||
3268 | /* |
||
3269 | * Driver supports loadable gamma ramps for the primary surface |
||
3270 | */ |
||
3271 | #define DDCAPS2_PRIMARYGAMMA 0x00020000l |
||
3272 | |||
3273 | /* |
||
3274 | * Driver can render in windowed mode. |
||
3275 | */ |
||
3276 | #define DDCAPS2_CANRENDERWINDOWED 0x00080000l |
||
3277 | |||
3278 | /* |
||
3279 | * A calibrator is available to adjust the gamma ramp according to the |
||
3280 | * physical display properties so that the result will be identical on |
||
3281 | * all calibrated systems. |
||
3282 | */ |
||
3283 | #define DDCAPS2_CANCALIBRATEGAMMA 0x00100000l |
||
3284 | |||
3285 | /* |
||
3286 | * Indicates that the driver will respond to DDFLIP_INTERVALn flags |
||
3287 | */ |
||
3288 | #define DDCAPS2_FLIPINTERVAL 0x00200000l |
||
3289 | |||
3290 | /* |
||
3291 | * Indicates that the driver will respond to DDFLIP_NOVSYNC |
||
3292 | */ |
||
3293 | #define DDCAPS2_FLIPNOVSYNC 0x00400000l |
||
3294 | |||
3295 | /* |
||
3296 | * Driver supports management of video memory, if this flag is ON, |
||
3297 | * driver manages the texture if requested with DDSCAPS2_TEXTUREMANAGE on |
||
3298 | * DirectX manages the texture if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on |
||
3299 | */ |
||
3300 | #define DDCAPS2_CANMANAGETEXTURE 0x00800000l |
||
3301 | |||
3302 | /* |
||
3303 | * The Direct3D texture manager uses this cap to decide whether to put managed |
||
3304 | * surfaces in non-local video memory. If the cap is set, the texture manager will |
||
3305 | * put managed surfaces in non-local vidmem. Drivers that cannot texture from |
||
3306 | * local vidmem SHOULD NOT set this cap. |
||
3307 | */ |
||
3308 | #define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000l |
||
3309 | |||
3310 | /* |
||
3311 | * Indicates that the driver supports DX7 type of stereo in at least one mode (which may |
||
3312 | * not necessarily be the current mode). Applications should use IDirectDraw7 (or higher) |
||
3313 | * ::EnumDisplayModes and check the DDSURFACEDESC.ddsCaps.dwCaps2 field for the presence of |
||
3314 | * DDSCAPS2_STEREOSURFACELEFT to check if a particular mode supports stereo. The application |
||
3315 | * can also use IDirectDraw7(or higher)::GetDisplayMode to check the current mode. |
||
3316 | */ |
||
3317 | #define DDCAPS2_STEREO 0x02000000L |
||
3318 | |||
3319 | /* |
||
3320 | * This caps bit is intended for internal DirectDraw use. |
||
3321 | * -It is only valid if DDCAPS2_NONLOCALVIDMEMCAPS is set. |
||
3322 | * -If this bit is set, then DDCAPS_CANBLTSYSMEM MUST be set by the driver (and |
||
3323 | * all the assoicated system memory blt caps must be correct). |
||
3324 | * -It implies that the system->video blt caps in DDCAPS also apply to system to |
||
3325 | * nonlocal blts. I.e. the dwSVBCaps, dwSVBCKeyCaps, dwSVBFXCaps and dwSVBRops |
||
3326 | * members of DDCAPS (DDCORECAPS) are filled in correctly. |
||
3327 | * -Any blt from system to nonlocal memory that matches these caps bits will |
||
3328 | * be passed to the driver. |
||
3329 | * |
||
3330 | * NOTE: This is intended to enable the driver itself to do efficient reordering |
||
3331 | * of textures. This is NOT meant to imply that hardware can write into AGP memory. |
||
3332 | * This operation is not currently supported. |
||
3333 | */ |
||
3334 | #define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000L |
||
3335 | |||
3336 | /* |
||
3337 | * was DDCAPS2_PUREHAL |
||
3338 | */ |
||
3339 | #define DDCAPS2_RESERVED1 0x08000000L |
||
3340 | |||
3341 | /* |
||
3342 | * Driver supports management of video memory, if this flag is ON, |
||
3343 | * driver manages the resource if requested with DDSCAPS2_TEXTUREMANAGE on |
||
3344 | * DirectX manages the resource if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on |
||
3345 | */ |
||
3346 | #define DDCAPS2_CANMANAGERESOURCE 0x10000000L |
||
3347 | |||
3348 | /* |
||
3349 | * Driver supports dynamic textures. This will allow the application to set |
||
3350 | * D3DUSAGE_DYNAMIC (DDSCAPS2_HINTDYNAMIC for drivers) at texture create time. |
||
3351 | * Video memory dynamic textures WILL be lockable by applications. It is |
||
3352 | * expected that these locks will be very efficient (which implies that the |
||
3353 | * driver should always maintain a linear copy, a pointer to which can be |
||
3354 | * quickly handed out to the application). |
||
3355 | */ |
||
3356 | #define DDCAPS2_DYNAMICTEXTURES 0x20000000L |
||
3357 | |||
3358 | /* |
||
3359 | * Driver supports auto-generation of mipmaps. |
||
3360 | */ |
||
3361 | #define DDCAPS2_CANAUTOGENMIPMAP 0x40000000L |
||
3362 | |||
3363 | /* D3D9Ex only -- */ |
||
3364 | #if !defined(D3D_DISABLE_9EX) |
||
3365 | |||
3366 | /* |
||
3367 | * Driver supports sharing of cross process resouces |
||
3368 | */ |
||
3369 | #define DDCAPS2_CANSHARERESOURCE 0x80000000L |
||
3370 | |||
3371 | #endif // !D3D_DISABLE_9EX |
||
3372 | /* -- D3D9Ex only */ |
||
3373 | |||
3374 | |||
3375 | /**************************************************************************** |
||
3376 | * |
||
3377 | * DIRECTDRAW FX ALPHA CAPABILITY FLAGS |
||
3378 | * |
||
3379 | ****************************************************************************/ |
||
3380 | |||
3381 | /* |
||
3382 | * Supports alpha blending around the edge of a source color keyed surface. |
||
3383 | * For Blt. |
||
3384 | */ |
||
3385 | #define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001l |
||
3386 | |||
3387 | /* |
||
3388 | * Supports alpha information in the pixel format. The bit depth of alpha |
||
3389 | * information in the pixel format can be 1,2,4, or 8. The alpha value becomes |
||
3390 | * more opaque as the alpha value increases. (0 is transparent.) |
||
3391 | * For Blt. |
||
3392 | */ |
||
3393 | #define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002l |
||
3394 | |||
3395 | /* |
||
3396 | * Supports alpha information in the pixel format. The bit depth of alpha |
||
3397 | * information in the pixel format can be 1,2,4, or 8. The alpha value |
||
3398 | * becomes more transparent as the alpha value increases. (0 is opaque.) |
||
3399 | * This flag can only be set if DDCAPS_ALPHA is set. |
||
3400 | * For Blt. |
||
3401 | */ |
||
3402 | #define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004l |
||
3403 | |||
3404 | /* |
||
3405 | * Supports alpha only surfaces. The bit depth of an alpha only surface can be |
||
3406 | * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. |
||
3407 | * (0 is transparent.) |
||
3408 | * For Blt. |
||
3409 | */ |
||
3410 | #define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008l |
||
3411 | |||
3412 | /* |
||
3413 | * The depth of the alpha channel data can range can be 1,2,4, or 8. |
||
3414 | * The NEG suffix indicates that this alpha channel becomes more transparent |
||
3415 | * as the alpha value increases. (0 is opaque.) This flag can only be set if |
||
3416 | * DDCAPS_ALPHA is set. |
||
3417 | * For Blt. |
||
3418 | */ |
||
3419 | #define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010l |
||
3420 | |||
3421 | /* |
||
3422 | * Supports alpha blending around the edge of a source color keyed surface. |
||
3423 | * For Overlays. |
||
3424 | */ |
||
3425 | #define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020l |
||
3426 | |||
3427 | /* |
||
3428 | * Supports alpha information in the pixel format. The bit depth of alpha |
||
3429 | * information in the pixel format can be 1,2,4, or 8. The alpha value becomes |
||
3430 | * more opaque as the alpha value increases. (0 is transparent.) |
||
3431 | * For Overlays. |
||
3432 | */ |
||
3433 | #define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040l |
||
3434 | |||
3435 | /* |
||
3436 | * Supports alpha information in the pixel format. The bit depth of alpha |
||
3437 | * information in the pixel format can be 1,2,4, or 8. The alpha value |
||
3438 | * becomes more transparent as the alpha value increases. (0 is opaque.) |
||
3439 | * This flag can only be set if DDCAPS_ALPHA is set. |
||
3440 | * For Overlays. |
||
3441 | */ |
||
3442 | #define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080l |
||
3443 | |||
3444 | /* |
||
3445 | * Supports alpha only surfaces. The bit depth of an alpha only surface can be |
||
3446 | * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. |
||
3447 | * (0 is transparent.) |
||
3448 | * For Overlays. |
||
3449 | */ |
||
3450 | #define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100l |
||
3451 | |||
3452 | /* |
||
3453 | * The depth of the alpha channel data can range can be 1,2,4, or 8. |
||
3454 | * The NEG suffix indicates that this alpha channel becomes more transparent |
||
3455 | * as the alpha value increases. (0 is opaque.) This flag can only be set if |
||
3456 | * DDCAPS_ALPHA is set. |
||
3457 | * For Overlays. |
||
3458 | */ |
||
3459 | #define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200l |
||
3460 | |||
3461 | #if DIRECTDRAW_VERSION < 0x0600 |
||
3462 | #endif //DIRECTDRAW_VERSION |
||
3463 | |||
3464 | |||
3465 | /**************************************************************************** |
||
3466 | * |
||
3467 | * DIRECTDRAW FX CAPABILITY FLAGS |
||
3468 | * |
||
3469 | ****************************************************************************/ |
||
3470 | |||
3471 | /* |
||
3472 | * Uses arithmetic operations to stretch and shrink surfaces during blt |
||
3473 | * rather than pixel doubling techniques. Along the Y axis. |
||
3474 | */ |
||
3475 | #define DDFXCAPS_BLTARITHSTRETCHY 0x00000020l |
||
3476 | |||
3477 | /* |
||
3478 | * Uses arithmetic operations to stretch during blt |
||
3479 | * rather than pixel doubling techniques. Along the Y axis. Only |
||
3480 | * works for x1, x2, etc. |
||
3481 | */ |
||
3482 | #define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010l |
||
3483 | |||
3484 | /* |
||
3485 | * Supports mirroring left to right in blt. |
||
3486 | */ |
||
3487 | #define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040l |
||
3488 | |||
3489 | /* |
||
3490 | * Supports mirroring top to bottom in blt. |
||
3491 | */ |
||
3492 | #define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080l |
||
3493 | |||
3494 | /* |
||
3495 | * Supports arbitrary rotation for blts. |
||
3496 | */ |
||
3497 | #define DDFXCAPS_BLTROTATION 0x00000100l |
||
3498 | |||
3499 | /* |
||
3500 | * Supports 90 degree rotations for blts. |
||
3501 | */ |
||
3502 | #define DDFXCAPS_BLTROTATION90 0x00000200l |
||
3503 | |||
3504 | /* |
||
3505 | * DirectDraw supports arbitrary shrinking of a surface along the |
||
3506 | * x axis (horizontal direction) for blts. |
||
3507 | */ |
||
3508 | #define DDFXCAPS_BLTSHRINKX 0x00000400l |
||
3509 | |||
3510 | /* |
||
3511 | * DirectDraw supports integer shrinking (1x,2x,) of a surface |
||
3512 | * along the x axis (horizontal direction) for blts. |
||
3513 | */ |
||
3514 | #define DDFXCAPS_BLTSHRINKXN 0x00000800l |
||
3515 | |||
3516 | /* |
||
3517 | * DirectDraw supports arbitrary shrinking of a surface along the |
||
3518 | * y axis (horizontal direction) for blts. |
||
3519 | */ |
||
3520 | #define DDFXCAPS_BLTSHRINKY 0x00001000l |
||
3521 | |||
3522 | /* |
||
3523 | * DirectDraw supports integer shrinking (1x,2x,) of a surface |
||
3524 | * along the y axis (vertical direction) for blts. |
||
3525 | */ |
||
3526 | #define DDFXCAPS_BLTSHRINKYN 0x00002000l |
||
3527 | |||
3528 | /* |
||
3529 | * DirectDraw supports arbitrary stretching of a surface along the |
||
3530 | * x axis (horizontal direction) for blts. |
||
3531 | */ |
||
3532 | #define DDFXCAPS_BLTSTRETCHX 0x00004000l |
||
3533 | |||
3534 | /* |
||
3535 | * DirectDraw supports integer stretching (1x,2x,) of a surface |
||
3536 | * along the x axis (horizontal direction) for blts. |
||
3537 | */ |
||
3538 | #define DDFXCAPS_BLTSTRETCHXN 0x00008000l |
||
3539 | |||
3540 | /* |
||
3541 | * DirectDraw supports arbitrary stretching of a surface along the |
||
3542 | * y axis (horizontal direction) for blts. |
||
3543 | */ |
||
3544 | #define DDFXCAPS_BLTSTRETCHY 0x00010000l |
||
3545 | |||
3546 | /* |
||
3547 | * DirectDraw supports integer stretching (1x,2x,) of a surface |
||
3548 | * along the y axis (vertical direction) for blts. |
||
3549 | */ |
||
3550 | #define DDFXCAPS_BLTSTRETCHYN 0x00020000l |
||
3551 | |||
3552 | /* |
||
3553 | * Uses arithmetic operations to stretch and shrink surfaces during |
||
3554 | * overlay rather than pixel doubling techniques. Along the Y axis |
||
3555 | * for overlays. |
||
3556 | */ |
||
3557 | #define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000l |
||
3558 | |||
3559 | /* |
||
3560 | * Uses arithmetic operations to stretch surfaces during |
||
3561 | * overlay rather than pixel doubling techniques. Along the Y axis |
||
3562 | * for overlays. Only works for x1, x2, etc. |
||
3563 | */ |
||
3564 | #define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008l |
||
3565 | |||
3566 | /* |
||
3567 | * DirectDraw supports arbitrary shrinking of a surface along the |
||
3568 | * x axis (horizontal direction) for overlays. |
||
3569 | */ |
||
3570 | #define DDFXCAPS_OVERLAYSHRINKX 0x00080000l |
||
3571 | |||
3572 | /* |
||
3573 | * DirectDraw supports integer shrinking (1x,2x,) of a surface |
||
3574 | * along the x axis (horizontal direction) for overlays. |
||
3575 | */ |
||
3576 | #define DDFXCAPS_OVERLAYSHRINKXN 0x00100000l |
||
3577 | |||
3578 | /* |
||
3579 | * DirectDraw supports arbitrary shrinking of a surface along the |
||
3580 | * y axis (horizontal direction) for overlays. |
||
3581 | */ |
||
3582 | #define DDFXCAPS_OVERLAYSHRINKY 0x00200000l |
||
3583 | |||
3584 | /* |
||
3585 | * DirectDraw supports integer shrinking (1x,2x,) of a surface |
||
3586 | * along the y axis (vertical direction) for overlays. |
||
3587 | */ |
||
3588 | #define DDFXCAPS_OVERLAYSHRINKYN 0x00400000l |
||
3589 | |||
3590 | /* |
||
3591 | * DirectDraw supports arbitrary stretching of a surface along the |
||
3592 | * x axis (horizontal direction) for overlays. |
||
3593 | */ |
||
3594 | #define DDFXCAPS_OVERLAYSTRETCHX 0x00800000l |
||
3595 | |||
3596 | /* |
||
3597 | * DirectDraw supports integer stretching (1x,2x,) of a surface |
||
3598 | * along the x axis (horizontal direction) for overlays. |
||
3599 | */ |
||
3600 | #define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000l |
||
3601 | |||
3602 | /* |
||
3603 | * DirectDraw supports arbitrary stretching of a surface along the |
||
3604 | * y axis (horizontal direction) for overlays. |
||
3605 | */ |
||
3606 | #define DDFXCAPS_OVERLAYSTRETCHY 0x02000000l |
||
3607 | |||
3608 | /* |
||
3609 | * DirectDraw supports integer stretching (1x,2x,) of a surface |
||
3610 | * along the y axis (vertical direction) for overlays. |
||
3611 | */ |
||
3612 | #define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000l |
||
3613 | |||
3614 | /* |
||
3615 | * DirectDraw supports mirroring of overlays across the vertical axis |
||
3616 | */ |
||
3617 | #define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000l |
||
3618 | |||
3619 | /* |
||
3620 | * DirectDraw supports mirroring of overlays across the horizontal axis |
||
3621 | */ |
||
3622 | #define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000l |
||
3623 | |||
3624 | /* |
||
3625 | * DirectDraw supports deinterlacing of overlay surfaces |
||
3626 | */ |
||
3627 | #define DDFXCAPS_OVERLAYDEINTERLACE 0x20000000l |
||
3628 | |||
3629 | /* |
||
3630 | * Driver can do alpha blending for blits. |
||
3631 | */ |
||
3632 | #define DDFXCAPS_BLTALPHA 0x00000001l |
||
3633 | |||
3634 | |||
3635 | /* |
||
3636 | * Driver can do surface-reconstruction filtering for warped blits. |
||
3637 | */ |
||
3638 | #define DDFXCAPS_BLTFILTER DDFXCAPS_BLTARITHSTRETCHY |
||
3639 | |||
3640 | /* |
||
3641 | * Driver can do alpha blending for overlays. |
||
3642 | */ |
||
3643 | #define DDFXCAPS_OVERLAYALPHA 0x00000004l |
||
3644 | |||
3645 | |||
3646 | /* |
||
3647 | * Driver can do surface-reconstruction filtering for warped overlays. |
||
3648 | */ |
||
3649 | #define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY |
||
3650 | |||
3651 | /**************************************************************************** |
||
3652 | * |
||
3653 | * DIRECTDRAW STEREO VIEW CAPABILITIES |
||
3654 | * |
||
3655 | ****************************************************************************/ |
||
3656 | |||
3657 | /* |
||
3658 | * This flag used to be DDSVCAPS_ENIGMA, which is now obsolete |
||
3659 | */ |
||
3660 | |||
3661 | #define DDSVCAPS_RESERVED1 0x00000001l |
||
3662 | |||
3663 | /* |
||
3664 | * This flag used to be DDSVCAPS_FLICKER, which is now obsolete |
||
3665 | */ |
||
3666 | #define DDSVCAPS_RESERVED2 0x00000002l |
||
3667 | |||
3668 | /* |
||
3669 | * This flag used to be DDSVCAPS_REDBLUE, which is now obsolete |
||
3670 | */ |
||
3671 | #define DDSVCAPS_RESERVED3 0x00000004l |
||
3672 | |||
3673 | /* |
||
3674 | * This flag used to be DDSVCAPS_SPLIT, which is now obsolete |
||
3675 | */ |
||
3676 | #define DDSVCAPS_RESERVED4 0x00000008l |
||
3677 | |||
3678 | /* |
||
3679 | * The stereo view is accomplished with switching technology |
||
3680 | */ |
||
3681 | |||
3682 | #define DDSVCAPS_STEREOSEQUENTIAL 0x00000010L |
||
3683 | |||
3684 | |||
3685 | |||
3686 | /**************************************************************************** |
||
3687 | * |
||
3688 | * DIRECTDRAWPALETTE CAPABILITIES |
||
3689 | * |
||
3690 | ****************************************************************************/ |
||
3691 | |||
3692 | /* |
||
3693 | * Index is 4 bits. There are sixteen color entries in the palette table. |
||
3694 | */ |
||
3695 | #define DDPCAPS_4BIT 0x00000001l |
||
3696 | |||
3697 | /* |
||
3698 | * Index is onto a 8 bit color index. This field is only valid with the |
||
3699 | * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target |
||
3700 | * surface is in 8bpp. Each color entry is one byte long and is an index |
||
3701 | * into destination surface's 8bpp palette. |
||
3702 | */ |
||
3703 | #define DDPCAPS_8BITENTRIES 0x00000002l |
||
3704 | |||
3705 | /* |
||
3706 | * Index is 8 bits. There are 256 color entries in the palette table. |
||
3707 | */ |
||
3708 | #define DDPCAPS_8BIT 0x00000004l |
||
3709 | |||
3710 | /* |
||
3711 | * Indicates that this DIRECTDRAWPALETTE should use the palette color array |
||
3712 | * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE |
||
3713 | * object. |
||
3714 | * This flag is obsolete. DirectDraw always initializes the color array from |
||
3715 | * the lpDDColorArray parameter. The definition remains for source-level |
||
3716 | * compatibility. |
||
3717 | */ |
||
3718 | #define DDPCAPS_INITIALIZE 0x00000000l |
||
3719 | |||
3720 | /* |
||
3721 | * This palette is the one attached to the primary surface. Changing this |
||
3722 | * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified |
||
3723 | * and supported. |
||
3724 | */ |
||
3725 | #define DDPCAPS_PRIMARYSURFACE 0x00000010l |
||
3726 | |||
3727 | /* |
||
3728 | * This palette is the one attached to the primary surface left. Changing |
||
3729 | * this table has immediate effect on the display for the left eye unless |
||
3730 | * DDPSETPAL_VSYNC is specified and supported. |
||
3731 | */ |
||
3732 | #define DDPCAPS_PRIMARYSURFACELEFT 0x00000020l |
||
3733 | |||
3734 | /* |
||
3735 | * This palette can have all 256 entries defined |
||
3736 | */ |
||
3737 | #define DDPCAPS_ALLOW256 0x00000040l |
||
3738 | |||
3739 | /* |
||
3740 | * This palette can have modifications to it synced with the monitors |
||
3741 | * refresh rate. |
||
3742 | */ |
||
3743 | #define DDPCAPS_VSYNC 0x00000080l |
||
3744 | |||
3745 | /* |
||
3746 | * Index is 1 bit. There are two color entries in the palette table. |
||
3747 | */ |
||
3748 | #define DDPCAPS_1BIT 0x00000100l |
||
3749 | |||
3750 | /* |
||
3751 | * Index is 2 bit. There are four color entries in the palette table. |
||
3752 | */ |
||
3753 | #define DDPCAPS_2BIT 0x00000200l |
||
3754 | |||
3755 | /* |
||
3756 | * The peFlags member of PALETTEENTRY denotes an 8 bit alpha value |
||
3757 | */ |
||
3758 | #define DDPCAPS_ALPHA 0x00000400l |
||
3759 | |||
3760 | |||
3761 | /**************************************************************************** |
||
3762 | * |
||
3763 | * DIRECTDRAWPALETTE SETENTRY CONSTANTS |
||
3764 | * |
||
3765 | ****************************************************************************/ |
||
3766 | |||
3767 | |||
3768 | /**************************************************************************** |
||
3769 | * |
||
3770 | * DIRECTDRAWPALETTE GETENTRY CONSTANTS |
||
3771 | * |
||
3772 | ****************************************************************************/ |
||
3773 | |||
3774 | /* 0 is the only legal value */ |
||
3775 | |||
3776 | /**************************************************************************** |
||
3777 | * |
||
3778 | * DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS |
||
3779 | * |
||
3780 | ****************************************************************************/ |
||
3781 | |||
3782 | /* |
||
3783 | * The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData |
||
3784 | * must be set to sizeof(IUnknown*). DirectDraw will call AddRef through this |
||
3785 | * pointer and Release when the private data is destroyed. This includes when |
||
3786 | * the surface or palette is destroyed before such priovate data is destroyed. |
||
3787 | */ |
||
3788 | #define DDSPD_IUNKNOWNPOINTER 0x00000001L |
||
3789 | |||
3790 | /* |
||
3791 | * Private data is only valid for the current state of the object, |
||
3792 | * as determined by the uniqueness value. |
||
3793 | */ |
||
3794 | #define DDSPD_VOLATILE 0x00000002L |
||
3795 | |||
3796 | |||
3797 | /**************************************************************************** |
||
3798 | * |
||
3799 | * DIRECTDRAWSURFACE SETPALETTE CONSTANTS |
||
3800 | * |
||
3801 | ****************************************************************************/ |
||
3802 | |||
3803 | |||
3804 | /**************************************************************************** |
||
3805 | * |
||
3806 | * DIRECTDRAW BITDEPTH CONSTANTS |
||
3807 | * |
||
3808 | * NOTE: These are only used to indicate supported bit depths. These |
||
3809 | * are flags only, they are not to be used as an actual bit depth. The |
||
3810 | * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual |
||
3811 | * bit depths in a surface or for changing the display mode. |
||
3812 | * |
||
3813 | ****************************************************************************/ |
||
3814 | |||
3815 | /* |
||
3816 | * 1 bit per pixel. |
||
3817 | */ |
||
3818 | #define DDBD_1 0x00004000l |
||
3819 | |||
3820 | /* |
||
3821 | * 2 bits per pixel. |
||
3822 | */ |
||
3823 | #define DDBD_2 0x00002000l |
||
3824 | |||
3825 | /* |
||
3826 | * 4 bits per pixel. |
||
3827 | */ |
||
3828 | #define DDBD_4 0x00001000l |
||
3829 | |||
3830 | /* |
||
3831 | * 8 bits per pixel. |
||
3832 | */ |
||
3833 | #define DDBD_8 0x00000800l |
||
3834 | |||
3835 | /* |
||
3836 | * 16 bits per pixel. |
||
3837 | */ |
||
3838 | #define DDBD_16 0x00000400l |
||
3839 | |||
3840 | /* |
||
3841 | * 24 bits per pixel. |
||
3842 | */ |
||
3843 | #define DDBD_24 0X00000200l |
||
3844 | |||
3845 | /* |
||
3846 | * 32 bits per pixel. |
||
3847 | */ |
||
3848 | #define DDBD_32 0x00000100l |
||
3849 | |||
3850 | /**************************************************************************** |
||
3851 | * |
||
3852 | * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS |
||
3853 | * |
||
3854 | ****************************************************************************/ |
||
3855 | |||
3856 | /* |
||
3857 | * Set if the structure contains a color space. Not set if the structure |
||
3858 | * contains a single color key. |
||
3859 | */ |
||
3860 | #define DDCKEY_COLORSPACE 0x00000001l |
||
3861 | |||
3862 | /* |
||
3863 | * Set if the structure specifies a color key or color space which is to be |
||
3864 | * used as a destination color key for blt operations. |
||
3865 | */ |
||
3866 | #define DDCKEY_DESTBLT 0x00000002l |
||
3867 | |||
3868 | /* |
||
3869 | * Set if the structure specifies a color key or color space which is to be |
||
3870 | * used as a destination color key for overlay operations. |
||
3871 | */ |
||
3872 | #define DDCKEY_DESTOVERLAY 0x00000004l |
||
3873 | |||
3874 | /* |
||
3875 | * Set if the structure specifies a color key or color space which is to be |
||
3876 | * used as a source color key for blt operations. |
||
3877 | */ |
||
3878 | #define DDCKEY_SRCBLT 0x00000008l |
||
3879 | |||
3880 | /* |
||
3881 | * Set if the structure specifies a color key or color space which is to be |
||
3882 | * used as a source color key for overlay operations. |
||
3883 | */ |
||
3884 | #define DDCKEY_SRCOVERLAY 0x00000010l |
||
3885 | |||
3886 | |||
3887 | /**************************************************************************** |
||
3888 | * |
||
3889 | * DIRECTDRAW COLOR KEY CAPABILITY FLAGS |
||
3890 | * |
||
3891 | ****************************************************************************/ |
||
3892 | |||
3893 | /* |
||
3894 | * Supports transparent blting using a color key to identify the replaceable |
||
3895 | * bits of the destination surface for RGB colors. |
||
3896 | */ |
||
3897 | #define DDCKEYCAPS_DESTBLT 0x00000001l |
||
3898 | |||
3899 | /* |
||
3900 | * Supports transparent blting using a color space to identify the replaceable |
||
3901 | * bits of the destination surface for RGB colors. |
||
3902 | */ |
||
3903 | #define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002l |
||
3904 | |||
3905 | /* |
||
3906 | * Supports transparent blting using a color space to identify the replaceable |
||
3907 | * bits of the destination surface for YUV colors. |
||
3908 | */ |
||
3909 | #define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004l |
||
3910 | |||
3911 | /* |
||
3912 | * Supports transparent blting using a color key to identify the replaceable |
||
3913 | * bits of the destination surface for YUV colors. |
||
3914 | */ |
||
3915 | #define DDCKEYCAPS_DESTBLTYUV 0x00000008l |
||
3916 | |||
3917 | /* |
||
3918 | * Supports overlaying using colorkeying of the replaceable bits of the surface |
||
3919 | * being overlayed for RGB colors. |
||
3920 | */ |
||
3921 | #define DDCKEYCAPS_DESTOVERLAY 0x00000010l |
||
3922 | |||
3923 | /* |
||
3924 | * Supports a color space as the color key for the destination for RGB colors. |
||
3925 | */ |
||
3926 | #define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020l |
||
3927 | |||
3928 | /* |
||
3929 | * Supports a color space as the color key for the destination for YUV colors. |
||
3930 | */ |
||
3931 | #define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040l |
||
3932 | |||
3933 | /* |
||
3934 | * Supports only one active destination color key value for visible overlay |
||
3935 | * surfaces. |
||
3936 | */ |
||
3937 | #define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080l |
||
3938 | |||
3939 | /* |
||
3940 | * Supports overlaying using colorkeying of the replaceable bits of the |
||
3941 | * surface being overlayed for YUV colors. |
||
3942 | */ |
||
3943 | #define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100l |
||
3944 | |||
3945 | /* |
||
3946 | * Supports transparent blting using the color key for the source with |
||
3947 | * this surface for RGB colors. |
||
3948 | */ |
||
3949 | #define DDCKEYCAPS_SRCBLT 0x00000200l |
||
3950 | |||
3951 | /* |
||
3952 | * Supports transparent blting using a color space for the source with |
||
3953 | * this surface for RGB colors. |
||
3954 | */ |
||
3955 | #define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400l |
||
3956 | |||
3957 | /* |
||
3958 | * Supports transparent blting using a color space for the source with |
||
3959 | * this surface for YUV colors. |
||
3960 | */ |
||
3961 | #define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800l |
||
3962 | |||
3963 | /* |
||
3964 | * Supports transparent blting using the color key for the source with |
||
3965 | * this surface for YUV colors. |
||
3966 | */ |
||
3967 | #define DDCKEYCAPS_SRCBLTYUV 0x00001000l |
||
3968 | |||
3969 | /* |
||
3970 | * Supports overlays using the color key for the source with this |
||
3971 | * overlay surface for RGB colors. |
||
3972 | */ |
||
3973 | #define DDCKEYCAPS_SRCOVERLAY 0x00002000l |
||
3974 | |||
3975 | /* |
||
3976 | * Supports overlays using a color space as the source color key for |
||
3977 | * the overlay surface for RGB colors. |
||
3978 | */ |
||
3979 | #define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000l |
||
3980 | |||
3981 | /* |
||
3982 | * Supports overlays using a color space as the source color key for |
||
3983 | * the overlay surface for YUV colors. |
||
3984 | */ |
||
3985 | #define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000l |
||
3986 | |||
3987 | /* |
||
3988 | * Supports only one active source color key value for visible |
||
3989 | * overlay surfaces. |
||
3990 | */ |
||
3991 | #define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000l |
||
3992 | |||
3993 | /* |
||
3994 | * Supports overlays using the color key for the source with this |
||
3995 | * overlay surface for YUV colors. |
||
3996 | */ |
||
3997 | #define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000l |
||
3998 | |||
3999 | /* |
||
4000 | * there are no bandwidth trade-offs for using colorkey with an overlay |
||
4001 | */ |
||
4002 | #define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000l |
||
4003 | |||
4004 | |||
4005 | /**************************************************************************** |
||
4006 | * |
||
4007 | * DIRECTDRAW PIXELFORMAT FLAGS |
||
4008 | * |
||
4009 | ****************************************************************************/ |
||
4010 | |||
4011 | /* |
||
4012 | * The surface has alpha channel information in the pixel format. |
||
4013 | */ |
||
4014 | #define DDPF_ALPHAPIXELS 0x00000001l |
||
4015 | |||
4016 | /* |
||
4017 | * The pixel format contains alpha only information |
||
4018 | */ |
||
4019 | #define DDPF_ALPHA 0x00000002l |
||
4020 | |||
4021 | /* |
||
4022 | * The FourCC code is valid. |
||
4023 | */ |
||
4024 | #define DDPF_FOURCC 0x00000004l |
||
4025 | |||
4026 | /* |
||
4027 | * The surface is 4-bit color indexed. |
||
4028 | */ |
||
4029 | #define DDPF_PALETTEINDEXED4 0x00000008l |
||
4030 | |||
4031 | /* |
||
4032 | * The surface is indexed into a palette which stores indices |
||
4033 | * into the destination surface's 8-bit palette. |
||
4034 | */ |
||
4035 | #define DDPF_PALETTEINDEXEDTO8 0x00000010l |
||
4036 | |||
4037 | /* |
||
4038 | * The surface is 8-bit color indexed. |
||
4039 | */ |
||
4040 | #define DDPF_PALETTEINDEXED8 0x00000020l |
||
4041 | |||
4042 | /* |
||
4043 | * The RGB data in the pixel format structure is valid. |
||
4044 | */ |
||
4045 | #define DDPF_RGB 0x00000040l |
||
4046 | |||
4047 | /* |
||
4048 | * The surface will accept pixel data in the format specified |
||
4049 | * and compress it during the write. |
||
4050 | */ |
||
4051 | #define DDPF_COMPRESSED 0x00000080l |
||
4052 | |||
4053 | /* |
||
4054 | * The surface will accept RGB data and translate it during |
||
4055 | * the write to YUV data. The format of the data to be written |
||
4056 | * will be contained in the pixel format structure. The DDPF_RGB |
||
4057 | * flag will be set. |
||
4058 | */ |
||
4059 | #define DDPF_RGBTOYUV 0x00000100l |
||
4060 | |||
4061 | /* |
||
4062 | * pixel format is YUV - YUV data in pixel format struct is valid |
||
4063 | */ |
||
4064 | #define DDPF_YUV 0x00000200l |
||
4065 | |||
4066 | /* |
||
4067 | * pixel format is a z buffer only surface |
||
4068 | */ |
||
4069 | #define DDPF_ZBUFFER 0x00000400l |
||
4070 | |||
4071 | /* |
||
4072 | * The surface is 1-bit color indexed. |
||
4073 | */ |
||
4074 | #define DDPF_PALETTEINDEXED1 0x00000800l |
||
4075 | |||
4076 | /* |
||
4077 | * The surface is 2-bit color indexed. |
||
4078 | */ |
||
4079 | #define DDPF_PALETTEINDEXED2 0x00001000l |
||
4080 | |||
4081 | /* |
||
4082 | * The surface contains Z information in the pixels |
||
4083 | */ |
||
4084 | #define DDPF_ZPIXELS 0x00002000l |
||
4085 | |||
4086 | /* |
||
4087 | * The surface contains stencil information along with Z |
||
4088 | */ |
||
4089 | #define DDPF_STENCILBUFFER 0x00004000l |
||
4090 | |||
4091 | /* |
||
4092 | * Premultiplied alpha format -- the color components have been |
||
4093 | * premultiplied by the alpha component. |
||
4094 | */ |
||
4095 | #define DDPF_ALPHAPREMULT 0x00008000l |
||
4096 | |||
4097 | |||
4098 | /* |
||
4099 | * Luminance data in the pixel format is valid. |
||
4100 | * Use this flag for luminance-only or luminance+alpha surfaces, |
||
4101 | * the bit depth is then ddpf.dwLuminanceBitCount. |
||
4102 | */ |
||
4103 | #define DDPF_LUMINANCE 0x00020000l |
||
4104 | |||
4105 | /* |
||
4106 | * Luminance data in the pixel format is valid. |
||
4107 | * Use this flag when hanging luminance off bumpmap surfaces, |
||
4108 | * the bit mask for the luminance portion of the pixel is then |
||
4109 | * ddpf.dwBumpLuminanceBitMask |
||
4110 | */ |
||
4111 | #define DDPF_BUMPLUMINANCE 0x00040000l |
||
4112 | |||
4113 | /* |
||
4114 | * Bump map dUdV data in the pixel format is valid. |
||
4115 | */ |
||
4116 | #define DDPF_BUMPDUDV 0x00080000l |
||
4117 | |||
4118 | |||
4119 | /*=========================================================================== |
||
4120 | * |
||
4121 | * |
||
4122 | * DIRECTDRAW CALLBACK FLAGS |
||
4123 | * |
||
4124 | * |
||
4125 | *==========================================================================*/ |
||
4126 | |||
4127 | /**************************************************************************** |
||
4128 | * |
||
4129 | * DIRECTDRAW ENUMSURFACES FLAGS |
||
4130 | * |
||
4131 | ****************************************************************************/ |
||
4132 | |||
4133 | /* |
||
4134 | * Enumerate all of the surfaces that meet the search criterion. |
||
4135 | */ |
||
4136 | #define DDENUMSURFACES_ALL 0x00000001l |
||
4137 | |||
4138 | /* |
||
4139 | * A search hit is a surface that matches the surface description. |
||
4140 | */ |
||
4141 | #define DDENUMSURFACES_MATCH 0x00000002l |
||
4142 | |||
4143 | /* |
||
4144 | * A search hit is a surface that does not match the surface description. |
||
4145 | */ |
||
4146 | #define DDENUMSURFACES_NOMATCH 0x00000004l |
||
4147 | |||
4148 | /* |
||
4149 | * Enumerate the first surface that can be created which meets the search criterion. |
||
4150 | */ |
||
4151 | #define DDENUMSURFACES_CANBECREATED 0x00000008l |
||
4152 | |||
4153 | /* |
||
4154 | * Enumerate the surfaces that already exist that meet the search criterion. |
||
4155 | */ |
||
4156 | #define DDENUMSURFACES_DOESEXIST 0x00000010l |
||
4157 | |||
4158 | |||
4159 | /**************************************************************************** |
||
4160 | * |
||
4161 | * DIRECTDRAW SETDISPLAYMODE FLAGS |
||
4162 | * |
||
4163 | ****************************************************************************/ |
||
4164 | |||
4165 | /* |
||
4166 | * The desired mode is a standard VGA mode |
||
4167 | */ |
||
4168 | #define DDSDM_STANDARDVGAMODE 0x00000001l |
||
4169 | |||
4170 | |||
4171 | /**************************************************************************** |
||
4172 | * |
||
4173 | * DIRECTDRAW ENUMDISPLAYMODES FLAGS |
||
4174 | * |
||
4175 | ****************************************************************************/ |
||
4176 | |||
4177 | /* |
||
4178 | * Enumerate Modes with different refresh rates. EnumDisplayModes guarantees |
||
4179 | * that a particular mode will be enumerated only once. This flag specifies whether |
||
4180 | * the refresh rate is taken into account when determining if a mode is unique. |
||
4181 | */ |
||
4182 | #define DDEDM_REFRESHRATES 0x00000001l |
||
4183 | |||
4184 | /* |
||
4185 | * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA |
||
4186 | * modes such as mode 0x13 in addition to the usual ModeX modes (which are always |
||
4187 | * enumerated if the application has previously called SetCooperativeLevel with the |
||
4188 | * DDSCL_ALLOWMODEX flag set). |
||
4189 | */ |
||
4190 | #define DDEDM_STANDARDVGAMODES 0x00000002L |
||
4191 | |||
4192 | |||
4193 | /**************************************************************************** |
||
4194 | * |
||
4195 | * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS |
||
4196 | * |
||
4197 | ****************************************************************************/ |
||
4198 | |||
4199 | /* |
||
4200 | * Exclusive mode owner will be responsible for the entire primary surface. |
||
4201 | * GDI can be ignored. used with DD |
||
4202 | */ |
||
4203 | #define DDSCL_FULLSCREEN 0x00000001l |
||
4204 | |||
4205 | /* |
||
4206 | * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode |
||
4207 | */ |
||
4208 | #define DDSCL_ALLOWREBOOT 0x00000002l |
||
4209 | |||
4210 | /* |
||
4211 | * prevents DDRAW from modifying the application window. |
||
4212 | * prevents DDRAW from minimize/restore the application window on activation. |
||
4213 | */ |
||
4214 | #define DDSCL_NOWINDOWCHANGES 0x00000004l |
||
4215 | |||
4216 | /* |
||
4217 | * app wants to work as a regular Windows application |
||
4218 | */ |
||
4219 | #define DDSCL_NORMAL 0x00000008l |
||
4220 | |||
4221 | /* |
||
4222 | * app wants exclusive access |
||
4223 | */ |
||
4224 | #define DDSCL_EXCLUSIVE 0x00000010l |
||
4225 | |||
4226 | |||
4227 | /* |
||
4228 | * app can deal with non-windows display modes |
||
4229 | */ |
||
4230 | #define DDSCL_ALLOWMODEX 0x00000040l |
||
4231 | |||
4232 | /* |
||
4233 | * this window will receive the focus messages |
||
4234 | */ |
||
4235 | #define DDSCL_SETFOCUSWINDOW 0x00000080l |
||
4236 | |||
4237 | /* |
||
4238 | * this window is associated with the DDRAW object and will |
||
4239 | * cover the screen in fullscreen mode |
||
4240 | */ |
||
4241 | #define DDSCL_SETDEVICEWINDOW 0x00000100l |
||
4242 | |||
4243 | /* |
||
4244 | * app wants DDRAW to create a window to be associated with the |
||
4245 | * DDRAW object |
||
4246 | */ |
||
4247 | #define DDSCL_CREATEDEVICEWINDOW 0x00000200l |
||
4248 | |||
4249 | /* |
||
4250 | * App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D |
||
4251 | * take the global crtisec more frequently. |
||
4252 | */ |
||
4253 | #define DDSCL_MULTITHREADED 0x00000400l |
||
4254 | |||
4255 | /* |
||
4256 | * App specifies that it would like to keep the FPU set up for optimal Direct3D |
||
4257 | * performance (single precision and exceptions disabled) so Direct3D |
||
4258 | * does not need to explicitly set the FPU each time. This is assumed by |
||
4259 | * default in DirectX 7. See also DDSCL_FPUPRESERVE |
||
4260 | */ |
||
4261 | #define DDSCL_FPUSETUP 0x00000800l |
||
4262 | |||
4263 | /* |
||
4264 | * App specifies that it needs either double precision FPU or FPU exceptions |
||
4265 | * enabled. This makes Direct3D explicitly set the FPU state eah time it is |
||
4266 | * called. Setting the flag will reduce Direct3D performance. The flag is |
||
4267 | * assumed by default in DirectX 6 and earlier. See also DDSCL_FPUSETUP |
||
4268 | */ |
||
4269 | #define DDSCL_FPUPRESERVE 0x00001000l |
||
4270 | |||
4271 | |||
4272 | /**************************************************************************** |
||
4273 | * |
||
4274 | * DIRECTDRAW BLT FLAGS |
||
4275 | * |
||
4276 | ****************************************************************************/ |
||
4277 | |||
4278 | /* |
||
4279 | * Use the alpha information in the pixel format or the alpha channel surface |
||
4280 | * attached to the destination surface as the alpha channel for this blt. |
||
4281 | */ |
||
4282 | #define DDBLT_ALPHADEST 0x00000001l |
||
4283 | |||
4284 | /* |
||
4285 | * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel |
||
4286 | * for the destination surface for this blt. |
||
4287 | */ |
||
4288 | #define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002l |
||
4289 | |||
4290 | /* |
||
4291 | * The NEG suffix indicates that the destination surface becomes more |
||
4292 | * transparent as the alpha value increases. (0 is opaque) |
||
4293 | */ |
||
4294 | #define DDBLT_ALPHADESTNEG 0x00000004l |
||
4295 | |||
4296 | /* |
||
4297 | * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha |
||
4298 | * channel for the destination for this blt. |
||
4299 | */ |
||
4300 | #define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008l |
||
4301 | |||
4302 | /* |
||
4303 | * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel |
||
4304 | * for the edges of the image that border the color key colors. |
||
4305 | */ |
||
4306 | #define DDBLT_ALPHAEDGEBLEND 0x00000010l |
||
4307 | |||
4308 | /* |
||
4309 | * Use the alpha information in the pixel format or the alpha channel surface |
||
4310 | * attached to the source surface as the alpha channel for this blt. |
||
4311 | */ |
||
4312 | #define DDBLT_ALPHASRC 0x00000020l |
||
4313 | |||
4314 | /* |
||
4315 | * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel |
||
4316 | * for the source for this blt. |
||
4317 | */ |
||
4318 | #define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040l |
||
4319 | |||
4320 | /* |
||
4321 | * The NEG suffix indicates that the source surface becomes more transparent |
||
4322 | * as the alpha value increases. (0 is opaque) |
||
4323 | */ |
||
4324 | #define DDBLT_ALPHASRCNEG 0x00000080l |
||
4325 | |||
4326 | /* |
||
4327 | * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel |
||
4328 | * for the source for this blt. |
||
4329 | */ |
||
4330 | #define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100l |
||
4331 | |||
4332 | /* |
||
4333 | * Do this blt asynchronously through the FIFO in the order received. If |
||
4334 | * there is no room in the hardware FIFO fail the call. |
||
4335 | */ |
||
4336 | #define DDBLT_ASYNC 0x00000200l |
||
4337 | |||
4338 | /* |
||
4339 | * Uses the dwFillColor field in the DDBLTFX structure as the RGB color |
||
4340 | * to fill the destination rectangle on the destination surface with. |
||
4341 | */ |
||
4342 | #define DDBLT_COLORFILL 0x00000400l |
||
4343 | |||
4344 | /* |
||
4345 | * Uses the dwDDFX field in the DDBLTFX structure to specify the effects |
||
4346 | * to use for the blt. |
||
4347 | */ |
||
4348 | #define DDBLT_DDFX 0x00000800l |
||
4349 | |||
4350 | /* |
||
4351 | * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS |
||
4352 | * that are not part of the Win32 API. |
||
4353 | */ |
||
4354 | #define DDBLT_DDROPS 0x00001000l |
||
4355 | |||
4356 | /* |
||
4357 | * Use the color key associated with the destination surface. |
||
4358 | */ |
||
4359 | #define DDBLT_KEYDEST 0x00002000l |
||
4360 | |||
4361 | /* |
||
4362 | * Use the dckDestColorkey field in the DDBLTFX structure as the color key |
||
4363 | * for the destination surface. |
||
4364 | */ |
||
4365 | #define DDBLT_KEYDESTOVERRIDE 0x00004000l |
||
4366 | |||
4367 | /* |
||
4368 | * Use the color key associated with the source surface. |
||
4369 | */ |
||
4370 | #define DDBLT_KEYSRC 0x00008000l |
||
4371 | |||
4372 | /* |
||
4373 | * Use the dckSrcColorkey field in the DDBLTFX structure as the color key |
||
4374 | * for the source surface. |
||
4375 | */ |
||
4376 | #define DDBLT_KEYSRCOVERRIDE 0x00010000l |
||
4377 | |||
4378 | /* |
||
4379 | * Use the dwROP field in the DDBLTFX structure for the raster operation |
||
4380 | * for this blt. These ROPs are the same as the ones defined in the Win32 API. |
||
4381 | */ |
||
4382 | #define DDBLT_ROP 0x00020000l |
||
4383 | |||
4384 | /* |
||
4385 | * Use the dwRotationAngle field in the DDBLTFX structure as the angle |
||
4386 | * (specified in 1/100th of a degree) to rotate the surface. |
||
4387 | */ |
||
4388 | #define DDBLT_ROTATIONANGLE 0x00040000l |
||
4389 | |||
4390 | /* |
||
4391 | * Z-buffered blt using the z-buffers attached to the source and destination |
||
4392 | * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the |
||
4393 | * z-buffer opcode. |
||
4394 | */ |
||
4395 | #define DDBLT_ZBUFFER 0x00080000l |
||
4396 | |||
4397 | /* |
||
4398 | * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field |
||
4399 | * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively |
||
4400 | * for the destination. |
||
4401 | */ |
||
4402 | #define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000l |
||
4403 | |||
4404 | /* |
||
4405 | * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode |
||
4406 | * field in the DDBLTFX structure as the z-buffer and z-buffer opcode |
||
4407 | * respectively for the destination. |
||
4408 | */ |
||
4409 | #define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000l |
||
4410 | |||
4411 | /* |
||
4412 | * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field |
||
4413 | * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively |
||
4414 | * for the source. |
||
4415 | */ |
||
4416 | #define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000l |
||
4417 | |||
4418 | /* |
||
4419 | * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode |
||
4420 | * field in the DDBLTFX structure as the z-buffer and z-buffer opcode |
||
4421 | * respectively for the source. |
||
4422 | */ |
||
4423 | #define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000l |
||
4424 | |||
4425 | /* |
||
4426 | * wait until the device is ready to handle the blt |
||
4427 | * this will cause blt to not return DDERR_WASSTILLDRAWING |
||
4428 | */ |
||
4429 | #define DDBLT_WAIT 0x01000000l |
||
4430 | |||
4431 | /* |
||
4432 | * Uses the dwFillDepth field in the DDBLTFX structure as the depth value |
||
4433 | * to fill the destination rectangle on the destination Z-buffer surface |
||
4434 | * with. |
||
4435 | */ |
||
4436 | #define DDBLT_DEPTHFILL 0x02000000l |
||
4437 | |||
4438 | |||
4439 | /* |
||
4440 | * Return immediately (with DDERR_WASSTILLDRAWING) if the device is not |
||
4441 | * ready to schedule the blt at the time Blt() is called. |
||
4442 | */ |
||
4443 | #define DDBLT_DONOTWAIT 0x08000000l |
||
4444 | |||
4445 | /* |
||
4446 | * These flags indicate a presentation blt (i.e. a blt |
||
4447 | * that moves surface contents from an offscreen back buffer to the primary |
||
4448 | * surface). The driver is not allowed to "queue" more than three such blts. |
||
4449 | * The "end" of the presentation blt is indicated, since the |
||
4450 | * blt may be clipped, in which case the runtime will call the driver with |
||
4451 | * several blts. All blts (even if not clipped) are tagged with DDBLT_PRESENTATION |
||
4452 | * and the last (even if not clipped) additionally with DDBLT_LAST_PRESENTATION. |
||
4453 | * Thus the true rule is that the driver must not schedule a DDBLT_PRESENTATION |
||
4454 | * blt if there are 3 or more DDBLT_PRESENTLAST blts in the hardware pipe. |
||
4455 | * If there are such blts in the pipe, the driver should return DDERR_WASSTILLDRAWING |
||
4456 | * until the oldest queued DDBLT_LAST_PRESENTATION blts has been retired (i.e. the |
||
4457 | * pixels have been actually written to the primary surface). Once the oldest blt |
||
4458 | * has been retired, the driver is free to schedule the current blt. |
||
4459 | * The goal is to provide a mechanism whereby the device's hardware queue never |
||
4460 | * gets more than 3 frames ahead of the frames being generated by the application. |
||
4461 | * When excessive queueing occurs, applications become unusable because the application |
||
4462 | * visibly lags user input, and such problems make windowed interactive applications impossible. |
||
4463 | * Some drivers may not have sufficient knowledge of their hardware's FIFO to know |
||
4464 | * when a certain blt has been retired. Such drivers should code cautiously, and |
||
4465 | * simply not allow any frames to be queued at all. DDBLT_LAST_PRESENTATION should cause |
||
4466 | * such drivers to return DDERR_WASSTILLDRAWING until the accelerator is completely |
||
4467 | * finished- exactly as if the application had called Lock on the source surface |
||
4468 | * before calling Blt. |
||
4469 | * In other words, the driver is allowed and encouraged to |
||
4470 | * generate as much latency as it can, but never more than 3 frames worth. |
||
4471 | * Implementation detail: Drivers should count blts against the SOURCE surface, not |
||
4472 | * against the primary surface. This enables multiple parallel windowed application |
||
4473 | * to function more optimally. |
||
4474 | * This flag is passed only to DX8 or higher drivers. |
||
4475 | * |
||
4476 | * APPLICATIONS DO NOT SET THESE FLAGS. THEY ARE SET BY THE DIRECTDRAW RUNTIME. |
||
4477 | * |
||
4478 | */ |
||
4479 | #define DDBLT_PRESENTATION 0x10000000l |
||
4480 | #define DDBLT_LAST_PRESENTATION 0x20000000l |
||
4481 | |||
4482 | /* |
||
4483 | * If DDBLT_EXTENDED_FLAGS is set, then the driver should re-interpret |
||
4484 | * other flags according to the definitions that follow. |
||
4485 | * For example, bit 0 (0x00000001L) means DDBLT_ALPHADEST, unless |
||
4486 | * DDBLT_EXTENDED_FLAGS is also set, in which case bit 0 means |
||
4487 | * DDBLT_EXTENDED_LINEAR_CONTENT. |
||
4488 | * Only DirectX9 and higher drivers will be given extended blt flags. |
||
4489 | * Only flags explicitly mentioned here should be re-interpreted. |
||
4490 | * All other flags retain their original meanings. |
||
4491 | * |
||
4492 | * List of re-interpreted flags: |
||
4493 | * |
||
4494 | * Bit Hex value New meaning old meaning |
||
4495 | * --------------------------------------------------------------- |
||
4496 | * 2 0x00000004 DDBLT_EXTENDED_LINEAR_CONTENT DDBLT_ALPHADESTNEG |
||
4497 | * 4 0x00000010 DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR DDBLT_ALPHAEDGEBLEND |
||
4498 | * |
||
4499 | * |
||
4500 | * NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED |
||
4501 | * FOR USE BY THE DIRECT3D RUNTIME. |
||
4502 | */ |
||
4503 | #define DDBLT_EXTENDED_FLAGS 0x40000000l |
||
4504 | |||
4505 | /* |
||
4506 | * EXTENDED FLAG. SEE DEFINITION OF DDBLT_EXTENDED_FLAGS. |
||
4507 | * This flag indidcates that the source surface contains content in a |
||
4508 | * linear color space. The driver may perform gamma correction to the |
||
4509 | * desktop color space (i.e. sRGB, gamma 2.2) as part of this blt. |
||
4510 | * If the device can perform such a conversion as part of the copy, |
||
4511 | * the driver should also set D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION |
||
4512 | * |
||
4513 | * NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED |
||
4514 | * FOR USE BY THE DIRECT3D RUNTIME. Use IDirect3DSwapChain9::Present |
||
4515 | * and specify D3DPRESENT_LINEAR_CONTENT in order to use this functionality. |
||
4516 | */ |
||
4517 | #define DDBLT_EXTENDED_LINEAR_CONTENT 0x00000004l |
||
4518 | |||
4519 | |||
4520 | /**************************************************************************** |
||
4521 | * |
||
4522 | * BLTFAST FLAGS |
||
4523 | * |
||
4524 | ****************************************************************************/ |
||
4525 | |||
4526 | #define DDBLTFAST_NOCOLORKEY 0x00000000 |
||
4527 | #define DDBLTFAST_SRCCOLORKEY 0x00000001 |
||
4528 | #define DDBLTFAST_DESTCOLORKEY 0x00000002 |
||
4529 | #define DDBLTFAST_WAIT 0x00000010 |
||
4530 | #define DDBLTFAST_DONOTWAIT 0x00000020 |
||
4531 | |||
4532 | /**************************************************************************** |
||
4533 | * |
||
4534 | * FLIP FLAGS |
||
4535 | * |
||
4536 | ****************************************************************************/ |
||
4537 | |||
4538 | #define DDFLIP_WAIT 0x00000001L |
||
4539 | |||
4540 | /* |
||
4541 | * Indicates that the target surface contains the even field of video data. |
||
4542 | * This flag is only valid with an overlay surface. |
||
4543 | */ |
||
4544 | #define DDFLIP_EVEN 0x00000002L |
||
4545 | |||
4546 | /* |
||
4547 | * Indicates that the target surface contains the odd field of video data. |
||
4548 | * This flag is only valid with an overlay surface. |
||
4549 | */ |
||
4550 | #define DDFLIP_ODD 0x00000004L |
||
4551 | |||
4552 | /* |
||
4553 | * Causes DirectDraw to perform the physical flip immediately and return |
||
4554 | * to the application. Typically, what was the front buffer but is now the back |
||
4555 | * buffer will still be visible (depending on timing) until the next vertical |
||
4556 | * retrace. Subsequent operations involving the two flipped surfaces will |
||
4557 | * not check to see if the physical flip has finished (i.e. will not return |
||
4558 | * DDERR_WASSTILLDRAWING for that reason (but may for other reasons)). |
||
4559 | * This allows an application to perform Flips at a higher frequency than the |
||
4560 | * monitor refresh rate, but may introduce visible artifacts. |
||
4561 | * Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set, |
||
4562 | * DDFLIP_NOVSYNC has no effect. |
||
4563 | */ |
||
4564 | #define DDFLIP_NOVSYNC 0x00000008L |
||
4565 | |||
4566 | |||
4567 | /* |
||
4568 | * Flip Interval Flags. These flags indicate how many vertical retraces to wait between |
||
4569 | * each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each |
||
4570 | * surface involved in the flip until the specified number of vertical retraces has |
||
4571 | * ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set, |
||
4572 | * DDFLIP_INTERVALn has no effect. |
||
4573 | */ |
||
4574 | |||
4575 | /* |
||
4576 | * DirectDraw will flip on every other vertical sync |
||
4577 | */ |
||
4578 | #define DDFLIP_INTERVAL2 0x02000000L |
||
4579 | |||
4580 | |||
4581 | /* |
||
4582 | * DirectDraw will flip on every third vertical sync |
||
4583 | */ |
||
4584 | #define DDFLIP_INTERVAL3 0x03000000L |
||
4585 | |||
4586 | |||
4587 | /* |
||
4588 | * DirectDraw will flip on every fourth vertical sync |
||
4589 | */ |
||
4590 | #define DDFLIP_INTERVAL4 0x04000000L |
||
4591 | |||
4592 | /* |
||
4593 | * DirectDraw will flip and display a main stereo surface |
||
4594 | */ |
||
4595 | #define DDFLIP_STEREO 0x00000010L |
||
4596 | |||
4597 | /* |
||
4598 | * On IDirectDrawSurface7 and higher interfaces, the default is DDFLIP_WAIT. If you wish |
||
4599 | * to override the default and use time when the accelerator is busy (as denoted by |
||
4600 | * the DDERR_WASSTILLDRAWING return code) then use DDFLIP_DONOTWAIT. |
||
4601 | */ |
||
4602 | #define DDFLIP_DONOTWAIT 0x00000020L |
||
4603 | |||
4604 | |||
4605 | /**************************************************************************** |
||
4606 | * |
||
4607 | * DIRECTDRAW SURFACE OVERLAY FLAGS |
||
4608 | * |
||
4609 | ****************************************************************************/ |
||
4610 | |||
4611 | /* |
||
4612 | * Use the alpha information in the pixel format or the alpha channel surface |
||
4613 | * attached to the destination surface as the alpha channel for the |
||
4614 | * destination overlay. |
||
4615 | */ |
||
4616 | #define DDOVER_ALPHADEST 0x00000001l |
||
4617 | |||
4618 | /* |
||
4619 | * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the |
||
4620 | * destination alpha channel for this overlay. |
||
4621 | */ |
||
4622 | #define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002l |
||
4623 | |||
4624 | /* |
||
4625 | * The NEG suffix indicates that the destination surface becomes more |
||
4626 | * transparent as the alpha value increases. |
||
4627 | */ |
||
4628 | #define DDOVER_ALPHADESTNEG 0x00000004l |
||
4629 | |||
4630 | /* |
||
4631 | * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha |
||
4632 | * channel destination for this overlay. |
||
4633 | */ |
||
4634 | #define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008l |
||
4635 | |||
4636 | /* |
||
4637 | * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha |
||
4638 | * channel for the edges of the image that border the color key colors. |
||
4639 | */ |
||
4640 | #define DDOVER_ALPHAEDGEBLEND 0x00000010l |
||
4641 | |||
4642 | /* |
||
4643 | * Use the alpha information in the pixel format or the alpha channel surface |
||
4644 | * attached to the source surface as the source alpha channel for this overlay. |
||
4645 | */ |
||
4646 | #define DDOVER_ALPHASRC 0x00000020l |
||
4647 | |||
4648 | /* |
||
4649 | * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source |
||
4650 | * alpha channel for this overlay. |
||
4651 | */ |
||
4652 | #define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040l |
||
4653 | |||
4654 | /* |
||
4655 | * The NEG suffix indicates that the source surface becomes more transparent |
||
4656 | * as the alpha value increases. |
||
4657 | */ |
||
4658 | #define DDOVER_ALPHASRCNEG 0x00000080l |
||
4659 | |||
4660 | /* |
||
4661 | * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel |
||
4662 | * source for this overlay. |
||
4663 | */ |
||
4664 | #define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100l |
||
4665 | |||
4666 | /* |
||
4667 | * Turn this overlay off. |
||
4668 | */ |
||
4669 | #define DDOVER_HIDE 0x00000200l |
||
4670 | |||
4671 | /* |
||
4672 | * Use the color key associated with the destination surface. |
||
4673 | */ |
||
4674 | #define DDOVER_KEYDEST 0x00000400l |
||
4675 | |||
4676 | /* |
||
4677 | * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key |
||
4678 | * for the destination surface |
||
4679 | */ |
||
4680 | #define DDOVER_KEYDESTOVERRIDE 0x00000800l |
||
4681 | |||
4682 | /* |
||
4683 | * Use the color key associated with the source surface. |
||
4684 | */ |
||
4685 | #define DDOVER_KEYSRC 0x00001000l |
||
4686 | |||
4687 | /* |
||
4688 | * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key |
||
4689 | * for the source surface. |
||
4690 | */ |
||
4691 | #define DDOVER_KEYSRCOVERRIDE 0x00002000l |
||
4692 | |||
4693 | /* |
||
4694 | * Turn this overlay on. |
||
4695 | */ |
||
4696 | #define DDOVER_SHOW 0x00004000l |
||
4697 | |||
4698 | /* |
||
4699 | * Add a dirty rect to an emulated overlayed surface. |
||
4700 | */ |
||
4701 | #define DDOVER_ADDDIRTYRECT 0x00008000l |
||
4702 | |||
4703 | /* |
||
4704 | * Redraw all dirty rects on an emulated overlayed surface. |
||
4705 | */ |
||
4706 | #define DDOVER_REFRESHDIRTYRECTS 0x00010000l |
||
4707 | |||
4708 | /* |
||
4709 | * Redraw the entire surface on an emulated overlayed surface. |
||
4710 | */ |
||
4711 | #define DDOVER_REFRESHALL 0x00020000l |
||
4712 | |||
4713 | |||
4714 | /* |
||
4715 | * Use the overlay FX flags to define special overlay FX |
||
4716 | */ |
||
4717 | #define DDOVER_DDFX 0x00080000l |
||
4718 | |||
4719 | /* |
||
4720 | * Autoflip the overlay when ever the video port autoflips |
||
4721 | */ |
||
4722 | #define DDOVER_AUTOFLIP 0x00100000l |
||
4723 | |||
4724 | /* |
||
4725 | * Display each field of video port data individually without |
||
4726 | * causing any jittery artifacts |
||
4727 | */ |
||
4728 | #define DDOVER_BOB 0x00200000l |
||
4729 | |||
4730 | /* |
||
4731 | * Indicates that bob/weave decisions should not be overridden by other |
||
4732 | * interfaces. |
||
4733 | */ |
||
4734 | #define DDOVER_OVERRIDEBOBWEAVE 0x00400000l |
||
4735 | |||
4736 | /* |
||
4737 | * Indicates that the surface memory is composed of interleaved fields. |
||
4738 | */ |
||
4739 | #define DDOVER_INTERLEAVED 0x00800000l |
||
4740 | |||
4741 | /* |
||
4742 | * Indicates that bob will be performed using hardware rather than |
||
4743 | * software or emulated. |
||
4744 | */ |
||
4745 | #define DDOVER_BOBHARDWARE 0x01000000l |
||
4746 | |||
4747 | /* |
||
4748 | * Indicates that overlay FX structure contains valid ARGB scaling factors. |
||
4749 | */ |
||
4750 | #define DDOVER_ARGBSCALEFACTORS 0x02000000l |
||
4751 | |||
4752 | /* |
||
4753 | * Indicates that ARGB scaling factors can be degraded to fit driver capabilities. |
||
4754 | */ |
||
4755 | #define DDOVER_DEGRADEARGBSCALING 0x04000000l |
||
4756 | |||
4757 | |||
4758 | #ifdef COMBOX_SANDBOX |
||
4759 | #define DX_LONGHORN_PRESERVEDC |
||
4760 | #endif |
||
4761 | |||
4762 | #ifdef DX_LONGHORN_PRESERVEDC |
||
4763 | |||
4764 | /**************************************************************************** |
||
4765 | * |
||
4766 | * DIRECTDRAWSURFACE SETSURFACEDESC FLAGS |
||
4767 | * |
||
4768 | ****************************************************************************/ |
||
4769 | |||
4770 | /* |
||
4771 | * The default. The GDI DC will be tore down. |
||
4772 | */ |
||
4773 | #define DDSETSURFACEDESC_RECREATEDC 0x00000000L // default |
||
4774 | |||
4775 | /* |
||
4776 | * The default. The GDI DC will be kept. |
||
4777 | */ |
||
4778 | #define DDSETSURFACEDESC_PRESERVEDC 0x00000001L |
||
4779 | |||
4780 | |||
4781 | #endif // DX_LONGHORN_PRESERVEDC |
||
4782 | |||
4783 | /**************************************************************************** |
||
4784 | * |
||
4785 | * DIRECTDRAWSURFACE LOCK FLAGS |
||
4786 | * |
||
4787 | ****************************************************************************/ |
||
4788 | |||
4789 | /* |
||
4790 | * The default. Set to indicate that Lock should return a valid memory pointer |
||
4791 | * to the top of the specified rectangle. If no rectangle is specified then a |
||
4792 | * pointer to the top of the surface is returned. |
||
4793 | */ |
||
4794 | #define DDLOCK_SURFACEMEMORYPTR 0x00000000L // default |
||
4795 | |||
4796 | /* |
||
4797 | * Set to indicate that Lock should wait until it can obtain a valid memory |
||
4798 | * pointer before returning. If this bit is set, Lock will never return |
||
4799 | * DDERR_WASSTILLDRAWING. |
||
4800 | */ |
||
4801 | #define DDLOCK_WAIT 0x00000001L |
||
4802 | |||
4803 | /* |
||
4804 | * Set if an event handle is being passed to Lock. Lock will trigger the event |
||
4805 | * when it can return the surface memory pointer requested. |
||
4806 | */ |
||
4807 | #define DDLOCK_EVENT 0x00000002L |
||
4808 | |||
4809 | /* |
||
4810 | * Indicates that the surface being locked will only be read from. |
||
4811 | */ |
||
4812 | #define DDLOCK_READONLY 0x00000010L |
||
4813 | |||
4814 | /* |
||
4815 | * Indicates that the surface being locked will only be written to |
||
4816 | */ |
||
4817 | #define DDLOCK_WRITEONLY 0x00000020L |
||
4818 | |||
4819 | |||
4820 | /* |
||
4821 | * Indicates that a system wide lock should not be taken when this surface |
||
4822 | * is locked. This has several advantages (cursor responsiveness, ability |
||
4823 | * to call more Windows functions, easier debugging) when locking video |
||
4824 | * memory surfaces. However, an application specifying this flag must |
||
4825 | * comply with a number of conditions documented in the help file. |
||
4826 | * Furthermore, this flag cannot be specified when locking the primary. |
||
4827 | */ |
||
4828 | #define DDLOCK_NOSYSLOCK 0x00000800L |
||
4829 | |||
4830 | /* |
||
4831 | * Used only with Direct3D Vertex Buffer Locks. Indicates that no vertices |
||
4832 | * that were referred to in Draw*PrimtiveVB calls since the start of the |
||
4833 | * frame (or the last lock without this flag) will be modified during the |
||
4834 | * lock. This can be useful when one is only appending data to the vertex |
||
4835 | * buffer |
||
4836 | */ |
||
4837 | #define DDLOCK_NOOVERWRITE 0x00001000L |
||
4838 | |||
4839 | /* |
||
4840 | * Indicates that no assumptions will be made about the contents of the |
||
4841 | * surface or vertex buffer during this lock. |
||
4842 | * This enables two things: |
||
4843 | * - Direct3D or the driver may provide an alternative memory |
||
4844 | * area as the vertex buffer. This is useful when one plans to clear the |
||
4845 | * contents of the vertex buffer and fill in new data. |
||
4846 | * - Drivers sometimes store surface data in a re-ordered format. |
||
4847 | * When the application locks the surface, the driver is forced to un-re-order |
||
4848 | * the surface data before allowing the application to see the surface contents. |
||
4849 | * This flag is a hint to the driver that it can skip the un-re-ordering process |
||
4850 | * since the application plans to overwrite every single pixel in the surface |
||
4851 | * or locked rectangle (and so erase any un-re-ordered pixels anyway). |
||
4852 | * Applications should always set this flag when they intend to overwrite the entire |
||
4853 | * surface or locked rectangle. |
||
4854 | */ |
||
4855 | #define DDLOCK_DISCARDCONTENTS 0x00002000L |
||
4856 | /* |
||
4857 | * DDLOCK_OKTOSWAP is an older, less informative name for DDLOCK_DISCARDCONTENTS |
||
4858 | */ |
||
4859 | #define DDLOCK_OKTOSWAP 0x00002000L |
||
4860 | |||
4861 | /* |
||
4862 | * On IDirectDrawSurface7 and higher interfaces, the default is DDLOCK_WAIT. If you wish |
||
4863 | * to override the default and use time when the accelerator is busy (as denoted by |
||
4864 | * the DDERR_WASSTILLDRAWING return code) then use DDLOCK_DONOTWAIT. |
||
4865 | */ |
||
4866 | #define DDLOCK_DONOTWAIT 0x00004000L |
||
4867 | |||
4868 | /* |
||
4869 | * This indicates volume texture lock with front and back specified. |
||
4870 | */ |
||
4871 | #define DDLOCK_HASVOLUMETEXTUREBOXRECT 0x00008000L |
||
4872 | |||
4873 | /* |
||
4874 | * This indicates that the driver should not update dirty rect information for this lock. |
||
4875 | */ |
||
4876 | #define DDLOCK_NODIRTYUPDATE 0x00010000L |
||
4877 | |||
4878 | |||
4879 | /**************************************************************************** |
||
4880 | * |
||
4881 | * DIRECTDRAWSURFACE PAGELOCK FLAGS |
||
4882 | * |
||
4883 | ****************************************************************************/ |
||
4884 | |||
4885 | /* |
||
4886 | * No flags defined at present |
||
4887 | */ |
||
4888 | |||
4889 | |||
4890 | /**************************************************************************** |
||
4891 | * |
||
4892 | * DIRECTDRAWSURFACE PAGEUNLOCK FLAGS |
||
4893 | * |
||
4894 | ****************************************************************************/ |
||
4895 | |||
4896 | /* |
||
4897 | * No flags defined at present |
||
4898 | */ |
||
4899 | |||
4900 | |||
4901 | /**************************************************************************** |
||
4902 | * |
||
4903 | * DIRECTDRAWSURFACE BLT FX FLAGS |
||
4904 | * |
||
4905 | ****************************************************************************/ |
||
4906 | |||
4907 | /* |
||
4908 | * If stretching, use arithmetic stretching along the Y axis for this blt. |
||
4909 | */ |
||
4910 | #define DDBLTFX_ARITHSTRETCHY 0x00000001l |
||
4911 | |||
4912 | /* |
||
4913 | * Do this blt mirroring the surface left to right. Spin the |
||
4914 | * surface around its y-axis. |
||
4915 | */ |
||
4916 | #define DDBLTFX_MIRRORLEFTRIGHT 0x00000002l |
||
4917 | |||
4918 | /* |
||
4919 | * Do this blt mirroring the surface up and down. Spin the surface |
||
4920 | * around its x-axis. |
||
4921 | */ |
||
4922 | #define DDBLTFX_MIRRORUPDOWN 0x00000004l |
||
4923 | |||
4924 | /* |
||
4925 | * Schedule this blt to avoid tearing. |
||
4926 | */ |
||
4927 | #define DDBLTFX_NOTEARING 0x00000008l |
||
4928 | |||
4929 | /* |
||
4930 | * Do this blt rotating the surface one hundred and eighty degrees. |
||
4931 | */ |
||
4932 | #define DDBLTFX_ROTATE180 0x00000010l |
||
4933 | |||
4934 | /* |
||
4935 | * Do this blt rotating the surface two hundred and seventy degrees. |
||
4936 | */ |
||
4937 | #define DDBLTFX_ROTATE270 0x00000020l |
||
4938 | |||
4939 | /* |
||
4940 | * Do this blt rotating the surface ninety degrees. |
||
4941 | */ |
||
4942 | #define DDBLTFX_ROTATE90 0x00000040l |
||
4943 | |||
4944 | /* |
||
4945 | * Do this z blt using dwZBufferLow and dwZBufferHigh as range values |
||
4946 | * specified to limit the bits copied from the source surface. |
||
4947 | */ |
||
4948 | #define DDBLTFX_ZBUFFERRANGE 0x00000080l |
||
4949 | |||
4950 | /* |
||
4951 | * Do this z blt adding the dwZBufferBaseDest to each of the sources z values |
||
4952 | * before comparing it with the desting z values. |
||
4953 | */ |
||
4954 | #define DDBLTFX_ZBUFFERBASEDEST 0x00000100l |
||
4955 | |||
4956 | /**************************************************************************** |
||
4957 | * |
||
4958 | * DIRECTDRAWSURFACE OVERLAY FX FLAGS |
||
4959 | * |
||
4960 | ****************************************************************************/ |
||
4961 | |||
4962 | /* |
||
4963 | * If stretching, use arithmetic stretching along the Y axis for this overlay. |
||
4964 | */ |
||
4965 | #define DDOVERFX_ARITHSTRETCHY 0x00000001l |
||
4966 | |||
4967 | /* |
||
4968 | * Mirror the overlay across the vertical axis |
||
4969 | */ |
||
4970 | #define DDOVERFX_MIRRORLEFTRIGHT 0x00000002l |
||
4971 | |||
4972 | /* |
||
4973 | * Mirror the overlay across the horizontal axis |
||
4974 | */ |
||
4975 | #define DDOVERFX_MIRRORUPDOWN 0x00000004l |
||
4976 | |||
4977 | /* |
||
4978 | * Deinterlace the overlay, if possible |
||
4979 | */ |
||
4980 | #define DDOVERFX_DEINTERLACE 0x00000008l |
||
4981 | |||
4982 | |||
4983 | /**************************************************************************** |
||
4984 | * |
||
4985 | * DIRECTDRAW WAITFORVERTICALBLANK FLAGS |
||
4986 | * |
||
4987 | ****************************************************************************/ |
||
4988 | |||
4989 | /* |
||
4990 | * return when the vertical blank interval begins |
||
4991 | */ |
||
4992 | #define DDWAITVB_BLOCKBEGIN 0x00000001l |
||
4993 | |||
4994 | /* |
||
4995 | * set up an event to trigger when the vertical blank begins |
||
4996 | */ |
||
4997 | #define DDWAITVB_BLOCKBEGINEVENT 0x00000002l |
||
4998 | |||
4999 | /* |
||
5000 | * return when the vertical blank interval ends and display begins |
||
5001 | */ |
||
5002 | #define DDWAITVB_BLOCKEND 0x00000004l |
||
5003 | |||
5004 | /**************************************************************************** |
||
5005 | * |
||
5006 | * DIRECTDRAW GETFLIPSTATUS FLAGS |
||
5007 | * |
||
5008 | ****************************************************************************/ |
||
5009 | |||
5010 | /* |
||
5011 | * is it OK to flip now? |
||
5012 | */ |
||
5013 | #define DDGFS_CANFLIP 0x00000001l |
||
5014 | |||
5015 | /* |
||
5016 | * is the last flip finished? |
||
5017 | */ |
||
5018 | #define DDGFS_ISFLIPDONE 0x00000002l |
||
5019 | |||
5020 | /**************************************************************************** |
||
5021 | * |
||
5022 | * DIRECTDRAW GETBLTSTATUS FLAGS |
||
5023 | * |
||
5024 | ****************************************************************************/ |
||
5025 | |||
5026 | /* |
||
5027 | * is it OK to blt now? |
||
5028 | */ |
||
5029 | #define DDGBS_CANBLT 0x00000001l |
||
5030 | |||
5031 | /* |
||
5032 | * is the blt to the surface finished? |
||
5033 | */ |
||
5034 | #define DDGBS_ISBLTDONE 0x00000002l |
||
5035 | |||
5036 | |||
5037 | /**************************************************************************** |
||
5038 | * |
||
5039 | * DIRECTDRAW ENUMOVERLAYZORDER FLAGS |
||
5040 | * |
||
5041 | ****************************************************************************/ |
||
5042 | |||
5043 | /* |
||
5044 | * Enumerate overlays back to front. |
||
5045 | */ |
||
5046 | #define DDENUMOVERLAYZ_BACKTOFRONT 0x00000000l |
||
5047 | |||
5048 | /* |
||
5049 | * Enumerate overlays front to back |
||
5050 | */ |
||
5051 | #define DDENUMOVERLAYZ_FRONTTOBACK 0x00000001l |
||
5052 | |||
5053 | /**************************************************************************** |
||
5054 | * |
||
5055 | * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS |
||
5056 | * |
||
5057 | ****************************************************************************/ |
||
5058 | |||
5059 | /* |
||
5060 | * Send overlay to front |
||
5061 | */ |
||
5062 | #define DDOVERZ_SENDTOFRONT 0x00000000l |
||
5063 | |||
5064 | /* |
||
5065 | * Send overlay to back |
||
5066 | */ |
||
5067 | #define DDOVERZ_SENDTOBACK 0x00000001l |
||
5068 | |||
5069 | /* |
||
5070 | * Move Overlay forward |
||
5071 | */ |
||
5072 | #define DDOVERZ_MOVEFORWARD 0x00000002l |
||
5073 | |||
5074 | /* |
||
5075 | * Move Overlay backward |
||
5076 | */ |
||
5077 | #define DDOVERZ_MOVEBACKWARD 0x00000003l |
||
5078 | |||
5079 | /* |
||
5080 | * Move Overlay in front of relative surface |
||
5081 | */ |
||
5082 | #define DDOVERZ_INSERTINFRONTOF 0x00000004l |
||
5083 | |||
5084 | /* |
||
5085 | * Move Overlay in back of relative surface |
||
5086 | */ |
||
5087 | #define DDOVERZ_INSERTINBACKOF 0x00000005l |
||
5088 | |||
5089 | |||
5090 | /**************************************************************************** |
||
5091 | * |
||
5092 | * DIRECTDRAW SETGAMMARAMP FLAGS |
||
5093 | * |
||
5094 | ****************************************************************************/ |
||
5095 | |||
5096 | /* |
||
5097 | * Request calibrator to adjust the gamma ramp according to the physical |
||
5098 | * properties of the display so that the result should appear identical |
||
5099 | * on all systems. |
||
5100 | */ |
||
5101 | #define DDSGR_CALIBRATE 0x00000001L |
||
5102 | |||
5103 | |||
5104 | /**************************************************************************** |
||
5105 | * |
||
5106 | * DIRECTDRAW STARTMODETEST FLAGS |
||
5107 | * |
||
5108 | ****************************************************************************/ |
||
5109 | |||
5110 | /* |
||
5111 | * Indicates that the mode being tested has passed |
||
5112 | */ |
||
5113 | #define DDSMT_ISTESTREQUIRED 0x00000001L |
||
5114 | |||
5115 | |||
5116 | /**************************************************************************** |
||
5117 | * |
||
5118 | * DIRECTDRAW EVALUATEMODE FLAGS |
||
5119 | * |
||
5120 | ****************************************************************************/ |
||
5121 | |||
5122 | /* |
||
5123 | * Indicates that the mode being tested has passed |
||
5124 | */ |
||
5125 | #define DDEM_MODEPASSED 0x00000001L |
||
5126 | |||
5127 | /* |
||
5128 | * Indicates that the mode being tested has failed |
||
5129 | */ |
||
5130 | #define DDEM_MODEFAILED 0x00000002L |
||
5131 | |||
5132 | |||
5133 | /*=========================================================================== |
||
5134 | * |
||
5135 | * |
||
5136 | * DIRECTDRAW RETURN CODES |
||
5137 | * |
||
5138 | * The return values from DirectDraw Commands and Surface that return an HRESULT |
||
5139 | * are codes from DirectDraw concerning the results of the action |
||
5140 | * requested by DirectDraw. |
||
5141 | * |
||
5142 | *==========================================================================*/ |
||
5143 | |||
5144 | /* |
||
5145 | * Status is OK |
||
5146 | * |
||
5147 | * Issued by: DirectDraw Commands and all callbacks |
||
5148 | */ |
||
5149 | #define DD_OK S_OK |
||
5150 | #define DD_FALSE S_FALSE |
||
5151 | |||
5152 | /**************************************************************************** |
||
5153 | * |
||
5154 | * DIRECTDRAW ENUMCALLBACK RETURN VALUES |
||
5155 | * |
||
5156 | * EnumCallback returns are used to control the flow of the DIRECTDRAW and |
||
5157 | * DIRECTDRAWSURFACE object enumerations. They can only be returned by |
||
5158 | * enumeration callback routines. |
||
5159 | * |
||
5160 | ****************************************************************************/ |
||
5161 | |||
5162 | /* |
||
5163 | * stop the enumeration |
||
5164 | */ |
||
5165 | #define DDENUMRET_CANCEL 0 |
||
5166 | |||
5167 | /* |
||
5168 | * continue the enumeration |
||
5169 | */ |
||
5170 | #define DDENUMRET_OK 1 |
||
5171 | |||
5172 | /**************************************************************************** |
||
5173 | * |
||
5174 | * DIRECTDRAW ERRORS |
||
5175 | * |
||
5176 | * Errors are represented by negative values and cannot be combined. |
||
5177 | * |
||
5178 | ****************************************************************************/ |
||
5179 | |||
5180 | /* |
||
5181 | * This object is already initialized |
||
5182 | */ |
||
5183 | #define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 ) |
||
5184 | |||
5185 | /* |
||
5186 | * This surface can not be attached to the requested surface. |
||
5187 | */ |
||
5188 | #define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 ) |
||
5189 | |||
5190 | /* |
||
5191 | * This surface can not be detached from the requested surface. |
||
5192 | */ |
||
5193 | #define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 ) |
||
5194 | |||
5195 | /* |
||
5196 | * Support is currently not available. |
||
5197 | */ |
||
5198 | #define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 ) |
||
5199 | |||
5200 | /* |
||
5201 | * An exception was encountered while performing the requested operation |
||
5202 | */ |
||
5203 | #define DDERR_EXCEPTION MAKE_DDHRESULT( 55 ) |
||
5204 | |||
5205 | /* |
||
5206 | * Generic failure. |
||
5207 | */ |
||
5208 | #define DDERR_GENERIC E_FAIL |
||
5209 | |||
5210 | /* |
||
5211 | * Height of rectangle provided is not a multiple of reqd alignment |
||
5212 | */ |
||
5213 | #define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 ) |
||
5214 | |||
5215 | /* |
||
5216 | * Unable to match primary surface creation request with existing |
||
5217 | * primary surface. |
||
5218 | */ |
||
5219 | #define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 ) |
||
5220 | |||
5221 | /* |
||
5222 | * One or more of the caps bits passed to the callback are incorrect. |
||
5223 | */ |
||
5224 | #define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 ) |
||
5225 | |||
5226 | /* |
||
5227 | * DirectDraw does not support provided Cliplist. |
||
5228 | */ |
||
5229 | #define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 ) |
||
5230 | |||
5231 | /* |
||
5232 | * DirectDraw does not support the requested mode |
||
5233 | */ |
||
5234 | #define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 ) |
||
5235 | |||
5236 | /* |
||
5237 | * DirectDraw received a pointer that was an invalid DIRECTDRAW object. |
||
5238 | */ |
||
5239 | #define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 ) |
||
5240 | |||
5241 | /* |
||
5242 | * One or more of the parameters passed to the callback function are |
||
5243 | * incorrect. |
||
5244 | */ |
||
5245 | #define DDERR_INVALIDPARAMS E_INVALIDARG |
||
5246 | |||
5247 | /* |
||
5248 | * pixel format was invalid as specified |
||
5249 | */ |
||
5250 | #define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 ) |
||
5251 | |||
5252 | /* |
||
5253 | * Rectangle provided was invalid. |
||
5254 | */ |
||
5255 | #define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 ) |
||
5256 | |||
5257 | /* |
||
5258 | * Operation could not be carried out because one or more surfaces are locked |
||
5259 | */ |
||
5260 | #define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 ) |
||
5261 | |||
5262 | /* |
||
5263 | * There is no 3D present. |
||
5264 | */ |
||
5265 | #define DDERR_NO3D MAKE_DDHRESULT( 170 ) |
||
5266 | |||
5267 | /* |
||
5268 | * Operation could not be carried out because there is no alpha accleration |
||
5269 | * hardware present or available. |
||
5270 | */ |
||
5271 | #define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 ) |
||
5272 | |||
5273 | /* |
||
5274 | * Operation could not be carried out because there is no stereo |
||
5275 | * hardware present or available. |
||
5276 | */ |
||
5277 | #define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 ) |
||
5278 | |||
5279 | /* |
||
5280 | * Operation could not be carried out because there is no hardware |
||
5281 | * present which supports stereo surfaces |
||
5282 | */ |
||
5283 | #define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 ) |
||
5284 | |||
5285 | |||
5286 | |||
5287 | /* |
||
5288 | * no clip list available |
||
5289 | */ |
||
5290 | #define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 ) |
||
5291 | |||
5292 | /* |
||
5293 | * Operation could not be carried out because there is no color conversion |
||
5294 | * hardware present or available. |
||
5295 | */ |
||
5296 | #define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 ) |
||
5297 | |||
5298 | /* |
||
5299 | * Create function called without DirectDraw object method SetCooperativeLevel |
||
5300 | * being called. |
||
5301 | */ |
||
5302 | #define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 ) |
||
5303 | |||
5304 | /* |
||
5305 | * Surface doesn't currently have a color key |
||
5306 | */ |
||
5307 | #define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 ) |
||
5308 | |||
5309 | /* |
||
5310 | * Operation could not be carried out because there is no hardware support |
||
5311 | * of the dest color key. |
||
5312 | */ |
||
5313 | #define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 ) |
||
5314 | |||
5315 | /* |
||
5316 | * No DirectDraw support possible with current display driver |
||
5317 | */ |
||
5318 | #define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 ) |
||
5319 | |||
5320 | /* |
||
5321 | * Operation requires the application to have exclusive mode but the |
||
5322 | * application does not have exclusive mode. |
||
5323 | */ |
||
5324 | #define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 ) |
||
5325 | |||
5326 | /* |
||
5327 | * Flipping visible surfaces is not supported. |
||
5328 | */ |
||
5329 | #define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 ) |
||
5330 | |||
5331 | /* |
||
5332 | * There is no GDI present. |
||
5333 | */ |
||
5334 | #define DDERR_NOGDI MAKE_DDHRESULT( 240 ) |
||
5335 | |||
5336 | /* |
||
5337 | * Operation could not be carried out because there is no hardware present |
||
5338 | * or available. |
||
5339 | */ |
||
5340 | #define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 ) |
||
5341 | |||
5342 | /* |
||
5343 | * Requested item was not found |
||
5344 | */ |
||
5345 | #define DDERR_NOTFOUND MAKE_DDHRESULT( 255 ) |
||
5346 | |||
5347 | /* |
||
5348 | * Operation could not be carried out because there is no overlay hardware |
||
5349 | * present or available. |
||
5350 | */ |
||
5351 | #define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 ) |
||
5352 | |||
5353 | /* |
||
5354 | * Operation could not be carried out because the source and destination |
||
5355 | * rectangles are on the same surface and overlap each other. |
||
5356 | */ |
||
5357 | #define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 ) |
||
5358 | |||
5359 | /* |
||
5360 | * Operation could not be carried out because there is no appropriate raster |
||
5361 | * op hardware present or available. |
||
5362 | */ |
||
5363 | #define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 ) |
||
5364 | |||
5365 | /* |
||
5366 | * Operation could not be carried out because there is no rotation hardware |
||
5367 | * present or available. |
||
5368 | */ |
||
5369 | #define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 ) |
||
5370 | |||
5371 | /* |
||
5372 | * Operation could not be carried out because there is no hardware support |
||
5373 | * for stretching |
||
5374 | */ |
||
5375 | #define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 ) |
||
5376 | |||
5377 | /* |
||
5378 | * DirectDrawSurface is not in 4 bit color palette and the requested operation |
||
5379 | * requires 4 bit color palette. |
||
5380 | */ |
||
5381 | #define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 ) |
||
5382 | |||
5383 | /* |
||
5384 | * DirectDrawSurface is not in 4 bit color index palette and the requested |
||
5385 | * operation requires 4 bit color index palette. |
||
5386 | */ |
||
5387 | #define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 ) |
||
5388 | |||
5389 | /* |
||
5390 | * DirectDraw Surface is not in 8 bit color mode and the requested operation |
||
5391 | * requires 8 bit color. |
||
5392 | */ |
||
5393 | #define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 ) |
||
5394 | |||
5395 | /* |
||
5396 | * Operation could not be carried out because there is no texture mapping |
||
5397 | * hardware present or available. |
||
5398 | */ |
||
5399 | #define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 ) |
||
5400 | |||
5401 | /* |
||
5402 | * Operation could not be carried out because there is no hardware support |
||
5403 | * for vertical blank synchronized operations. |
||
5404 | */ |
||
5405 | #define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 ) |
||
5406 | |||
5407 | /* |
||
5408 | * Operation could not be carried out because there is no hardware support |
||
5409 | * for zbuffer blting. |
||
5410 | */ |
||
5411 | #define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 ) |
||
5412 | |||
5413 | /* |
||
5414 | * Overlay surfaces could not be z layered based on their BltOrder because |
||
5415 | * the hardware does not support z layering of overlays. |
||
5416 | */ |
||
5417 | #define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 ) |
||
5418 | |||
5419 | /* |
||
5420 | * The hardware needed for the requested operation has already been |
||
5421 | * allocated. |
||
5422 | */ |
||
5423 | #define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 ) |
||
5424 | |||
5425 | /* |
||
5426 | * DirectDraw does not have enough memory to perform the operation. |
||
5427 | */ |
||
5428 | #define DDERR_OUTOFMEMORY E_OUTOFMEMORY |
||
5429 | |||
5430 | /* |
||
5431 | * DirectDraw does not have enough memory to perform the operation. |
||
5432 | */ |
||
5433 | #define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 ) |
||
5434 | |||
5435 | /* |
||
5436 | * hardware does not support clipped overlays |
||
5437 | */ |
||
5438 | #define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 ) |
||
5439 | |||
5440 | /* |
||
5441 | * Can only have ony color key active at one time for overlays |
||
5442 | */ |
||
5443 | #define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 ) |
||
5444 | |||
5445 | /* |
||
5446 | * Access to this palette is being refused because the palette is already |
||
5447 | * locked by another thread. |
||
5448 | */ |
||
5449 | #define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 ) |
||
5450 | |||
5451 | /* |
||
5452 | * No src color key specified for this operation. |
||
5453 | */ |
||
5454 | #define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 ) |
||
5455 | |||
5456 | /* |
||
5457 | * This surface is already attached to the surface it is being attached to. |
||
5458 | */ |
||
5459 | #define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 ) |
||
5460 | |||
5461 | /* |
||
5462 | * This surface is already a dependency of the surface it is being made a |
||
5463 | * dependency of. |
||
5464 | */ |
||
5465 | #define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 ) |
||
5466 | |||
5467 | /* |
||
5468 | * Access to this surface is being refused because the surface is already |
||
5469 | * locked by another thread. |
||
5470 | */ |
||
5471 | #define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 ) |
||
5472 | |||
5473 | /* |
||
5474 | * Access to this surface is being refused because no driver exists |
||
5475 | * which can supply a pointer to the surface. |
||
5476 | * This is most likely to happen when attempting to lock the primary |
||
5477 | * surface when no DCI provider is present. |
||
5478 | * Will also happen on attempts to lock an optimized surface. |
||
5479 | */ |
||
5480 | #define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 ) |
||
5481 | |||
5482 | /* |
||
5483 | * Access to Surface refused because Surface is obscured. |
||
5484 | */ |
||
5485 | #define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 ) |
||
5486 | |||
5487 | /* |
||
5488 | * Access to this surface is being refused because the surface is gone. |
||
5489 | * The DIRECTDRAWSURFACE object representing this surface should |
||
5490 | * have Restore called on it. |
||
5491 | */ |
||
5492 | #define DDERR_SURFACELOST MAKE_DDHRESULT( 450 ) |
||
5493 | |||
5494 | /* |
||
5495 | * The requested surface is not attached. |
||
5496 | */ |
||
5497 | #define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 ) |
||
5498 | |||
5499 | /* |
||
5500 | * Height requested by DirectDraw is too large. |
||
5501 | */ |
||
5502 | #define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 ) |
||
5503 | |||
5504 | /* |
||
5505 | * Size requested by DirectDraw is too large -- The individual height and |
||
5506 | * width are OK. |
||
5507 | */ |
||
5508 | #define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 ) |
||
5509 | |||
5510 | /* |
||
5511 | * Width requested by DirectDraw is too large. |
||
5512 | */ |
||
5513 | #define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 ) |
||
5514 | |||
5515 | /* |
||
5516 | * Action not supported. |
||
5517 | */ |
||
5518 | #define DDERR_UNSUPPORTED E_NOTIMPL |
||
5519 | |||
5520 | /* |
||
5521 | * Pixel format requested is unsupported by DirectDraw |
||
5522 | */ |
||
5523 | #define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 ) |
||
5524 | |||
5525 | /* |
||
5526 | * Bitmask in the pixel format requested is unsupported by DirectDraw |
||
5527 | */ |
||
5528 | #define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 ) |
||
5529 | |||
5530 | /* |
||
5531 | * The specified stream contains invalid data |
||
5532 | */ |
||
5533 | #define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 ) |
||
5534 | |||
5535 | /* |
||
5536 | * vertical blank is in progress |
||
5537 | */ |
||
5538 | #define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 ) |
||
5539 | |||
5540 | /* |
||
5541 | * Informs DirectDraw that the previous Blt which is transfering information |
||
5542 | * to or from this Surface is incomplete. |
||
5543 | */ |
||
5544 | #define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 ) |
||
5545 | |||
5546 | |||
5547 | /* |
||
5548 | * The specified surface type requires specification of the COMPLEX flag |
||
5549 | */ |
||
5550 | #define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 ) |
||
5551 | |||
5552 | |||
5553 | /* |
||
5554 | * Rectangle provided was not horizontally aligned on reqd. boundary |
||
5555 | */ |
||
5556 | #define DDERR_XALIGN MAKE_DDHRESULT( 560 ) |
||
5557 | |||
5558 | /* |
||
5559 | * The GUID passed to DirectDrawCreate is not a valid DirectDraw driver |
||
5560 | * identifier. |
||
5561 | */ |
||
5562 | #define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 ) |
||
5563 | |||
5564 | /* |
||
5565 | * A DirectDraw object representing this driver has already been created |
||
5566 | * for this process. |
||
5567 | */ |
||
5568 | #define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 ) |
||
5569 | |||
5570 | /* |
||
5571 | * A hardware only DirectDraw object creation was attempted but the driver |
||
5572 | * did not support any hardware. |
||
5573 | */ |
||
5574 | #define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 ) |
||
5575 | |||
5576 | /* |
||
5577 | * this process already has created a primary surface |
||
5578 | */ |
||
5579 | #define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 ) |
||
5580 | |||
5581 | /* |
||
5582 | * software emulation not available. |
||
5583 | */ |
||
5584 | #define DDERR_NOEMULATION MAKE_DDHRESULT( 565 ) |
||
5585 | |||
5586 | /* |
||
5587 | * region passed to Clipper::GetClipList is too small. |
||
5588 | */ |
||
5589 | #define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 ) |
||
5590 | |||
5591 | /* |
||
5592 | * an attempt was made to set a clip list for a clipper objec that |
||
5593 | * is already monitoring an hwnd. |
||
5594 | */ |
||
5595 | #define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 ) |
||
5596 | |||
5597 | /* |
||
5598 | * No clipper object attached to surface object |
||
5599 | */ |
||
5600 | #define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 ) |
||
5601 | |||
5602 | /* |
||
5603 | * Clipper notification requires an HWND or |
||
5604 | * no HWND has previously been set as the CooperativeLevel HWND. |
||
5605 | */ |
||
5606 | #define DDERR_NOHWND MAKE_DDHRESULT( 569 ) |
||
5607 | |||
5608 | /* |
||
5609 | * HWND used by DirectDraw CooperativeLevel has been subclassed, |
||
5610 | * this prevents DirectDraw from restoring state. |
||
5611 | */ |
||
5612 | #define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 ) |
||
5613 | |||
5614 | /* |
||
5615 | * The CooperativeLevel HWND has already been set. |
||
5616 | * It can not be reset while the process has surfaces or palettes created. |
||
5617 | */ |
||
5618 | #define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 ) |
||
5619 | |||
5620 | /* |
||
5621 | * No palette object attached to this surface. |
||
5622 | */ |
||
5623 | #define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 ) |
||
5624 | |||
5625 | /* |
||
5626 | * No hardware support for 16 or 256 color palettes. |
||
5627 | */ |
||
5628 | #define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 ) |
||
5629 | |||
5630 | /* |
||
5631 | * If a clipper object is attached to the source surface passed into a |
||
5632 | * BltFast call. |
||
5633 | */ |
||
5634 | #define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 ) |
||
5635 | |||
5636 | /* |
||
5637 | * No blter. |
||
5638 | */ |
||
5639 | #define DDERR_NOBLTHW MAKE_DDHRESULT( 575 ) |
||
5640 | |||
5641 | /* |
||
5642 | * No DirectDraw ROP hardware. |
||
5643 | */ |
||
5644 | #define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 ) |
||
5645 | |||
5646 | /* |
||
5647 | * returned when GetOverlayPosition is called on a hidden overlay |
||
5648 | */ |
||
5649 | #define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 ) |
||
5650 | |||
5651 | /* |
||
5652 | * returned when GetOverlayPosition is called on a overlay that UpdateOverlay |
||
5653 | * has never been called on to establish a destionation. |
||
5654 | */ |
||
5655 | #define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 ) |
||
5656 | |||
5657 | /* |
||
5658 | * returned when the position of the overlay on the destionation is no longer |
||
5659 | * legal for that destionation. |
||
5660 | */ |
||
5661 | #define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 ) |
||
5662 | |||
5663 | /* |
||
5664 | * returned when an overlay member is called for a non-overlay surface |
||
5665 | */ |
||
5666 | #define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 ) |
||
5667 | |||
5668 | /* |
||
5669 | * An attempt was made to set the cooperative level when it was already |
||
5670 | * set to exclusive. |
||
5671 | */ |
||
5672 | #define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 ) |
||
5673 | |||
5674 | /* |
||
5675 | * An attempt has been made to flip a surface that is not flippable. |
||
5676 | */ |
||
5677 | #define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 ) |
||
5678 | |||
5679 | /* |
||
5680 | * Can't duplicate primary & 3D surfaces, or surfaces that are implicitly |
||
5681 | * created. |
||
5682 | */ |
||
5683 | #define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 ) |
||
5684 | |||
5685 | /* |
||
5686 | * Surface was not locked. An attempt to unlock a surface that was not |
||
5687 | * locked at all, or by this process, has been attempted. |
||
5688 | */ |
||
5689 | #define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 ) |
||
5690 | |||
5691 | /* |
||
5692 | * Windows can not create any more DCs, or a DC was requested for a paltte-indexed |
||
5693 | * surface when the surface had no palette AND the display mode was not palette-indexed |
||
5694 | * (in this case DirectDraw cannot select a proper palette into the DC) |
||
5695 | */ |
||
5696 | #define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 ) |
||
5697 | |||
5698 | /* |
||
5699 | * No DC was ever created for this surface. |
||
5700 | */ |
||
5701 | #define DDERR_NODC MAKE_DDHRESULT( 586 ) |
||
5702 | |||
5703 | /* |
||
5704 | * This surface can not be restored because it was created in a different |
||
5705 | * mode. |
||
5706 | */ |
||
5707 | #define DDERR_WRONGMODE MAKE_DDHRESULT( 587 ) |
||
5708 | |||
5709 | /* |
||
5710 | * This surface can not be restored because it is an implicitly created |
||
5711 | * surface. |
||
5712 | */ |
||
5713 | #define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 ) |
||
5714 | |||
5715 | /* |
||
5716 | * The surface being used is not a palette-based surface |
||
5717 | */ |
||
5718 | #define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 ) |
||
5719 | |||
5720 | |||
5721 | /* |
||
5722 | * The display is currently in an unsupported mode |
||
5723 | */ |
||
5724 | #define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 ) |
||
5725 | |||
5726 | /* |
||
5727 | * Operation could not be carried out because there is no mip-map |
||
5728 | * texture mapping hardware present or available. |
||
5729 | */ |
||
5730 | #define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 ) |
||
5731 | |||
5732 | /* |
||
5733 | * The requested action could not be performed because the surface was of |
||
5734 | * the wrong type. |
||
5735 | */ |
||
5736 | #define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 ) |
||
5737 | |||
5738 | |||
5739 | /* |
||
5740 | * Device does not support optimized surfaces, therefore no video memory optimized surfaces |
||
5741 | */ |
||
5742 | #define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 ) |
||
5743 | |||
5744 | /* |
||
5745 | * Surface is an optimized surface, but has not yet been allocated any memory |
||
5746 | */ |
||
5747 | #define DDERR_NOTLOADED MAKE_DDHRESULT( 601 ) |
||
5748 | |||
5749 | /* |
||
5750 | * Attempt was made to create or set a device window without first setting |
||
5751 | * the focus window |
||
5752 | */ |
||
5753 | #define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 ) |
||
5754 | |||
5755 | /* |
||
5756 | * Attempt was made to set a palette on a mipmap sublevel |
||
5757 | */ |
||
5758 | #define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 ) |
||
5759 | |||
5760 | /* |
||
5761 | * A DC has already been returned for this surface. Only one DC can be |
||
5762 | * retrieved per surface. |
||
5763 | */ |
||
5764 | #define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 ) |
||
5765 | |||
5766 | /* |
||
5767 | * An attempt was made to allocate non-local video memory from a device |
||
5768 | * that does not support non-local video memory. |
||
5769 | */ |
||
5770 | #define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 ) |
||
5771 | |||
5772 | /* |
||
5773 | * The attempt to page lock a surface failed. |
||
5774 | */ |
||
5775 | #define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 ) |
||
5776 | |||
5777 | |||
5778 | /* |
||
5779 | * The attempt to page unlock a surface failed. |
||
5780 | */ |
||
5781 | #define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 ) |
||
5782 | |||
5783 | /* |
||
5784 | * An attempt was made to page unlock a surface with no outstanding page locks. |
||
5785 | */ |
||
5786 | #define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 ) |
||
5787 | |||
5788 | /* |
||
5789 | * There is more data available than the specified buffer size could hold |
||
5790 | */ |
||
5791 | #define DDERR_MOREDATA MAKE_DDHRESULT( 690 ) |
||
5792 | |||
5793 | /* |
||
5794 | * The data has expired and is therefore no longer valid. |
||
5795 | */ |
||
5796 | #define DDERR_EXPIRED MAKE_DDHRESULT( 691 ) |
||
5797 | |||
5798 | /* |
||
5799 | * The mode test has finished executing. |
||
5800 | */ |
||
5801 | #define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 ) |
||
5802 | |||
5803 | /* |
||
5804 | * The mode test has switched to a new mode. |
||
5805 | */ |
||
5806 | #define DDERR_NEWMODE MAKE_DDHRESULT( 693 ) |
||
5807 | |||
5808 | /* |
||
5809 | * D3D has not yet been initialized. |
||
5810 | */ |
||
5811 | #define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 ) |
||
5812 | |||
5813 | /* |
||
5814 | * The video port is not active |
||
5815 | */ |
||
5816 | #define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 ) |
||
5817 | |||
5818 | /* |
||
5819 | * The monitor does not have EDID data. |
||
5820 | */ |
||
5821 | #define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 ) |
||
5822 | |||
5823 | /* |
||
5824 | * The driver does not enumerate display mode refresh rates. |
||
5825 | */ |
||
5826 | #define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 ) |
||
5827 | |||
5828 | /* |
||
5829 | * Surfaces created by one direct draw device cannot be used directly by |
||
5830 | * another direct draw device. |
||
5831 | */ |
||
5832 | #define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 ) |
||
5833 | |||
5834 | |||
5835 | |||
5836 | /* |
||
5837 | * An attempt was made to invoke an interface member of a DirectDraw object |
||
5838 | * created by CoCreateInstance() before it was initialized. |
||
5839 | */ |
||
5840 | #define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED |
||
5841 | |||
5842 | |||
5843 | /* Alpha bit depth constants */ |
||
5844 | |||
5845 | |||
5846 | #ifdef __cplusplus |
||
5847 | }; |
||
5848 | #endif |
||
5849 | |||
5850 | #ifdef ENABLE_NAMELESS_UNION_PRAGMA |
||
5851 | #pragma warning(default:4201) |
||
5852 | #endif |
||
5853 | |||
5854 | #endif //__DDRAW_INCLUDED__ |
||
5855 | |||
5856 |