ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ddrawint.h
Go to the documentation of this file.
00001 /*
00002  * ddrawint.h
00003  *
00004  * DirectDraw NT driver interface
00005  *
00006  * Contributors:
00007  *   Created by Ge van Geldorp
00008  *
00009  * THIS SOFTWARE IS NOT COPYRIGHTED
00010  *
00011  * This source code is offered for use in the public domain. You may
00012  * use, modify or distribute it freely.
00013  *
00014  * This code is distributed in the hope that it will be useful but
00015  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00016  * DISCLAIMED. This includes but is not limited to warranties of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00018  *
00019  */
00020 
00021 #ifndef __DD_INCLUDED__
00022 #define __DD_INCLUDED__
00023 
00024 DEFINE_GUID( GUID_MiscellaneousCallbacks,  0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
00025 DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
00026 DEFINE_GUID( GUID_VideoPortCallbacks,      0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
00027 DEFINE_GUID( GUID_ColorControlCallbacks,   0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
00028 DEFINE_GUID( GUID_MotionCompCallbacks,     0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
00029 DEFINE_GUID( GUID_VideoPortCaps,           0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
00030 DEFINE_GUID( GUID_D3DCaps,                 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
00031 DEFINE_GUID( GUID_D3DExtendedCaps,         0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
00032 DEFINE_GUID( GUID_D3DCallbacks,            0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
00033 DEFINE_GUID( GUID_D3DCallbacks2,           0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
00034 DEFINE_GUID( GUID_D3DCallbacks3,           0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
00035 DEFINE_GUID( GUID_NonLocalVidMemCaps,      0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
00036 DEFINE_GUID( GUID_KernelCallbacks,         0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
00037 DEFINE_GUID( GUID_KernelCaps,              0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
00038 DEFINE_GUID( GUID_ZPixelFormats,           0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
00039 DEFINE_GUID( GUID_DDMoreCaps,              0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
00040 DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
00041 DEFINE_GUID( GUID_NTCallbacks,             0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
00042 DEFINE_GUID( GUID_DDMoreSurfaceCaps,       0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
00043 DEFINE_GUID( GUID_GetHeapAlignment,        0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
00044 DEFINE_GUID( GUID_UpdateNonLocalHeap,      0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
00045 DEFINE_GUID( GUID_NTPrivateDriverCaps,     0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
00046 DEFINE_GUID( GUID_DDStereoMode,            0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
00047 DEFINE_GUID( GUID_VPE2Callbacks,           0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
00048 
00049 
00050 #ifndef GUID_DEFS_ONLY
00051 
00052 #ifndef _NO_DDRAWINT_NO_COM
00053 #ifndef _NO_COM
00054 #define _NO_COM
00055 #include <ddraw.h>
00056 #include <dvp.h>
00057 #undef _NO_COM
00058 #else
00059 #include <ddraw.h>
00060 #include <dvp.h>
00061 #endif
00062 #else
00063 #include <ddraw.h>
00064 #include <dvp.h>
00065 #endif
00066 
00067 #ifdef __cplusplus
00068 extern "C" {
00069 #endif
00070 
00071 #ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
00072 #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
00073 #endif
00074 
00075 #ifndef FLATPTR_DEFINED
00076 typedef ULONG_PTR FLATPTR;
00077 #define FLATPTR_DEFINED
00078 #endif
00079 
00080 typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL;
00081 
00082 /************************************************************************/
00083 /* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h                     */
00084  /************************************************************************/
00085 struct _DD_GETHEAPALIGNMENTDATA;
00086 #ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
00087 typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
00088 #define DD_GETHEAPALIGNMENTDATA_DECLARED
00089 #endif
00090 
00091 /************************************************************************/
00092 /* Video memory info structures                                         */
00093 /************************************************************************/
00094 
00095 typedef struct _VIDEOMEMORY {
00096   DWORD dwFlags;
00097   FLATPTR fpStart;
00098   __GNU_EXTENSION union {
00099     FLATPTR fpEnd;
00100     DWORD dwWidth;
00101   };
00102   DDSCAPS ddsCaps;
00103   DDSCAPS ddsCapsAlt;
00104   __GNU_EXTENSION union {
00105     struct _VMEMHEAP *lpHeap;
00106     DWORD dwHeight;
00107   };
00108 } VIDEOMEMORY, *PVIDEOMEMORY;
00109 
00110 typedef struct _VIDEOMEMORYINFO {
00111   FLATPTR fpPrimary;
00112   DWORD dwFlags;
00113   DWORD dwDisplayWidth;
00114   DWORD dwDisplayHeight;
00115   LONG lDisplayPitch;
00116   DDPIXELFORMAT ddpfDisplay;
00117   DWORD dwOffscreenAlign;
00118   DWORD dwOverlayAlign;
00119   DWORD dwTextureAlign;
00120   DWORD dwZBufferAlign;
00121   DWORD dwAlphaAlign;
00122   PVOID pvPrimary;
00123 } VIDEOMEMORYINFO, *LPVIDEOMEMORYINFO;
00124 
00125 typedef struct _DD_DIRECTDRAW_GLOBAL {
00126   PVOID dhpdev;
00127   ULONG_PTR dwReserved1;
00128   ULONG_PTR dwReserved2;
00129   LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
00130 } DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
00131 
00132 typedef struct _DD_DIRECTDRAW_LOCAL {
00133   PDD_DIRECTDRAW_GLOBAL lpGbl;
00134 } DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
00135 
00136 typedef struct _DD_SURFACE_GLOBAL {
00137   __GNU_EXTENSION union {
00138     DWORD dwBlockSizeY;
00139     LONG lSlicePitch;
00140   };
00141   __GNU_EXTENSION union {
00142     PVIDEOMEMORY lpVidMemHeap;
00143     DWORD dwBlockSizeX;
00144     DWORD dwUserMemSize;
00145   };
00146   FLATPTR fpVidMem;
00147   __GNU_EXTENSION union {
00148     LONG lPitch;
00149     DWORD dwLinearSize;
00150   };
00151   LONG yHint;
00152   LONG xHint;
00153   DWORD wHeight;
00154   DWORD wWidth;
00155   ULONG_PTR dwReserved1;
00156   DDPIXELFORMAT ddpfSurface;
00157   FLATPTR fpHeapOffset;
00158   HANDLE hCreatorProcess;
00159 } DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
00160 
00161 typedef struct _DD_SURFACE_MORE {
00162   DWORD dwMipMapCount;
00163   PDD_VIDEOPORT_LOCAL lpVideoPort;
00164   DWORD dwOverlayFlags;
00165   DDSCAPSEX ddsCapsEx;
00166   DWORD dwSurfaceHandle;
00167 } DD_SURFACE_MORE, *PDD_SURFACE_MORE;
00168 
00169 typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
00170 
00171 typedef struct _DD_SURFACE_LOCAL {
00172   PDD_SURFACE_GLOBAL lpGbl;
00173   DWORD dwFlags;
00174   DDSCAPS ddsCaps;
00175   ULONG_PTR dwReserved1;
00176   __GNU_EXTENSION union {
00177     DDCOLORKEY ddckCKSrcOverlay;
00178     DDCOLORKEY ddckCKSrcBlt;
00179   };
00180   __GNU_EXTENSION union {
00181     DDCOLORKEY ddckCKDestOverlay;
00182     DDCOLORKEY ddckCKDestBlt;
00183   };
00184   PDD_SURFACE_MORE lpSurfMore;
00185   PDD_ATTACHLIST lpAttachList;
00186   PDD_ATTACHLIST lpAttachListFrom;
00187   RECT rcOverlaySrc;
00188 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
00189 
00190 typedef struct _DD_ATTACHLIST {
00191   PDD_ATTACHLIST lpLink;
00192   PDD_SURFACE_LOCAL lpAttached;
00193 } DD_ATTACHLIST;
00194 
00195 typedef struct _DD_SURFACE_INT {
00196   PDD_SURFACE_LOCAL lpLcl;
00197 } DD_SURFACE_INT, *PDD_SURFACE_INT;
00198 
00199 /************************************************************************/
00200 /* DDI representation of the DirectDrawPalette object                   */
00201 /************************************************************************/
00202 
00203 typedef struct _DD_PALETTE_GLOBAL {
00204   ULONG_PTR Reserved1;
00205 } DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
00206 
00207 /************************************************************************/
00208 /* DDI representation of the DirectDrawVideo object                     */
00209 /************************************************************************/
00210 
00211 typedef struct {
00212   PDD_DIRECTDRAW_LOCAL lpDD;
00213   GUID guid;
00214   DWORD dwUncompWidth;
00215   DWORD dwUncompHeight;
00216   DDPIXELFORMAT ddUncompPixelFormat;
00217   DWORD dwDriverReserved1;
00218   DWORD dwDriverReserved2;
00219   DWORD dwDriverReserved3;
00220   LPVOID lpDriverReserved1;
00221   LPVOID lpDriverReserved2;
00222   LPVOID lpDriverReserved3;
00223 } DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
00224 
00225 typedef struct _DD_VIDEOPORT_LOCAL {
00226   PDD_DIRECTDRAW_LOCAL lpDD;
00227   DDVIDEOPORTDESC ddvpDesc;
00228   DDVIDEOPORTINFO ddvpInfo;
00229   PDD_SURFACE_INT lpSurface;
00230   PDD_SURFACE_INT lpVBISurface;
00231   DWORD dwNumAutoflip;
00232   DWORD dwNumVBIAutoflip;
00233   ULONG_PTR dwReserved1;
00234   ULONG_PTR dwReserved2;
00235   ULONG_PTR dwReserved3;
00236 } DD_VIDEOPORT_LOCAL;
00237 
00238 /************************************************************************/
00239 /* IDirectDrawSurface callbacks                                         */
00240 /************************************************************************/
00241 
00242 typedef struct _DD_LOCKDATA {
00243   PDD_DIRECTDRAW_GLOBAL lpDD;
00244   PDD_SURFACE_LOCAL lpDDSurface;
00245   DWORD bHasRect;
00246   RECTL rArea;
00247   LPVOID lpSurfData;
00248   HRESULT ddRVal;
00249   PVOID Lock;
00250   DWORD dwFlags;
00251   FLATPTR fpProcess;
00252 } DD_LOCKDATA, *PDD_LOCKDATA;
00253 typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
00254 
00255 typedef struct _DD_UNLOCKDATA {
00256   PDD_DIRECTDRAW_GLOBAL lpDD;
00257   PDD_SURFACE_LOCAL lpDDSurface;
00258   HRESULT ddRVal;
00259   PVOID Unlock;
00260 } DD_UNLOCKDATA, *PDD_UNLOCKDATA;
00261 typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
00262 
00263 #define DDABLT_SRCOVERDEST        0x00000001
00264 #define DDBLT_AFLAGS              0x80000000
00265 
00266 typedef struct _DD_BLTDATA {
00267   PDD_DIRECTDRAW_GLOBAL lpDD;
00268   PDD_SURFACE_LOCAL lpDDDestSurface;
00269   RECTL rDest;
00270   PDD_SURFACE_LOCAL lpDDSrcSurface;
00271   RECTL rSrc;
00272   DWORD dwFlags;
00273   DWORD dwROPFlags;
00274   DDBLTFX bltFX;
00275   HRESULT ddRVal;
00276   PVOID Blt;
00277   BOOL IsClipped;
00278   RECTL rOrigDest;
00279   RECTL rOrigSrc;
00280   DWORD dwRectCnt;
00281   LPRECT prDestRects;
00282   DWORD dwAFlags;
00283   DDARGB ddargbScaleFactors;
00284 } DD_BLTDATA, *PDD_BLTDATA;
00285 typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
00286 
00287 typedef struct _DD_UPDATEOVERLAYDATA {
00288   PDD_DIRECTDRAW_GLOBAL lpDD;
00289   PDD_SURFACE_LOCAL lpDDDestSurface;
00290   RECTL rDest;
00291   PDD_SURFACE_LOCAL lpDDSrcSurface;
00292   RECTL rSrc;
00293   DWORD dwFlags;
00294   DDOVERLAYFX overlayFX;
00295   HRESULT ddRVal;
00296   PVOID UpdateOverlay;
00297 } DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
00298 typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
00299 
00300 typedef struct _DD_SETOVERLAYPOSITIONDATA {
00301   PDD_DIRECTDRAW_GLOBAL lpDD;
00302   PDD_SURFACE_LOCAL lpDDSrcSurface;
00303   PDD_SURFACE_LOCAL lpDDDestSurface;
00304   LONG lXPos;
00305   LONG lYPos;
00306   HRESULT ddRVal;
00307   PVOID SetOverlayPosition;
00308 } DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
00309 typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
00310 
00311 typedef struct _DD_SETPALETTEDATA {
00312   PDD_DIRECTDRAW_GLOBAL lpDD;
00313   PDD_SURFACE_LOCAL lpDDSurface;
00314   PDD_PALETTE_GLOBAL lpDDPalette;
00315   HRESULT ddRVal;
00316   PVOID SetPalette;
00317   BOOL Attach;
00318 } DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
00319 typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
00320 
00321 typedef struct _DD_FLIPDATA {
00322   PDD_DIRECTDRAW_GLOBAL lpDD;
00323   PDD_SURFACE_LOCAL lpSurfCurr;
00324   PDD_SURFACE_LOCAL lpSurfTarg;
00325   DWORD dwFlags;
00326   HRESULT ddRVal;
00327   PVOID Flip;
00328   PDD_SURFACE_LOCAL lpSurfCurrLeft;
00329   PDD_SURFACE_LOCAL lpSurfTargLeft;
00330 } DD_FLIPDATA, *PDD_FLIPDATA;
00331 typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
00332 
00333 typedef struct _DD_DESTROYSURFACEDATA {
00334   PDD_DIRECTDRAW_GLOBAL lpDD;
00335   PDD_SURFACE_LOCAL lpDDSurface;
00336   HRESULT ddRVal;
00337   PVOID DestroySurface;
00338 } DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
00339 typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
00340 
00341 typedef struct _DD_SETCLIPLISTDATA {
00342   PDD_DIRECTDRAW_GLOBAL lpDD;
00343   PDD_SURFACE_LOCAL lpDDSurface;
00344   HRESULT ddRVal;
00345   PVOID SetClipList;
00346 } DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
00347 typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
00348 
00349 typedef struct _DD_ADDATTACHEDSURFACEDATA {
00350   PDD_DIRECTDRAW_GLOBAL lpDD;
00351   PDD_SURFACE_LOCAL lpDDSurface;
00352   PDD_SURFACE_LOCAL lpSurfAttached;
00353   HRESULT ddRVal;
00354   PVOID AddAttachedSurface;
00355 } DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
00356 typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
00357 
00358 typedef struct _DD_SETCOLORKEYDATA {
00359   PDD_DIRECTDRAW_GLOBAL lpDD;
00360   PDD_SURFACE_LOCAL lpDDSurface;
00361   DWORD dwFlags;
00362   DDCOLORKEY ckNew;
00363   HRESULT ddRVal;
00364   PVOID SetColorKey;
00365 } DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
00366 typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
00367 
00368 typedef struct _DD_GETBLTSTATUSDATA {
00369   PDD_DIRECTDRAW_GLOBAL lpDD;
00370   PDD_SURFACE_LOCAL lpDDSurface;
00371   DWORD dwFlags;
00372   HRESULT ddRVal;
00373   PVOID GetBltStatus;
00374 } DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
00375 typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
00376 
00377 typedef struct _DD_GETFLIPSTATUSDATA {
00378   PDD_DIRECTDRAW_GLOBAL lpDD;
00379   PDD_SURFACE_LOCAL lpDDSurface;
00380   DWORD dwFlags;
00381   HRESULT ddRVal;
00382   PVOID GetFlipStatus;
00383 } DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
00384 typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
00385 
00386 typedef struct DD_SURFACECALLBACKS {
00387   DWORD dwSize;
00388   DWORD dwFlags;
00389   PDD_SURFCB_DESTROYSURFACE DestroySurface;
00390   PDD_SURFCB_FLIP Flip;
00391   PDD_SURFCB_SETCLIPLIST SetClipList;
00392   PDD_SURFCB_LOCK Lock;
00393   PDD_SURFCB_UNLOCK Unlock;
00394   PDD_SURFCB_BLT Blt;
00395   PDD_SURFCB_SETCOLORKEY SetColorKey;
00396   PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
00397   PDD_SURFCB_GETBLTSTATUS GetBltStatus;
00398   PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
00399   PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
00400   PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
00401   PVOID reserved4;
00402   PDD_SURFCB_SETPALETTE SetPalette;
00403 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
00404 
00405 #define DDHAL_SURFCB32_DESTROYSURFACE       0x00000001
00406 #define DDHAL_SURFCB32_FLIP                 0x00000002
00407 #define DDHAL_SURFCB32_SETCLIPLIST          0x00000004
00408 #define DDHAL_SURFCB32_LOCK                 0x00000008
00409 #define DDHAL_SURFCB32_UNLOCK               0x00000010
00410 #define DDHAL_SURFCB32_BLT                  0x00000020
00411 #define DDHAL_SURFCB32_SETCOLORKEY          0x00000040
00412 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE   0x00000080
00413 #define DDHAL_SURFCB32_GETBLTSTATUS         0x00000100
00414 #define DDHAL_SURFCB32_GETFLIPSTATUS        0x00000200
00415 #define DDHAL_SURFCB32_UPDATEOVERLAY        0x00000400
00416 #define DDHAL_SURFCB32_SETOVERLAYPOSITION   0x00000800
00417 #define DDHAL_SURFCB32_RESERVED4            0x00001000
00418 #define DDHAL_SURFCB32_SETPALETTE           0x00002000
00419 
00420 /************************************************************************/
00421 /* IDirectDraw callbacks                                                */
00422 /************************************************************************/
00423 
00424 typedef struct _DD_CREATESURFACEDATA {
00425   PDD_DIRECTDRAW_GLOBAL lpDD;
00426   DDSURFACEDESC *lpDDSurfaceDesc;
00427   PDD_SURFACE_LOCAL *lplpSList;
00428   DWORD dwSCnt;
00429   HRESULT ddRVal;
00430   PVOID CreateSurface;
00431 } DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
00432 typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
00433 
00434 typedef struct _DD_DRVSETCOLORKEYDATA {
00435   PDD_SURFACE_LOCAL lpDDSurface;
00436   DWORD dwFlags;
00437   DDCOLORKEY ckNew;
00438   HRESULT ddRVal;
00439   PVOID SetColorKey;
00440 } DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
00441 typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
00442 
00443 #define DDWAITVB_I_TESTVB    0x80000006
00444 
00445 typedef struct _DD_WAITFORVERTICALBLANKDATA {
00446   PDD_DIRECTDRAW_GLOBAL lpDD;
00447   DWORD dwFlags;
00448   DWORD bIsInVB;
00449   DWORD hEvent;
00450   HRESULT ddRVal;
00451   PVOID WaitForVerticalBlank;
00452 } DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
00453 typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
00454 
00455 typedef struct _DD_CANCREATESURFACEDATA {
00456   PDD_DIRECTDRAW_GLOBAL lpDD;
00457   DDSURFACEDESC *lpDDSurfaceDesc;
00458   DWORD bIsDifferentPixelFormat;
00459   HRESULT ddRVal;
00460   PVOID CanCreateSurface;
00461 } DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
00462 typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
00463 
00464 typedef struct _DD_CREATEPALETTEDATA {
00465   PDD_DIRECTDRAW_GLOBAL lpDD;
00466   PDD_PALETTE_GLOBAL lpDDPalette;
00467   LPPALETTEENTRY lpColorTable;
00468   HRESULT ddRVal;
00469   PVOID CreatePalette;
00470   BOOL is_excl;
00471 } DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
00472 typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
00473 
00474 typedef struct _DD_GETSCANLINEDATA {
00475   PDD_DIRECTDRAW_GLOBAL lpDD;
00476   DWORD dwScanLine;
00477   HRESULT ddRVal;
00478   PVOID GetScanLine;
00479 } DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
00480 typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
00481 
00482 typedef struct _DD_MAPMEMORYDATA {
00483   PDD_DIRECTDRAW_GLOBAL lpDD;
00484   BOOL bMap;
00485   HANDLE hProcess;
00486   FLATPTR fpProcess;
00487   HRESULT ddRVal;
00488 } DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
00489 typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
00490 
00491 typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
00492 typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
00493 
00494 typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
00495 typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
00496 
00497 typedef struct DD_CALLBACKS {
00498   DWORD dwSize;
00499   DWORD dwFlags;
00500   PDD_DESTROYDRIVER DestroyDriver;
00501   PDD_CREATESURFACE CreateSurface;
00502   PDD_SETCOLORKEY SetColorKey;
00503   PDD_SETMODE SetMode;
00504   PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
00505   PDD_CANCREATESURFACE CanCreateSurface;
00506   PDD_CREATEPALETTE CreatePalette;
00507   PDD_GETSCANLINE GetScanLine;
00508   PDD_MAPMEMORY MapMemory;
00509 } DD_CALLBACKS, *PDD_CALLBACKS;
00510 
00511 #define DDHAL_CB32_DESTROYDRIVER        0x00000001l
00512 #define DDHAL_CB32_CREATESURFACE        0x00000002l
00513 #define DDHAL_CB32_SETCOLORKEY          0x00000004l
00514 #define DDHAL_CB32_SETMODE              0x00000008l
00515 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
00516 #define DDHAL_CB32_CANCREATESURFACE     0x00000020l
00517 #define DDHAL_CB32_CREATEPALETTE        0x00000040l
00518 #define DDHAL_CB32_GETSCANLINE          0x00000080l
00519 #define DDHAL_CB32_MAPMEMORY            0x80000000l
00520 
00521 typedef struct _DD_GETAVAILDRIVERMEMORYDATA {
00522   PDD_DIRECTDRAW_GLOBAL lpDD;
00523   DDSCAPS DDSCaps;
00524   DWORD dwTotal;
00525   DWORD dwFree;
00526   HRESULT ddRVal;
00527   PVOID GetAvailDriverMemory;
00528 } DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
00529 typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
00530 
00531 typedef struct _DD_MISCELLANEOUSCALLBACKS {
00532   DWORD dwSize;
00533   DWORD dwFlags;
00534   PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
00535 } DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
00536 
00537 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
00538 
00539 typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
00540 
00541 typedef struct _DD_CREATESURFACEEXDATA {
00542   DWORD dwFlags;
00543   PDD_DIRECTDRAW_LOCAL lpDDLcl;
00544   PDD_SURFACE_LOCAL lpDDSLcl;
00545   HRESULT ddRVal;
00546 } DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
00547 typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
00548 
00549 typedef struct _DD_GETDRIVERSTATEDATA {
00550   DWORD dwFlags;
00551   __GNU_EXTENSION union {
00552     PDD_DIRECTDRAW_GLOBAL lpDD;
00553     DWORD_PTR dwhContext;
00554   };
00555   LPDWORD lpdwStates;
00556   DWORD dwLength;
00557   HRESULT ddRVal;
00558 } DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
00559 typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
00560 
00561 typedef struct _DD_DESTROYDDLOCALDATA {
00562   DWORD dwFlags;
00563   PDD_DIRECTDRAW_LOCAL pDDLcl;
00564   HRESULT ddRVal;
00565 } DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
00566 typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
00567 
00568 typedef struct _DD_MISCELLANEOUS2CALLBACKS {
00569   DWORD dwSize;
00570   DWORD dwFlags;
00571   PDD_ALPHABLT AlphaBlt;
00572   PDD_CREATESURFACEEX CreateSurfaceEx;
00573   PDD_GETDRIVERSTATE GetDriverState;
00574   PDD_DESTROYDDLOCAL DestroyDDLocal;
00575 } DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
00576 
00577 #define DDHAL_MISC2CB32_ALPHABLT            0x00000001
00578 #define DDHAL_MISC2CB32_CREATESURFACEEX     0x00000002
00579 #define DDHAL_MISC2CB32_GETDRIVERSTATE      0x00000004
00580 #define DDHAL_MISC2CB32_DESTROYDDLOCAL      0x00000008
00581 
00582 typedef struct _DD_FREEDRIVERMEMORYDATA {
00583   PDD_DIRECTDRAW_GLOBAL lpDD;
00584   PDD_SURFACE_LOCAL lpDDSurface;
00585   HRESULT ddRVal;
00586   PVOID FreeDriverMemory;
00587 } DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
00588 typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
00589 
00590 typedef struct _DD_SETEXCLUSIVEMODEDATA {
00591   PDD_DIRECTDRAW_GLOBAL lpDD;
00592   DWORD dwEnterExcl;
00593   DWORD dwReserved;
00594   HRESULT ddRVal;
00595   PVOID SetExclusiveMode;
00596 } DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
00597 typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
00598 
00599 typedef struct _DD_FLIPTOGDISURFACEDATA {
00600   PDD_DIRECTDRAW_GLOBAL lpDD;
00601   DWORD dwToGDI;
00602   DWORD dwReserved;
00603   HRESULT ddRVal;
00604   PVOID FlipToGDISurface;
00605 } DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
00606 typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
00607 
00608 typedef struct _DD_NTCALLBACKS {
00609   DWORD dwSize;
00610   DWORD dwFlags;
00611   PDD_FREEDRIVERMEMORY FreeDriverMemory;
00612   PDD_SETEXCLUSIVEMODE SetExclusiveMode;
00613   PDD_FLIPTOGDISURFACE FlipToGDISurface;
00614 } DD_NTCALLBACKS, *PDD_NTCALLBACKS;
00615 
00616 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
00617 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
00618 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
00619 
00620 /************************************************************************/
00621 /* IDirectDrawPalette callbacks                                         */
00622 /************************************************************************/
00623 
00624 typedef struct _DD_DESTROYPALETTEDATA {
00625   PDD_DIRECTDRAW_GLOBAL lpDD;
00626   PDD_PALETTE_GLOBAL lpDDPalette;
00627   HRESULT ddRVal;
00628   PVOID DestroyPalette;
00629 } DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
00630 typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
00631 
00632 typedef struct _DD_SETENTRIESDATA {
00633   PDD_DIRECTDRAW_GLOBAL lpDD;
00634   PDD_PALETTE_GLOBAL lpDDPalette;
00635   DWORD dwBase;
00636   DWORD dwNumEntries;
00637   LPPALETTEENTRY lpEntries;
00638   HRESULT ddRVal;
00639   PVOID SetEntries;
00640 } DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
00641 typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
00642 
00643 typedef struct DD_PALETTECALLBACKS {
00644   DWORD dwSize;
00645   DWORD dwFlags;
00646   PDD_PALCB_DESTROYPALETTE DestroyPalette;
00647   PDD_PALCB_SETENTRIES SetEntries;
00648 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
00649 
00650 #define DDHAL_PALCB32_DESTROYPALETTE  0x00000001l
00651 #define DDHAL_PALCB32_SETENTRIES      0x00000002l
00652 
00653 /************************************************************************/
00654 /* IDirectDrawVideoport callbacks                                       */
00655 /************************************************************************/
00656 
00657 typedef struct _DD_CANCREATEVPORTDATA {
00658   PDD_DIRECTDRAW_LOCAL lpDD;
00659   LPDDVIDEOPORTDESC lpDDVideoPortDesc;
00660   HRESULT ddRVal;
00661   PVOID CanCreateVideoPort;
00662 } DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
00663 typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
00664 
00665 typedef struct _DD_CREATEVPORTDATA {
00666   PDD_DIRECTDRAW_LOCAL lpDD;
00667   LPDDVIDEOPORTDESC lpDDVideoPortDesc;
00668   PDD_VIDEOPORT_LOCAL lpVideoPort;
00669   HRESULT ddRVal;
00670   PVOID CreateVideoPort;
00671 } DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
00672 typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
00673 
00674 typedef struct _DD_FLIPVPORTDATA {
00675   PDD_DIRECTDRAW_LOCAL lpDD;
00676   PDD_VIDEOPORT_LOCAL lpVideoPort;
00677   PDD_SURFACE_LOCAL lpSurfCurr;
00678   PDD_SURFACE_LOCAL lpSurfTarg;
00679   HRESULT ddRVal;
00680   PVOID FlipVideoPort;
00681 } DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
00682 typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
00683 
00684 typedef struct _DD_GETVPORTBANDWIDTHDATA {
00685   PDD_DIRECTDRAW_LOCAL lpDD;
00686   PDD_VIDEOPORT_LOCAL lpVideoPort;
00687   LPDDPIXELFORMAT lpddpfFormat;
00688   DWORD dwWidth;
00689   DWORD dwHeight;
00690   DWORD dwFlags;
00691   LPDDVIDEOPORTBANDWIDTH lpBandwidth;
00692   HRESULT ddRVal;
00693   PVOID GetVideoPortBandwidth;
00694 } DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
00695 typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
00696 
00697 typedef struct _DD_GETVPORTINPUTFORMATDATA {
00698   PDD_DIRECTDRAW_LOCAL lpDD;
00699   PDD_VIDEOPORT_LOCAL lpVideoPort;
00700   DWORD dwFlags;
00701   LPDDPIXELFORMAT lpddpfFormat;
00702   DWORD dwNumFormats;
00703   HRESULT ddRVal;
00704   PVOID GetVideoPortInputFormats;
00705 } DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
00706 typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
00707 
00708 typedef struct _DD_GETVPORTOUTPUTFORMATDATA {
00709   PDD_DIRECTDRAW_LOCAL lpDD;
00710   PDD_VIDEOPORT_LOCAL lpVideoPort;
00711   DWORD dwFlags;
00712   LPDDPIXELFORMAT lpddpfInputFormat;
00713   LPDDPIXELFORMAT lpddpfOutputFormats;
00714   DWORD dwNumFormats;
00715   HRESULT ddRVal;
00716   PVOID GetVideoPortInputFormats;
00717 } DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
00718 typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
00719 
00720 typedef struct _DD_GETVPORTFIELDDATA {
00721   PDD_DIRECTDRAW_LOCAL lpDD;
00722   PDD_VIDEOPORT_LOCAL lpVideoPort;
00723   BOOL bField;
00724   HRESULT ddRVal;
00725   PVOID GetVideoPortField;
00726 } DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
00727 typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
00728 
00729 typedef struct _DD_GETVPORTLINEDATA {
00730   PDD_DIRECTDRAW_LOCAL lpDD;
00731   PDD_VIDEOPORT_LOCAL lpVideoPort;
00732   DWORD dwLine;
00733   HRESULT ddRVal;
00734   PVOID GetVideoPortLine;
00735 } DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
00736 typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
00737 
00738 typedef struct _DD_GETVPORTCONNECTDATA {
00739   PDD_DIRECTDRAW_LOCAL lpDD;
00740   DWORD dwPortId;
00741   LPDDVIDEOPORTCONNECT lpConnect;
00742   DWORD dwNumEntries;
00743   HRESULT ddRVal;
00744   PVOID GetVideoPortConnectInfo;
00745 } DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
00746 typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
00747 
00748 typedef struct _DD_DESTROYVPORTDATA {
00749   PDD_DIRECTDRAW_LOCAL lpDD;
00750   PDD_VIDEOPORT_LOCAL lpVideoPort;
00751   HRESULT ddRVal;
00752   PVOID DestroyVideoPort;
00753 } DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
00754 typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
00755 
00756 typedef struct _DD_GETVPORTFLIPSTATUSDATA {
00757   PDD_DIRECTDRAW_LOCAL lpDD;
00758   FLATPTR fpSurface;
00759   HRESULT ddRVal;
00760   PVOID GetVideoPortFlipStatus;
00761 } DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
00762 typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
00763 
00764 typedef struct _DD_UPDATEVPORTDATA {
00765   PDD_DIRECTDRAW_LOCAL lpDD;
00766   PDD_VIDEOPORT_LOCAL lpVideoPort;
00767   PDD_SURFACE_INT *lplpDDSurface;
00768   PDD_SURFACE_INT *lplpDDVBISurface;
00769   LPDDVIDEOPORTINFO lpVideoInfo;
00770   DWORD dwFlags;
00771   DWORD dwNumAutoflip;
00772   DWORD dwNumVBIAutoflip;
00773   HRESULT ddRVal;
00774   PVOID UpdateVideoPort;
00775 } DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
00776 typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
00777 
00778 typedef struct _DD_WAITFORVPORTSYNCDATA {
00779   PDD_DIRECTDRAW_LOCAL lpDD;
00780   PDD_VIDEOPORT_LOCAL lpVideoPort;
00781   DWORD dwFlags;
00782   DWORD dwLine;
00783   DWORD dwTimeOut;
00784   HRESULT ddRVal;
00785   PVOID UpdateVideoPort;
00786 } DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
00787 typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
00788 
00789 typedef struct _DD_GETVPORTSIGNALDATA {
00790   PDD_DIRECTDRAW_LOCAL lpDD;
00791   PDD_VIDEOPORT_LOCAL lpVideoPort;
00792   DWORD dwStatus;
00793   HRESULT ddRVal;
00794   PVOID GetVideoSignalStatus;
00795 } DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
00796 typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
00797 
00798 typedef struct _DD_VPORTCOLORDATA {
00799   PDD_DIRECTDRAW_LOCAL lpDD;
00800   PDD_VIDEOPORT_LOCAL lpVideoPort;
00801   DWORD dwFlags;
00802   LPDDCOLORCONTROL lpColorData;
00803   HRESULT ddRVal;
00804   PVOID ColorControl;
00805 } DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
00806 typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
00807 
00808 typedef struct DD_VIDEOPORTCALLBACKS {
00809   DWORD dwSize;
00810   DWORD dwFlags;
00811   PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
00812   PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
00813   PDD_VPORTCB_FLIP FlipVideoPort;
00814   PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
00815   PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
00816   PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
00817   PVOID lpReserved1;
00818   PDD_VPORTCB_GETFIELD GetVideoPortField;
00819   PDD_VPORTCB_GETLINE GetVideoPortLine;
00820   PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
00821   PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
00822   PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
00823   PDD_VPORTCB_UPDATE UpdateVideoPort;
00824   PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
00825   PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
00826   PDD_VPORTCB_COLORCONTROL ColorControl;
00827 } DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
00828 
00829 #define DDHAL_VPORT32_CANCREATEVIDEOPORT    0x00000001
00830 #define DDHAL_VPORT32_CREATEVIDEOPORT       0x00000002
00831 #define DDHAL_VPORT32_FLIP                  0x00000004
00832 #define DDHAL_VPORT32_GETBANDWIDTH          0x00000008
00833 #define DDHAL_VPORT32_GETINPUTFORMATS       0x00000010
00834 #define DDHAL_VPORT32_GETOUTPUTFORMATS      0x00000020
00835 #define DDHAL_VPORT32_GETFIELD              0x00000080
00836 #define DDHAL_VPORT32_GETLINE               0x00000100
00837 #define DDHAL_VPORT32_GETCONNECT            0x00000200
00838 #define DDHAL_VPORT32_DESTROY               0x00000400
00839 #define DDHAL_VPORT32_GETFLIPSTATUS         0x00000800
00840 #define DDHAL_VPORT32_UPDATE                0x00001000
00841 #define DDHAL_VPORT32_WAITFORSYNC           0x00002000
00842 #define DDHAL_VPORT32_GETSIGNALSTATUS       0x00004000
00843 #define DDHAL_VPORT32_COLORCONTROL          0x00008000
00844 
00845 
00846 /************************************************************************/
00847 /* IDirectDrawColorControl callbacks                                    */
00848 /************************************************************************/
00849 
00850 #define DDRAWI_GETCOLOR      0x0001
00851 #define DDRAWI_SETCOLOR      0x0002
00852 
00853 typedef struct _DD_COLORCONTROLDATA {
00854   PDD_DIRECTDRAW_GLOBAL lpDD;
00855   PDD_SURFACE_LOCAL lpDDSurface;
00856   LPDDCOLORCONTROL lpColorData;
00857   DWORD dwFlags;
00858   HRESULT ddRVal;
00859   PVOID ColorControl;
00860 } DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
00861 typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
00862 
00863 typedef struct _DD_COLORCONTROLCALLBACKS {
00864   DWORD dwSize;
00865   DWORD dwFlags;
00866   PDD_COLORCB_COLORCONTROL ColorControl;
00867 } DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
00868 
00869 #define DDHAL_COLOR_COLORCONTROL            0x00000001
00870 
00871 /************************************************************************/
00872 /* IDirectDrawVideo callbacks                                           */
00873 /************************************************************************/
00874 
00875 typedef struct _DD_GETMOCOMPGUIDSDATA {
00876   PDD_DIRECTDRAW_LOCAL lpDD;
00877   DWORD dwNumGuids;
00878   GUID *lpGuids;
00879   HRESULT ddRVal;
00880 } DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
00881 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
00882 
00883 typedef struct _DD_GETMOCOMPFORMATSDATA {
00884   PDD_DIRECTDRAW_LOCAL lpDD;
00885   GUID *lpGuid;
00886   DWORD dwNumFormats;
00887   LPDDPIXELFORMAT lpFormats;
00888   HRESULT ddRVal;
00889 } DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
00890 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
00891 
00892 typedef struct _DD_CREATEMOCOMPDATA {
00893   PDD_DIRECTDRAW_LOCAL lpDD;
00894   PDD_MOTIONCOMP_LOCAL lpMoComp;
00895   GUID *lpGuid;
00896   DWORD dwUncompWidth;
00897   DWORD dwUncompHeight;
00898   DDPIXELFORMAT ddUncompPixelFormat;
00899   LPVOID lpData;
00900   DWORD dwDataSize;
00901   HRESULT ddRVal;
00902 } DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
00903 typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
00904 
00905 typedef struct _DDCOMPBUFFERINFO {
00906   DWORD dwSize;
00907   DWORD dwNumCompBuffers;
00908   DWORD dwWidthToCreate;
00909   DWORD dwHeightToCreate;
00910   DWORD dwBytesToAllocate;
00911   DDSCAPS2 ddCompCaps;
00912   DDPIXELFORMAT ddPixelFormat;
00913 } DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
00914 
00915 typedef struct _DD_GETMOCOMPCOMPBUFFDATA {
00916   PDD_DIRECTDRAW_LOCAL lpDD;
00917   GUID *lpGuid;
00918   DWORD dwWidth;
00919   DWORD dwHeight;
00920   DDPIXELFORMAT ddPixelFormat;
00921   DWORD dwNumTypesCompBuffs;
00922   LPDDCOMPBUFFERINFO lpCompBuffInfo;
00923   HRESULT ddRVal;
00924 } DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
00925 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
00926 
00927 typedef struct _DD_GETINTERNALMOCOMPDATA {
00928   PDD_DIRECTDRAW_LOCAL lpDD;
00929   GUID *lpGuid;
00930   DWORD dwWidth;
00931   DWORD dwHeight;
00932   DDPIXELFORMAT ddPixelFormat;
00933   DWORD dwScratchMemAlloc;
00934   HRESULT ddRVal;
00935 } DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
00936 typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
00937 
00938 typedef struct _DD_BEGINMOCOMPFRAMEDATA {
00939   PDD_DIRECTDRAW_LOCAL lpDD;
00940   PDD_MOTIONCOMP_LOCAL lpMoComp;
00941   PDD_SURFACE_LOCAL lpDestSurface;
00942   DWORD dwInputDataSize;
00943   LPVOID lpInputData;
00944   DWORD dwOutputDataSize;
00945   LPVOID lpOutputData;
00946   HRESULT ddRVal;
00947 } DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
00948 typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
00949 
00950 typedef struct _DD_ENDMOCOMPFRAMEDATA {
00951   PDD_DIRECTDRAW_LOCAL lpDD;
00952   PDD_MOTIONCOMP_LOCAL lpMoComp;
00953   LPVOID lpInputData;
00954   DWORD dwInputDataSize;
00955   HRESULT ddRVal;
00956 } DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
00957 typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
00958 
00959 typedef struct _DDMOCOMPBUFFERINFO {
00960   DWORD dwSize;
00961   PDD_SURFACE_LOCAL lpCompSurface;
00962   DWORD dwDataOffset;
00963   DWORD dwDataSize;
00964   LPVOID lpPrivate;
00965 } DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
00966 
00967 typedef struct _DD_RENDERMOCOMPDATA {
00968   PDD_DIRECTDRAW_LOCAL lpDD;
00969   PDD_MOTIONCOMP_LOCAL lpMoComp;
00970   DWORD dwNumBuffers;
00971   LPDDMOCOMPBUFFERINFO lpBufferInfo;
00972   DWORD dwFunction;
00973   LPVOID lpInputData;
00974   DWORD dwInputDataSize;
00975   LPVOID lpOutputData;
00976   DWORD dwOutputDataSize;
00977   HRESULT ddRVal;
00978 } DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
00979 typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
00980 
00981 #define DDMCQUERY_READ 0x00000001
00982 
00983 typedef struct _DD_QUERYMOCOMPSTATUSDATA {
00984   PDD_DIRECTDRAW_LOCAL lpDD;
00985   PDD_MOTIONCOMP_LOCAL lpMoComp;
00986   PDD_SURFACE_LOCAL lpSurface;
00987   DWORD dwFlags;
00988   HRESULT ddRVal;
00989 } DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
00990 typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
00991 
00992 typedef struct _DD_DESTROYMOCOMPDATA {
00993   PDD_DIRECTDRAW_LOCAL lpDD;
00994   PDD_MOTIONCOMP_LOCAL lpMoComp;
00995   HRESULT ddRVal;
00996 } DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
00997 typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
00998 
00999 typedef struct DD_MOTIONCOMPCALLBACKS {
01000   DWORD dwSize;
01001   DWORD dwFlags;
01002   PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
01003   PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
01004   PDD_MOCOMPCB_CREATE CreateMoComp;
01005   PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
01006   PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
01007   PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
01008   PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
01009   PDD_MOCOMPCB_RENDER RenderMoComp;
01010   PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
01011   PDD_MOCOMPCB_DESTROY DestroyMoComp;
01012 } DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
01013 
01014 #define DDHAL_MOCOMP32_GETGUIDS             0x00000001
01015 #define DDHAL_MOCOMP32_GETFORMATS           0x00000002
01016 #define DDHAL_MOCOMP32_CREATE               0x00000004
01017 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO      0x00000008
01018 #define DDHAL_MOCOMP32_GETINTERNALINFO      0x00000010
01019 #define DDHAL_MOCOMP32_BEGINFRAME           0x00000020
01020 #define DDHAL_MOCOMP32_ENDFRAME             0x00000040
01021 #define DDHAL_MOCOMP32_RENDER               0x00000080
01022 #define DDHAL_MOCOMP32_QUERYSTATUS          0x00000100
01023 #define DDHAL_MOCOMP32_DESTROY              0x00000200
01024 
01025 /************************************************************************/
01026 /* D3D buffer callbacks                                                 */
01027 /************************************************************************/
01028 
01029 typedef struct _DD_D3DBUFCALLBACKS {
01030   DWORD dwSize;
01031   DWORD dwFlags;
01032   PDD_CANCREATESURFACE CanCreateD3DBuffer;
01033   PDD_CREATESURFACE CreateD3DBuffer;
01034   PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
01035   PDD_SURFCB_LOCK LockD3DBuffer;
01036   PDD_SURFCB_UNLOCK UnlockD3DBuffer;
01037 } DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
01038 
01039 /************************************************************************/
01040 /* DdGetDriverInfo callback                                             */
01041 /************************************************************************/
01042 
01043 typedef struct _DD_GETDRIVERINFODATA {
01044 // Input:
01045   PVOID dhpdev;
01046   DWORD dwSize;
01047   DWORD dwFlags;
01048   GUID guidInfo;
01049   DWORD dwExpectedSize;
01050   PVOID lpvData;
01051 // Output:
01052   DWORD dwActualSize;
01053   HRESULT ddRVal;
01054 } DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
01055 typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
01056 
01057 /************************************************************************/
01058 /* Driver info structures                                               */
01059 /************************************************************************/
01060 
01061 typedef struct _DDNTCORECAPS {
01062   DWORD dwSize;
01063   DWORD dwCaps;
01064   DWORD dwCaps2;
01065   DWORD dwCKeyCaps;
01066   DWORD dwFXCaps;
01067   DWORD dwFXAlphaCaps;
01068   DWORD dwPalCaps;
01069   DWORD dwSVCaps;
01070   DWORD dwAlphaBltConstBitDepths;
01071   DWORD dwAlphaBltPixelBitDepths;
01072   DWORD dwAlphaBltSurfaceBitDepths;
01073   DWORD dwAlphaOverlayConstBitDepths;
01074   DWORD dwAlphaOverlayPixelBitDepths;
01075   DWORD dwAlphaOverlaySurfaceBitDepths;
01076   DWORD dwZBufferBitDepths;
01077   DWORD dwVidMemTotal;
01078   DWORD dwVidMemFree;
01079   DWORD dwMaxVisibleOverlays;
01080   DWORD dwCurrVisibleOverlays;
01081   DWORD dwNumFourCCCodes;
01082   DWORD dwAlignBoundarySrc;
01083   DWORD dwAlignSizeSrc;
01084   DWORD dwAlignBoundaryDest;
01085   DWORD dwAlignSizeDest;
01086   DWORD dwAlignStrideAlign;
01087   DWORD dwRops[DD_ROP_SPACE];
01088   DDSCAPS ddsCaps;
01089   DWORD dwMinOverlayStretch;
01090   DWORD dwMaxOverlayStretch;
01091   DWORD dwMinLiveVideoStretch;
01092   DWORD dwMaxLiveVideoStretch;
01093   DWORD dwMinHwCodecStretch;
01094   DWORD dwMaxHwCodecStretch;
01095   DWORD dwReserved1;
01096   DWORD dwReserved2;
01097   DWORD dwReserved3;
01098   DWORD dwSVBCaps;
01099   DWORD dwSVBCKeyCaps;
01100   DWORD dwSVBFXCaps;
01101   DWORD dwSVBRops[DD_ROP_SPACE];
01102   DWORD dwVSBCaps;
01103   DWORD dwVSBCKeyCaps;
01104   DWORD dwVSBFXCaps;
01105   DWORD dwVSBRops[DD_ROP_SPACE];
01106   DWORD dwSSBCaps;
01107   DWORD dwSSBCKeyCaps;
01108   DWORD dwSSBFXCaps;
01109   DWORD dwSSBRops[DD_ROP_SPACE];
01110   DWORD dwMaxVideoPorts;
01111   DWORD dwCurrVideoPorts;
01112   DWORD dwSVBCaps2;
01113 } DDNTCORECAPS, *PDDNTCORECAPS;
01114 
01115 typedef struct _DD_HALINFO_V4 {
01116   DWORD dwSize;
01117   VIDEOMEMORYINFO vmiData;
01118   DDNTCORECAPS ddCaps;
01119   PDD_GETDRIVERINFO GetDriverInfo;
01120   DWORD dwFlags;
01121 } DD_HALINFO_V4, *PDD_HALINFO_V4;
01122 
01123 typedef struct _DD_HALINFO {
01124   DWORD dwSize;
01125   VIDEOMEMORYINFO vmiData;
01126   DDNTCORECAPS ddCaps;
01127   PDD_GETDRIVERINFO GetDriverInfo;
01128   DWORD dwFlags;
01129   PVOID lpD3DGlobalDriverData;
01130   PVOID lpD3DHALCallbacks;
01131   PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
01132 } DD_HALINFO, *PDD_HALINFO;
01133 
01134 typedef struct _DD_NONLOCALVIDMEMCAPS {
01135   DWORD dwSize;
01136   DWORD dwNLVBCaps;
01137   DWORD dwNLVBCaps2;
01138   DWORD dwNLVBCKeyCaps;
01139   DWORD dwNLVBFXCaps;
01140   DWORD dwNLVBRops[DD_ROP_SPACE];
01141 } DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
01142 
01143 typedef struct _DD_MORESURFACECAPS {
01144   DWORD dwSize;
01145   DDSCAPSEX ddsCapsMore;
01146   struct tagNTExtendedHeapRestrictions {
01147     DDSCAPSEX ddsCapsEx;
01148     DDSCAPSEX ddsCapsExAlt;
01149   } ddsExtendedHeapRestrictions[1];
01150 } DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
01151 
01152 
01153 /*********************************************************/
01154 /* Kernel Callbacks                                      */
01155 /*********************************************************/
01156 typedef struct _DD_SYNCSURFACEDATA {
01157   PDD_DIRECTDRAW_LOCAL lpDD;
01158   PDD_SURFACE_LOCAL lpDDSurface;
01159   DWORD dwSurfaceOffset;
01160   ULONG_PTR fpLockPtr;
01161   LONG lPitch;
01162   DWORD dwOverlayOffset;
01163   ULONG dwDriverReserved1;
01164   ULONG dwDriverReserved2;
01165   ULONG dwDriverReserved3;
01166   ULONG dwDriverReserved4;
01167   HRESULT ddRVal;
01168 } DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
01169 typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
01170 
01171 typedef struct _DD_SYNCVIDEOPORTDATA {
01172   PDD_DIRECTDRAW_LOCAL lpDD;
01173   PDD_VIDEOPORT_LOCAL lpVideoPort;
01174   DWORD dwOriginOffset;
01175   DWORD dwHeight;
01176   DWORD dwVBIHeight;
01177   ULONG dwDriverReserved1;
01178   ULONG dwDriverReserved2;
01179   ULONG dwDriverReserved3;
01180   HRESULT ddRVal;
01181 } DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
01182 typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
01183 
01184 typedef struct DD_NTPRIVATEDRIVERCAPS {
01185   DWORD dwSize;
01186   DWORD dwPrivateCaps;
01187 } DD_NTPRIVATEDRIVERCAPS;
01188 
01189 typedef struct _DD_UPDATENONLOCALHEAPDATA {
01190   PDD_DIRECTDRAW_GLOBAL lpDD;
01191   DWORD dwHeap;
01192   FLATPTR fpGARTLin;
01193   FLATPTR fpGARTDev;
01194   ULONG_PTR ulPolicyMaxBytes;
01195   HRESULT ddRVal;
01196   VOID* UpdateNonLocalHeap;
01197 } DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
01198 
01199 typedef struct _DD_STEREOMODE {
01200   DWORD dwSize;
01201   DWORD dwHeight;
01202   DWORD dwWidth;
01203   DWORD dwBpp;
01204   DWORD dwRefreshRate;
01205   BOOL bSupported;
01206 } DD_STEREOMODE, *PDD_STEREOMODE;
01207 
01208 typedef struct _DD_MORECAPS {
01209   DWORD dwSize;
01210   DWORD dwAlphaCaps;
01211   DWORD dwSVBAlphaCaps;
01212   DWORD dwVSBAlphaCaps;
01213   DWORD dwSSBAlphaCaps;
01214   DWORD dwFilterCaps;
01215   DWORD dwSVBFilterCaps;
01216   DWORD dwVSBFilterCaps;
01217   DWORD dwSSBFilterCaps;
01218 } DD_MORECAPS, *PDD_MORECAPS;
01219 
01220 typedef struct _DD_CLIPPER_GLOBAL {
01221   ULONG_PTR dwReserved1;
01222 } DD_CLIPPER_GLOBAL;
01223 
01224 typedef struct _DD_CLIPPER_LOCAL {
01225   ULONG_PTR dwReserved1;
01226 } DD_CLIPPER_LOCAL;
01227 
01228 typedef struct _DD_PALETTE_LOCAL {
01229   ULONG dwReserved0;
01230   ULONG_PTR dwReserved1;
01231 } DD_PALETTE_LOCAL;
01232 
01233 typedef struct DD_KERNELCALLBACKS {
01234   DWORD dwSize;
01235   DWORD dwFlags;
01236   PDD_KERNELCB_SYNCSURFACE SyncSurfaceData;
01237   PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
01238 } DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
01239 
01240 #define MAX_AUTOFLIP_BUFFERS                  10
01241 #define DDSCAPS_EXECUTEBUFFER                 DDSCAPS_RESERVED2
01242 #define DDSCAPS_COMMANDBUFFER                 DDSCAPS_RESERVED3
01243 #define DDSCAPS_VERTEXBUFFER                  DDSCAPS_RESERVED4
01244 #define DDPF_D3DFORMAT                        0x00200000l
01245 #define D3DFORMAT_OP_TEXTURE                  0x00000001L
01246 #define D3DFORMAT_OP_VOLUMETEXTURE            0x00000002L
01247 #define D3DFORMAT_OP_CUBETEXTURE              0x00000004L
01248 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET   0x00000008L
01249 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
01250 #define D3DFORMAT_OP_ZSTENCIL                 0x00000040L
01251 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH  0x00000080L
01252 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
01253 #define D3DFORMAT_OP_DISPLAYMODE              0x00000400L
01254 #define D3DFORMAT_OP_3DACCELERATION           0x00000800L
01255 #define D3DFORMAT_OP_PIXELSIZE                0x00001000L
01256 #define D3DFORMAT_OP_CONVERT_TO_ARGB          0x00002000L
01257 #define D3DFORMAT_OP_OFFSCREENPLAIN           0x00004000L
01258 #define D3DFORMAT_OP_SRGBREAD                 0x00008000L
01259 #define D3DFORMAT_OP_BUMPMAP                  0x00010000L
01260 #define D3DFORMAT_OP_DMAP                     0x00020000L
01261 #define D3DFORMAT_OP_NOFILTER                 0x00040000L
01262 #define D3DFORMAT_MEMBEROFGROUP_ARGB          0x00080000L
01263 #define D3DFORMAT_OP_SRGBWRITE                0x00100000L
01264 #define D3DFORMAT_OP_NOALPHABLEND             0x00200000L
01265 #define D3DFORMAT_OP_AUTOGENMIPMAP            0x00400000L
01266 #define D3DFORMAT_OP_VERTEXTEXTURE            0x00800000L
01267 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP     0x01000000L
01268 #define DDHAL_PLEASEALLOC_BLOCKSIZE           0x00000002l
01269 #define DDHAL_PLEASEALLOC_USERMEM             0x00000004l
01270 
01271 #define VIDMEM_ISLINEAR                       0x00000001l
01272 #define VIDMEM_ISRECTANGULAR                  0x00000002l
01273 #define VIDMEM_ISHEAP                         0x00000004l
01274 #define VIDMEM_ISNONLOCAL                     0x00000008l
01275 #define VIDMEM_ISWC                           0x00000010l
01276 #define VIDMEM_HEAPDISABLED                   0x00000020l
01277 
01278 #define DDHAL_CREATESURFACEEX_SWAPHANDLES     0x00000001l
01279 
01280 #define DDHAL_KERNEL_SYNCSURFACEDATA          0x00000001l
01281 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA        0x00000002l
01282 
01283 #define DDHAL_DRIVER_NOTHANDLED               0x00000000l
01284 #define DDHAL_DRIVER_HANDLED                  0x00000001l
01285 #define DDHAL_DRIVER_NOCKEYHW                 0x00000002l
01286 
01287 #define DDRAWISURF_HASCKEYSRCBLT              0x00000800L
01288 #define DDRAWISURF_HASPIXELFORMAT             0x00002000L
01289 #define DDRAWISURF_HASOVERLAYDATA             0x00004000L
01290 #define DDRAWISURF_FRONTBUFFER                0x04000000L
01291 #define DDRAWISURF_BACKBUFFER                 0x08000000L
01292 #define DDRAWISURF_INVALID                    0x10000000L
01293 #define DDRAWISURF_DRIVERMANAGED              0x40000000L
01294 
01295 #define ROP_HAS_SOURCE                        0x00000001l
01296 #define ROP_HAS_PATTERN                       0x00000002l
01297 #define ROP_HAS_SOURCEPATTERN                 ROP_HAS_SOURCE | ROP_HAS_PATTERN
01298 
01299 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF      0x00000001l
01300 #define DDHAL_EXEBUFCB32_CREATEEXEBUF         0x00000002l
01301 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF        0x00000004l
01302 #define DDHAL_EXEBUFCB32_LOCKEXEBUF           0x00000008l
01303 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF         0x00000010l
01304 
01305 #define DDHAL_D3DBUFCB32_CANCREATED3DBUF      DDHAL_EXEBUFCB32_CANCREATEEXEBUF
01306 #define DDHAL_D3DBUFCB32_CREATED3DBUF         DDHAL_EXEBUFCB32_CREATEEXEBUF
01307 #define DDHAL_D3DBUFCB32_DESTROYD3DBUF        DDHAL_EXEBUFCB32_DESTROYEXEBUF
01308 #define DDHAL_D3DBUFCB32_LOCKD3DBUF           DDHAL_EXEBUFCB32_LOCKEXEBUF
01309 #define DDHAL_D3DBUFCB32_UNLOCKD3DBUF         DDHAL_EXEBUFCB32_UNLOCKEXEBUF
01310 
01311 #define DDHALINFO_ISPRIMARYDISPLAY            0x00000001
01312 #define DDHALINFO_MODEXILLEGAL                0x00000002
01313 #define DDHALINFO_GETDRIVERINFOSET            0x00000004
01314 #define DDHALINFO_GETDRIVERINFO2              0x00000008
01315 
01316 #define DDRAWIVPORT_ON                        0x00000001
01317 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP         0x00000002
01318 #define DDRAWIVPORT_COLORKEYANDINTERP         0x00000004
01319 
01320 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION   0x00000001l
01321 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION   0x00000002l
01322 #define DDHAL_PRIVATECAP_RESERVED1               0x00000004l
01323 
01324 #define DDRAWI_VPORTSTART                     0x0001
01325 #define DDRAWI_VPORTSTOP                      0x0002
01326 #define DDRAWI_VPORTUPDATE                    0x0003
01327 #define DDRAWI_VPORTGETCOLOR                  0x0001
01328 #define DDRAWI_VPORTSETCOLOR                  0x0002
01329 
01330 #ifdef __cplusplus
01331 } /* extern "C" */
01332 #endif
01333 
01334 #endif /* GUID_DEFS_ONLY */
01335 
01336 #endif /* __DD_INCLUDED__ */

Generated on Sun May 27 2012 04:31:22 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.