Merging r37048, r37051, r37052, r37055 from the-real-msvc branch
[reactos.git] / reactos / include / ddk / ddrawint.h
1 /*
2 * DirectDraw NT driver interface
3 */
4
5 #ifndef __DD_INCLUDED__
6 #define __DD_INCLUDED__
7
8
9 DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
10 DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
11 DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
12 DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
13 DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
14 DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
15 DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
16 DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
17 DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
18 DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
19 DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
20 DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
21 DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
22 DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
23 DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
24 DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
25 DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
26 DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
27 DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
28 DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
29 DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
30 DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
31 DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
32 DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
33
34
35 #ifndef GUID_DEFS_ONLY
36
37 #ifndef _NO_DDRAWINT_NO_COM
38 #ifndef _NO_COM
39 #define _NO_COM
40 #include <ddraw.h>
41 #include <dvp.h>
42 #undef _NO_COM
43 #else
44 #include <ddraw.h>
45 #include <dvp.h>
46 #endif
47 #else
48 #include <ddraw.h>
49 #include <dvp.h>
50 #endif
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56 #ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
57 #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
58 #endif
59
60 #ifndef FLATPTR_DEFINED
61 typedef ULONG_PTR FLATPTR;
62 #define FLATPTR_DEFINED
63 #endif
64
65 typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL;
66
67 /************************************************************************/
68 /* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */
69 /************************************************************************/
70 struct _DD_GETHEAPALIGNMENTDATA;
71 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
72 typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
73 #define DD_GETHEAPALIGNMENTDATA_DECLARED
74 #endif
75
76 /************************************************************************/
77 /* Video memory info structures */
78 /************************************************************************/
79
80 typedef struct _VIDEOMEMORY
81 {
82 DWORD dwFlags;
83 FLATPTR fpStart;
84 union
85 {
86 FLATPTR fpEnd;
87 DWORD dwWidth;
88 };
89 DDSCAPS ddsCaps;
90 DDSCAPS ddsCapsAlt;
91 union
92 {
93 struct _VMEMHEAP *lpHeap;
94 DWORD dwHeight;
95 };
96 } VIDEOMEMORY, *PVIDEOMEMORY;
97
98 typedef struct _VIDEOMEMORYINFO
99 {
100 FLATPTR fpPrimary;
101 DWORD dwFlags;
102 DWORD dwDisplayWidth;
103 DWORD dwDisplayHeight;
104 LONG lDisplayPitch;
105 DDPIXELFORMAT ddpfDisplay;
106 DWORD dwOffscreenAlign;
107 DWORD dwOverlayAlign;
108 DWORD dwTextureAlign;
109 DWORD dwZBufferAlign;
110 DWORD dwAlphaAlign;
111 PVOID pvPrimary;
112 } VIDEOMEMORYINFO;
113 typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO;
114
115 typedef struct _DD_DIRECTDRAW_GLOBAL
116 {
117 PVOID dhpdev;
118 ULONG_PTR dwReserved1;
119 ULONG_PTR dwReserved2;
120 LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
121 } DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
122
123 typedef struct _DD_DIRECTDRAW_LOCAL
124 {
125 PDD_DIRECTDRAW_GLOBAL lpGbl;
126 } DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
127
128
129 typedef struct _DD_SURFACE_GLOBAL
130 {
131 union
132 {
133 DWORD dwBlockSizeY;
134 LONG lSlicePitch;
135 };
136
137 union
138 {
139 PVIDEOMEMORY lpVidMemHeap;
140 DWORD dwBlockSizeX;
141 DWORD dwUserMemSize;
142 };
143
144 FLATPTR fpVidMem;
145 union
146 {
147 LONG lPitch;
148 DWORD dwLinearSize;
149 };
150 LONG yHint;
151 LONG xHint;
152 DWORD wHeight;
153 DWORD wWidth;
154 ULONG_PTR dwReserved1;
155 DDPIXELFORMAT ddpfSurface;
156 FLATPTR fpHeapOffset;
157 HANDLE hCreatorProcess;
158 } DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
159
160 typedef struct _DD_SURFACE_MORE
161 {
162 DWORD dwMipMapCount;
163 PDD_VIDEOPORT_LOCAL lpVideoPort;
164 DWORD dwOverlayFlags;
165 DDSCAPSEX ddsCapsEx;
166 DWORD dwSurfaceHandle;
167 } DD_SURFACE_MORE, *PDD_SURFACE_MORE;
168
169 typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
170
171 typedef struct _DD_SURFACE_LOCAL
172 {
173 PDD_SURFACE_GLOBAL lpGbl;
174 DWORD dwFlags;
175 DDSCAPS ddsCaps;
176 ULONG_PTR dwReserved1;
177 union
178 {
179 DDCOLORKEY ddckCKSrcOverlay;
180 DDCOLORKEY ddckCKSrcBlt;
181 };
182 union
183 {
184 DDCOLORKEY ddckCKDestOverlay;
185 DDCOLORKEY ddckCKDestBlt;
186 };
187 PDD_SURFACE_MORE lpSurfMore;
188 PDD_ATTACHLIST lpAttachList;
189 PDD_ATTACHLIST lpAttachListFrom;
190 RECT rcOverlaySrc;
191 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
192
193 typedef struct _DD_ATTACHLIST
194 {
195 PDD_ATTACHLIST lpLink;
196 PDD_SURFACE_LOCAL lpAttached;
197 } DD_ATTACHLIST;
198
199 typedef struct _DD_SURFACE_INT
200 {
201 PDD_SURFACE_LOCAL lpLcl;
202 } DD_SURFACE_INT, *PDD_SURFACE_INT;
203
204 /************************************************************************/
205 /* DDI representation of the DirectDrawPalette object */
206 /************************************************************************/
207
208 typedef struct _DD_PALETTE_GLOBAL
209 {
210 ULONG_PTR Reserved1;
211 } DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
212
213 /************************************************************************/
214 /* DDI representation of the DirectDrawVideo object */
215 /************************************************************************/
216
217 typedef struct
218 {
219 PDD_DIRECTDRAW_LOCAL lpDD;
220 GUID guid;
221 DWORD dwUncompWidth;
222 DWORD dwUncompHeight;
223 DDPIXELFORMAT ddUncompPixelFormat;
224 DWORD dwDriverReserved1;
225 DWORD dwDriverReserved2;
226 DWORD dwDriverReserved3;
227 LPVOID lpDriverReserved1;
228 LPVOID lpDriverReserved2;
229 LPVOID lpDriverReserved3;
230 } DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
231
232
233 typedef struct _DD_VIDEOPORT_LOCAL
234 {
235 PDD_DIRECTDRAW_LOCAL lpDD;
236 DDVIDEOPORTDESC ddvpDesc;
237 DDVIDEOPORTINFO ddvpInfo;
238 PDD_SURFACE_INT lpSurface;
239 PDD_SURFACE_INT lpVBISurface;
240 DWORD dwNumAutoflip;
241 DWORD dwNumVBIAutoflip;
242 ULONG_PTR dwReserved1;
243 ULONG_PTR dwReserved2;
244 ULONG_PTR dwReserved3;
245 } DD_VIDEOPORT_LOCAL ;
246
247 /************************************************************************/
248 /* IDirectDrawSurface callbacks */
249 /************************************************************************/
250
251 typedef struct _DD_LOCKDATA
252 {
253 PDD_DIRECTDRAW_GLOBAL lpDD;
254 PDD_SURFACE_LOCAL lpDDSurface;
255 DWORD bHasRect;
256 RECTL rArea;
257 LPVOID lpSurfData;
258 HRESULT ddRVal;
259 PVOID Lock;
260 DWORD dwFlags;
261 FLATPTR fpProcess;
262 } DD_LOCKDATA, *PDD_LOCKDATA;
263 typedef DWORD (STDCALL *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
264
265
266 typedef struct _DD_UNLOCKDATA
267 {
268 PDD_DIRECTDRAW_GLOBAL lpDD;
269 PDD_SURFACE_LOCAL lpDDSurface;
270 HRESULT ddRVal;
271 PVOID Unlock;
272 } DD_UNLOCKDATA, *PDD_UNLOCKDATA;
273 typedef DWORD (STDCALL *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
274
275 #define DDABLT_SRCOVERDEST 0x00000001
276 #define DDBLT_AFLAGS 0x80000000
277
278
279
280 typedef struct _DD_BLTDATA
281 {
282 PDD_DIRECTDRAW_GLOBAL lpDD;
283 PDD_SURFACE_LOCAL lpDDDestSurface;
284 RECTL rDest;
285 PDD_SURFACE_LOCAL lpDDSrcSurface;
286 RECTL rSrc;
287 DWORD dwFlags;
288 DWORD dwROPFlags;
289 DDBLTFX bltFX;
290 HRESULT ddRVal;
291 PVOID Blt;
292 BOOL IsClipped;
293 RECTL rOrigDest;
294 RECTL rOrigSrc;
295 DWORD dwRectCnt;
296 LPRECT prDestRects;
297 DWORD dwAFlags;
298 DDARGB ddargbScaleFactors;
299 } DD_BLTDATA, *PDD_BLTDATA;
300 typedef DWORD (STDCALL *PDD_SURFCB_BLT)(PDD_BLTDATA);
301
302 typedef struct _DD_UPDATEOVERLAYDATA
303 {
304 PDD_DIRECTDRAW_GLOBAL lpDD;
305 PDD_SURFACE_LOCAL lpDDDestSurface;
306 RECTL rDest;
307 PDD_SURFACE_LOCAL lpDDSrcSurface;
308 RECTL rSrc;
309 DWORD dwFlags;
310 DDOVERLAYFX overlayFX;
311 HRESULT ddRVal;
312 PVOID UpdateOverlay;
313 } DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
314 typedef DWORD (STDCALL *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
315
316 typedef struct _DD_SETOVERLAYPOSITIONDATA
317 {
318 PDD_DIRECTDRAW_GLOBAL lpDD;
319 PDD_SURFACE_LOCAL lpDDSrcSurface;
320 PDD_SURFACE_LOCAL lpDDDestSurface;
321 LONG lXPos;
322 LONG lYPos;
323 HRESULT ddRVal;
324 PVOID SetOverlayPosition;
325 } DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
326 typedef DWORD (STDCALL *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
327
328 typedef struct _DD_SETPALETTEDATA
329 {
330 PDD_DIRECTDRAW_GLOBAL lpDD;
331 PDD_SURFACE_LOCAL lpDDSurface;
332 PDD_PALETTE_GLOBAL lpDDPalette;
333 HRESULT ddRVal;
334 PVOID SetPalette;
335 BOOL Attach;
336 } DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
337 typedef DWORD (STDCALL *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
338
339 typedef struct _DD_FLIPDATA
340 {
341 PDD_DIRECTDRAW_GLOBAL lpDD;
342 PDD_SURFACE_LOCAL lpSurfCurr;
343 PDD_SURFACE_LOCAL lpSurfTarg;
344 DWORD dwFlags;
345 HRESULT ddRVal;
346 PVOID Flip;
347 PDD_SURFACE_LOCAL lpSurfCurrLeft;
348 PDD_SURFACE_LOCAL lpSurfTargLeft;
349 } DD_FLIPDATA, *PDD_FLIPDATA;
350 typedef DWORD (STDCALL *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
351
352 typedef struct _DD_DESTROYSURFACEDATA
353 {
354 PDD_DIRECTDRAW_GLOBAL lpDD;
355 PDD_SURFACE_LOCAL lpDDSurface;
356 HRESULT ddRVal;
357 PVOID DestroySurface;
358 } DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
359 typedef DWORD (STDCALL *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
360
361 typedef struct _DD_SETCLIPLISTDATA
362 {
363 PDD_DIRECTDRAW_GLOBAL lpDD;
364 PDD_SURFACE_LOCAL lpDDSurface;
365 HRESULT ddRVal;
366 PVOID SetClipList;
367 } DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
368 typedef DWORD (STDCALL *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
369
370 typedef struct _DD_ADDATTACHEDSURFACEDATA
371 {
372 PDD_DIRECTDRAW_GLOBAL lpDD;
373 PDD_SURFACE_LOCAL lpDDSurface;
374 PDD_SURFACE_LOCAL lpSurfAttached;
375 HRESULT ddRVal;
376 PVOID AddAttachedSurface;
377 } DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
378 typedef DWORD (STDCALL *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
379
380 typedef struct _DD_SETCOLORKEYDATA
381 {
382 PDD_DIRECTDRAW_GLOBAL lpDD;
383 PDD_SURFACE_LOCAL lpDDSurface;
384 DWORD dwFlags;
385 DDCOLORKEY ckNew;
386 HRESULT ddRVal;
387 PVOID SetColorKey;
388 } DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
389 typedef DWORD (STDCALL *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
390
391 typedef struct _DD_GETBLTSTATUSDATA
392 {
393 PDD_DIRECTDRAW_GLOBAL lpDD;
394 PDD_SURFACE_LOCAL lpDDSurface;
395 DWORD dwFlags;
396 HRESULT ddRVal;
397 PVOID GetBltStatus;
398 } DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
399 typedef DWORD (STDCALL *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
400
401 typedef struct _DD_GETFLIPSTATUSDATA
402 {
403 PDD_DIRECTDRAW_GLOBAL lpDD;
404 PDD_SURFACE_LOCAL lpDDSurface;
405 DWORD dwFlags;
406 HRESULT ddRVal;
407 PVOID GetFlipStatus;
408 } DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
409 typedef DWORD (STDCALL *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
410
411 typedef struct DD_SURFACECALLBACKS
412 {
413 DWORD dwSize;
414 DWORD dwFlags;
415 PDD_SURFCB_DESTROYSURFACE DestroySurface;
416 PDD_SURFCB_FLIP Flip;
417 PDD_SURFCB_SETCLIPLIST SetClipList;
418 PDD_SURFCB_LOCK Lock;
419 PDD_SURFCB_UNLOCK Unlock;
420 PDD_SURFCB_BLT Blt;
421 PDD_SURFCB_SETCOLORKEY SetColorKey;
422 PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
423 PDD_SURFCB_GETBLTSTATUS GetBltStatus;
424 PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
425 PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
426 PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
427 PVOID reserved4;
428 PDD_SURFCB_SETPALETTE SetPalette;
429 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
430
431
432 #define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
433 #define DDHAL_SURFCB32_FLIP 0x00000002
434 #define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
435 #define DDHAL_SURFCB32_LOCK 0x00000008
436 #define DDHAL_SURFCB32_UNLOCK 0x00000010
437 #define DDHAL_SURFCB32_BLT 0x00000020
438 #define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
439 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
440 #define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
441 #define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
442 #define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
443 #define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
444 #define DDHAL_SURFCB32_RESERVED4 0x00001000
445 #define DDHAL_SURFCB32_SETPALETTE 0x00002000
446 /************************************************************************/
447 /* IDirectDraw callbacks */
448 /************************************************************************/
449
450 typedef struct _DD_CREATESURFACEDATA
451 {
452 PDD_DIRECTDRAW_GLOBAL lpDD;
453 DDSURFACEDESC *lpDDSurfaceDesc;
454 PDD_SURFACE_LOCAL *lplpSList;
455 DWORD dwSCnt;
456 HRESULT ddRVal;
457 PVOID CreateSurface;
458 } DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
459 typedef DWORD (STDCALL *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
460
461 typedef struct _DD_DRVSETCOLORKEYDATA
462 {
463 PDD_SURFACE_LOCAL lpDDSurface;
464 DWORD dwFlags;
465 DDCOLORKEY ckNew;
466 HRESULT ddRVal;
467 PVOID SetColorKey;
468 } DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
469 typedef DWORD (STDCALL *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
470
471 #define DDWAITVB_I_TESTVB 0x80000006
472
473 typedef struct _DD_WAITFORVERTICALBLANKDATA
474 {
475 PDD_DIRECTDRAW_GLOBAL lpDD;
476 DWORD dwFlags;
477 DWORD bIsInVB;
478 DWORD hEvent;
479 HRESULT ddRVal;
480 PVOID WaitForVerticalBlank;
481 } DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
482 typedef DWORD (STDCALL *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
483
484 typedef struct _DD_CANCREATESURFACEDATA
485 {
486 PDD_DIRECTDRAW_GLOBAL lpDD;
487 DDSURFACEDESC *lpDDSurfaceDesc;
488 DWORD bIsDifferentPixelFormat;
489 HRESULT ddRVal;
490 PVOID CanCreateSurface;
491 } DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
492 typedef DWORD (STDCALL *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
493
494 typedef struct _DD_CREATEPALETTEDATA
495 {
496 PDD_DIRECTDRAW_GLOBAL lpDD;
497 PDD_PALETTE_GLOBAL lpDDPalette;
498 LPPALETTEENTRY lpColorTable;
499 HRESULT ddRVal;
500 PVOID CreatePalette;
501 BOOL is_excl;
502 } DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
503 typedef DWORD (STDCALL *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
504
505 typedef struct _DD_GETSCANLINEDATA
506 {
507 PDD_DIRECTDRAW_GLOBAL lpDD;
508 DWORD dwScanLine;
509 HRESULT ddRVal;
510 PVOID GetScanLine;
511 } DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
512 typedef DWORD (STDCALL *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
513
514 typedef struct _DD_MAPMEMORYDATA
515 {
516 PDD_DIRECTDRAW_GLOBAL lpDD;
517 BOOL bMap;
518 HANDLE hProcess;
519 FLATPTR fpProcess;
520 HRESULT ddRVal;
521 } DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
522 typedef DWORD (STDCALL *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
523
524
525
526
527 typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
528 typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
529
530 typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
531 typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
532
533 typedef struct DD_CALLBACKS
534 {
535 DWORD dwSize;
536 DWORD dwFlags;
537 PDD_DESTROYDRIVER DestroyDriver;
538 PDD_CREATESURFACE CreateSurface;
539 PDD_SETCOLORKEY SetColorKey;
540 PDD_SETMODE SetMode;
541 PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
542 PDD_CANCREATESURFACE CanCreateSurface;
543 PDD_CREATEPALETTE CreatePalette;
544 PDD_GETSCANLINE GetScanLine;
545 PDD_MAPMEMORY MapMemory;
546 } DD_CALLBACKS, *PDD_CALLBACKS;
547
548
549
550 #define DDHAL_CB32_DESTROYDRIVER 0x00000001l
551 #define DDHAL_CB32_CREATESURFACE 0x00000002l
552 #define DDHAL_CB32_SETCOLORKEY 0x00000004l
553 #define DDHAL_CB32_SETMODE 0x00000008l
554 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
555 #define DDHAL_CB32_CANCREATESURFACE 0x00000020l
556 #define DDHAL_CB32_CREATEPALETTE 0x00000040l
557 #define DDHAL_CB32_GETSCANLINE 0x00000080l
558 #define DDHAL_CB32_MAPMEMORY 0x80000000l
559
560 typedef struct _DD_GETAVAILDRIVERMEMORYDATA
561 {
562 PDD_DIRECTDRAW_GLOBAL lpDD;
563 DDSCAPS DDSCaps;
564 DWORD dwTotal;
565 DWORD dwFree;
566 HRESULT ddRVal;
567 PVOID GetAvailDriverMemory;
568 } DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
569 typedef DWORD (STDCALL *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
570
571 typedef struct _DD_MISCELLANEOUSCALLBACKS
572 {
573 DWORD dwSize;
574 DWORD dwFlags;
575 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
576 } DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
577
578 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
579
580 typedef DWORD (STDCALL *PDD_ALPHABLT)(PDD_BLTDATA);
581
582 typedef struct _DD_CREATESURFACEEXDATA
583 {
584 DWORD dwFlags;
585 PDD_DIRECTDRAW_LOCAL lpDDLcl;
586 PDD_SURFACE_LOCAL lpDDSLcl;
587 HRESULT ddRVal;
588 } DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
589 typedef DWORD (STDCALL *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
590
591 typedef struct _DD_GETDRIVERSTATEDATA
592 {
593 DWORD dwFlags;
594 union
595 {
596 PDD_DIRECTDRAW_GLOBAL lpDD;
597 DWORD_PTR dwhContext;
598 };
599 LPDWORD lpdwStates;
600 DWORD dwLength;
601 HRESULT ddRVal;
602 } DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
603 typedef DWORD (STDCALL *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
604
605 typedef struct _DD_DESTROYDDLOCALDATA
606 {
607 DWORD dwFlags;
608 PDD_DIRECTDRAW_LOCAL pDDLcl;
609 HRESULT ddRVal;
610 } DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
611 typedef DWORD (STDCALL *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
612
613
614
615 typedef struct _DD_MISCELLANEOUS2CALLBACKS
616 {
617 DWORD dwSize;
618 DWORD dwFlags;
619 PDD_ALPHABLT AlphaBlt;
620 PDD_CREATESURFACEEX CreateSurfaceEx;
621 PDD_GETDRIVERSTATE GetDriverState;
622 PDD_DESTROYDDLOCAL DestroyDDLocal;
623 } DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
624
625
626 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
627 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
628 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
629 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
630
631
632 typedef struct _DD_FREEDRIVERMEMORYDATA
633 {
634 PDD_DIRECTDRAW_GLOBAL lpDD;
635 PDD_SURFACE_LOCAL lpDDSurface;
636 HRESULT ddRVal;
637 PVOID FreeDriverMemory;
638 } DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
639 typedef DWORD (STDCALL *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
640
641 typedef struct _DD_SETEXCLUSIVEMODEDATA
642 {
643 PDD_DIRECTDRAW_GLOBAL lpDD;
644 DWORD dwEnterExcl;
645 DWORD dwReserved;
646 HRESULT ddRVal;
647 PVOID SetExclusiveMode;
648 } DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
649 typedef DWORD (STDCALL *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
650
651 typedef struct _DD_FLIPTOGDISURFACEDATA
652 {
653 PDD_DIRECTDRAW_GLOBAL lpDD;
654 DWORD dwToGDI;
655 DWORD dwReserved;
656 HRESULT ddRVal;
657 PVOID FlipToGDISurface;
658 } DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
659 typedef DWORD (STDCALL *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
660
661
662
663 typedef struct _DD_NTCALLBACKS
664 {
665 DWORD dwSize;
666 DWORD dwFlags;
667 PDD_FREEDRIVERMEMORY FreeDriverMemory;
668 PDD_SETEXCLUSIVEMODE SetExclusiveMode;
669 PDD_FLIPTOGDISURFACE FlipToGDISurface;
670 } DD_NTCALLBACKS, *PDD_NTCALLBACKS;
671
672
673 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
674 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
675 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
676
677 /************************************************************************/
678 /* IDirectDrawPalette callbacks */
679 /************************************************************************/
680
681 typedef struct _DD_DESTROYPALETTEDATA
682 {
683 PDD_DIRECTDRAW_GLOBAL lpDD;
684 PDD_PALETTE_GLOBAL lpDDPalette;
685 HRESULT ddRVal;
686 PVOID DestroyPalette;
687 } DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
688 typedef DWORD (STDCALL *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
689
690 typedef struct _DD_SETENTRIESDATA
691 {
692 PDD_DIRECTDRAW_GLOBAL lpDD;
693 PDD_PALETTE_GLOBAL lpDDPalette;
694 DWORD dwBase;
695 DWORD dwNumEntries;
696 LPPALETTEENTRY lpEntries;
697 HRESULT ddRVal;
698 PVOID SetEntries;
699 } DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
700 typedef DWORD (STDCALL *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
701
702 typedef struct DD_PALETTECALLBACKS
703 {
704 DWORD dwSize;
705 DWORD dwFlags;
706 PDD_PALCB_DESTROYPALETTE DestroyPalette;
707 PDD_PALCB_SETENTRIES SetEntries;
708 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
709
710 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
711 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
712
713 /************************************************************************/
714 /* IDirectDrawVideoport callbacks */
715 /************************************************************************/
716
717 typedef struct _DD_CANCREATEVPORTDATA
718 {
719 PDD_DIRECTDRAW_LOCAL lpDD;
720 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
721 HRESULT ddRVal;
722 PVOID CanCreateVideoPort;
723 } DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
724 typedef DWORD (STDCALL *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
725
726 typedef struct _DD_CREATEVPORTDATA
727 {
728 PDD_DIRECTDRAW_LOCAL lpDD;
729 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
730 PDD_VIDEOPORT_LOCAL lpVideoPort;
731 HRESULT ddRVal;
732 PVOID CreateVideoPort;
733 } DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
734 typedef DWORD (STDCALL *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
735
736 typedef struct _DD_FLIPVPORTDATA
737 {
738 PDD_DIRECTDRAW_LOCAL lpDD;
739 PDD_VIDEOPORT_LOCAL lpVideoPort;
740 PDD_SURFACE_LOCAL lpSurfCurr;
741 PDD_SURFACE_LOCAL lpSurfTarg;
742 HRESULT ddRVal;
743 PVOID FlipVideoPort;
744 } DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
745 typedef DWORD (STDCALL *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
746
747 typedef struct _DD_GETVPORTBANDWIDTHDATA
748 {
749 PDD_DIRECTDRAW_LOCAL lpDD;
750 PDD_VIDEOPORT_LOCAL lpVideoPort;
751 LPDDPIXELFORMAT lpddpfFormat;
752 DWORD dwWidth;
753 DWORD dwHeight;
754 DWORD dwFlags;
755 LPDDVIDEOPORTBANDWIDTH lpBandwidth;
756 HRESULT ddRVal;
757 PVOID GetVideoPortBandwidth;
758 } DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
759 typedef DWORD (STDCALL *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
760
761 typedef struct _DD_GETVPORTINPUTFORMATDATA
762 {
763 PDD_DIRECTDRAW_LOCAL lpDD;
764 PDD_VIDEOPORT_LOCAL lpVideoPort;
765 DWORD dwFlags;
766 LPDDPIXELFORMAT lpddpfFormat;
767 DWORD dwNumFormats;
768 HRESULT ddRVal;
769 PVOID GetVideoPortInputFormats;
770 } DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
771 typedef DWORD (STDCALL *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
772
773 typedef struct _DD_GETVPORTOUTPUTFORMATDATA
774 {
775 PDD_DIRECTDRAW_LOCAL lpDD;
776 PDD_VIDEOPORT_LOCAL lpVideoPort;
777 DWORD dwFlags;
778 LPDDPIXELFORMAT lpddpfInputFormat;
779 LPDDPIXELFORMAT lpddpfOutputFormats;
780 DWORD dwNumFormats;
781 HRESULT ddRVal;
782 PVOID GetVideoPortInputFormats;
783 } DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
784 typedef DWORD (STDCALL *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
785
786 typedef struct _DD_GETVPORTFIELDDATA
787 {
788 PDD_DIRECTDRAW_LOCAL lpDD;
789 PDD_VIDEOPORT_LOCAL lpVideoPort;
790 BOOL bField;
791 HRESULT ddRVal;
792 PVOID GetVideoPortField;
793 } DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
794 typedef DWORD (STDCALL *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
795
796 typedef struct _DD_GETVPORTLINEDATA
797 {
798 PDD_DIRECTDRAW_LOCAL lpDD;
799 PDD_VIDEOPORT_LOCAL lpVideoPort;
800 DWORD dwLine;
801 HRESULT ddRVal;
802 PVOID GetVideoPortLine;
803 } DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
804 typedef DWORD (STDCALL *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
805
806 typedef struct _DD_GETVPORTCONNECTDATA
807 {
808 PDD_DIRECTDRAW_LOCAL lpDD;
809 DWORD dwPortId;
810 LPDDVIDEOPORTCONNECT lpConnect;
811 DWORD dwNumEntries;
812 HRESULT ddRVal;
813 PVOID GetVideoPortConnectInfo;
814 } DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
815 typedef DWORD (STDCALL *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
816
817 typedef struct _DD_DESTROYVPORTDATA
818 {
819 PDD_DIRECTDRAW_LOCAL lpDD;
820 PDD_VIDEOPORT_LOCAL lpVideoPort;
821 HRESULT ddRVal;
822 PVOID DestroyVideoPort;
823 } DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
824 typedef DWORD (STDCALL *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
825
826 typedef struct _DD_GETVPORTFLIPSTATUSDATA
827 {
828 PDD_DIRECTDRAW_LOCAL lpDD;
829 FLATPTR fpSurface;
830 HRESULT ddRVal;
831 PVOID GetVideoPortFlipStatus;
832 } DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
833 typedef DWORD (STDCALL *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
834
835
836
837 typedef struct _DD_UPDATEVPORTDATA
838 {
839 PDD_DIRECTDRAW_LOCAL lpDD;
840 PDD_VIDEOPORT_LOCAL lpVideoPort;
841 PDD_SURFACE_INT *lplpDDSurface;
842 PDD_SURFACE_INT *lplpDDVBISurface;
843 LPDDVIDEOPORTINFO lpVideoInfo;
844 DWORD dwFlags;
845 DWORD dwNumAutoflip;
846 DWORD dwNumVBIAutoflip;
847 HRESULT ddRVal;
848 PVOID UpdateVideoPort;
849 } DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
850 typedef DWORD (STDCALL *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
851
852 typedef struct _DD_WAITFORVPORTSYNCDATA
853 {
854 PDD_DIRECTDRAW_LOCAL lpDD;
855 PDD_VIDEOPORT_LOCAL lpVideoPort;
856 DWORD dwFlags;
857 DWORD dwLine;
858 DWORD dwTimeOut;
859 HRESULT ddRVal;
860 PVOID UpdateVideoPort;
861 } DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
862 typedef DWORD (STDCALL *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
863
864 typedef struct _DD_GETVPORTSIGNALDATA
865 {
866 PDD_DIRECTDRAW_LOCAL lpDD;
867 PDD_VIDEOPORT_LOCAL lpVideoPort;
868 DWORD dwStatus;
869 HRESULT ddRVal;
870 PVOID GetVideoSignalStatus;
871 } DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
872 typedef DWORD (STDCALL *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
873
874
875
876 typedef struct _DD_VPORTCOLORDATA
877 {
878 PDD_DIRECTDRAW_LOCAL lpDD;
879 PDD_VIDEOPORT_LOCAL lpVideoPort;
880 DWORD dwFlags;
881 LPDDCOLORCONTROL lpColorData;
882 HRESULT ddRVal;
883 PVOID ColorControl;
884 } DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
885 typedef DWORD (STDCALL *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
886
887
888 typedef struct DD_VIDEOPORTCALLBACKS
889 {
890 DWORD dwSize;
891 DWORD dwFlags;
892 PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
893 PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
894 PDD_VPORTCB_FLIP FlipVideoPort;
895 PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
896 PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
897 PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
898 PVOID lpReserved1;
899 PDD_VPORTCB_GETFIELD GetVideoPortField;
900 PDD_VPORTCB_GETLINE GetVideoPortLine;
901 PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
902 PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
903 PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
904 PDD_VPORTCB_UPDATE UpdateVideoPort;
905 PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
906 PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
907 PDD_VPORTCB_COLORCONTROL ColorControl;
908 } DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
909
910 #define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
911 #define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
912 #define DDHAL_VPORT32_FLIP 0x00000004
913 #define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
914 #define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
915 #define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
916 #define DDHAL_VPORT32_GETFIELD 0x00000080
917 #define DDHAL_VPORT32_GETLINE 0x00000100
918 #define DDHAL_VPORT32_GETCONNECT 0x00000200
919 #define DDHAL_VPORT32_DESTROY 0x00000400
920 #define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
921 #define DDHAL_VPORT32_UPDATE 0x00001000
922 #define DDHAL_VPORT32_WAITFORSYNC 0x00002000
923 #define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
924 #define DDHAL_VPORT32_COLORCONTROL 0x00008000
925
926
927 /************************************************************************/
928 /* IDirectDrawColorControl callbacks */
929 /************************************************************************/
930
931 #define DDRAWI_GETCOLOR 0x0001
932 #define DDRAWI_SETCOLOR 0x0002
933
934 typedef struct _DD_COLORCONTROLDATA
935 {
936 PDD_DIRECTDRAW_GLOBAL lpDD;
937 PDD_SURFACE_LOCAL lpDDSurface;
938 LPDDCOLORCONTROL lpColorData;
939 DWORD dwFlags;
940 HRESULT ddRVal;
941 PVOID ColorControl;
942 } DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
943 typedef DWORD (STDCALL *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
944
945
946
947 typedef struct _DD_COLORCONTROLCALLBACKS
948 {
949 DWORD dwSize;
950 DWORD dwFlags;
951 PDD_COLORCB_COLORCONTROL ColorControl;
952 } DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
953
954 #define DDHAL_COLOR_COLORCONTROL 0x00000001
955
956 /************************************************************************/
957 /* IDirectDrawVideo callbacks */
958 /************************************************************************/
959
960 typedef struct _DD_GETMOCOMPGUIDSDATA
961 {
962 PDD_DIRECTDRAW_LOCAL lpDD;
963 DWORD dwNumGuids;
964 GUID *lpGuids;
965 HRESULT ddRVal;
966 } DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
967 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
968
969 typedef struct _DD_GETMOCOMPFORMATSDATA
970 {
971 PDD_DIRECTDRAW_LOCAL lpDD;
972 GUID *lpGuid;
973 DWORD dwNumFormats;
974 LPDDPIXELFORMAT lpFormats;
975 HRESULT ddRVal;
976 } DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
977 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
978
979 typedef struct _DD_CREATEMOCOMPDATA
980 {
981 PDD_DIRECTDRAW_LOCAL lpDD;
982 PDD_MOTIONCOMP_LOCAL lpMoComp;
983 GUID *lpGuid;
984 DWORD dwUncompWidth;
985 DWORD dwUncompHeight;
986 DDPIXELFORMAT ddUncompPixelFormat;
987 LPVOID lpData;
988 DWORD dwDataSize;
989 HRESULT ddRVal;
990 } DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
991 typedef DWORD (STDCALL *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
992
993 typedef struct _DDCOMPBUFFERINFO
994 {
995 DWORD dwSize;
996 DWORD dwNumCompBuffers;
997 DWORD dwWidthToCreate;
998 DWORD dwHeightToCreate;
999 DWORD dwBytesToAllocate;
1000 DDSCAPS2 ddCompCaps;
1001 DDPIXELFORMAT ddPixelFormat;
1002 } DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
1003
1004 typedef struct _DD_GETMOCOMPCOMPBUFFDATA
1005 {
1006 PDD_DIRECTDRAW_LOCAL lpDD;
1007 GUID *lpGuid;
1008 DWORD dwWidth;
1009 DWORD dwHeight;
1010 DDPIXELFORMAT ddPixelFormat;
1011 DWORD dwNumTypesCompBuffs;
1012 LPDDCOMPBUFFERINFO lpCompBuffInfo;
1013 HRESULT ddRVal;
1014 } DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
1015 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
1016
1017 typedef struct _DD_GETINTERNALMOCOMPDATA
1018 {
1019 PDD_DIRECTDRAW_LOCAL lpDD;
1020 GUID *lpGuid;
1021 DWORD dwWidth;
1022 DWORD dwHeight;
1023 DDPIXELFORMAT ddPixelFormat;
1024 DWORD dwScratchMemAlloc;
1025 HRESULT ddRVal;
1026 } DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
1027 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
1028
1029 typedef struct _DD_BEGINMOCOMPFRAMEDATA
1030 {
1031 PDD_DIRECTDRAW_LOCAL lpDD;
1032 PDD_MOTIONCOMP_LOCAL lpMoComp;
1033 PDD_SURFACE_LOCAL lpDestSurface;
1034 DWORD dwInputDataSize;
1035 LPVOID lpInputData;
1036 DWORD dwOutputDataSize;
1037 LPVOID lpOutputData;
1038 HRESULT ddRVal;
1039 } DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
1040 typedef DWORD (STDCALL *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
1041
1042 typedef struct _DD_ENDMOCOMPFRAMEDATA
1043 {
1044 PDD_DIRECTDRAW_LOCAL lpDD;
1045 PDD_MOTIONCOMP_LOCAL lpMoComp;
1046 LPVOID lpInputData;
1047 DWORD dwInputDataSize;
1048 HRESULT ddRVal;
1049 } DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
1050 typedef DWORD (STDCALL *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
1051
1052 typedef struct _DDMOCOMPBUFFERINFO
1053 {
1054 DWORD dwSize;
1055 PDD_SURFACE_LOCAL lpCompSurface;
1056 DWORD dwDataOffset;
1057 DWORD dwDataSize;
1058 LPVOID lpPrivate;
1059 } DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
1060
1061 typedef struct _DD_RENDERMOCOMPDATA
1062 {
1063 PDD_DIRECTDRAW_LOCAL lpDD;
1064 PDD_MOTIONCOMP_LOCAL lpMoComp;
1065 DWORD dwNumBuffers;
1066 LPDDMOCOMPBUFFERINFO lpBufferInfo;
1067 DWORD dwFunction;
1068 LPVOID lpInputData;
1069 DWORD dwInputDataSize;
1070 LPVOID lpOutputData;
1071 DWORD dwOutputDataSize;
1072 HRESULT ddRVal;
1073 } DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
1074 typedef DWORD (STDCALL *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
1075
1076 #define DDMCQUERY_READ 0x00000001
1077
1078 typedef struct _DD_QUERYMOCOMPSTATUSDATA
1079 {
1080 PDD_DIRECTDRAW_LOCAL lpDD;
1081 PDD_MOTIONCOMP_LOCAL lpMoComp;
1082 PDD_SURFACE_LOCAL lpSurface;
1083 DWORD dwFlags;
1084 HRESULT ddRVal;
1085 } DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
1086 typedef DWORD (STDCALL *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
1087
1088 typedef struct _DD_DESTROYMOCOMPDATA
1089 {
1090 PDD_DIRECTDRAW_LOCAL lpDD;
1091 PDD_MOTIONCOMP_LOCAL lpMoComp;
1092 HRESULT ddRVal;
1093 } DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
1094 typedef DWORD (STDCALL *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
1095
1096
1097
1098 typedef struct DD_MOTIONCOMPCALLBACKS
1099 {
1100 DWORD dwSize;
1101 DWORD dwFlags;
1102 PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
1103 PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
1104 PDD_MOCOMPCB_CREATE CreateMoComp;
1105 PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
1106 PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
1107 PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
1108 PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
1109 PDD_MOCOMPCB_RENDER RenderMoComp;
1110 PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
1111 PDD_MOCOMPCB_DESTROY DestroyMoComp;
1112 } DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
1113
1114 #define DDHAL_MOCOMP32_GETGUIDS 0x00000001
1115 #define DDHAL_MOCOMP32_GETFORMATS 0x00000002
1116 #define DDHAL_MOCOMP32_CREATE 0x00000004
1117 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
1118 #define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
1119 #define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
1120 #define DDHAL_MOCOMP32_ENDFRAME 0x00000040
1121 #define DDHAL_MOCOMP32_RENDER 0x00000080
1122 #define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
1123 #define DDHAL_MOCOMP32_DESTROY 0x00000200
1124
1125 /************************************************************************/
1126 /* D3D buffer callbacks */
1127 /************************************************************************/
1128
1129 typedef struct _DD_D3DBUFCALLBACKS
1130 {
1131 DWORD dwSize;
1132 DWORD dwFlags;
1133 PDD_CANCREATESURFACE CanCreateD3DBuffer;
1134 PDD_CREATESURFACE CreateD3DBuffer;
1135 PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
1136 PDD_SURFCB_LOCK LockD3DBuffer;
1137 PDD_SURFCB_UNLOCK UnlockD3DBuffer;
1138 } DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
1139
1140 /************************************************************************/
1141 /* DdGetDriverInfo callback */
1142 /************************************************************************/
1143
1144 typedef struct _DD_GETDRIVERINFODATA
1145 {
1146 // Input:
1147 PVOID dhpdev;
1148 DWORD dwSize;
1149 DWORD dwFlags;
1150 GUID guidInfo;
1151 DWORD dwExpectedSize;
1152 PVOID lpvData;
1153 // Output:
1154 DWORD dwActualSize;
1155 HRESULT ddRVal;
1156 } DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
1157 typedef DWORD (STDCALL *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
1158
1159
1160
1161
1162 /************************************************************************/
1163 /* Driver info structures */
1164 /************************************************************************/
1165
1166 typedef struct _DDNTCORECAPS
1167 {
1168 DWORD dwSize;
1169 DWORD dwCaps;
1170 DWORD dwCaps2;
1171 DWORD dwCKeyCaps;
1172 DWORD dwFXCaps;
1173 DWORD dwFXAlphaCaps;
1174 DWORD dwPalCaps;
1175 DWORD dwSVCaps;
1176 DWORD dwAlphaBltConstBitDepths;
1177 DWORD dwAlphaBltPixelBitDepths;
1178 DWORD dwAlphaBltSurfaceBitDepths;
1179 DWORD dwAlphaOverlayConstBitDepths;
1180 DWORD dwAlphaOverlayPixelBitDepths;
1181 DWORD dwAlphaOverlaySurfaceBitDepths;
1182 DWORD dwZBufferBitDepths;
1183 DWORD dwVidMemTotal;
1184 DWORD dwVidMemFree;
1185 DWORD dwMaxVisibleOverlays;
1186 DWORD dwCurrVisibleOverlays;
1187 DWORD dwNumFourCCCodes;
1188 DWORD dwAlignBoundarySrc;
1189 DWORD dwAlignSizeSrc;
1190 DWORD dwAlignBoundaryDest;
1191 DWORD dwAlignSizeDest;
1192 DWORD dwAlignStrideAlign;
1193 DWORD dwRops[DD_ROP_SPACE];
1194 DDSCAPS ddsCaps;
1195 DWORD dwMinOverlayStretch;
1196 DWORD dwMaxOverlayStretch;
1197 DWORD dwMinLiveVideoStretch;
1198 DWORD dwMaxLiveVideoStretch;
1199 DWORD dwMinHwCodecStretch;
1200 DWORD dwMaxHwCodecStretch;
1201 DWORD dwReserved1;
1202 DWORD dwReserved2;
1203 DWORD dwReserved3;
1204 DWORD dwSVBCaps;
1205 DWORD dwSVBCKeyCaps;
1206 DWORD dwSVBFXCaps;
1207 DWORD dwSVBRops[DD_ROP_SPACE];
1208 DWORD dwVSBCaps;
1209 DWORD dwVSBCKeyCaps;
1210 DWORD dwVSBFXCaps;
1211 DWORD dwVSBRops[DD_ROP_SPACE];
1212 DWORD dwSSBCaps;
1213 DWORD dwSSBCKeyCaps;
1214 DWORD dwSSBFXCaps;
1215 DWORD dwSSBRops[DD_ROP_SPACE];
1216 DWORD dwMaxVideoPorts;
1217 DWORD dwCurrVideoPorts;
1218 DWORD dwSVBCaps2;
1219 } DDNTCORECAPS, *PDDNTCORECAPS;
1220
1221
1222 typedef struct _DD_HALINFO_V4
1223 {
1224 DWORD dwSize;
1225 VIDEOMEMORYINFO vmiData;
1226 DDNTCORECAPS ddCaps;
1227 PDD_GETDRIVERINFO GetDriverInfo;
1228 DWORD dwFlags;
1229 } DD_HALINFO_V4, *PDD_HALINFO_V4;
1230
1231 typedef struct _DD_HALINFO
1232 {
1233 DWORD dwSize;
1234 VIDEOMEMORYINFO vmiData;
1235 DDNTCORECAPS ddCaps;
1236 PDD_GETDRIVERINFO GetDriverInfo;
1237 DWORD dwFlags;
1238 PVOID lpD3DGlobalDriverData;
1239 PVOID lpD3DHALCallbacks;
1240 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
1241 } DD_HALINFO, *PDD_HALINFO;
1242
1243
1244
1245 typedef struct _DD_NONLOCALVIDMEMCAPS
1246 {
1247 DWORD dwSize;
1248 DWORD dwNLVBCaps;
1249 DWORD dwNLVBCaps2;
1250 DWORD dwNLVBCKeyCaps;
1251 DWORD dwNLVBFXCaps;
1252 DWORD dwNLVBRops[DD_ROP_SPACE];
1253 } DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
1254
1255
1256
1257 typedef struct _DD_MORESURFACECAPS
1258 {
1259 DWORD dwSize;
1260 DDSCAPSEX ddsCapsMore;
1261 struct tagNTExtendedHeapRestrictions
1262 {
1263 DDSCAPSEX ddsCapsEx;
1264 DDSCAPSEX ddsCapsExAlt;
1265 } ddsExtendedHeapRestrictions[1];
1266 } DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
1267
1268
1269 /*********************************************************/
1270 /* Kernel Callbacks */
1271 /*********************************************************/
1272 typedef struct _DD_SYNCSURFACEDATA
1273 {
1274 PDD_DIRECTDRAW_LOCAL lpDD;
1275 PDD_SURFACE_LOCAL lpDDSurface;
1276 DWORD dwSurfaceOffset;
1277 ULONG_PTR fpLockPtr;
1278 LONG lPitch;
1279 DWORD dwOverlayOffset;
1280 ULONG dwDriverReserved1;
1281 ULONG dwDriverReserved2;
1282 ULONG dwDriverReserved3;
1283 ULONG dwDriverReserved4;
1284 HRESULT ddRVal;
1285 } DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
1286 typedef DWORD (STDCALL *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
1287
1288 typedef struct _DD_SYNCVIDEOPORTDATA
1289 {
1290 PDD_DIRECTDRAW_LOCAL lpDD;
1291 PDD_VIDEOPORT_LOCAL lpVideoPort;
1292 DWORD dwOriginOffset;
1293 DWORD dwHeight;
1294 DWORD dwVBIHeight;
1295 ULONG dwDriverReserved1;
1296 ULONG dwDriverReserved2;
1297 ULONG dwDriverReserved3;
1298 HRESULT ddRVal;
1299 } DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
1300 typedef DWORD (STDCALL *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
1301
1302
1303 typedef struct DD_NTPRIVATEDRIVERCAPS
1304 {
1305 DWORD dwSize;
1306 DWORD dwPrivateCaps;
1307 } DD_NTPRIVATEDRIVERCAPS;
1308
1309 typedef struct _DD_UPDATENONLOCALHEAPDATA
1310 {
1311 PDD_DIRECTDRAW_GLOBAL lpDD;
1312 DWORD dwHeap;
1313 FLATPTR fpGARTLin;
1314 FLATPTR fpGARTDev;
1315 ULONG_PTR ulPolicyMaxBytes;
1316 HRESULT ddRVal;
1317 VOID* UpdateNonLocalHeap;
1318 } DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
1319
1320 typedef struct _DD_STEREOMODE
1321 {
1322 DWORD dwSize;
1323 DWORD dwHeight;
1324 DWORD dwWidth;
1325 DWORD dwBpp;
1326 DWORD dwRefreshRate;
1327 BOOL bSupported;
1328 } DD_STEREOMODE, *PDD_STEREOMODE;
1329
1330 typedef struct _DD_MORECAPS
1331 {
1332 DWORD dwSize;
1333 DWORD dwAlphaCaps;
1334 DWORD dwSVBAlphaCaps;
1335 DWORD dwVSBAlphaCaps;
1336 DWORD dwSSBAlphaCaps;
1337 DWORD dwFilterCaps;
1338 DWORD dwSVBFilterCaps;
1339 DWORD dwVSBFilterCaps;
1340 DWORD dwSSBFilterCaps;
1341 } DD_MORECAPS, *PDD_MORECAPS;
1342
1343 typedef struct _DD_CLIPPER_GLOBAL
1344 {
1345 ULONG_PTR dwReserved1;
1346 } DD_CLIPPER_GLOBAL;
1347
1348 typedef struct _DD_CLIPPER_LOCAL
1349 {
1350 ULONG_PTR dwReserved1;
1351 } DD_CLIPPER_LOCAL;
1352
1353 typedef struct _DD_PALETTE_LOCAL
1354 {
1355 ULONG dwReserved0;
1356 ULONG_PTR dwReserved1;
1357 } DD_PALETTE_LOCAL;
1358
1359
1360 typedef struct DD_KERNELCALLBACKS
1361 {
1362 DWORD dwSize;
1363 DWORD dwFlags;
1364 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData;
1365 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
1366 } DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
1367
1368
1369 #define MAX_AUTOFLIP_BUFFERS 10
1370 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
1371 #define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3
1372 #define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4
1373 #define DDPF_D3DFORMAT 0x00200000l
1374 #define D3DFORMAT_OP_TEXTURE 0x00000001L
1375 #define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
1376 #define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
1377 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
1378 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
1379 #define D3DFORMAT_OP_ZSTENCIL 0x00000040L
1380 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
1381 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
1382 #define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
1383 #define D3DFORMAT_OP_3DACCELERATION 0x00000800L
1384 #define D3DFORMAT_OP_PIXELSIZE 0x00001000L
1385 #define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
1386 #define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
1387 #define D3DFORMAT_OP_SRGBREAD 0x00008000L
1388 #define D3DFORMAT_OP_BUMPMAP 0x00010000L
1389 #define D3DFORMAT_OP_DMAP 0x00020000L
1390 #define D3DFORMAT_OP_NOFILTER 0x00040000L
1391 #define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
1392 #define D3DFORMAT_OP_SRGBWRITE 0x00100000L
1393 #define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
1394 #define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
1395 #define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
1396 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
1397 #define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
1398 #define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
1399
1400
1401 #define VIDMEM_ISLINEAR 0x00000001l
1402 #define VIDMEM_ISRECTANGULAR 0x00000002l
1403 #define VIDMEM_ISHEAP 0x00000004l
1404 #define VIDMEM_ISNONLOCAL 0x00000008l
1405 #define VIDMEM_ISWC 0x00000010l
1406 #define VIDMEM_HEAPDISABLED 0x00000020l
1407
1408 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1409
1410 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1411 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1412
1413 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1414 #define DDHAL_DRIVER_HANDLED 0x00000001l
1415 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
1416
1417 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
1418 #define DDRAWISURF_HASPIXELFORMAT 0x00002000L
1419 #define DDRAWISURF_HASOVERLAYDATA 0x00004000L
1420 #define DDRAWISURF_FRONTBUFFER 0x04000000L
1421 #define DDRAWISURF_BACKBUFFER 0x08000000L
1422 #define DDRAWISURF_INVALID 0x10000000L
1423 #define DDRAWISURF_DRIVERMANAGED 0x40000000L
1424
1425 #define ROP_HAS_SOURCE 0x00000001l
1426 #define ROP_HAS_PATTERN 0x00000002l
1427 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
1428
1429 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
1430 #define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
1431 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
1432 #define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
1433 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
1434
1435 #define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF
1436 #define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF
1437 #define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF
1438 #define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF
1439 #define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
1440
1441 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1442 #define DDHALINFO_MODEXILLEGAL 0x00000002
1443 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1444 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1445
1446 #define DDRAWIVPORT_ON 0x00000001
1447 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1448 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1449
1450 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1451 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1452 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
1453
1454 #define DDRAWI_VPORTSTART 0x0001
1455 #define DDRAWI_VPORTSTOP 0x0002
1456 #define DDRAWI_VPORTUPDATE 0x0003
1457 #define DDRAWI_VPORTGETCOLOR 0x0001
1458 #define DDRAWI_VPORTSETCOLOR 0x0002
1459
1460
1461 #ifdef __cplusplus
1462 } /* extern "C" */
1463 #endif
1464
1465 #endif /* GUID_DEFS_ONLY */
1466
1467 #endif /* __DD_INCLUDED__ */