2 * DirectDraw NT driver interface
5 #ifndef __DD_INCLUDED__
6 #define __DD_INCLUDED__
8 /* Helper macro to enable gcc's extension. */
9 #ifndef __GNU_EXTENSION
11 #define __GNU_EXTENSION __extension__
13 #define __GNU_EXTENSION
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);
43 #ifndef GUID_DEFS_ONLY
45 #ifndef _NO_DDRAWINT_NO_COM
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))) )
68 #ifndef FLATPTR_DEFINED
69 typedef ULONG_PTR FLATPTR
;
70 #define FLATPTR_DEFINED
73 typedef struct _DD_VIDEOPORT_LOCAL
*PDD_VIDEOPORT_LOCAL
;
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
84 /************************************************************************/
85 /* Video memory info structures */
86 /************************************************************************/
88 typedef struct _VIDEOMEMORY
101 struct _VMEMHEAP
*lpHeap
;
104 } VIDEOMEMORY
, *PVIDEOMEMORY
;
106 typedef struct _VIDEOMEMORYINFO
110 DWORD dwDisplayWidth
;
111 DWORD dwDisplayHeight
;
113 DDPIXELFORMAT ddpfDisplay
;
114 DWORD dwOffscreenAlign
;
115 DWORD dwOverlayAlign
;
116 DWORD dwTextureAlign
;
117 DWORD dwZBufferAlign
;
121 typedef VIDEOMEMORYINFO
*LPVIDEOMEMORYINFO
;
123 typedef struct _DD_DIRECTDRAW_GLOBAL
126 ULONG_PTR dwReserved1
;
127 ULONG_PTR dwReserved2
;
128 LPDDVIDEOPORTCAPS lpDDVideoPortCaps
;
129 } DD_DIRECTDRAW_GLOBAL
, *PDD_DIRECTDRAW_GLOBAL
;
131 typedef struct _DD_DIRECTDRAW_LOCAL
133 PDD_DIRECTDRAW_GLOBAL lpGbl
;
134 } DD_DIRECTDRAW_LOCAL
, *PDD_DIRECTDRAW_LOCAL
;
137 typedef struct _DD_SURFACE_GLOBAL
139 __GNU_EXTENSION
union
145 __GNU_EXTENSION
union
147 PVIDEOMEMORY lpVidMemHeap
;
153 __GNU_EXTENSION
union
162 ULONG_PTR dwReserved1
;
163 DDPIXELFORMAT ddpfSurface
;
164 FLATPTR fpHeapOffset
;
165 HANDLE hCreatorProcess
;
166 } DD_SURFACE_GLOBAL
, *PDD_SURFACE_GLOBAL
;
168 typedef struct _DD_SURFACE_MORE
171 PDD_VIDEOPORT_LOCAL lpVideoPort
;
172 DWORD dwOverlayFlags
;
174 DWORD dwSurfaceHandle
;
175 } DD_SURFACE_MORE
, *PDD_SURFACE_MORE
;
177 typedef struct _DD_ATTACHLIST
*PDD_ATTACHLIST
;
179 typedef struct _DD_SURFACE_LOCAL
181 PDD_SURFACE_GLOBAL lpGbl
;
184 ULONG_PTR dwReserved1
;
185 __GNU_EXTENSION
union
187 DDCOLORKEY ddckCKSrcOverlay
;
188 DDCOLORKEY ddckCKSrcBlt
;
190 __GNU_EXTENSION
union
192 DDCOLORKEY ddckCKDestOverlay
;
193 DDCOLORKEY ddckCKDestBlt
;
195 PDD_SURFACE_MORE lpSurfMore
;
196 PDD_ATTACHLIST lpAttachList
;
197 PDD_ATTACHLIST lpAttachListFrom
;
199 } DD_SURFACE_LOCAL
, *PDD_SURFACE_LOCAL
;
201 typedef struct _DD_ATTACHLIST
203 PDD_ATTACHLIST lpLink
;
204 PDD_SURFACE_LOCAL lpAttached
;
207 typedef struct _DD_SURFACE_INT
209 PDD_SURFACE_LOCAL lpLcl
;
210 } DD_SURFACE_INT
, *PDD_SURFACE_INT
;
212 /************************************************************************/
213 /* DDI representation of the DirectDrawPalette object */
214 /************************************************************************/
216 typedef struct _DD_PALETTE_GLOBAL
219 } DD_PALETTE_GLOBAL
, *PDD_PALETTE_GLOBAL
;
221 /************************************************************************/
222 /* DDI representation of the DirectDrawVideo object */
223 /************************************************************************/
227 PDD_DIRECTDRAW_LOCAL lpDD
;
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
;
241 typedef struct _DD_VIDEOPORT_LOCAL
243 PDD_DIRECTDRAW_LOCAL lpDD
;
244 DDVIDEOPORTDESC ddvpDesc
;
245 DDVIDEOPORTINFO ddvpInfo
;
246 PDD_SURFACE_INT lpSurface
;
247 PDD_SURFACE_INT lpVBISurface
;
249 DWORD dwNumVBIAutoflip
;
250 ULONG_PTR dwReserved1
;
251 ULONG_PTR dwReserved2
;
252 ULONG_PTR dwReserved3
;
253 } DD_VIDEOPORT_LOCAL
;
255 /************************************************************************/
256 /* IDirectDrawSurface callbacks */
257 /************************************************************************/
259 typedef struct _DD_LOCKDATA
261 PDD_DIRECTDRAW_GLOBAL lpDD
;
262 PDD_SURFACE_LOCAL lpDDSurface
;
270 } DD_LOCKDATA
, *PDD_LOCKDATA
;
271 typedef DWORD (WINAPI
*PDD_SURFCB_LOCK
)(PDD_LOCKDATA
);
274 typedef struct _DD_UNLOCKDATA
276 PDD_DIRECTDRAW_GLOBAL lpDD
;
277 PDD_SURFACE_LOCAL lpDDSurface
;
280 } DD_UNLOCKDATA
, *PDD_UNLOCKDATA
;
281 typedef DWORD (WINAPI
*PDD_SURFCB_UNLOCK
)(PDD_UNLOCKDATA
);
283 #define DDABLT_SRCOVERDEST 0x00000001
284 #define DDBLT_AFLAGS 0x80000000
288 typedef struct _DD_BLTDATA
290 PDD_DIRECTDRAW_GLOBAL lpDD
;
291 PDD_SURFACE_LOCAL lpDDDestSurface
;
293 PDD_SURFACE_LOCAL lpDDSrcSurface
;
306 DDARGB ddargbScaleFactors
;
307 } DD_BLTDATA
, *PDD_BLTDATA
;
308 typedef DWORD (WINAPI
*PDD_SURFCB_BLT
)(PDD_BLTDATA
);
310 typedef struct _DD_UPDATEOVERLAYDATA
312 PDD_DIRECTDRAW_GLOBAL lpDD
;
313 PDD_SURFACE_LOCAL lpDDDestSurface
;
315 PDD_SURFACE_LOCAL lpDDSrcSurface
;
318 DDOVERLAYFX overlayFX
;
321 } DD_UPDATEOVERLAYDATA
, *PDD_UPDATEOVERLAYDATA
;
322 typedef DWORD (WINAPI
*PDD_SURFCB_UPDATEOVERLAY
)(PDD_UPDATEOVERLAYDATA
);
324 typedef struct _DD_SETOVERLAYPOSITIONDATA
326 PDD_DIRECTDRAW_GLOBAL lpDD
;
327 PDD_SURFACE_LOCAL lpDDSrcSurface
;
328 PDD_SURFACE_LOCAL lpDDDestSurface
;
332 PVOID SetOverlayPosition
;
333 } DD_SETOVERLAYPOSITIONDATA
, *PDD_SETOVERLAYPOSITIONDATA
;
334 typedef DWORD (WINAPI
*PDD_SURFCB_SETOVERLAYPOSITION
)(PDD_SETOVERLAYPOSITIONDATA
);
336 typedef struct _DD_SETPALETTEDATA
338 PDD_DIRECTDRAW_GLOBAL lpDD
;
339 PDD_SURFACE_LOCAL lpDDSurface
;
340 PDD_PALETTE_GLOBAL lpDDPalette
;
344 } DD_SETPALETTEDATA
, *PDD_SETPALETTEDATA
;
345 typedef DWORD (WINAPI
*PDD_SURFCB_SETPALETTE
)(PDD_SETPALETTEDATA
);
347 typedef struct _DD_FLIPDATA
349 PDD_DIRECTDRAW_GLOBAL lpDD
;
350 PDD_SURFACE_LOCAL lpSurfCurr
;
351 PDD_SURFACE_LOCAL lpSurfTarg
;
355 PDD_SURFACE_LOCAL lpSurfCurrLeft
;
356 PDD_SURFACE_LOCAL lpSurfTargLeft
;
357 } DD_FLIPDATA
, *PDD_FLIPDATA
;
358 typedef DWORD (WINAPI
*PDD_SURFCB_FLIP
)(PDD_FLIPDATA
);
360 typedef struct _DD_DESTROYSURFACEDATA
362 PDD_DIRECTDRAW_GLOBAL lpDD
;
363 PDD_SURFACE_LOCAL lpDDSurface
;
365 PVOID DestroySurface
;
366 } DD_DESTROYSURFACEDATA
, *PDD_DESTROYSURFACEDATA
;
367 typedef DWORD (WINAPI
*PDD_SURFCB_DESTROYSURFACE
)(PDD_DESTROYSURFACEDATA
);
369 typedef struct _DD_SETCLIPLISTDATA
371 PDD_DIRECTDRAW_GLOBAL lpDD
;
372 PDD_SURFACE_LOCAL lpDDSurface
;
375 } DD_SETCLIPLISTDATA
, *PDD_SETCLIPLISTDATA
;
376 typedef DWORD (WINAPI
*PDD_SURFCB_SETCLIPLIST
)(PDD_SETCLIPLISTDATA
);
378 typedef struct _DD_ADDATTACHEDSURFACEDATA
380 PDD_DIRECTDRAW_GLOBAL lpDD
;
381 PDD_SURFACE_LOCAL lpDDSurface
;
382 PDD_SURFACE_LOCAL lpSurfAttached
;
384 PVOID AddAttachedSurface
;
385 } DD_ADDATTACHEDSURFACEDATA
, *PDD_ADDATTACHEDSURFACEDATA
;
386 typedef DWORD (WINAPI
*PDD_SURFCB_ADDATTACHEDSURFACE
)(PDD_ADDATTACHEDSURFACEDATA
);
388 typedef struct _DD_SETCOLORKEYDATA
390 PDD_DIRECTDRAW_GLOBAL lpDD
;
391 PDD_SURFACE_LOCAL lpDDSurface
;
396 } DD_SETCOLORKEYDATA
, *PDD_SETCOLORKEYDATA
;
397 typedef DWORD (WINAPI
*PDD_SURFCB_SETCOLORKEY
)(PDD_SETCOLORKEYDATA
);
399 typedef struct _DD_GETBLTSTATUSDATA
401 PDD_DIRECTDRAW_GLOBAL lpDD
;
402 PDD_SURFACE_LOCAL lpDDSurface
;
406 } DD_GETBLTSTATUSDATA
, *PDD_GETBLTSTATUSDATA
;
407 typedef DWORD (WINAPI
*PDD_SURFCB_GETBLTSTATUS
)(PDD_GETBLTSTATUSDATA
);
409 typedef struct _DD_GETFLIPSTATUSDATA
411 PDD_DIRECTDRAW_GLOBAL lpDD
;
412 PDD_SURFACE_LOCAL lpDDSurface
;
416 } DD_GETFLIPSTATUSDATA
, *PDD_GETFLIPSTATUSDATA
;
417 typedef DWORD (WINAPI
*PDD_SURFCB_GETFLIPSTATUS
)(PDD_GETFLIPSTATUSDATA
);
419 typedef struct DD_SURFACECALLBACKS
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
;
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
;
436 PDD_SURFCB_SETPALETTE SetPalette
;
437 } DD_SURFACECALLBACKS
, *PDD_SURFACECALLBACKS
;
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 /************************************************************************/
458 typedef struct _DD_CREATESURFACEDATA
460 PDD_DIRECTDRAW_GLOBAL lpDD
;
461 DDSURFACEDESC
*lpDDSurfaceDesc
;
462 PDD_SURFACE_LOCAL
*lplpSList
;
466 } DD_CREATESURFACEDATA
, *PDD_CREATESURFACEDATA
;
467 typedef DWORD (WINAPI
*PDD_CREATESURFACE
)(PDD_CREATESURFACEDATA
);
469 typedef struct _DD_DRVSETCOLORKEYDATA
471 PDD_SURFACE_LOCAL lpDDSurface
;
476 } DD_DRVSETCOLORKEYDATA
, *PDD_DRVSETCOLORKEYDATA
;
477 typedef DWORD (WINAPI
*PDD_SETCOLORKEY
)(PDD_DRVSETCOLORKEYDATA
);
479 #define DDWAITVB_I_TESTVB 0x80000006
481 typedef struct _DD_WAITFORVERTICALBLANKDATA
483 PDD_DIRECTDRAW_GLOBAL lpDD
;
488 PVOID WaitForVerticalBlank
;
489 } DD_WAITFORVERTICALBLANKDATA
, *PDD_WAITFORVERTICALBLANKDATA
;
490 typedef DWORD (WINAPI
*PDD_WAITFORVERTICALBLANK
)(PDD_WAITFORVERTICALBLANKDATA
);
492 typedef struct _DD_CANCREATESURFACEDATA
494 PDD_DIRECTDRAW_GLOBAL lpDD
;
495 DDSURFACEDESC
*lpDDSurfaceDesc
;
496 DWORD bIsDifferentPixelFormat
;
498 PVOID CanCreateSurface
;
499 } DD_CANCREATESURFACEDATA
, *PDD_CANCREATESURFACEDATA
;
500 typedef DWORD (WINAPI
*PDD_CANCREATESURFACE
)(PDD_CANCREATESURFACEDATA
);
502 typedef struct _DD_CREATEPALETTEDATA
504 PDD_DIRECTDRAW_GLOBAL lpDD
;
505 PDD_PALETTE_GLOBAL lpDDPalette
;
506 LPPALETTEENTRY lpColorTable
;
510 } DD_CREATEPALETTEDATA
, *PDD_CREATEPALETTEDATA
;
511 typedef DWORD (WINAPI
*PDD_CREATEPALETTE
)(PDD_CREATEPALETTEDATA
);
513 typedef struct _DD_GETSCANLINEDATA
515 PDD_DIRECTDRAW_GLOBAL lpDD
;
519 } DD_GETSCANLINEDATA
, *PDD_GETSCANLINEDATA
;
520 typedef DWORD (WINAPI
*PDD_GETSCANLINE
)(PDD_GETSCANLINEDATA
);
522 typedef struct _DD_MAPMEMORYDATA
524 PDD_DIRECTDRAW_GLOBAL lpDD
;
529 } DD_MAPMEMORYDATA
, *PDD_MAPMEMORYDATA
;
530 typedef DWORD (WINAPI
*PDD_MAPMEMORY
)(PDD_MAPMEMORYDATA
);
535 typedef struct _DD_DESTROYDRIVERDATA
*PDD_DESTROYDRIVERDATA
;
536 typedef struct _DD_SETMODEDATA
*PDD_SETMODEDATA
;
538 typedef DWORD (APIENTRY
*PDD_DESTROYDRIVER
)(PDD_DESTROYDRIVERDATA
);
539 typedef DWORD (APIENTRY
*PDD_SETMODE
)(PDD_SETMODEDATA
);
541 typedef struct DD_CALLBACKS
545 PDD_DESTROYDRIVER DestroyDriver
;
546 PDD_CREATESURFACE CreateSurface
;
547 PDD_SETCOLORKEY SetColorKey
;
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
;
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
568 typedef struct _DD_GETAVAILDRIVERMEMORYDATA
570 PDD_DIRECTDRAW_GLOBAL lpDD
;
575 PVOID GetAvailDriverMemory
;
576 } DD_GETAVAILDRIVERMEMORYDATA
, *PDD_GETAVAILDRIVERMEMORYDATA
;
577 typedef DWORD (WINAPI
*PDD_GETAVAILDRIVERMEMORY
)(PDD_GETAVAILDRIVERMEMORYDATA
);
579 typedef struct _DD_MISCELLANEOUSCALLBACKS
583 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory
;
584 } DD_MISCELLANEOUSCALLBACKS
, *PDD_MISCELLANEOUSCALLBACKS
;
586 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
588 typedef DWORD (WINAPI
*PDD_ALPHABLT
)(PDD_BLTDATA
);
590 typedef struct _DD_CREATESURFACEEXDATA
593 PDD_DIRECTDRAW_LOCAL lpDDLcl
;
594 PDD_SURFACE_LOCAL lpDDSLcl
;
596 } DD_CREATESURFACEEXDATA
, *PDD_CREATESURFACEEXDATA
;
597 typedef DWORD (WINAPI
*PDD_CREATESURFACEEX
)(PDD_CREATESURFACEEXDATA
);
599 typedef struct _DD_GETDRIVERSTATEDATA
602 __GNU_EXTENSION
union
604 PDD_DIRECTDRAW_GLOBAL lpDD
;
605 DWORD_PTR dwhContext
;
610 } DD_GETDRIVERSTATEDATA
, *PDD_GETDRIVERSTATEDATA
;
611 typedef DWORD (WINAPI
*PDD_GETDRIVERSTATE
)(PDD_GETDRIVERSTATEDATA
);
613 typedef struct _DD_DESTROYDDLOCALDATA
616 PDD_DIRECTDRAW_LOCAL pDDLcl
;
618 } DD_DESTROYDDLOCALDATA
, *PDD_DESTROYDDLOCALDATA
;
619 typedef DWORD (WINAPI
*PDD_DESTROYDDLOCAL
)(PDD_DESTROYDDLOCALDATA
);
623 typedef struct _DD_MISCELLANEOUS2CALLBACKS
627 PDD_ALPHABLT AlphaBlt
;
628 PDD_CREATESURFACEEX CreateSurfaceEx
;
629 PDD_GETDRIVERSTATE GetDriverState
;
630 PDD_DESTROYDDLOCAL DestroyDDLocal
;
631 } DD_MISCELLANEOUS2CALLBACKS
, *PDD_MISCELLANEOUS2CALLBACKS
;
634 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
635 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
636 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
637 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
640 typedef struct _DD_FREEDRIVERMEMORYDATA
642 PDD_DIRECTDRAW_GLOBAL lpDD
;
643 PDD_SURFACE_LOCAL lpDDSurface
;
645 PVOID FreeDriverMemory
;
646 } DD_FREEDRIVERMEMORYDATA
, *PDD_FREEDRIVERMEMORYDATA
;
647 typedef DWORD (WINAPI
*PDD_FREEDRIVERMEMORY
)(PDD_FREEDRIVERMEMORYDATA
);
649 typedef struct _DD_SETEXCLUSIVEMODEDATA
651 PDD_DIRECTDRAW_GLOBAL lpDD
;
655 PVOID SetExclusiveMode
;
656 } DD_SETEXCLUSIVEMODEDATA
, *PDD_SETEXCLUSIVEMODEDATA
;
657 typedef DWORD (WINAPI
*PDD_SETEXCLUSIVEMODE
)(PDD_SETEXCLUSIVEMODEDATA
);
659 typedef struct _DD_FLIPTOGDISURFACEDATA
661 PDD_DIRECTDRAW_GLOBAL lpDD
;
665 PVOID FlipToGDISurface
;
666 } DD_FLIPTOGDISURFACEDATA
, *PDD_FLIPTOGDISURFACEDATA
;
667 typedef DWORD (WINAPI
*PDD_FLIPTOGDISURFACE
)(PDD_FLIPTOGDISURFACEDATA
);
671 typedef struct _DD_NTCALLBACKS
675 PDD_FREEDRIVERMEMORY FreeDriverMemory
;
676 PDD_SETEXCLUSIVEMODE SetExclusiveMode
;
677 PDD_FLIPTOGDISURFACE FlipToGDISurface
;
678 } DD_NTCALLBACKS
, *PDD_NTCALLBACKS
;
681 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
682 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
683 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
685 /************************************************************************/
686 /* IDirectDrawPalette callbacks */
687 /************************************************************************/
689 typedef struct _DD_DESTROYPALETTEDATA
691 PDD_DIRECTDRAW_GLOBAL lpDD
;
692 PDD_PALETTE_GLOBAL lpDDPalette
;
694 PVOID DestroyPalette
;
695 } DD_DESTROYPALETTEDATA
, *PDD_DESTROYPALETTEDATA
;
696 typedef DWORD (WINAPI
*PDD_PALCB_DESTROYPALETTE
)(PDD_DESTROYPALETTEDATA
);
698 typedef struct _DD_SETENTRIESDATA
700 PDD_DIRECTDRAW_GLOBAL lpDD
;
701 PDD_PALETTE_GLOBAL lpDDPalette
;
704 LPPALETTEENTRY lpEntries
;
707 } DD_SETENTRIESDATA
, *PDD_SETENTRIESDATA
;
708 typedef DWORD (WINAPI
*PDD_PALCB_SETENTRIES
)(PDD_SETENTRIESDATA
);
710 typedef struct DD_PALETTECALLBACKS
714 PDD_PALCB_DESTROYPALETTE DestroyPalette
;
715 PDD_PALCB_SETENTRIES SetEntries
;
716 } DD_PALETTECALLBACKS
, *PDD_PALETTECALLBACKS
;
718 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
719 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
721 /************************************************************************/
722 /* IDirectDrawVideoport callbacks */
723 /************************************************************************/
725 typedef struct _DD_CANCREATEVPORTDATA
727 PDD_DIRECTDRAW_LOCAL lpDD
;
728 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
730 PVOID CanCreateVideoPort
;
731 } DD_CANCREATEVPORTDATA
, *PDD_CANCREATEVPORTDATA
;
732 typedef DWORD (WINAPI
*PDD_VPORTCB_CANCREATEVIDEOPORT
)(PDD_CANCREATEVPORTDATA
);
734 typedef struct _DD_CREATEVPORTDATA
736 PDD_DIRECTDRAW_LOCAL lpDD
;
737 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
738 PDD_VIDEOPORT_LOCAL lpVideoPort
;
740 PVOID CreateVideoPort
;
741 } DD_CREATEVPORTDATA
, *PDD_CREATEVPORTDATA
;
742 typedef DWORD (WINAPI
*PDD_VPORTCB_CREATEVIDEOPORT
)(PDD_CREATEVPORTDATA
);
744 typedef struct _DD_FLIPVPORTDATA
746 PDD_DIRECTDRAW_LOCAL lpDD
;
747 PDD_VIDEOPORT_LOCAL lpVideoPort
;
748 PDD_SURFACE_LOCAL lpSurfCurr
;
749 PDD_SURFACE_LOCAL lpSurfTarg
;
752 } DD_FLIPVPORTDATA
, *PDD_FLIPVPORTDATA
;
753 typedef DWORD (WINAPI
*PDD_VPORTCB_FLIP
)(PDD_FLIPVPORTDATA
);
755 typedef struct _DD_GETVPORTBANDWIDTHDATA
757 PDD_DIRECTDRAW_LOCAL lpDD
;
758 PDD_VIDEOPORT_LOCAL lpVideoPort
;
759 LPDDPIXELFORMAT lpddpfFormat
;
763 LPDDVIDEOPORTBANDWIDTH lpBandwidth
;
765 PVOID GetVideoPortBandwidth
;
766 } DD_GETVPORTBANDWIDTHDATA
, *PDD_GETVPORTBANDWIDTHDATA
;
767 typedef DWORD (WINAPI
*PDD_VPORTCB_GETBANDWIDTH
)(PDD_GETVPORTBANDWIDTHDATA
);
769 typedef struct _DD_GETVPORTINPUTFORMATDATA
771 PDD_DIRECTDRAW_LOCAL lpDD
;
772 PDD_VIDEOPORT_LOCAL lpVideoPort
;
774 LPDDPIXELFORMAT lpddpfFormat
;
777 PVOID GetVideoPortInputFormats
;
778 } DD_GETVPORTINPUTFORMATDATA
, *PDD_GETVPORTINPUTFORMATDATA
;
779 typedef DWORD (WINAPI
*PDD_VPORTCB_GETINPUTFORMATS
)(PDD_GETVPORTINPUTFORMATDATA
);
781 typedef struct _DD_GETVPORTOUTPUTFORMATDATA
783 PDD_DIRECTDRAW_LOCAL lpDD
;
784 PDD_VIDEOPORT_LOCAL lpVideoPort
;
786 LPDDPIXELFORMAT lpddpfInputFormat
;
787 LPDDPIXELFORMAT lpddpfOutputFormats
;
790 PVOID GetVideoPortInputFormats
;
791 } DD_GETVPORTOUTPUTFORMATDATA
, *PDD_GETVPORTOUTPUTFORMATDATA
;
792 typedef DWORD (WINAPI
*PDD_VPORTCB_GETOUTPUTFORMATS
)(PDD_GETVPORTOUTPUTFORMATDATA
);
794 typedef struct _DD_GETVPORTFIELDDATA
796 PDD_DIRECTDRAW_LOCAL lpDD
;
797 PDD_VIDEOPORT_LOCAL lpVideoPort
;
800 PVOID GetVideoPortField
;
801 } DD_GETVPORTFIELDDATA
, *PDD_GETVPORTFIELDDATA
;
802 typedef DWORD (WINAPI
*PDD_VPORTCB_GETFIELD
)(PDD_GETVPORTFIELDDATA
);
804 typedef struct _DD_GETVPORTLINEDATA
806 PDD_DIRECTDRAW_LOCAL lpDD
;
807 PDD_VIDEOPORT_LOCAL lpVideoPort
;
810 PVOID GetVideoPortLine
;
811 } DD_GETVPORTLINEDATA
, *PDD_GETVPORTLINEDATA
;
812 typedef DWORD (WINAPI
*PDD_VPORTCB_GETLINE
)(PDD_GETVPORTLINEDATA
);
814 typedef struct _DD_GETVPORTCONNECTDATA
816 PDD_DIRECTDRAW_LOCAL lpDD
;
818 LPDDVIDEOPORTCONNECT lpConnect
;
821 PVOID GetVideoPortConnectInfo
;
822 } DD_GETVPORTCONNECTDATA
, *PDD_GETVPORTCONNECTDATA
;
823 typedef DWORD (WINAPI
*PDD_VPORTCB_GETVPORTCONNECT
)(PDD_GETVPORTCONNECTDATA
);
825 typedef struct _DD_DESTROYVPORTDATA
827 PDD_DIRECTDRAW_LOCAL lpDD
;
828 PDD_VIDEOPORT_LOCAL lpVideoPort
;
830 PVOID DestroyVideoPort
;
831 } DD_DESTROYVPORTDATA
, *PDD_DESTROYVPORTDATA
;
832 typedef DWORD (WINAPI
*PDD_VPORTCB_DESTROYVPORT
)(PDD_DESTROYVPORTDATA
);
834 typedef struct _DD_GETVPORTFLIPSTATUSDATA
836 PDD_DIRECTDRAW_LOCAL lpDD
;
839 PVOID GetVideoPortFlipStatus
;
840 } DD_GETVPORTFLIPSTATUSDATA
, *PDD_GETVPORTFLIPSTATUSDATA
;
841 typedef DWORD (WINAPI
*PDD_VPORTCB_GETFLIPSTATUS
)(PDD_GETVPORTFLIPSTATUSDATA
);
845 typedef struct _DD_UPDATEVPORTDATA
847 PDD_DIRECTDRAW_LOCAL lpDD
;
848 PDD_VIDEOPORT_LOCAL lpVideoPort
;
849 PDD_SURFACE_INT
*lplpDDSurface
;
850 PDD_SURFACE_INT
*lplpDDVBISurface
;
851 LPDDVIDEOPORTINFO lpVideoInfo
;
854 DWORD dwNumVBIAutoflip
;
856 PVOID UpdateVideoPort
;
857 } DD_UPDATEVPORTDATA
, *PDD_UPDATEVPORTDATA
;
858 typedef DWORD (WINAPI
*PDD_VPORTCB_UPDATE
)(PDD_UPDATEVPORTDATA
);
860 typedef struct _DD_WAITFORVPORTSYNCDATA
862 PDD_DIRECTDRAW_LOCAL lpDD
;
863 PDD_VIDEOPORT_LOCAL lpVideoPort
;
868 PVOID UpdateVideoPort
;
869 } DD_WAITFORVPORTSYNCDATA
, *PDD_WAITFORVPORTSYNCDATA
;
870 typedef DWORD (WINAPI
*PDD_VPORTCB_WAITFORSYNC
)(PDD_WAITFORVPORTSYNCDATA
);
872 typedef struct _DD_GETVPORTSIGNALDATA
874 PDD_DIRECTDRAW_LOCAL lpDD
;
875 PDD_VIDEOPORT_LOCAL lpVideoPort
;
878 PVOID GetVideoSignalStatus
;
879 } DD_GETVPORTSIGNALDATA
, *PDD_GETVPORTSIGNALDATA
;
880 typedef DWORD (WINAPI
*PDD_VPORTCB_GETSIGNALSTATUS
)(PDD_GETVPORTSIGNALDATA
);
884 typedef struct _DD_VPORTCOLORDATA
886 PDD_DIRECTDRAW_LOCAL lpDD
;
887 PDD_VIDEOPORT_LOCAL lpVideoPort
;
889 LPDDCOLORCONTROL lpColorData
;
892 } DD_VPORTCOLORDATA
, *PDD_VPORTCOLORDATA
;
893 typedef DWORD (WINAPI
*PDD_VPORTCB_COLORCONTROL
)(PDD_VPORTCOLORDATA
);
896 typedef struct DD_VIDEOPORTCALLBACKS
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
;
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
;
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
935 /************************************************************************/
936 /* IDirectDrawColorControl callbacks */
937 /************************************************************************/
939 #define DDRAWI_GETCOLOR 0x0001
940 #define DDRAWI_SETCOLOR 0x0002
942 typedef struct _DD_COLORCONTROLDATA
944 PDD_DIRECTDRAW_GLOBAL lpDD
;
945 PDD_SURFACE_LOCAL lpDDSurface
;
946 LPDDCOLORCONTROL lpColorData
;
950 } DD_COLORCONTROLDATA
, *PDD_COLORCONTROLDATA
;
951 typedef DWORD (WINAPI
*PDD_COLORCB_COLORCONTROL
)(PDD_COLORCONTROLDATA
);
955 typedef struct _DD_COLORCONTROLCALLBACKS
959 PDD_COLORCB_COLORCONTROL ColorControl
;
960 } DD_COLORCONTROLCALLBACKS
, *PDD_COLORCONTROLCALLBACKS
;
962 #define DDHAL_COLOR_COLORCONTROL 0x00000001
964 /************************************************************************/
965 /* IDirectDrawVideo callbacks */
966 /************************************************************************/
968 typedef struct _DD_GETMOCOMPGUIDSDATA
970 PDD_DIRECTDRAW_LOCAL lpDD
;
974 } DD_GETMOCOMPGUIDSDATA
, *PDD_GETMOCOMPGUIDSDATA
;
975 typedef DWORD (WINAPI
*PDD_MOCOMPCB_GETGUIDS
)(PDD_GETMOCOMPGUIDSDATA
);
977 typedef struct _DD_GETMOCOMPFORMATSDATA
979 PDD_DIRECTDRAW_LOCAL lpDD
;
982 LPDDPIXELFORMAT lpFormats
;
984 } DD_GETMOCOMPFORMATSDATA
, *PDD_GETMOCOMPFORMATSDATA
;
985 typedef DWORD (WINAPI
*PDD_MOCOMPCB_GETFORMATS
)(PDD_GETMOCOMPFORMATSDATA
);
987 typedef struct _DD_CREATEMOCOMPDATA
989 PDD_DIRECTDRAW_LOCAL lpDD
;
990 PDD_MOTIONCOMP_LOCAL lpMoComp
;
993 DWORD dwUncompHeight
;
994 DDPIXELFORMAT ddUncompPixelFormat
;
998 } DD_CREATEMOCOMPDATA
, *PDD_CREATEMOCOMPDATA
;
999 typedef DWORD (WINAPI
*PDD_MOCOMPCB_CREATE
)(PDD_CREATEMOCOMPDATA
);
1001 typedef struct _DDCOMPBUFFERINFO
1004 DWORD dwNumCompBuffers
;
1005 DWORD dwWidthToCreate
;
1006 DWORD dwHeightToCreate
;
1007 DWORD dwBytesToAllocate
;
1008 DDSCAPS2 ddCompCaps
;
1009 DDPIXELFORMAT ddPixelFormat
;
1010 } DDCOMPBUFFERINFO
, *LPDDCOMPBUFFERINFO
;
1012 typedef struct _DD_GETMOCOMPCOMPBUFFDATA
1014 PDD_DIRECTDRAW_LOCAL lpDD
;
1018 DDPIXELFORMAT ddPixelFormat
;
1019 DWORD dwNumTypesCompBuffs
;
1020 LPDDCOMPBUFFERINFO lpCompBuffInfo
;
1022 } DD_GETMOCOMPCOMPBUFFDATA
, *PDD_GETMOCOMPCOMPBUFFDATA
;
1023 typedef DWORD (WINAPI
*PDD_MOCOMPCB_GETCOMPBUFFINFO
)(PDD_GETMOCOMPCOMPBUFFDATA
);
1025 typedef struct _DD_GETINTERNALMOCOMPDATA
1027 PDD_DIRECTDRAW_LOCAL lpDD
;
1031 DDPIXELFORMAT ddPixelFormat
;
1032 DWORD dwScratchMemAlloc
;
1034 } DD_GETINTERNALMOCOMPDATA
, *PDD_GETINTERNALMOCOMPDATA
;
1035 typedef DWORD (WINAPI
*PDD_MOCOMPCB_GETINTERNALINFO
)(PDD_GETINTERNALMOCOMPDATA
);
1037 typedef struct _DD_BEGINMOCOMPFRAMEDATA
1039 PDD_DIRECTDRAW_LOCAL lpDD
;
1040 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1041 PDD_SURFACE_LOCAL lpDestSurface
;
1042 DWORD dwInputDataSize
;
1044 DWORD dwOutputDataSize
;
1045 LPVOID lpOutputData
;
1047 } DD_BEGINMOCOMPFRAMEDATA
, *PDD_BEGINMOCOMPFRAMEDATA
;
1048 typedef DWORD (WINAPI
*PDD_MOCOMPCB_BEGINFRAME
)(PDD_BEGINMOCOMPFRAMEDATA
);
1050 typedef struct _DD_ENDMOCOMPFRAMEDATA
1052 PDD_DIRECTDRAW_LOCAL lpDD
;
1053 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1055 DWORD dwInputDataSize
;
1057 } DD_ENDMOCOMPFRAMEDATA
, *PDD_ENDMOCOMPFRAMEDATA
;
1058 typedef DWORD (WINAPI
*PDD_MOCOMPCB_ENDFRAME
)(PDD_ENDMOCOMPFRAMEDATA
);
1060 typedef struct _DDMOCOMPBUFFERINFO
1063 PDD_SURFACE_LOCAL lpCompSurface
;
1067 } DDMOCOMPBUFFERINFO
, *LPDDMOCOMPBUFFERINFO
;
1069 typedef struct _DD_RENDERMOCOMPDATA
1071 PDD_DIRECTDRAW_LOCAL lpDD
;
1072 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1074 LPDDMOCOMPBUFFERINFO lpBufferInfo
;
1077 DWORD dwInputDataSize
;
1078 LPVOID lpOutputData
;
1079 DWORD dwOutputDataSize
;
1081 } DD_RENDERMOCOMPDATA
, *PDD_RENDERMOCOMPDATA
;
1082 typedef DWORD (WINAPI
*PDD_MOCOMPCB_RENDER
)(PDD_RENDERMOCOMPDATA
);
1084 #define DDMCQUERY_READ 0x00000001
1086 typedef struct _DD_QUERYMOCOMPSTATUSDATA
1088 PDD_DIRECTDRAW_LOCAL lpDD
;
1089 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1090 PDD_SURFACE_LOCAL lpSurface
;
1093 } DD_QUERYMOCOMPSTATUSDATA
, *PDD_QUERYMOCOMPSTATUSDATA
;
1094 typedef DWORD (WINAPI
*PDD_MOCOMPCB_QUERYSTATUS
)(PDD_QUERYMOCOMPSTATUSDATA
);
1096 typedef struct _DD_DESTROYMOCOMPDATA
1098 PDD_DIRECTDRAW_LOCAL lpDD
;
1099 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1101 } DD_DESTROYMOCOMPDATA
, *PDD_DESTROYMOCOMPDATA
;
1102 typedef DWORD (WINAPI
*PDD_MOCOMPCB_DESTROY
)(PDD_DESTROYMOCOMPDATA
);
1106 typedef struct DD_MOTIONCOMPCALLBACKS
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
;
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
1133 /************************************************************************/
1134 /* D3D buffer callbacks */
1135 /************************************************************************/
1137 typedef struct _DD_D3DBUFCALLBACKS
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
;
1148 /************************************************************************/
1149 /* DdGetDriverInfo callback */
1150 /************************************************************************/
1152 typedef struct _DD_GETDRIVERINFODATA
1159 DWORD dwExpectedSize
;
1164 } DD_GETDRIVERINFODATA
, *PDD_GETDRIVERINFODATA
;
1165 typedef DWORD (WINAPI
*PDD_GETDRIVERINFO
)(PDD_GETDRIVERINFODATA
);
1170 /************************************************************************/
1171 /* Driver info structures */
1172 /************************************************************************/
1174 typedef struct _DDNTCORECAPS
1181 DWORD dwFXAlphaCaps
;
1184 DWORD dwAlphaBltConstBitDepths
;
1185 DWORD dwAlphaBltPixelBitDepths
;
1186 DWORD dwAlphaBltSurfaceBitDepths
;
1187 DWORD dwAlphaOverlayConstBitDepths
;
1188 DWORD dwAlphaOverlayPixelBitDepths
;
1189 DWORD dwAlphaOverlaySurfaceBitDepths
;
1190 DWORD dwZBufferBitDepths
;
1191 DWORD dwVidMemTotal
;
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
];
1203 DWORD dwMinOverlayStretch
;
1204 DWORD dwMaxOverlayStretch
;
1205 DWORD dwMinLiveVideoStretch
;
1206 DWORD dwMaxLiveVideoStretch
;
1207 DWORD dwMinHwCodecStretch
;
1208 DWORD dwMaxHwCodecStretch
;
1213 DWORD dwSVBCKeyCaps
;
1215 DWORD dwSVBRops
[DD_ROP_SPACE
];
1217 DWORD dwVSBCKeyCaps
;
1219 DWORD dwVSBRops
[DD_ROP_SPACE
];
1221 DWORD dwSSBCKeyCaps
;
1223 DWORD dwSSBRops
[DD_ROP_SPACE
];
1224 DWORD dwMaxVideoPorts
;
1225 DWORD dwCurrVideoPorts
;
1227 } DDNTCORECAPS
, *PDDNTCORECAPS
;
1230 typedef struct _DD_HALINFO_V4
1233 VIDEOMEMORYINFO vmiData
;
1234 DDNTCORECAPS ddCaps
;
1235 PDD_GETDRIVERINFO GetDriverInfo
;
1237 } DD_HALINFO_V4
, *PDD_HALINFO_V4
;
1239 typedef struct _DD_HALINFO
1242 VIDEOMEMORYINFO vmiData
;
1243 DDNTCORECAPS ddCaps
;
1244 PDD_GETDRIVERINFO GetDriverInfo
;
1246 PVOID lpD3DGlobalDriverData
;
1247 PVOID lpD3DHALCallbacks
;
1248 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks
;
1249 } DD_HALINFO
, *PDD_HALINFO
;
1253 typedef struct _DD_NONLOCALVIDMEMCAPS
1258 DWORD dwNLVBCKeyCaps
;
1260 DWORD dwNLVBRops
[DD_ROP_SPACE
];
1261 } DD_NONLOCALVIDMEMCAPS
, *PDD_NONLOCALVIDMEMCAPS
;
1265 typedef struct _DD_MORESURFACECAPS
1268 DDSCAPSEX ddsCapsMore
;
1269 struct tagNTExtendedHeapRestrictions
1271 DDSCAPSEX ddsCapsEx
;
1272 DDSCAPSEX ddsCapsExAlt
;
1273 } ddsExtendedHeapRestrictions
[1];
1274 } DD_MORESURFACECAPS
, *PDD_MORESURFACECAPS
;
1277 /*********************************************************/
1278 /* Kernel Callbacks */
1279 /*********************************************************/
1280 typedef struct _DD_SYNCSURFACEDATA
1282 PDD_DIRECTDRAW_LOCAL lpDD
;
1283 PDD_SURFACE_LOCAL lpDDSurface
;
1284 DWORD dwSurfaceOffset
;
1285 ULONG_PTR fpLockPtr
;
1287 DWORD dwOverlayOffset
;
1288 ULONG dwDriverReserved1
;
1289 ULONG dwDriverReserved2
;
1290 ULONG dwDriverReserved3
;
1291 ULONG dwDriverReserved4
;
1293 } DD_SYNCSURFACEDATA
, *PDD_SYNCSURFACEDATA
;
1294 typedef DWORD (WINAPI
*PDD_KERNELCB_SYNCSURFACE
)(PDD_SYNCSURFACEDATA
);
1296 typedef struct _DD_SYNCVIDEOPORTDATA
1298 PDD_DIRECTDRAW_LOCAL lpDD
;
1299 PDD_VIDEOPORT_LOCAL lpVideoPort
;
1300 DWORD dwOriginOffset
;
1303 ULONG dwDriverReserved1
;
1304 ULONG dwDriverReserved2
;
1305 ULONG dwDriverReserved3
;
1307 } DD_SYNCVIDEOPORTDATA
, *PDD_SYNCVIDEOPORTDATA
;
1308 typedef DWORD (WINAPI
*PDD_KERNELCB_SYNCVIDEOPORT
)(PDD_SYNCVIDEOPORTDATA
);
1311 typedef struct DD_NTPRIVATEDRIVERCAPS
1314 DWORD dwPrivateCaps
;
1315 } DD_NTPRIVATEDRIVERCAPS
;
1317 typedef struct _DD_UPDATENONLOCALHEAPDATA
1319 PDD_DIRECTDRAW_GLOBAL lpDD
;
1323 ULONG_PTR ulPolicyMaxBytes
;
1325 VOID
* UpdateNonLocalHeap
;
1326 } DD_UPDATENONLOCALHEAPDATA
, *PDD_UPDATENONLOCALHEAPDATA
;
1328 typedef struct _DD_STEREOMODE
1334 DWORD dwRefreshRate
;
1336 } DD_STEREOMODE
, *PDD_STEREOMODE
;
1338 typedef struct _DD_MORECAPS
1342 DWORD dwSVBAlphaCaps
;
1343 DWORD dwVSBAlphaCaps
;
1344 DWORD dwSSBAlphaCaps
;
1346 DWORD dwSVBFilterCaps
;
1347 DWORD dwVSBFilterCaps
;
1348 DWORD dwSSBFilterCaps
;
1349 } DD_MORECAPS
, *PDD_MORECAPS
;
1351 typedef struct _DD_CLIPPER_GLOBAL
1353 ULONG_PTR dwReserved1
;
1354 } DD_CLIPPER_GLOBAL
;
1356 typedef struct _DD_CLIPPER_LOCAL
1358 ULONG_PTR dwReserved1
;
1361 typedef struct _DD_PALETTE_LOCAL
1364 ULONG_PTR dwReserved1
;
1368 typedef struct DD_KERNELCALLBACKS
1372 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData
;
1373 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData
;
1374 } DD_KERNELCALLBACKS
, *PDD_KERNELCALLBACKS
;
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
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
1416 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1418 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1419 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1421 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1422 #define DDHAL_DRIVER_HANDLED 0x00000001l
1423 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
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
1433 #define ROP_HAS_SOURCE 0x00000001l
1434 #define ROP_HAS_PATTERN 0x00000002l
1435 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
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
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
1449 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1450 #define DDHALINFO_MODEXILLEGAL 0x00000002
1451 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1452 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1454 #define DDRAWIVPORT_ON 0x00000001
1455 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1456 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1458 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1459 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1460 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
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
1473 #endif /* GUID_DEFS_ONLY */
1475 #endif /* __DD_INCLUDED__ */