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 typedef ULONG_PTR FLATPTR
;
62 typedef struct _DD_VIDEOPORT_LOCAL
*PDD_VIDEOPORT_LOCAL
;
64 /************************************************************************/
65 /* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */
66 /************************************************************************/
67 struct _DD_GETHEAPALIGNMENTDATA
;
68 typedef struct _DD_GETHEAPALIGNMENTDATA
*PDD_GETHEAPALIGNMENTDATA
;
70 /************************************************************************/
71 /* Video memory info structures */
72 /************************************************************************/
74 typedef struct _VIDEOMEMORY
87 struct _VMEMHEAP
*lpHeap
;
90 } VIDEOMEMORY
, *PVIDEOMEMORY
;
92 typedef struct _VIDEOMEMORYINFO
97 DWORD dwDisplayHeight
;
99 DDPIXELFORMAT ddpfDisplay
;
100 DWORD dwOffscreenAlign
;
101 DWORD dwOverlayAlign
;
102 DWORD dwTextureAlign
;
103 DWORD dwZBufferAlign
;
107 typedef VIDEOMEMORYINFO
*LPVIDEOMEMORYINFO
;
109 typedef struct _DD_DIRECTDRAW_GLOBAL
112 ULONG_PTR dwReserved1
;
113 ULONG_PTR dwReserved2
;
114 LPDDVIDEOPORTCAPS lpDDVideoPortCaps
;
115 } DD_DIRECTDRAW_GLOBAL
, *PDD_DIRECTDRAW_GLOBAL
;
117 typedef struct _DD_DIRECTDRAW_LOCAL
119 PDD_DIRECTDRAW_GLOBAL lpGbl
;
120 } DD_DIRECTDRAW_LOCAL
, *PDD_DIRECTDRAW_LOCAL
;
123 typedef struct _DD_SURFACE_GLOBAL
133 PVIDEOMEMORY lpVidMemHeap
;
148 ULONG_PTR dwReserved1
;
149 DDPIXELFORMAT ddpfSurface
;
150 FLATPTR fpHeapOffset
;
151 HANDLE hCreatorProcess
;
152 } DD_SURFACE_GLOBAL
, *PDD_SURFACE_GLOBAL
;
154 typedef struct _DD_SURFACE_MORE
157 PDD_VIDEOPORT_LOCAL lpVideoPort
;
158 DWORD dwOverlayFlags
;
160 DWORD dwSurfaceHandle
;
161 } DD_SURFACE_MORE
, *PDD_SURFACE_MORE
;
163 typedef struct _DD_ATTACHLIST
*PDD_ATTACHLIST
;
165 typedef struct _DD_SURFACE_LOCAL
167 PDD_SURFACE_GLOBAL lpGbl
;
170 ULONG_PTR dwReserved1
;
173 DDCOLORKEY ddckCKSrcOverlay
;
174 DDCOLORKEY ddckCKSrcBlt
;
178 DDCOLORKEY ddckCKDestOverlay
;
179 DDCOLORKEY ddckCKDestBlt
;
181 PDD_SURFACE_MORE lpSurfMore
;
182 PDD_ATTACHLIST lpAttachList
;
183 PDD_ATTACHLIST lpAttachListFrom
;
185 } DD_SURFACE_LOCAL
, *PDD_SURFACE_LOCAL
;
187 typedef struct _DD_ATTACHLIST
189 PDD_ATTACHLIST lpLink
;
190 PDD_SURFACE_LOCAL lpAttached
;
193 typedef struct _DD_SURFACE_INT
195 PDD_SURFACE_LOCAL lpLcl
;
196 } DD_SURFACE_INT
, *PDD_SURFACE_INT
;
198 /************************************************************************/
199 /* DDI representation of the DirectDrawPalette object */
200 /************************************************************************/
202 typedef struct _DD_PALETTE_GLOBAL
205 } DD_PALETTE_GLOBAL
, *PDD_PALETTE_GLOBAL
;
207 /************************************************************************/
208 /* DDI representation of the DirectDrawVideo object */
209 /************************************************************************/
213 PDD_DIRECTDRAW_LOCAL lpDD
;
216 DWORD dwUncompHeight
;
217 DDPIXELFORMAT ddUncompPixelFormat
;
218 DWORD dwDriverReserved1
;
219 DWORD dwDriverReserved2
;
220 DWORD dwDriverReserved3
;
221 LPVOID lpDriverReserved1
;
222 LPVOID lpDriverReserved2
;
223 LPVOID lpDriverReserved3
;
224 } DD_MOTIONCOMP_LOCAL
, *PDD_MOTIONCOMP_LOCAL
;
227 typedef struct _DD_VIDEOPORT_LOCAL
229 PDD_DIRECTDRAW_LOCAL lpDD
;
230 DDVIDEOPORTDESC ddvpDesc
;
231 DDVIDEOPORTINFO ddvpInfo
;
232 PDD_SURFACE_INT lpSurface
;
233 PDD_SURFACE_INT lpVBISurface
;
235 DWORD dwNumVBIAutoflip
;
236 ULONG_PTR dwReserved1
;
237 ULONG_PTR dwReserved2
;
238 ULONG_PTR dwReserved3
;
239 } DD_VIDEOPORT_LOCAL
;
241 /************************************************************************/
242 /* IDirectDrawSurface callbacks */
243 /************************************************************************/
245 typedef struct _DD_LOCKDATA
247 PDD_DIRECTDRAW_GLOBAL lpDD
;
248 PDD_SURFACE_LOCAL lpDDSurface
;
256 } DD_LOCKDATA
, *PDD_LOCKDATA
;
257 typedef DWORD (STDCALL
*PDD_SURFCB_LOCK
)(PDD_LOCKDATA
);
260 typedef struct _DD_UNLOCKDATA
262 PDD_DIRECTDRAW_GLOBAL lpDD
;
263 PDD_SURFACE_LOCAL lpDDSurface
;
266 } DD_UNLOCKDATA
, *PDD_UNLOCKDATA
;
267 typedef DWORD (STDCALL
*PDD_SURFCB_UNLOCK
)(PDD_UNLOCKDATA
);
269 #define DDABLT_SRCOVERDEST 0x00000001
270 #define DDBLT_AFLAGS 0x80000000
274 typedef struct _DD_BLTDATA
276 PDD_DIRECTDRAW_GLOBAL lpDD
;
277 PDD_SURFACE_LOCAL lpDDDestSurface
;
279 PDD_SURFACE_LOCAL lpDDSrcSurface
;
292 DDARGB ddargbScaleFactors
;
293 } DD_BLTDATA
, *PDD_BLTDATA
;
294 typedef DWORD (STDCALL
*PDD_SURFCB_BLT
)(PDD_BLTDATA
);
296 typedef struct _DD_UPDATEOVERLAYDATA
298 PDD_DIRECTDRAW_GLOBAL lpDD
;
299 PDD_SURFACE_LOCAL lpDDDestSurface
;
301 PDD_SURFACE_LOCAL lpDDSrcSurface
;
304 DDOVERLAYFX overlayFX
;
307 } DD_UPDATEOVERLAYDATA
, *PDD_UPDATEOVERLAYDATA
;
308 typedef DWORD (STDCALL
*PDD_SURFCB_UPDATEOVERLAY
)(PDD_UPDATEOVERLAYDATA
);
310 typedef struct _DD_SETOVERLAYPOSITIONDATA
312 PDD_DIRECTDRAW_GLOBAL lpDD
;
313 PDD_SURFACE_LOCAL lpDDSrcSurface
;
314 PDD_SURFACE_LOCAL lpDDDestSurface
;
318 PVOID SetOverlayPosition
;
319 } DD_SETOVERLAYPOSITIONDATA
, *PDD_SETOVERLAYPOSITIONDATA
;
320 typedef DWORD (STDCALL
*PDD_SURFCB_SETOVERLAYPOSITION
)(PDD_SETOVERLAYPOSITIONDATA
);
322 typedef struct _DD_SETPALETTEDATA
324 PDD_DIRECTDRAW_GLOBAL lpDD
;
325 PDD_SURFACE_LOCAL lpDDSurface
;
326 PDD_PALETTE_GLOBAL lpDDPalette
;
330 } DD_SETPALETTEDATA
, *PDD_SETPALETTEDATA
;
331 typedef DWORD (STDCALL
*PDD_SURFCB_SETPALETTE
)(PDD_SETPALETTEDATA
);
333 typedef struct _DD_FLIPDATA
335 PDD_DIRECTDRAW_GLOBAL lpDD
;
336 PDD_SURFACE_LOCAL lpSurfCurr
;
337 PDD_SURFACE_LOCAL lpSurfTarg
;
341 PDD_SURFACE_LOCAL lpSurfCurrLeft
;
342 PDD_SURFACE_LOCAL lpSurfTargLeft
;
343 } DD_FLIPDATA
, *PDD_FLIPDATA
;
344 typedef DWORD (STDCALL
*PDD_SURFCB_FLIP
)(PDD_FLIPDATA
);
346 typedef struct _DD_DESTROYSURFACEDATA
348 PDD_DIRECTDRAW_GLOBAL lpDD
;
349 PDD_SURFACE_LOCAL lpDDSurface
;
351 PVOID DestroySurface
;
352 } DD_DESTROYSURFACEDATA
, *PDD_DESTROYSURFACEDATA
;
353 typedef DWORD (STDCALL
*PDD_SURFCB_DESTROYSURFACE
)(PDD_DESTROYSURFACEDATA
);
355 typedef struct _DD_SETCLIPLISTDATA
357 PDD_DIRECTDRAW_GLOBAL lpDD
;
358 PDD_SURFACE_LOCAL lpDDSurface
;
361 } DD_SETCLIPLISTDATA
, *PDD_SETCLIPLISTDATA
;
362 typedef DWORD (STDCALL
*PDD_SURFCB_SETCLIPLIST
)(PDD_SETCLIPLISTDATA
);
364 typedef struct _DD_ADDATTACHEDSURFACEDATA
366 PDD_DIRECTDRAW_GLOBAL lpDD
;
367 PDD_SURFACE_LOCAL lpDDSurface
;
368 PDD_SURFACE_LOCAL lpSurfAttached
;
370 PVOID AddAttachedSurface
;
371 } DD_ADDATTACHEDSURFACEDATA
, *PDD_ADDATTACHEDSURFACEDATA
;
372 typedef DWORD (STDCALL
*PDD_SURFCB_ADDATTACHEDSURFACE
)(PDD_ADDATTACHEDSURFACEDATA
);
374 typedef struct _DD_SETCOLORKEYDATA
376 PDD_DIRECTDRAW_GLOBAL lpDD
;
377 PDD_SURFACE_LOCAL lpDDSurface
;
382 } DD_SETCOLORKEYDATA
, *PDD_SETCOLORKEYDATA
;
383 typedef DWORD (STDCALL
*PDD_SURFCB_SETCOLORKEY
)(PDD_SETCOLORKEYDATA
);
385 typedef struct _DD_GETBLTSTATUSDATA
387 PDD_DIRECTDRAW_GLOBAL lpDD
;
388 PDD_SURFACE_LOCAL lpDDSurface
;
392 } DD_GETBLTSTATUSDATA
, *PDD_GETBLTSTATUSDATA
;
393 typedef DWORD (STDCALL
*PDD_SURFCB_GETBLTSTATUS
)(PDD_GETBLTSTATUSDATA
);
395 typedef struct _DD_GETFLIPSTATUSDATA
397 PDD_DIRECTDRAW_GLOBAL lpDD
;
398 PDD_SURFACE_LOCAL lpDDSurface
;
402 } DD_GETFLIPSTATUSDATA
, *PDD_GETFLIPSTATUSDATA
;
403 typedef DWORD (STDCALL
*PDD_SURFCB_GETFLIPSTATUS
)(PDD_GETFLIPSTATUSDATA
);
405 typedef struct DD_SURFACECALLBACKS
409 PDD_SURFCB_DESTROYSURFACE DestroySurface
;
410 PDD_SURFCB_FLIP Flip
;
411 PDD_SURFCB_SETCLIPLIST SetClipList
;
412 PDD_SURFCB_LOCK Lock
;
413 PDD_SURFCB_UNLOCK Unlock
;
415 PDD_SURFCB_SETCOLORKEY SetColorKey
;
416 PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface
;
417 PDD_SURFCB_GETBLTSTATUS GetBltStatus
;
418 PDD_SURFCB_GETFLIPSTATUS GetFlipStatus
;
419 PDD_SURFCB_UPDATEOVERLAY UpdateOverlay
;
420 PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition
;
422 PDD_SURFCB_SETPALETTE SetPalette
;
423 } DD_SURFACECALLBACKS
, *PDD_SURFACECALLBACKS
;
426 #define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
427 #define DDHAL_SURFCB32_FLIP 0x00000002
428 #define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
429 #define DDHAL_SURFCB32_LOCK 0x00000008
430 #define DDHAL_SURFCB32_UNLOCK 0x00000010
431 #define DDHAL_SURFCB32_BLT 0x00000020
432 #define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
433 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
434 #define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
435 #define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
436 #define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
437 #define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
438 #define DDHAL_SURFCB32_RESERVED4 0x00001000
439 #define DDHAL_SURFCB32_SETPALETTE 0x00002000
440 /************************************************************************/
441 /* IDirectDraw callbacks */
442 /************************************************************************/
444 typedef struct _DD_CREATESURFACEDATA
446 PDD_DIRECTDRAW_GLOBAL lpDD
;
447 DDSURFACEDESC
*lpDDSurfaceDesc
;
448 PDD_SURFACE_LOCAL
*lplpSList
;
452 } DD_CREATESURFACEDATA
, *PDD_CREATESURFACEDATA
;
453 typedef DWORD (STDCALL
*PDD_CREATESURFACE
)(PDD_CREATESURFACEDATA
);
455 typedef struct _DD_DRVSETCOLORKEYDATA
457 PDD_SURFACE_LOCAL lpDDSurface
;
462 } DD_DRVSETCOLORKEYDATA
, *PDD_DRVSETCOLORKEYDATA
;
463 typedef DWORD (STDCALL
*PDD_SETCOLORKEY
)(PDD_DRVSETCOLORKEYDATA
);
465 #define DDWAITVB_I_TESTVB 0x80000006
467 typedef struct _DD_WAITFORVERTICALBLANKDATA
469 PDD_DIRECTDRAW_GLOBAL lpDD
;
474 PVOID WaitForVerticalBlank
;
475 } DD_WAITFORVERTICALBLANKDATA
, *PDD_WAITFORVERTICALBLANKDATA
;
476 typedef DWORD (STDCALL
*PDD_WAITFORVERTICALBLANK
)(PDD_WAITFORVERTICALBLANKDATA
);
478 typedef struct _DD_CANCREATESURFACEDATA
480 PDD_DIRECTDRAW_GLOBAL lpDD
;
481 DDSURFACEDESC
*lpDDSurfaceDesc
;
482 DWORD bIsDifferentPixelFormat
;
484 PVOID CanCreateSurface
;
485 } DD_CANCREATESURFACEDATA
, *PDD_CANCREATESURFACEDATA
;
486 typedef DWORD (STDCALL
*PDD_CANCREATESURFACE
)(PDD_CANCREATESURFACEDATA
);
488 typedef struct _DD_CREATEPALETTEDATA
490 PDD_DIRECTDRAW_GLOBAL lpDD
;
491 PDD_PALETTE_GLOBAL lpDDPalette
;
492 LPPALETTEENTRY lpColorTable
;
496 } DD_CREATEPALETTEDATA
, *PDD_CREATEPALETTEDATA
;
497 typedef DWORD (STDCALL
*PDD_CREATEPALETTE
)(PDD_CREATEPALETTEDATA
);
499 typedef struct _DD_GETSCANLINEDATA
501 PDD_DIRECTDRAW_GLOBAL lpDD
;
505 } DD_GETSCANLINEDATA
, *PDD_GETSCANLINEDATA
;
506 typedef DWORD (STDCALL
*PDD_GETSCANLINE
)(PDD_GETSCANLINEDATA
);
508 typedef struct _DD_MAPMEMORYDATA
510 PDD_DIRECTDRAW_GLOBAL lpDD
;
515 } DD_MAPMEMORYDATA
, *PDD_MAPMEMORYDATA
;
516 typedef DWORD (STDCALL
*PDD_MAPMEMORY
)(PDD_MAPMEMORYDATA
);
521 typedef struct _DD_DESTROYDRIVERDATA
*PDD_DESTROYDRIVERDATA
;
522 typedef struct _DD_SETMODEDATA
*PDD_SETMODEDATA
;
524 typedef DWORD (APIENTRY
*PDD_DESTROYDRIVER
)(PDD_DESTROYDRIVERDATA
);
525 typedef DWORD (APIENTRY
*PDD_SETMODE
)(PDD_SETMODEDATA
);
527 typedef struct DD_CALLBACKS
531 PDD_DESTROYDRIVER DestroyDriver
;
532 PDD_CREATESURFACE CreateSurface
;
533 PDD_SETCOLORKEY SetColorKey
;
535 PDD_WAITFORVERTICALBLANK WaitForVerticalBlank
;
536 PDD_CANCREATESURFACE CanCreateSurface
;
537 PDD_CREATEPALETTE CreatePalette
;
538 PDD_GETSCANLINE GetScanLine
;
539 PDD_MAPMEMORY MapMemory
;
540 } DD_CALLBACKS
, *PDD_CALLBACKS
;
544 #define DDHAL_CB32_DESTROYDRIVER 0x00000001l
545 #define DDHAL_CB32_CREATESURFACE 0x00000002l
546 #define DDHAL_CB32_SETCOLORKEY 0x00000004l
547 #define DDHAL_CB32_SETMODE 0x00000008l
548 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
549 #define DDHAL_CB32_CANCREATESURFACE 0x00000020l
550 #define DDHAL_CB32_CREATEPALETTE 0x00000040l
551 #define DDHAL_CB32_GETSCANLINE 0x00000080l
552 #define DDHAL_CB32_MAPMEMORY 0x80000000l
554 typedef struct _DD_GETAVAILDRIVERMEMORYDATA
556 PDD_DIRECTDRAW_GLOBAL lpDD
;
561 PVOID GetAvailDriverMemory
;
562 } DD_GETAVAILDRIVERMEMORYDATA
, *PDD_GETAVAILDRIVERMEMORYDATA
;
563 typedef DWORD (STDCALL
*PDD_GETAVAILDRIVERMEMORY
)(PDD_GETAVAILDRIVERMEMORYDATA
);
565 typedef struct _DD_MISCELLANEOUSCALLBACKS
569 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory
;
570 } DD_MISCELLANEOUSCALLBACKS
, *PDD_MISCELLANEOUSCALLBACKS
;
572 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
574 typedef DWORD (STDCALL
*PDD_ALPHABLT
)(PDD_BLTDATA
);
576 typedef struct _DD_CREATESURFACEEXDATA
579 PDD_DIRECTDRAW_LOCAL lpDDLcl
;
580 PDD_SURFACE_LOCAL lpDDSLcl
;
582 } DD_CREATESURFACEEXDATA
, *PDD_CREATESURFACEEXDATA
;
583 typedef DWORD (STDCALL
*PDD_CREATESURFACEEX
)(PDD_CREATESURFACEEXDATA
);
585 typedef struct _DD_GETDRIVERSTATEDATA
590 PDD_DIRECTDRAW_GLOBAL lpDD
;
591 DWORD_PTR dwhContext
;
596 } DD_GETDRIVERSTATEDATA
, *PDD_GETDRIVERSTATEDATA
;
597 typedef DWORD (STDCALL
*PDD_GETDRIVERSTATE
)(PDD_GETDRIVERSTATEDATA
);
599 typedef struct _DD_DESTROYDDLOCALDATA
602 PDD_DIRECTDRAW_LOCAL pDDLcl
;
604 } DD_DESTROYDDLOCALDATA
, *PDD_DESTROYDDLOCALDATA
;
605 typedef DWORD (STDCALL
*PDD_DESTROYDDLOCAL
)(PDD_DESTROYDDLOCALDATA
);
609 typedef struct _DD_MISCELLANEOUS2CALLBACKS
613 PDD_ALPHABLT AlphaBlt
;
614 PDD_CREATESURFACEEX CreateSurfaceEx
;
615 PDD_GETDRIVERSTATE GetDriverState
;
616 PDD_DESTROYDDLOCAL DestroyDDLocal
;
617 } DD_MISCELLANEOUS2CALLBACKS
, *PDD_MISCELLANEOUS2CALLBACKS
;
620 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
621 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
622 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
623 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
626 typedef struct _DD_FREEDRIVERMEMORYDATA
628 PDD_DIRECTDRAW_GLOBAL lpDD
;
629 PDD_SURFACE_LOCAL lpDDSurface
;
631 PVOID FreeDriverMemory
;
632 } DD_FREEDRIVERMEMORYDATA
, *PDD_FREEDRIVERMEMORYDATA
;
633 typedef DWORD (STDCALL
*PDD_FREEDRIVERMEMORY
)(PDD_FREEDRIVERMEMORYDATA
);
635 typedef struct _DD_SETEXCLUSIVEMODEDATA
637 PDD_DIRECTDRAW_GLOBAL lpDD
;
641 PVOID SetExclusiveMode
;
642 } DD_SETEXCLUSIVEMODEDATA
, *PDD_SETEXCLUSIVEMODEDATA
;
643 typedef DWORD (STDCALL
*PDD_SETEXCLUSIVEMODE
)(PDD_SETEXCLUSIVEMODEDATA
);
645 typedef struct _DD_FLIPTOGDISURFACEDATA
647 PDD_DIRECTDRAW_GLOBAL lpDD
;
651 PVOID FlipToGDISurface
;
652 } DD_FLIPTOGDISURFACEDATA
, *PDD_FLIPTOGDISURFACEDATA
;
653 typedef DWORD (STDCALL
*PDD_FLIPTOGDISURFACE
)(PDD_FLIPTOGDISURFACEDATA
);
657 typedef struct _DD_NTCALLBACKS
661 PDD_FREEDRIVERMEMORY FreeDriverMemory
;
662 PDD_SETEXCLUSIVEMODE SetExclusiveMode
;
663 PDD_FLIPTOGDISURFACE FlipToGDISurface
;
664 } DD_NTCALLBACKS
, *PDD_NTCALLBACKS
;
667 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
668 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
669 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
671 /************************************************************************/
672 /* IDirectDrawPalette callbacks */
673 /************************************************************************/
675 typedef struct _DD_DESTROYPALETTEDATA
677 PDD_DIRECTDRAW_GLOBAL lpDD
;
678 PDD_PALETTE_GLOBAL lpDDPalette
;
680 PVOID DestroyPalette
;
681 } DD_DESTROYPALETTEDATA
, *PDD_DESTROYPALETTEDATA
;
682 typedef DWORD (STDCALL
*PDD_PALCB_DESTROYPALETTE
)(PDD_DESTROYPALETTEDATA
);
684 typedef struct _DD_SETENTRIESDATA
686 PDD_DIRECTDRAW_GLOBAL lpDD
;
687 PDD_PALETTE_GLOBAL lpDDPalette
;
690 LPPALETTEENTRY lpEntries
;
693 } DD_SETENTRIESDATA
, *PDD_SETENTRIESDATA
;
694 typedef DWORD (STDCALL
*PDD_PALCB_SETENTRIES
)(PDD_SETENTRIESDATA
);
696 typedef struct DD_PALETTECALLBACKS
700 PDD_PALCB_DESTROYPALETTE DestroyPalette
;
701 PDD_PALCB_SETENTRIES SetEntries
;
702 } DD_PALETTECALLBACKS
, *PDD_PALETTECALLBACKS
;
704 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
705 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
707 /************************************************************************/
708 /* IDirectDrawVideoport callbacks */
709 /************************************************************************/
711 typedef struct _DD_CANCREATEVPORTDATA
713 PDD_DIRECTDRAW_LOCAL lpDD
;
714 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
716 PVOID CanCreateVideoPort
;
717 } DD_CANCREATEVPORTDATA
, *PDD_CANCREATEVPORTDATA
;
718 typedef DWORD (STDCALL
*PDD_VPORTCB_CANCREATEVIDEOPORT
)(PDD_CANCREATEVPORTDATA
);
720 typedef struct _DD_CREATEVPORTDATA
722 PDD_DIRECTDRAW_LOCAL lpDD
;
723 LPDDVIDEOPORTDESC lpDDVideoPortDesc
;
724 PDD_VIDEOPORT_LOCAL lpVideoPort
;
726 PVOID CreateVideoPort
;
727 } DD_CREATEVPORTDATA
, *PDD_CREATEVPORTDATA
;
728 typedef DWORD (STDCALL
*PDD_VPORTCB_CREATEVIDEOPORT
)(PDD_CREATEVPORTDATA
);
730 typedef struct _DD_FLIPVPORTDATA
732 PDD_DIRECTDRAW_LOCAL lpDD
;
733 PDD_VIDEOPORT_LOCAL lpVideoPort
;
734 PDD_SURFACE_LOCAL lpSurfCurr
;
735 PDD_SURFACE_LOCAL lpSurfTarg
;
738 } DD_FLIPVPORTDATA
, *PDD_FLIPVPORTDATA
;
739 typedef DWORD (STDCALL
*PDD_VPORTCB_FLIP
)(PDD_FLIPVPORTDATA
);
741 typedef struct _DD_GETVPORTBANDWIDTHDATA
743 PDD_DIRECTDRAW_LOCAL lpDD
;
744 PDD_VIDEOPORT_LOCAL lpVideoPort
;
745 LPDDPIXELFORMAT lpddpfFormat
;
749 LPDDVIDEOPORTBANDWIDTH lpBandwidth
;
751 PVOID GetVideoPortBandwidth
;
752 } DD_GETVPORTBANDWIDTHDATA
, *PDD_GETVPORTBANDWIDTHDATA
;
753 typedef DWORD (STDCALL
*PDD_VPORTCB_GETBANDWIDTH
)(PDD_GETVPORTBANDWIDTHDATA
);
755 typedef struct _DD_GETVPORTINPUTFORMATDATA
757 PDD_DIRECTDRAW_LOCAL lpDD
;
758 PDD_VIDEOPORT_LOCAL lpVideoPort
;
760 LPDDPIXELFORMAT lpddpfFormat
;
763 PVOID GetVideoPortInputFormats
;
764 } DD_GETVPORTINPUTFORMATDATA
, *PDD_GETVPORTINPUTFORMATDATA
;
765 typedef DWORD (STDCALL
*PDD_VPORTCB_GETINPUTFORMATS
)(PDD_GETVPORTINPUTFORMATDATA
);
767 typedef struct _DD_GETVPORTOUTPUTFORMATDATA
769 PDD_DIRECTDRAW_LOCAL lpDD
;
770 PDD_VIDEOPORT_LOCAL lpVideoPort
;
772 LPDDPIXELFORMAT lpddpfInputFormat
;
773 LPDDPIXELFORMAT lpddpfOutputFormats
;
776 PVOID GetVideoPortInputFormats
;
777 } DD_GETVPORTOUTPUTFORMATDATA
, *PDD_GETVPORTOUTPUTFORMATDATA
;
778 typedef DWORD (STDCALL
*PDD_VPORTCB_GETOUTPUTFORMATS
)(PDD_GETVPORTOUTPUTFORMATDATA
);
780 typedef struct _DD_GETVPORTFIELDDATA
782 PDD_DIRECTDRAW_LOCAL lpDD
;
783 PDD_VIDEOPORT_LOCAL lpVideoPort
;
786 PVOID GetVideoPortField
;
787 } DD_GETVPORTFIELDDATA
, *PDD_GETVPORTFIELDDATA
;
788 typedef DWORD (STDCALL
*PDD_VPORTCB_GETFIELD
)(PDD_GETVPORTFIELDDATA
);
790 typedef struct _DD_GETVPORTLINEDATA
792 PDD_DIRECTDRAW_LOCAL lpDD
;
793 PDD_VIDEOPORT_LOCAL lpVideoPort
;
796 PVOID GetVideoPortLine
;
797 } DD_GETVPORTLINEDATA
, *PDD_GETVPORTLINEDATA
;
798 typedef DWORD (STDCALL
*PDD_VPORTCB_GETLINE
)(PDD_GETVPORTLINEDATA
);
800 typedef struct _DD_GETVPORTCONNECTDATA
802 PDD_DIRECTDRAW_LOCAL lpDD
;
804 LPDDVIDEOPORTCONNECT lpConnect
;
807 PVOID GetVideoPortConnectInfo
;
808 } DD_GETVPORTCONNECTDATA
, *PDD_GETVPORTCONNECTDATA
;
809 typedef DWORD (STDCALL
*PDD_VPORTCB_GETVPORTCONNECT
)(PDD_GETVPORTCONNECTDATA
);
811 typedef struct _DD_DESTROYVPORTDATA
813 PDD_DIRECTDRAW_LOCAL lpDD
;
814 PDD_VIDEOPORT_LOCAL lpVideoPort
;
816 PVOID DestroyVideoPort
;
817 } DD_DESTROYVPORTDATA
, *PDD_DESTROYVPORTDATA
;
818 typedef DWORD (STDCALL
*PDD_VPORTCB_DESTROYVPORT
)(PDD_DESTROYVPORTDATA
);
820 typedef struct _DD_GETVPORTFLIPSTATUSDATA
822 PDD_DIRECTDRAW_LOCAL lpDD
;
825 PVOID GetVideoPortFlipStatus
;
826 } DD_GETVPORTFLIPSTATUSDATA
, *PDD_GETVPORTFLIPSTATUSDATA
;
827 typedef DWORD (STDCALL
*PDD_VPORTCB_GETFLIPSTATUS
)(PDD_GETVPORTFLIPSTATUSDATA
);
831 typedef struct _DD_UPDATEVPORTDATA
833 PDD_DIRECTDRAW_LOCAL lpDD
;
834 PDD_VIDEOPORT_LOCAL lpVideoPort
;
835 PDD_SURFACE_INT
*lplpDDSurface
;
836 PDD_SURFACE_INT
*lplpDDVBISurface
;
837 LPDDVIDEOPORTINFO lpVideoInfo
;
840 DWORD dwNumVBIAutoflip
;
842 PVOID UpdateVideoPort
;
843 } DD_UPDATEVPORTDATA
, *PDD_UPDATEVPORTDATA
;
844 typedef DWORD (STDCALL
*PDD_VPORTCB_UPDATE
)(PDD_UPDATEVPORTDATA
);
846 typedef struct _DD_WAITFORVPORTSYNCDATA
848 PDD_DIRECTDRAW_LOCAL lpDD
;
849 PDD_VIDEOPORT_LOCAL lpVideoPort
;
854 PVOID UpdateVideoPort
;
855 } DD_WAITFORVPORTSYNCDATA
, *PDD_WAITFORVPORTSYNCDATA
;
856 typedef DWORD (STDCALL
*PDD_VPORTCB_WAITFORSYNC
)(PDD_WAITFORVPORTSYNCDATA
);
858 typedef struct _DD_GETVPORTSIGNALDATA
860 PDD_DIRECTDRAW_LOCAL lpDD
;
861 PDD_VIDEOPORT_LOCAL lpVideoPort
;
864 PVOID GetVideoSignalStatus
;
865 } DD_GETVPORTSIGNALDATA
, *PDD_GETVPORTSIGNALDATA
;
866 typedef DWORD (STDCALL
*PDD_VPORTCB_GETSIGNALSTATUS
)(PDD_GETVPORTSIGNALDATA
);
870 typedef struct _DD_VPORTCOLORDATA
872 PDD_DIRECTDRAW_LOCAL lpDD
;
873 PDD_VIDEOPORT_LOCAL lpVideoPort
;
875 LPDDCOLORCONTROL lpColorData
;
878 } DD_VPORTCOLORDATA
, *PDD_VPORTCOLORDATA
;
879 typedef DWORD (STDCALL
*PDD_VPORTCB_COLORCONTROL
)(PDD_VPORTCOLORDATA
);
882 typedef struct DD_VIDEOPORTCALLBACKS
886 PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort
;
887 PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort
;
888 PDD_VPORTCB_FLIP FlipVideoPort
;
889 PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth
;
890 PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats
;
891 PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats
;
893 PDD_VPORTCB_GETFIELD GetVideoPortField
;
894 PDD_VPORTCB_GETLINE GetVideoPortLine
;
895 PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo
;
896 PDD_VPORTCB_DESTROYVPORT DestroyVideoPort
;
897 PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus
;
898 PDD_VPORTCB_UPDATE UpdateVideoPort
;
899 PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync
;
900 PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus
;
901 PDD_VPORTCB_COLORCONTROL ColorControl
;
902 } DD_VIDEOPORTCALLBACKS
, *PDD_VIDEOPORTCALLBACKS
;
904 #define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
905 #define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
906 #define DDHAL_VPORT32_FLIP 0x00000004
907 #define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
908 #define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
909 #define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
910 #define DDHAL_VPORT32_GETFIELD 0x00000080
911 #define DDHAL_VPORT32_GETLINE 0x00000100
912 #define DDHAL_VPORT32_GETCONNECT 0x00000200
913 #define DDHAL_VPORT32_DESTROY 0x00000400
914 #define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
915 #define DDHAL_VPORT32_UPDATE 0x00001000
916 #define DDHAL_VPORT32_WAITFORSYNC 0x00002000
917 #define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
918 #define DDHAL_VPORT32_COLORCONTROL 0x00008000
921 /************************************************************************/
922 /* IDirectDrawColorControl callbacks */
923 /************************************************************************/
925 #define DDRAWI_GETCOLOR 0x0001
926 #define DDRAWI_SETCOLOR 0x0002
928 typedef struct _DD_COLORCONTROLDATA
930 PDD_DIRECTDRAW_GLOBAL lpDD
;
931 PDD_SURFACE_LOCAL lpDDSurface
;
932 LPDDCOLORCONTROL lpColorData
;
936 } DD_COLORCONTROLDATA
, *PDD_COLORCONTROLDATA
;
937 typedef DWORD (STDCALL
*PDD_COLORCB_COLORCONTROL
)(PDD_COLORCONTROLDATA
);
941 typedef struct _DD_COLORCONTROLCALLBACKS
945 PDD_COLORCB_COLORCONTROL ColorControl
;
946 } DD_COLORCONTROLCALLBACKS
, *PDD_COLORCONTROLCALLBACKS
;
948 #define DDHAL_COLOR_COLORCONTROL 0x00000001
950 /************************************************************************/
951 /* IDirectDrawVideo callbacks */
952 /************************************************************************/
954 typedef struct _DD_GETMOCOMPGUIDSDATA
956 PDD_DIRECTDRAW_LOCAL lpDD
;
960 } DD_GETMOCOMPGUIDSDATA
, *PDD_GETMOCOMPGUIDSDATA
;
961 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETGUIDS
)(PDD_GETMOCOMPGUIDSDATA
);
963 typedef struct _DD_GETMOCOMPFORMATSDATA
965 PDD_DIRECTDRAW_LOCAL lpDD
;
968 LPDDPIXELFORMAT lpFormats
;
970 } DD_GETMOCOMPFORMATSDATA
, *PDD_GETMOCOMPFORMATSDATA
;
971 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETFORMATS
)(PDD_GETMOCOMPFORMATSDATA
);
973 typedef struct _DD_CREATEMOCOMPDATA
975 PDD_DIRECTDRAW_LOCAL lpDD
;
976 PDD_MOTIONCOMP_LOCAL lpMoComp
;
979 DWORD dwUncompHeight
;
980 DDPIXELFORMAT ddUncompPixelFormat
;
984 } DD_CREATEMOCOMPDATA
, *PDD_CREATEMOCOMPDATA
;
985 typedef DWORD (STDCALL
*PDD_MOCOMPCB_CREATE
)(PDD_CREATEMOCOMPDATA
);
987 typedef struct _DDCOMPBUFFERINFO
990 DWORD dwNumCompBuffers
;
991 DWORD dwWidthToCreate
;
992 DWORD dwHeightToCreate
;
993 DWORD dwBytesToAllocate
;
995 DDPIXELFORMAT ddPixelFormat
;
996 } DDCOMPBUFFERINFO
, *LPDDCOMPBUFFERINFO
;
998 typedef struct _DD_GETMOCOMPCOMPBUFFDATA
1000 PDD_DIRECTDRAW_LOCAL lpDD
;
1004 DDPIXELFORMAT ddPixelFormat
;
1005 DWORD dwNumTypesCompBuffs
;
1006 LPDDCOMPBUFFERINFO lpCompBuffInfo
;
1008 } DD_GETMOCOMPCOMPBUFFDATA
, *PDD_GETMOCOMPCOMPBUFFDATA
;
1009 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETCOMPBUFFINFO
)(PDD_GETMOCOMPCOMPBUFFDATA
);
1011 typedef struct _DD_GETINTERNALMOCOMPDATA
1013 PDD_DIRECTDRAW_LOCAL lpDD
;
1017 DDPIXELFORMAT ddPixelFormat
;
1018 DWORD dwScratchMemAlloc
;
1020 } DD_GETINTERNALMOCOMPDATA
, *PDD_GETINTERNALMOCOMPDATA
;
1021 typedef DWORD (STDCALL
*PDD_MOCOMPCB_GETINTERNALINFO
)(PDD_GETINTERNALMOCOMPDATA
);
1023 typedef struct _DD_BEGINMOCOMPFRAMEDATA
1025 PDD_DIRECTDRAW_LOCAL lpDD
;
1026 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1027 PDD_SURFACE_LOCAL lpDestSurface
;
1028 DWORD dwInputDataSize
;
1030 DWORD dwOutputDataSize
;
1031 LPVOID lpOutputData
;
1033 } DD_BEGINMOCOMPFRAMEDATA
, *PDD_BEGINMOCOMPFRAMEDATA
;
1034 typedef DWORD (STDCALL
*PDD_MOCOMPCB_BEGINFRAME
)(PDD_BEGINMOCOMPFRAMEDATA
);
1036 typedef struct _DD_ENDMOCOMPFRAMEDATA
1038 PDD_DIRECTDRAW_LOCAL lpDD
;
1039 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1041 DWORD dwInputDataSize
;
1043 } DD_ENDMOCOMPFRAMEDATA
, *PDD_ENDMOCOMPFRAMEDATA
;
1044 typedef DWORD (STDCALL
*PDD_MOCOMPCB_ENDFRAME
)(PDD_ENDMOCOMPFRAMEDATA
);
1046 typedef struct _DDMOCOMPBUFFERINFO
1049 PDD_SURFACE_LOCAL lpCompSurface
;
1053 } DDMOCOMPBUFFERINFO
, *LPDDMOCOMPBUFFERINFO
;
1055 typedef struct _DD_RENDERMOCOMPDATA
1057 PDD_DIRECTDRAW_LOCAL lpDD
;
1058 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1060 LPDDMOCOMPBUFFERINFO lpBufferInfo
;
1063 DWORD dwInputDataSize
;
1064 LPVOID lpOutputData
;
1065 DWORD dwOutputDataSize
;
1067 } DD_RENDERMOCOMPDATA
, *PDD_RENDERMOCOMPDATA
;
1068 typedef DWORD (STDCALL
*PDD_MOCOMPCB_RENDER
)(PDD_RENDERMOCOMPDATA
);
1070 #define DDMCQUERY_READ 0x00000001
1072 typedef struct _DD_QUERYMOCOMPSTATUSDATA
1074 PDD_DIRECTDRAW_LOCAL lpDD
;
1075 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1076 PDD_SURFACE_LOCAL lpSurface
;
1079 } DD_QUERYMOCOMPSTATUSDATA
, *PDD_QUERYMOCOMPSTATUSDATA
;
1080 typedef DWORD (STDCALL
*PDD_MOCOMPCB_QUERYSTATUS
)(PDD_QUERYMOCOMPSTATUSDATA
);
1082 typedef struct _DD_DESTROYMOCOMPDATA
1084 PDD_DIRECTDRAW_LOCAL lpDD
;
1085 PDD_MOTIONCOMP_LOCAL lpMoComp
;
1087 } DD_DESTROYMOCOMPDATA
, *PDD_DESTROYMOCOMPDATA
;
1088 typedef DWORD (STDCALL
*PDD_MOCOMPCB_DESTROY
)(PDD_DESTROYMOCOMPDATA
);
1092 typedef struct DD_MOTIONCOMPCALLBACKS
1096 PDD_MOCOMPCB_GETGUIDS GetMoCompGuids
;
1097 PDD_MOCOMPCB_GETFORMATS GetMoCompFormats
;
1098 PDD_MOCOMPCB_CREATE CreateMoComp
;
1099 PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo
;
1100 PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo
;
1101 PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame
;
1102 PDD_MOCOMPCB_ENDFRAME EndMoCompFrame
;
1103 PDD_MOCOMPCB_RENDER RenderMoComp
;
1104 PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus
;
1105 PDD_MOCOMPCB_DESTROY DestroyMoComp
;
1106 } DD_MOTIONCOMPCALLBACKS
, *PDD_MOTIONCOMPCALLBACKS
;
1108 #define DDHAL_MOCOMP32_GETGUIDS 0x00000001
1109 #define DDHAL_MOCOMP32_GETFORMATS 0x00000002
1110 #define DDHAL_MOCOMP32_CREATE 0x00000004
1111 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
1112 #define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
1113 #define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
1114 #define DDHAL_MOCOMP32_ENDFRAME 0x00000040
1115 #define DDHAL_MOCOMP32_RENDER 0x00000080
1116 #define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
1117 #define DDHAL_MOCOMP32_DESTROY 0x00000200
1119 /************************************************************************/
1120 /* D3D buffer callbacks */
1121 /************************************************************************/
1123 typedef struct _DD_D3DBUFCALLBACKS
1127 PDD_CANCREATESURFACE CanCreateD3DBuffer
;
1128 PDD_CREATESURFACE CreateD3DBuffer
;
1129 PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer
;
1130 PDD_SURFCB_LOCK LockD3DBuffer
;
1131 PDD_SURFCB_UNLOCK UnlockD3DBuffer
;
1132 } DD_D3DBUFCALLBACKS
, *PDD_D3DBUFCALLBACKS
;
1134 /************************************************************************/
1135 /* DdGetDriverInfo callback */
1136 /************************************************************************/
1138 typedef struct _DD_GETDRIVERINFODATA
1145 DWORD dwExpectedSize
;
1150 } DD_GETDRIVERINFODATA
, *PDD_GETDRIVERINFODATA
;
1151 typedef DWORD (STDCALL
*PDD_GETDRIVERINFO
)(PDD_GETDRIVERINFODATA
);
1156 /************************************************************************/
1157 /* Driver info structures */
1158 /************************************************************************/
1160 typedef struct _DDNTCORECAPS
1167 DWORD dwFXAlphaCaps
;
1170 DWORD dwAlphaBltConstBitDepths
;
1171 DWORD dwAlphaBltPixelBitDepths
;
1172 DWORD dwAlphaBltSurfaceBitDepths
;
1173 DWORD dwAlphaOverlayConstBitDepths
;
1174 DWORD dwAlphaOverlayPixelBitDepths
;
1175 DWORD dwAlphaOverlaySurfaceBitDepths
;
1176 DWORD dwZBufferBitDepths
;
1177 DWORD dwVidMemTotal
;
1179 DWORD dwMaxVisibleOverlays
;
1180 DWORD dwCurrVisibleOverlays
;
1181 DWORD dwNumFourCCCodes
;
1182 DWORD dwAlignBoundarySrc
;
1183 DWORD dwAlignSizeSrc
;
1184 DWORD dwAlignBoundaryDest
;
1185 DWORD dwAlignSizeDest
;
1186 DWORD dwAlignStrideAlign
;
1187 DWORD dwRops
[DD_ROP_SPACE
];
1189 DWORD dwMinOverlayStretch
;
1190 DWORD dwMaxOverlayStretch
;
1191 DWORD dwMinLiveVideoStretch
;
1192 DWORD dwMaxLiveVideoStretch
;
1193 DWORD dwMinHwCodecStretch
;
1194 DWORD dwMaxHwCodecStretch
;
1199 DWORD dwSVBCKeyCaps
;
1201 DWORD dwSVBRops
[DD_ROP_SPACE
];
1203 DWORD dwVSBCKeyCaps
;
1205 DWORD dwVSBRops
[DD_ROP_SPACE
];
1207 DWORD dwSSBCKeyCaps
;
1209 DWORD dwSSBRops
[DD_ROP_SPACE
];
1210 DWORD dwMaxVideoPorts
;
1211 DWORD dwCurrVideoPorts
;
1213 } DDNTCORECAPS
, *PDDNTCORECAPS
;
1216 typedef struct _DD_HALINFO_V4
1219 VIDEOMEMORYINFO vmiData
;
1220 DDNTCORECAPS ddCaps
;
1221 PDD_GETDRIVERINFO GetDriverInfo
;
1223 } DD_HALINFO_V4
, *PDD_HALINFO_V4
;
1225 typedef struct _DD_HALINFO
1228 VIDEOMEMORYINFO vmiData
;
1229 DDNTCORECAPS ddCaps
;
1230 PDD_GETDRIVERINFO GetDriverInfo
;
1232 PVOID lpD3DGlobalDriverData
;
1233 PVOID lpD3DHALCallbacks
;
1234 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks
;
1235 } DD_HALINFO
, *PDD_HALINFO
;
1239 typedef struct _DD_NONLOCALVIDMEMCAPS
1244 DWORD dwNLVBCKeyCaps
;
1246 DWORD dwNLVBRops
[DD_ROP_SPACE
];
1247 } DD_NONLOCALVIDMEMCAPS
, *PDD_NONLOCALVIDMEMCAPS
;
1251 typedef struct _DD_MORESURFACECAPS
1254 DDSCAPSEX ddsCapsMore
;
1255 struct tagNTExtendedHeapRestrictions
1257 DDSCAPSEX ddsCapsEx
;
1258 DDSCAPSEX ddsCapsExAlt
;
1259 } ddsExtendedHeapRestrictions
[1];
1260 } DD_MORESURFACECAPS
, *PDD_MORESURFACECAPS
;
1263 /*********************************************************/
1264 /* Kernel Callbacks */
1265 /*********************************************************/
1266 typedef struct _DD_SYNCSURFACEDATA
1268 PDD_DIRECTDRAW_LOCAL lpDD
;
1269 PDD_SURFACE_LOCAL lpDDSurface
;
1270 DWORD dwSurfaceOffset
;
1271 ULONG_PTR fpLockPtr
;
1273 DWORD dwOverlayOffset
;
1274 ULONG dwDriverReserved1
;
1275 ULONG dwDriverReserved2
;
1276 ULONG dwDriverReserved3
;
1277 ULONG dwDriverReserved4
;
1279 } DD_SYNCSURFACEDATA
, *PDD_SYNCSURFACEDATA
;
1280 typedef DWORD (STDCALL
*PDD_KERNELCB_SYNCSURFACE
)(PDD_SYNCSURFACEDATA
);
1282 typedef struct _DD_SYNCVIDEOPORTDATA
1284 PDD_DIRECTDRAW_LOCAL lpDD
;
1285 PDD_VIDEOPORT_LOCAL lpVideoPort
;
1286 DWORD dwOriginOffset
;
1289 ULONG dwDriverReserved1
;
1290 ULONG dwDriverReserved2
;
1291 ULONG dwDriverReserved3
;
1293 } DD_SYNCVIDEOPORTDATA
, *PDD_SYNCVIDEOPORTDATA
;
1294 typedef DWORD (STDCALL
*PDD_KERNELCB_SYNCVIDEOPORT
)(PDD_SYNCVIDEOPORTDATA
);
1297 typedef struct DD_NTPRIVATEDRIVERCAPS
1300 DWORD dwPrivateCaps
;
1301 } DD_NTPRIVATEDRIVERCAPS
;
1303 typedef struct _DD_UPDATENONLOCALHEAPDATA
1305 PDD_DIRECTDRAW_GLOBAL lpDD
;
1309 ULONG_PTR ulPolicyMaxBytes
;
1311 VOID
* UpdateNonLocalHeap
;
1312 } DD_UPDATENONLOCALHEAPDATA
, *PDD_UPDATENONLOCALHEAPDATA
;
1314 typedef struct _DD_STEREOMODE
1320 DWORD dwRefreshRate
;
1322 } DD_STEREOMODE
, *PDD_STEREOMODE
;
1324 typedef struct _DD_MORECAPS
1328 DWORD dwSVBAlphaCaps
;
1329 DWORD dwVSBAlphaCaps
;
1330 DWORD dwSSBAlphaCaps
;
1332 DWORD dwSVBFilterCaps
;
1333 DWORD dwVSBFilterCaps
;
1334 DWORD dwSSBFilterCaps
;
1335 } DD_MORECAPS
, *PDD_MORECAPS
;
1337 typedef struct _DD_CLIPPER_GLOBAL
1339 ULONG_PTR dwReserved1
;
1340 } DD_CLIPPER_GLOBAL
;
1342 typedef struct _DD_CLIPPER_LOCAL
1344 ULONG_PTR dwReserved1
;
1347 typedef struct _DD_PALETTE_LOCAL
1350 ULONG_PTR dwReserved1
;
1354 typedef struct DD_KERNELCALLBACKS
1358 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData
;
1359 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData
;
1360 } DD_KERNELCALLBACKS
, *PDD_KERNELCALLBACKS
;
1363 #define MAX_AUTOFLIP_BUFFERS 10
1364 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
1365 #define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3
1366 #define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4
1367 #define DDPF_D3DFORMAT 0x00200000l
1368 #define D3DFORMAT_OP_TEXTURE 0x00000001L
1369 #define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
1370 #define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
1371 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
1372 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
1373 #define D3DFORMAT_OP_ZSTENCIL 0x00000040L
1374 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
1375 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
1376 #define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
1377 #define D3DFORMAT_OP_3DACCELERATION 0x00000800L
1378 #define D3DFORMAT_OP_PIXELSIZE 0x00001000L
1379 #define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
1380 #define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
1381 #define D3DFORMAT_OP_SRGBREAD 0x00008000L
1382 #define D3DFORMAT_OP_BUMPMAP 0x00010000L
1383 #define D3DFORMAT_OP_DMAP 0x00020000L
1384 #define D3DFORMAT_OP_NOFILTER 0x00040000L
1385 #define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
1386 #define D3DFORMAT_OP_SRGBWRITE 0x00100000L
1387 #define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
1388 #define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
1389 #define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
1390 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
1391 #define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
1392 #define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
1395 #define VIDMEM_ISLINEAR 0x00000001l
1396 #define VIDMEM_ISRECTANGULAR 0x00000002l
1397 #define VIDMEM_ISHEAP 0x00000004l
1398 #define VIDMEM_ISNONLOCAL 0x00000008l
1399 #define VIDMEM_ISWC 0x00000010l
1400 #define VIDMEM_HEAPDISABLED 0x00000020l
1402 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1404 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1405 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1407 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1408 #define DDHAL_DRIVER_HANDLED 0x00000001l
1409 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
1411 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
1412 #define DDRAWISURF_HASPIXELFORMAT 0x00002000L
1413 #define DDRAWISURF_HASOVERLAYDATA 0x00004000L
1414 #define DDRAWISURF_FRONTBUFFER 0x04000000L
1415 #define DDRAWISURF_BACKBUFFER 0x08000000L
1416 #define DDRAWISURF_INVALID 0x10000000L
1417 #define DDRAWISURF_DRIVERMANAGED 0x40000000L
1419 #define ROP_HAS_SOURCE 0x00000001l
1420 #define ROP_HAS_PATTERN 0x00000002l
1421 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
1423 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
1424 #define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
1425 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
1426 #define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
1427 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
1429 #define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF
1430 #define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF
1431 #define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF
1432 #define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF
1433 #define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
1435 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1436 #define DDHALINFO_MODEXILLEGAL 0x00000002
1437 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1438 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1440 #define DDRAWIVPORT_ON 0x00000001
1441 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1442 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1444 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1445 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1446 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
1448 #define DDRAWI_VPORTSTART 0x0001
1449 #define DDRAWI_VPORTSTOP 0x0002
1450 #define DDRAWI_VPORTUPDATE 0x0003
1451 #define DDRAWI_VPORTGETCOLOR 0x0001
1452 #define DDRAWI_VPORTSETCOLOR 0x0002
1454 #ifndef __DDRAWI_INCLUDED__
1455 #define VIDMEM_ISLINEAR 0x00000001
1456 #define VIDMEM_ISRECTANGULAR 0x00000002
1457 #define VIDMEM_ISHEAP 0x00000004
1458 #define VIDMEM_ISNONLOCAL 0x00000008
1459 #define VIDMEM_ISWC 0x00000010
1460 #define VIDMEM_ISDISABLED 0x00000020
1468 #endif /* GUID_DEFS_ONLY */
1470 #endif /* __DD_INCLUDED__ */