2 * DirectDraw NT driver interface
5 #ifndef __DD_INCLUDED__
6 #define __DD_INCLUDED__
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);
35 #ifndef GUID_DEFS_ONLY
37 #ifndef _NO_DDRAWINT_NO_COM
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))) )
60 #ifndef FLATPTR_DEFINED
61 typedef ULONG_PTR FLATPTR
;
62 #define FLATPTR_DEFINED
65 typedef struct _DD_VIDEOPORT_LOCAL
*PDD_VIDEOPORT_LOCAL
;
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
76 /************************************************************************/
77 /* Video memory info structures */
78 /************************************************************************/
80 typedef struct _VIDEOMEMORY
93 struct _VMEMHEAP
*lpHeap
;
96 } VIDEOMEMORY
, *PVIDEOMEMORY
;
98 typedef struct _VIDEOMEMORYINFO
102 DWORD dwDisplayWidth
;
103 DWORD dwDisplayHeight
;
105 DDPIXELFORMAT ddpfDisplay
;
106 DWORD dwOffscreenAlign
;
107 DWORD dwOverlayAlign
;
108 DWORD dwTextureAlign
;
109 DWORD dwZBufferAlign
;
113 typedef VIDEOMEMORYINFO
*LPVIDEOMEMORYINFO
;
115 typedef struct _DD_DIRECTDRAW_GLOBAL
118 ULONG_PTR dwReserved1
;
119 ULONG_PTR dwReserved2
;
120 LPDDVIDEOPORTCAPS lpDDVideoPortCaps
;
121 } DD_DIRECTDRAW_GLOBAL
, *PDD_DIRECTDRAW_GLOBAL
;
123 typedef struct _DD_DIRECTDRAW_LOCAL
125 PDD_DIRECTDRAW_GLOBAL lpGbl
;
126 } DD_DIRECTDRAW_LOCAL
, *PDD_DIRECTDRAW_LOCAL
;
129 typedef struct _DD_SURFACE_GLOBAL
139 PVIDEOMEMORY lpVidMemHeap
;
154 ULONG_PTR dwReserved1
;
155 DDPIXELFORMAT ddpfSurface
;
156 FLATPTR fpHeapOffset
;
157 HANDLE hCreatorProcess
;
158 } DD_SURFACE_GLOBAL
, *PDD_SURFACE_GLOBAL
;
160 typedef struct _DD_SURFACE_MORE
163 PDD_VIDEOPORT_LOCAL lpVideoPort
;
164 DWORD dwOverlayFlags
;
166 DWORD dwSurfaceHandle
;
167 } DD_SURFACE_MORE
, *PDD_SURFACE_MORE
;
169 typedef struct _DD_ATTACHLIST
*PDD_ATTACHLIST
;
171 typedef struct _DD_SURFACE_LOCAL
173 PDD_SURFACE_GLOBAL lpGbl
;
176 ULONG_PTR dwReserved1
;
179 DDCOLORKEY ddckCKSrcOverlay
;
180 DDCOLORKEY ddckCKSrcBlt
;
184 DDCOLORKEY ddckCKDestOverlay
;
185 DDCOLORKEY ddckCKDestBlt
;
187 PDD_SURFACE_MORE lpSurfMore
;
188 PDD_ATTACHLIST lpAttachList
;
189 PDD_ATTACHLIST lpAttachListFrom
;
191 } DD_SURFACE_LOCAL
, *PDD_SURFACE_LOCAL
;
193 typedef struct _DD_ATTACHLIST
195 PDD_ATTACHLIST lpLink
;
196 PDD_SURFACE_LOCAL lpAttached
;
199 typedef struct _DD_SURFACE_INT
201 PDD_SURFACE_LOCAL lpLcl
;
202 } DD_SURFACE_INT
, *PDD_SURFACE_INT
;
204 /************************************************************************/
205 /* DDI representation of the DirectDrawPalette object */
206 /************************************************************************/
208 typedef struct _DD_PALETTE_GLOBAL
211 } DD_PALETTE_GLOBAL
, *PDD_PALETTE_GLOBAL
;
213 /************************************************************************/
214 /* DDI representation of the DirectDrawVideo object */
215 /************************************************************************/
219 PDD_DIRECTDRAW_LOCAL lpDD
;
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
;
233 typedef struct _DD_VIDEOPORT_LOCAL
235 PDD_DIRECTDRAW_LOCAL lpDD
;
236 DDVIDEOPORTDESC ddvpDesc
;
237 DDVIDEOPORTINFO ddvpInfo
;
238 PDD_SURFACE_INT lpSurface
;
239 PDD_SURFACE_INT lpVBISurface
;
241 DWORD dwNumVBIAutoflip
;
242 ULONG_PTR dwReserved1
;
243 ULONG_PTR dwReserved2
;
244 ULONG_PTR dwReserved3
;
245 } DD_VIDEOPORT_LOCAL
;
247 /************************************************************************/
248 /* IDirectDrawSurface callbacks */
249 /************************************************************************/
251 typedef struct _DD_LOCKDATA
253 PDD_DIRECTDRAW_GLOBAL lpDD
;
254 PDD_SURFACE_LOCAL lpDDSurface
;
262 } DD_LOCKDATA
, *PDD_LOCKDATA
;
263 typedef DWORD (STDCALL
*PDD_SURFCB_LOCK
)(PDD_LOCKDATA
);
266 typedef struct _DD_UNLOCKDATA
268 PDD_DIRECTDRAW_GLOBAL lpDD
;
269 PDD_SURFACE_LOCAL lpDDSurface
;
272 } DD_UNLOCKDATA
, *PDD_UNLOCKDATA
;
273 typedef DWORD (STDCALL
*PDD_SURFCB_UNLOCK
)(PDD_UNLOCKDATA
);
275 #define DDABLT_SRCOVERDEST 0x00000001
276 #define DDBLT_AFLAGS 0x80000000
280 typedef struct _DD_BLTDATA
282 PDD_DIRECTDRAW_GLOBAL lpDD
;
283 PDD_SURFACE_LOCAL lpDDDestSurface
;
285 PDD_SURFACE_LOCAL lpDDSrcSurface
;
298 DDARGB ddargbScaleFactors
;
299 } DD_BLTDATA
, *PDD_BLTDATA
;
300 typedef DWORD (STDCALL
*PDD_SURFCB_BLT
)(PDD_BLTDATA
);
302 typedef struct _DD_UPDATEOVERLAYDATA
304 PDD_DIRECTDRAW_GLOBAL lpDD
;
305 PDD_SURFACE_LOCAL lpDDDestSurface
;
307 PDD_SURFACE_LOCAL lpDDSrcSurface
;
310 DDOVERLAYFX overlayFX
;
313 } DD_UPDATEOVERLAYDATA
, *PDD_UPDATEOVERLAYDATA
;
314 typedef DWORD (STDCALL
*PDD_SURFCB_UPDATEOVERLAY
)(PDD_UPDATEOVERLAYDATA
);
316 typedef struct _DD_SETOVERLAYPOSITIONDATA
318 PDD_DIRECTDRAW_GLOBAL lpDD
;
319 PDD_SURFACE_LOCAL lpDDSrcSurface
;
320 PDD_SURFACE_LOCAL lpDDDestSurface
;
324 PVOID SetOverlayPosition
;
325 } DD_SETOVERLAYPOSITIONDATA
, *PDD_SETOVERLAYPOSITIONDATA
;
326 typedef DWORD (STDCALL
*PDD_SURFCB_SETOVERLAYPOSITION
)(PDD_SETOVERLAYPOSITIONDATA
);
328 typedef struct _DD_SETPALETTEDATA
330 PDD_DIRECTDRAW_GLOBAL lpDD
;
331 PDD_SURFACE_LOCAL lpDDSurface
;
332 PDD_PALETTE_GLOBAL lpDDPalette
;
336 } DD_SETPALETTEDATA
, *PDD_SETPALETTEDATA
;
337 typedef DWORD (STDCALL
*PDD_SURFCB_SETPALETTE
)(PDD_SETPALETTEDATA
);
339 typedef struct _DD_FLIPDATA
341 PDD_DIRECTDRAW_GLOBAL lpDD
;
342 PDD_SURFACE_LOCAL lpSurfCurr
;
343 PDD_SURFACE_LOCAL lpSurfTarg
;
347 PDD_SURFACE_LOCAL lpSurfCurrLeft
;
348 PDD_SURFACE_LOCAL lpSurfTargLeft
;
349 } DD_FLIPDATA
, *PDD_FLIPDATA
;
350 typedef DWORD (STDCALL
*PDD_SURFCB_FLIP
)(PDD_FLIPDATA
);
352 typedef struct _DD_DESTROYSURFACEDATA
354 PDD_DIRECTDRAW_GLOBAL lpDD
;
355 PDD_SURFACE_LOCAL lpDDSurface
;
357 PVOID DestroySurface
;
358 } DD_DESTROYSURFACEDATA
, *PDD_DESTROYSURFACEDATA
;
359 typedef DWORD (STDCALL
*PDD_SURFCB_DESTROYSURFACE
)(PDD_DESTROYSURFACEDATA
);
361 typedef struct _DD_SETCLIPLISTDATA
363 PDD_DIRECTDRAW_GLOBAL lpDD
;
364 PDD_SURFACE_LOCAL lpDDSurface
;
367 } DD_SETCLIPLISTDATA
, *PDD_SETCLIPLISTDATA
;
368 typedef DWORD (STDCALL
*PDD_SURFCB_SETCLIPLIST
)(PDD_SETCLIPLISTDATA
);
370 typedef struct _DD_ADDATTACHEDSURFACEDATA
372 PDD_DIRECTDRAW_GLOBAL lpDD
;
373 PDD_SURFACE_LOCAL lpDDSurface
;
374 PDD_SURFACE_LOCAL lpSurfAttached
;
376 PVOID AddAttachedSurface
;
377 } DD_ADDATTACHEDSURFACEDATA
, *PDD_ADDATTACHEDSURFACEDATA
;
378 typedef DWORD (STDCALL
*PDD_SURFCB_ADDATTACHEDSURFACE
)(PDD_ADDATTACHEDSURFACEDATA
);
380 typedef struct _DD_SETCOLORKEYDATA
382 PDD_DIRECTDRAW_GLOBAL lpDD
;
383 PDD_SURFACE_LOCAL lpDDSurface
;
388 } DD_SETCOLORKEYDATA
, *PDD_SETCOLORKEYDATA
;
389 typedef DWORD (STDCALL
*PDD_SURFCB_SETCOLORKEY
)(PDD_SETCOLORKEYDATA
);
391 typedef struct _DD_GETBLTSTATUSDATA
393 PDD_DIRECTDRAW_GLOBAL lpDD
;
394 PDD_SURFACE_LOCAL lpDDSurface
;
398 } DD_GETBLTSTATUSDATA
, *PDD_GETBLTSTATUSDATA
;
399 typedef DWORD (STDCALL
*PDD_SURFCB_GETBLTSTATUS
)(PDD_GETBLTSTATUSDATA
);
401 typedef struct _DD_GETFLIPSTATUSDATA
403 PDD_DIRECTDRAW_GLOBAL lpDD
;
404 PDD_SURFACE_LOCAL lpDDSurface
;
408 } DD_GETFLIPSTATUSDATA
, *PDD_GETFLIPSTATUSDATA
;
409 typedef DWORD (STDCALL
*PDD_SURFCB_GETFLIPSTATUS
)(PDD_GETFLIPSTATUSDATA
);
411 typedef struct DD_SURFACECALLBACKS
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
;
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
;
428 PDD_SURFCB_SETPALETTE SetPalette
;
429 } DD_SURFACECALLBACKS
, *PDD_SURFACECALLBACKS
;
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 /************************************************************************/
450 typedef struct _DD_CREATESURFACEDATA
452 PDD_DIRECTDRAW_GLOBAL lpDD
;
453 DDSURFACEDESC
*lpDDSurfaceDesc
;
454 PDD_SURFACE_LOCAL
*lplpSList
;
458 } DD_CREATESURFACEDATA
, *PDD_CREATESURFACEDATA
;
459 typedef DWORD (STDCALL
*PDD_CREATESURFACE
)(PDD_CREATESURFACEDATA
);
461 typedef struct _DD_DRVSETCOLORKEYDATA
463 PDD_SURFACE_LOCAL lpDDSurface
;
468 } DD_DRVSETCOLORKEYDATA
, *PDD_DRVSETCOLORKEYDATA
;
469 typedef DWORD (STDCALL
*PDD_SETCOLORKEY
)(PDD_DRVSETCOLORKEYDATA
);
471 #define DDWAITVB_I_TESTVB 0x80000006
473 typedef struct _DD_WAITFORVERTICALBLANKDATA
475 PDD_DIRECTDRAW_GLOBAL lpDD
;
480 PVOID WaitForVerticalBlank
;
481 } DD_WAITFORVERTICALBLANKDATA
, *PDD_WAITFORVERTICALBLANKDATA
;
482 typedef DWORD (STDCALL
*PDD_WAITFORVERTICALBLANK
)(PDD_WAITFORVERTICALBLANKDATA
);
484 typedef struct _DD_CANCREATESURFACEDATA
486 PDD_DIRECTDRAW_GLOBAL lpDD
;
487 DDSURFACEDESC
*lpDDSurfaceDesc
;
488 DWORD bIsDifferentPixelFormat
;
490 PVOID CanCreateSurface
;
491 } DD_CANCREATESURFACEDATA
, *PDD_CANCREATESURFACEDATA
;
492 typedef DWORD (STDCALL
*PDD_CANCREATESURFACE
)(PDD_CANCREATESURFACEDATA
);
494 typedef struct _DD_CREATEPALETTEDATA
496 PDD_DIRECTDRAW_GLOBAL lpDD
;
497 PDD_PALETTE_GLOBAL lpDDPalette
;
498 LPPALETTEENTRY lpColorTable
;
502 } DD_CREATEPALETTEDATA
, *PDD_CREATEPALETTEDATA
;
503 typedef DWORD (STDCALL
*PDD_CREATEPALETTE
)(PDD_CREATEPALETTEDATA
);
505 typedef struct _DD_GETSCANLINEDATA
507 PDD_DIRECTDRAW_GLOBAL lpDD
;
511 } DD_GETSCANLINEDATA
, *PDD_GETSCANLINEDATA
;
512 typedef DWORD (STDCALL
*PDD_GETSCANLINE
)(PDD_GETSCANLINEDATA
);
514 typedef struct _DD_MAPMEMORYDATA
516 PDD_DIRECTDRAW_GLOBAL lpDD
;
521 } DD_MAPMEMORYDATA
, *PDD_MAPMEMORYDATA
;
522 typedef DWORD (STDCALL
*PDD_MAPMEMORY
)(PDD_MAPMEMORYDATA
);
527 typedef struct _DD_DESTROYDRIVERDATA
*PDD_DESTROYDRIVERDATA
;
528 typedef struct _DD_SETMODEDATA
*PDD_SETMODEDATA
;
530 typedef DWORD (APIENTRY
*PDD_DESTROYDRIVER
)(PDD_DESTROYDRIVERDATA
);
531 typedef DWORD (APIENTRY
*PDD_SETMODE
)(PDD_SETMODEDATA
);
533 typedef struct DD_CALLBACKS
537 PDD_DESTROYDRIVER DestroyDriver
;
538 PDD_CREATESURFACE CreateSurface
;
539 PDD_SETCOLORKEY SetColorKey
;
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
;
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
560 typedef struct _DD_GETAVAILDRIVERMEMORYDATA
562 PDD_DIRECTDRAW_GLOBAL lpDD
;
567 PVOID GetAvailDriverMemory
;
568 } DD_GETAVAILDRIVERMEMORYDATA
, *PDD_GETAVAILDRIVERMEMORYDATA
;
569 typedef DWORD (STDCALL
*PDD_GETAVAILDRIVERMEMORY
)(PDD_GETAVAILDRIVERMEMORYDATA
);
571 typedef struct _DD_MISCELLANEOUSCALLBACKS
575 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory
;
576 } DD_MISCELLANEOUSCALLBACKS
, *PDD_MISCELLANEOUSCALLBACKS
;
578 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
580 typedef DWORD (STDCALL
*PDD_ALPHABLT
)(PDD_BLTDATA
);
582 typedef struct _DD_CREATESURFACEEXDATA
585 PDD_DIRECTDRAW_LOCAL lpDDLcl
;
586 PDD_SURFACE_LOCAL lpDDSLcl
;
588 } DD_CREATESURFACEEXDATA
, *PDD_CREATESURFACEEXDATA
;
589 typedef DWORD (STDCALL
*PDD_CREATESURFACEEX
)(PDD_CREATESURFACEEXDATA
);
591 typedef struct _DD_GETDRIVERSTATEDATA
596 PDD_DIRECTDRAW_GLOBAL lpDD
;
597 DWORD_PTR dwhContext
;
602 } DD_GETDRIVERSTATEDATA
, *PDD_GETDRIVERSTATEDATA
;
603 typedef DWORD (STDCALL
*PDD_GETDRIVERSTATE
)(PDD_GETDRIVERSTATEDATA
);
605 typedef struct _DD_DESTROYDDLOCALDATA
608 PDD_DIRECTDRAW_LOCAL pDDLcl
;
610 } DD_DESTROYDDLOCALDATA
, *PDD_DESTROYDDLOCALDATA
;
611 typedef DWORD (STDCALL
*PDD_DESTROYDDLOCAL
)(PDD_DESTROYDDLOCALDATA
);
615 typedef struct _DD_MISCELLANEOUS2CALLBACKS
619 PDD_ALPHABLT AlphaBlt
;
620 PDD_CREATESURFACEEX CreateSurfaceEx
;
621 PDD_GETDRIVERSTATE GetDriverState
;
622 PDD_DESTROYDDLOCAL DestroyDDLocal
;
623 } DD_MISCELLANEOUS2CALLBACKS
, *PDD_MISCELLANEOUS2CALLBACKS
;
626 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
627 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
628 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
629 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
632 typedef struct _DD_FREEDRIVERMEMORYDATA
634 PDD_DIRECTDRAW_GLOBAL lpDD
;
635 PDD_SURFACE_LOCAL lpDDSurface
;
637 PVOID FreeDriverMemory
;
638 } DD_FREEDRIVERMEMORYDATA
, *PDD_FREEDRIVERMEMORYDATA
;
639 typedef DWORD (STDCALL
*PDD_FREEDRIVERMEMORY
)(PDD_FREEDRIVERMEMORYDATA
);
641 typedef struct _DD_SETEXCLUSIVEMODEDATA
643 PDD_DIRECTDRAW_GLOBAL lpDD
;
647 PVOID SetExclusiveMode
;
648 } DD_SETEXCLUSIVEMODEDATA
, *PDD_SETEXCLUSIVEMODEDATA
;
649 typedef DWORD (STDCALL
*PDD_SETEXCLUSIVEMODE
)(PDD_SETEXCLUSIVEMODEDATA
);
651 typedef struct _DD_FLIPTOGDISURFACEDATA
653 PDD_DIRECTDRAW_GLOBAL lpDD
;
657 PVOID FlipToGDISurface
;
658 } DD_FLIPTOGDISURFACEDATA
, *PDD_FLIPTOGDISURFACEDATA
;
659 typedef DWORD (STDCALL
*PDD_FLIPTOGDISURFACE
)(PDD_FLIPTOGDISURFACEDATA
);
663 typedef struct _DD_NTCALLBACKS
667 PDD_FREEDRIVERMEMORY FreeDriverMemory
;
668 PDD_SETEXCLUSIVEMODE SetExclusiveMode
;
669 PDD_FLIPTOGDISURFACE FlipToGDISurface
;
670 } DD_NTCALLBACKS
, *PDD_NTCALLBACKS
;
673 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
674 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
675 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
677 /************************************************************************/
678 /* IDirectDrawPalette callbacks */
679 /************************************************************************/
681 typedef struct _DD_DESTROYPALETTEDATA
683 PDD_DIRECTDRAW_GLOBAL lpDD
;
684 PDD_PALETTE_GLOBAL lpDDPalette
;
686 PVOID DestroyPalette
;
687 } DD_DESTROYPALETTEDATA
, *PDD_DESTROYPALETTEDATA
;
688 typedef DWORD (STDCALL
*PDD_PALCB_DESTROYPALETTE
)(PDD_DESTROYPALETTEDATA
);
690 typedef struct _DD_SETENTRIESDATA
692 PDD_DIRECTDRAW_GLOBAL lpDD
;
693 PDD_PALETTE_GLOBAL lpDDPalette
;
696 LPPALETTEENTRY lpEntries
;
699 } DD_SETENTRIESDATA
, *PDD_SETENTRIESDATA
;
700 typedef DWORD (STDCALL
*PDD_PALCB_SETENTRIES
)(PDD_SETENTRIESDATA
);
702 typedef struct DD_PALETTECALLBACKS
706 PDD_PALCB_DESTROYPALETTE DestroyPalette
;
707 PDD_PALCB_SETENTRIES SetEntries
;
708 } DD_PALETTECALLBACKS
, *PDD_PALETTECALLBACKS
;
710 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
711 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
713 /************************************************************************/
714 /* IDirectDrawVideoport callbacks */
715 /************************************************************************/
717 typedef struct _DD_CANCREATEVPORTDATA
719 PDD_DIRECTDRAW_LOCAL lpDD
;
720 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
722 PVOID CanCreateVideoPort
;
723 } DD_CANCREATEVPORTDATA
, *PDD_CANCREATEVPORTDATA
;
724 typedef DWORD (STDCALL
*PDD_VPORTCB_CANCREATEVIDEOPORT
)(PDD_CANCREATEVPORTDATA
);
726 typedef struct _DD_CREATEVPORTDATA
728 PDD_DIRECTDRAW_LOCAL lpDD
;
729 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
730 PDD_VIDEOPORT_LOCAL lpVideoPort
;
732 PVOID CreateVideoPort
;
733 } DD_CREATEVPORTDATA
, *PDD_CREATEVPORTDATA
;
734 typedef DWORD (STDCALL
*PDD_VPORTCB_CREATEVIDEOPORT
)(PDD_CREATEVPORTDATA
);
736 typedef struct _DD_FLIPVPORTDATA
738 PDD_DIRECTDRAW_LOCAL lpDD
;
739 PDD_VIDEOPORT_LOCAL lpVideoPort
;
740 PDD_SURFACE_LOCAL lpSurfCurr
;
741 PDD_SURFACE_LOCAL lpSurfTarg
;
744 } DD_FLIPVPORTDATA
, *PDD_FLIPVPORTDATA
;
745 typedef DWORD (STDCALL
*PDD_VPORTCB_FLIP
)(PDD_FLIPVPORTDATA
);
747 typedef struct _DD_GETVPORTBANDWIDTHDATA
749 PDD_DIRECTDRAW_LOCAL lpDD
;
750 PDD_VIDEOPORT_LOCAL lpVideoPort
;
751 LPDDPIXELFORMAT lpddpfFormat
;
755 LPDDVIDEOPORTBANDWIDTH lpBandwidth
;
757 PVOID GetVideoPortBandwidth
;
758 } DD_GETVPORTBANDWIDTHDATA
, *PDD_GETVPORTBANDWIDTHDATA
;
759 typedef DWORD (STDCALL
*PDD_VPORTCB_GETBANDWIDTH
)(PDD_GETVPORTBANDWIDTHDATA
);
761 typedef struct _DD_GETVPORTINPUTFORMATDATA
763 PDD_DIRECTDRAW_LOCAL lpDD
;
764 PDD_VIDEOPORT_LOCAL lpVideoPort
;
766 LPDDPIXELFORMAT lpddpfFormat
;
769 PVOID GetVideoPortInputFormats
;
770 } DD_GETVPORTINPUTFORMATDATA
, *PDD_GETVPORTINPUTFORMATDATA
;
771 typedef DWORD (STDCALL
*PDD_VPORTCB_GETINPUTFORMATS
)(PDD_GETVPORTINPUTFORMATDATA
);
773 typedef struct _DD_GETVPORTOUTPUTFORMATDATA
775 PDD_DIRECTDRAW_LOCAL lpDD
;
776 PDD_VIDEOPORT_LOCAL lpVideoPort
;
778 LPDDPIXELFORMAT lpddpfInputFormat
;
779 LPDDPIXELFORMAT lpddpfOutputFormats
;
782 PVOID GetVideoPortInputFormats
;
783 } DD_GETVPORTOUTPUTFORMATDATA
, *PDD_GETVPORTOUTPUTFORMATDATA
;
784 typedef DWORD (STDCALL
*PDD_VPORTCB_GETOUTPUTFORMATS
)(PDD_GETVPORTOUTPUTFORMATDATA
);
786 typedef struct _DD_GETVPORTFIELDDATA
788 PDD_DIRECTDRAW_LOCAL lpDD
;
789 PDD_VIDEOPORT_LOCAL lpVideoPort
;
792 PVOID GetVideoPortField
;
793 } DD_GETVPORTFIELDDATA
, *PDD_GETVPORTFIELDDATA
;
794 typedef DWORD (STDCALL
*PDD_VPORTCB_GETFIELD
)(PDD_GETVPORTFIELDDATA
);
796 typedef struct _DD_GETVPORTLINEDATA
798 PDD_DIRECTDRAW_LOCAL lpDD
;
799 PDD_VIDEOPORT_LOCAL lpVideoPort
;
802 PVOID GetVideoPortLine
;
803 } DD_GETVPORTLINEDATA
, *PDD_GETVPORTLINEDATA
;
804 typedef DWORD (STDCALL
*PDD_VPORTCB_GETLINE
)(PDD_GETVPORTLINEDATA
);
806 typedef struct _DD_GETVPORTCONNECTDATA
808 PDD_DIRECTDRAW_LOCAL lpDD
;
810 LPDDVIDEOPORTCONNECT lpConnect
;
813 PVOID GetVideoPortConnectInfo
;
814 } DD_GETVPORTCONNECTDATA
, *PDD_GETVPORTCONNECTDATA
;
815 typedef DWORD (STDCALL
*PDD_VPORTCB_GETVPORTCONNECT
)(PDD_GETVPORTCONNECTDATA
);
817 typedef struct _DD_DESTROYVPORTDATA
819 PDD_DIRECTDRAW_LOCAL lpDD
;
820 PDD_VIDEOPORT_LOCAL lpVideoPort
;
822 PVOID DestroyVideoPort
;
823 } DD_DESTROYVPORTDATA
, *PDD_DESTROYVPORTDATA
;
824 typedef DWORD (STDCALL
*PDD_VPORTCB_DESTROYVPORT
)(PDD_DESTROYVPORTDATA
);
826 typedef struct _DD_GETVPORTFLIPSTATUSDATA
828 PDD_DIRECTDRAW_LOCAL lpDD
;
831 PVOID GetVideoPortFlipStatus
;
832 } DD_GETVPORTFLIPSTATUSDATA
, *PDD_GETVPORTFLIPSTATUSDATA
;
833 typedef DWORD (STDCALL
*PDD_VPORTCB_GETFLIPSTATUS
)(PDD_GETVPORTFLIPSTATUSDATA
);
837 typedef struct _DD_UPDATEVPORTDATA
839 PDD_DIRECTDRAW_LOCAL lpDD
;
840 PDD_VIDEOPORT_LOCAL lpVideoPort
;
841 PDD_SURFACE_INT
*lplpDDSurface
;
842 PDD_SURFACE_INT
*lplpDDVBISurface
;
843 LPDDVIDEOPORTINFO lpVideoInfo
;
846 DWORD dwNumVBIAutoflip
;
848 PVOID UpdateVideoPort
;
849 } DD_UPDATEVPORTDATA
, *PDD_UPDATEVPORTDATA
;
850 typedef DWORD (STDCALL
*PDD_VPORTCB_UPDATE
)(PDD_UPDATEVPORTDATA
);
852 typedef struct _DD_WAITFORVPORTSYNCDATA
854 PDD_DIRECTDRAW_LOCAL lpDD
;
855 PDD_VIDEOPORT_LOCAL lpVideoPort
;
860 PVOID UpdateVideoPort
;
861 } DD_WAITFORVPORTSYNCDATA
, *PDD_WAITFORVPORTSYNCDATA
;
862 typedef DWORD (STDCALL
*PDD_VPORTCB_WAITFORSYNC
)(PDD_WAITFORVPORTSYNCDATA
);
864 typedef struct _DD_GETVPORTSIGNALDATA
866 PDD_DIRECTDRAW_LOCAL lpDD
;
867 PDD_VIDEOPORT_LOCAL lpVideoPort
;
870 PVOID GetVideoSignalStatus
;
871 } DD_GETVPORTSIGNALDATA
, *PDD_GETVPORTSIGNALDATA
;
872 typedef DWORD (STDCALL
*PDD_VPORTCB_GETSIGNALSTATUS
)(PDD_GETVPORTSIGNALDATA
);
876 typedef struct _DD_VPORTCOLORDATA
878 PDD_DIRECTDRAW_LOCAL lpDD
;
879 PDD_VIDEOPORT_LOCAL lpVideoPort
;
881 LPDDCOLORCONTROL lpColorData
;
884 } DD_VPORTCOLORDATA
, *PDD_VPORTCOLORDATA
;
885 typedef DWORD (STDCALL
*PDD_VPORTCB_COLORCONTROL
)(PDD_VPORTCOLORDATA
);
888 typedef struct DD_VIDEOPORTCALLBACKS
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
;
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
;
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
927 /************************************************************************/
928 /* IDirectDrawColorControl callbacks */
929 /************************************************************************/
931 #define DDRAWI_GETCOLOR 0x0001
932 #define DDRAWI_SETCOLOR 0x0002
934 typedef struct _DD_COLORCONTROLDATA
936 PDD_DIRECTDRAW_GLOBAL lpDD
;
937 PDD_SURFACE_LOCAL lpDDSurface
;
938 LPDDCOLORCONTROL lpColorData
;
942 } DD_COLORCONTROLDATA
, *PDD_COLORCONTROLDATA
;
943 typedef DWORD (STDCALL
*PDD_COLORCB_COLORCONTROL
)(PDD_COLORCONTROLDATA
);
947 typedef struct _DD_COLORCONTROLCALLBACKS
951 PDD_COLORCB_COLORCONTROL ColorControl
;
952 } DD_COLORCONTROLCALLBACKS
, *PDD_COLORCONTROLCALLBACKS
;
954 #define DDHAL_COLOR_COLORCONTROL 0x00000001
956 /************************************************************************/
957 /* IDirectDrawVideo callbacks */
958 /************************************************************************/
960 typedef struct _DD_GETMOCOMPGUIDSDATA
962 PDD_DIRECTDRAW_LOCAL lpDD
;
966 } DD_GETMOCOMPGUIDSDATA
, *PDD_GETMOCOMPGUIDSDATA
;
967 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETGUIDS
)(PDD_GETMOCOMPGUIDSDATA
);
969 typedef struct _DD_GETMOCOMPFORMATSDATA
971 PDD_DIRECTDRAW_LOCAL lpDD
;
974 LPDDPIXELFORMAT lpFormats
;
976 } DD_GETMOCOMPFORMATSDATA
, *PDD_GETMOCOMPFORMATSDATA
;
977 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETFORMATS
)(PDD_GETMOCOMPFORMATSDATA
);
979 typedef struct _DD_CREATEMOCOMPDATA
981 PDD_DIRECTDRAW_LOCAL lpDD
;
982 PDD_MOTIONCOMP_LOCAL lpMoComp
;
985 DWORD dwUncompHeight
;
986 DDPIXELFORMAT ddUncompPixelFormat
;
990 } DD_CREATEMOCOMPDATA
, *PDD_CREATEMOCOMPDATA
;
991 typedef DWORD (STDCALL
*PDD_MOCOMPCB_CREATE
)(PDD_CREATEMOCOMPDATA
);
993 typedef struct _DDCOMPBUFFERINFO
996 DWORD dwNumCompBuffers
;
997 DWORD dwWidthToCreate
;
998 DWORD dwHeightToCreate
;
999 DWORD dwBytesToAllocate
;
1000 DDSCAPS2 ddCompCaps
;
1001 DDPIXELFORMAT ddPixelFormat
;
1002 } DDCOMPBUFFERINFO
, *LPDDCOMPBUFFERINFO
;
1004 typedef struct _DD_GETMOCOMPCOMPBUFFDATA
1006 PDD_DIRECTDRAW_LOCAL lpDD
;
1010 DDPIXELFORMAT ddPixelFormat
;
1011 DWORD dwNumTypesCompBuffs
;
1012 LPDDCOMPBUFFERINFO lpCompBuffInfo
;
1014 } DD_GETMOCOMPCOMPBUFFDATA
, *PDD_GETMOCOMPCOMPBUFFDATA
;
1015 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETCOMPBUFFINFO
)(PDD_GETMOCOMPCOMPBUFFDATA
);
1017 typedef struct _DD_GETINTERNALMOCOMPDATA
1019 PDD_DIRECTDRAW_LOCAL lpDD
;
1023 DDPIXELFORMAT ddPixelFormat
;
1024 DWORD dwScratchMemAlloc
;
1026 } DD_GETINTERNALMOCOMPDATA
, *PDD_GETINTERNALMOCOMPDATA
;
1027 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETINTERNALINFO
)(PDD_GETINTERNALMOCOMPDATA
);
1029 typedef struct _DD_BEGINMOCOMPFRAMEDATA
1031 PDD_DIRECTDRAW_LOCAL lpDD
;
1032 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1033 PDD_SURFACE_LOCAL lpDestSurface
;
1034 DWORD dwInputDataSize
;
1036 DWORD dwOutputDataSize
;
1037 LPVOID lpOutputData
;
1039 } DD_BEGINMOCOMPFRAMEDATA
, *PDD_BEGINMOCOMPFRAMEDATA
;
1040 typedef DWORD (STDCALL
*PDD_MOCOMPCB_BEGINFRAME
)(PDD_BEGINMOCOMPFRAMEDATA
);
1042 typedef struct _DD_ENDMOCOMPFRAMEDATA
1044 PDD_DIRECTDRAW_LOCAL lpDD
;
1045 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1047 DWORD dwInputDataSize
;
1049 } DD_ENDMOCOMPFRAMEDATA
, *PDD_ENDMOCOMPFRAMEDATA
;
1050 typedef DWORD (STDCALL
*PDD_MOCOMPCB_ENDFRAME
)(PDD_ENDMOCOMPFRAMEDATA
);
1052 typedef struct _DDMOCOMPBUFFERINFO
1055 PDD_SURFACE_LOCAL lpCompSurface
;
1059 } DDMOCOMPBUFFERINFO
, *LPDDMOCOMPBUFFERINFO
;
1061 typedef struct _DD_RENDERMOCOMPDATA
1063 PDD_DIRECTDRAW_LOCAL lpDD
;
1064 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1066 LPDDMOCOMPBUFFERINFO lpBufferInfo
;
1069 DWORD dwInputDataSize
;
1070 LPVOID lpOutputData
;
1071 DWORD dwOutputDataSize
;
1073 } DD_RENDERMOCOMPDATA
, *PDD_RENDERMOCOMPDATA
;
1074 typedef DWORD (STDCALL
*PDD_MOCOMPCB_RENDER
)(PDD_RENDERMOCOMPDATA
);
1076 #define DDMCQUERY_READ 0x00000001
1078 typedef struct _DD_QUERYMOCOMPSTATUSDATA
1080 PDD_DIRECTDRAW_LOCAL lpDD
;
1081 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1082 PDD_SURFACE_LOCAL lpSurface
;
1085 } DD_QUERYMOCOMPSTATUSDATA
, *PDD_QUERYMOCOMPSTATUSDATA
;
1086 typedef DWORD (STDCALL
*PDD_MOCOMPCB_QUERYSTATUS
)(PDD_QUERYMOCOMPSTATUSDATA
);
1088 typedef struct _DD_DESTROYMOCOMPDATA
1090 PDD_DIRECTDRAW_LOCAL lpDD
;
1091 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1093 } DD_DESTROYMOCOMPDATA
, *PDD_DESTROYMOCOMPDATA
;
1094 typedef DWORD (STDCALL
*PDD_MOCOMPCB_DESTROY
)(PDD_DESTROYMOCOMPDATA
);
1098 typedef struct DD_MOTIONCOMPCALLBACKS
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
;
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
1125 /************************************************************************/
1126 /* D3D buffer callbacks */
1127 /************************************************************************/
1129 typedef struct _DD_D3DBUFCALLBACKS
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
;
1140 /************************************************************************/
1141 /* DdGetDriverInfo callback */
1142 /************************************************************************/
1144 typedef struct _DD_GETDRIVERINFODATA
1151 DWORD dwExpectedSize
;
1156 } DD_GETDRIVERINFODATA
, *PDD_GETDRIVERINFODATA
;
1157 typedef DWORD (STDCALL
*PDD_GETDRIVERINFO
)(PDD_GETDRIVERINFODATA
);
1162 /************************************************************************/
1163 /* Driver info structures */
1164 /************************************************************************/
1166 typedef struct _DDNTCORECAPS
1173 DWORD dwFXAlphaCaps
;
1176 DWORD dwAlphaBltConstBitDepths
;
1177 DWORD dwAlphaBltPixelBitDepths
;
1178 DWORD dwAlphaBltSurfaceBitDepths
;
1179 DWORD dwAlphaOverlayConstBitDepths
;
1180 DWORD dwAlphaOverlayPixelBitDepths
;
1181 DWORD dwAlphaOverlaySurfaceBitDepths
;
1182 DWORD dwZBufferBitDepths
;
1183 DWORD dwVidMemTotal
;
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
];
1195 DWORD dwMinOverlayStretch
;
1196 DWORD dwMaxOverlayStretch
;
1197 DWORD dwMinLiveVideoStretch
;
1198 DWORD dwMaxLiveVideoStretch
;
1199 DWORD dwMinHwCodecStretch
;
1200 DWORD dwMaxHwCodecStretch
;
1205 DWORD dwSVBCKeyCaps
;
1207 DWORD dwSVBRops
[DD_ROP_SPACE
];
1209 DWORD dwVSBCKeyCaps
;
1211 DWORD dwVSBRops
[DD_ROP_SPACE
];
1213 DWORD dwSSBCKeyCaps
;
1215 DWORD dwSSBRops
[DD_ROP_SPACE
];
1216 DWORD dwMaxVideoPorts
;
1217 DWORD dwCurrVideoPorts
;
1219 } DDNTCORECAPS
, *PDDNTCORECAPS
;
1222 typedef struct _DD_HALINFO_V4
1225 VIDEOMEMORYINFO vmiData
;
1226 DDNTCORECAPS ddCaps
;
1227 PDD_GETDRIVERINFO GetDriverInfo
;
1229 } DD_HALINFO_V4
, *PDD_HALINFO_V4
;
1231 typedef struct _DD_HALINFO
1234 VIDEOMEMORYINFO vmiData
;
1235 DDNTCORECAPS ddCaps
;
1236 PDD_GETDRIVERINFO GetDriverInfo
;
1238 PVOID lpD3DGlobalDriverData
;
1239 PVOID lpD3DHALCallbacks
;
1240 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks
;
1241 } DD_HALINFO
, *PDD_HALINFO
;
1245 typedef struct _DD_NONLOCALVIDMEMCAPS
1250 DWORD dwNLVBCKeyCaps
;
1252 DWORD dwNLVBRops
[DD_ROP_SPACE
];
1253 } DD_NONLOCALVIDMEMCAPS
, *PDD_NONLOCALVIDMEMCAPS
;
1257 typedef struct _DD_MORESURFACECAPS
1260 DDSCAPSEX ddsCapsMore
;
1261 struct tagNTExtendedHeapRestrictions
1263 DDSCAPSEX ddsCapsEx
;
1264 DDSCAPSEX ddsCapsExAlt
;
1265 } ddsExtendedHeapRestrictions
[1];
1266 } DD_MORESURFACECAPS
, *PDD_MORESURFACECAPS
;
1269 /*********************************************************/
1270 /* Kernel Callbacks */
1271 /*********************************************************/
1272 typedef struct _DD_SYNCSURFACEDATA
1274 PDD_DIRECTDRAW_LOCAL lpDD
;
1275 PDD_SURFACE_LOCAL lpDDSurface
;
1276 DWORD dwSurfaceOffset
;
1277 ULONG_PTR fpLockPtr
;
1279 DWORD dwOverlayOffset
;
1280 ULONG dwDriverReserved1
;
1281 ULONG dwDriverReserved2
;
1282 ULONG dwDriverReserved3
;
1283 ULONG dwDriverReserved4
;
1285 } DD_SYNCSURFACEDATA
, *PDD_SYNCSURFACEDATA
;
1286 typedef DWORD (STDCALL
*PDD_KERNELCB_SYNCSURFACE
)(PDD_SYNCSURFACEDATA
);
1288 typedef struct _DD_SYNCVIDEOPORTDATA
1290 PDD_DIRECTDRAW_LOCAL lpDD
;
1291 PDD_VIDEOPORT_LOCAL lpVideoPort
;
1292 DWORD dwOriginOffset
;
1295 ULONG dwDriverReserved1
;
1296 ULONG dwDriverReserved2
;
1297 ULONG dwDriverReserved3
;
1299 } DD_SYNCVIDEOPORTDATA
, *PDD_SYNCVIDEOPORTDATA
;
1300 typedef DWORD (STDCALL
*PDD_KERNELCB_SYNCVIDEOPORT
)(PDD_SYNCVIDEOPORTDATA
);
1303 typedef struct DD_NTPRIVATEDRIVERCAPS
1306 DWORD dwPrivateCaps
;
1307 } DD_NTPRIVATEDRIVERCAPS
;
1309 typedef struct _DD_UPDATENONLOCALHEAPDATA
1311 PDD_DIRECTDRAW_GLOBAL lpDD
;
1315 ULONG_PTR ulPolicyMaxBytes
;
1317 VOID
* UpdateNonLocalHeap
;
1318 } DD_UPDATENONLOCALHEAPDATA
, *PDD_UPDATENONLOCALHEAPDATA
;
1320 typedef struct _DD_STEREOMODE
1326 DWORD dwRefreshRate
;
1328 } DD_STEREOMODE
, *PDD_STEREOMODE
;
1330 typedef struct _DD_MORECAPS
1334 DWORD dwSVBAlphaCaps
;
1335 DWORD dwVSBAlphaCaps
;
1336 DWORD dwSSBAlphaCaps
;
1338 DWORD dwSVBFilterCaps
;
1339 DWORD dwVSBFilterCaps
;
1340 DWORD dwSSBFilterCaps
;
1341 } DD_MORECAPS
, *PDD_MORECAPS
;
1343 typedef struct _DD_CLIPPER_GLOBAL
1345 ULONG_PTR dwReserved1
;
1346 } DD_CLIPPER_GLOBAL
;
1348 typedef struct _DD_CLIPPER_LOCAL
1350 ULONG_PTR dwReserved1
;
1353 typedef struct _DD_PALETTE_LOCAL
1356 ULONG_PTR dwReserved1
;
1360 typedef struct DD_KERNELCALLBACKS
1364 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData
;
1365 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData
;
1366 } DD_KERNELCALLBACKS
, *PDD_KERNELCALLBACKS
;
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
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
1408 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1410 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1411 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1413 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1414 #define DDHAL_DRIVER_HANDLED 0x00000001l
1415 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
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
1425 #define ROP_HAS_SOURCE 0x00000001l
1426 #define ROP_HAS_PATTERN 0x00000002l
1427 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
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
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
1441 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1442 #define DDHALINFO_MODEXILLEGAL 0x00000002
1443 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1444 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1446 #define DDRAWIVPORT_ON 0x00000001
1447 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1448 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1450 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1451 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1452 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
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
1465 #endif /* GUID_DEFS_ONLY */
1467 #endif /* __DD_INCLUDED__ */