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