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