Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenddrawi.h
Go to the documentation of this file.
00001 /* 00002 * DirectDraw driver interface 00003 * (DirectX 7 version) 00004 * 00005 * Copyright (C) 2001 Ove Kaaven 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00020 */ 00021 00022 #ifndef __DDRAWI_INCLUDED__ 00023 #define __DDRAWI_INCLUDED__ 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 #define OBJECT_ISROOT 0x80000000 00030 00031 #include <ddraw.h> 00032 #include <dvp.h> 00033 #include <ddkernel.h> 00034 #include <dmemmgr.h> 00035 00036 #define DDAPI WINAPI 00037 00038 #define VALID_ALIGNMENT(align) \ 00039 (!((align==0)||(align%2)!= 0 )) 00040 00041 /* the DirectDraw versions */ 00042 #define DD_VERSION 0x0200 /* compatibility version */ 00043 #define DD_RUNTIME_VERSION 0x0902 /* actual version */ 00044 00045 /* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */ 00046 #define DD_HAL_VERSION 0x0100 00047 00048 /* more DCICOMMAND escapes */ 00049 #ifndef DCICOMMAND 00050 #define DCICOMMAND 3075 00051 #endif 00052 00053 #define DDCREATEDRIVEROBJECT 10 00054 #define DDGET32BITDRIVERNAME 11 00055 #define DDNEWCALLBACKFNS 12 00056 #define DDVERSIONINFO 13 00057 00058 #define DDUNSUPPORTEDMODE ((DWORD) -1) 00059 00060 #include "dciddi.h" 00061 00062 #ifndef CCHDEVICENAME 00063 #define CCHDEVICENAME 32 00064 #endif 00065 #define MAX_DRIVER_NAME CCHDEVICENAME 00066 00067 #define DDHAL_DRIVER_DLLNAME "DDRAW16.DLL" 00068 #define DDHAL_APP_DLLNAME "DDRAW.DLL" 00069 00070 /* GUID */ 00071 #ifdef _WIN32 00072 DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); 00073 DEFINE_GUID(GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); 00074 DEFINE_GUID(GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); 00075 DEFINE_GUID(GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); 00076 DEFINE_GUID(GUID_D3DCallbacks2, 0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a); 00077 DEFINE_GUID(GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e); 00078 DEFINE_GUID(GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37); 00079 DEFINE_GUID(GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); 00080 DEFINE_GUID(GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8); 00081 DEFINE_GUID(GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29); 00082 DEFINE_GUID(GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae); 00083 DEFINE_GUID(GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5); 00084 DEFINE_GUID(GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6); 00085 DEFINE_GUID(GUID_OptSurfaceKmodeInfo, 0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); 00086 DEFINE_GUID(GUID_OptSurfaceUmodeInfo, 0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); 00087 DEFINE_GUID(GUID_UserModeDriverInfo, 0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); 00088 DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); 00089 DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8); 00090 DEFINE_GUID(GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e); 00091 DEFINE_GUID(GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A); 00092 #endif 00093 00094 #ifndef _WIN32 00095 #undef E_NOTIMPL 00096 #undef E_OUTOFMEMORY 00097 #undef E_INVALIDARG 00098 #undef E_FAIL 00099 #define E_NOTIMPL 0x80004001L 00100 #define E_OUTOFMEMORY 0x8007000EL 00101 #define E_INVALIDARG 0x80070057L 00102 #define E_FAIL 0x80004005L 00103 #endif 00104 00105 /***************************************************************************** 00106 * Initialization stuff 00107 */ 00108 typedef struct { 00109 char szName[260]; 00110 char szEntryPoint[64]; 00111 DWORD dwContext; 00112 } DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA; 00113 00114 typedef struct { 00115 DWORD dwHALVersion; 00116 ULONG_PTR dwReserved1; 00117 ULONG_PTR dwReserved2; 00118 } DDVERSIONDATA,*LPDDVERSIONDATA; 00119 00120 typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext); 00121 00122 /* predeclare some structures */ 00123 typedef struct _DDHALINFO *LPDDHALINFO; 00124 typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT; 00125 00126 #ifndef DDRAWI_DIRECTDRAW_DEFINED 00127 typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL; 00128 typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL; 00129 #define DDRAWI_DIRECTDRAW_DEFINED 00130 #endif 00131 00132 typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT; 00133 00134 #ifndef DDRAWI_DDRAWSURFACE_DEFINED 00135 typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL; 00136 #define DDRAWI_DDRAWSURFACE_DEFINED 00137 #endif 00138 00139 typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL; 00140 typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE; 00141 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE; 00142 typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT; 00143 typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL; 00144 typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL; 00145 typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT; 00146 typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL; 00147 typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL; 00148 typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT; 00149 typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL; 00150 typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT; 00151 typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL; 00152 00153 /***************************************************************************** 00154 * driver->ddraw callbacks 00155 */ 00156 typedef BOOL (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset); 00157 typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight); 00158 typedef void (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem); 00159 00160 typedef struct { 00161 DWORD dwSize; 00162 LPDDHAL_SETINFO lpSetInfo; 00163 LPDDHAL_VIDMEMALLOC lpVidMemAlloc; 00164 LPDDHAL_VIDMEMFREE lpVidMemFree; 00165 } DDHALDDRAWFNS, *LPDDHALDDRAWFNS; 00166 00167 /***************************************************************************** 00168 * mode info structure 00169 */ 00170 typedef struct _DDHALMODEINFO { 00171 DWORD dwWidth; 00172 DWORD dwHeight; 00173 LONG lPitch; 00174 DWORD dwBPP; 00175 WORD wFlags; 00176 WORD wRefreshRate; 00177 DWORD dwRBitMask; 00178 DWORD dwGBitMask; 00179 DWORD dwBBitMask; 00180 DWORD dwAlphaBitMask; 00181 } DDHALMODEINFO, *LPDDHALMODEINFO; 00182 00183 #define DDMODEINFO_PALETTIZED 0x0001 00184 #define DDMODEINFO_MODEX 0x0002 00185 #define DDMODEINFO_UNSUPPORTED 0x0004 00186 #define DDMODEINFO_STANDARDVGA 0x0008 00187 #define DDMODEINFO_MAXREFRESH 0x0010 00188 #define DDMODEINFO_STEREO 0x0020 00189 00190 /***************************************************************************** 00191 * video memory info structure 00192 */ 00193 typedef struct _VIDMEM { 00194 DWORD dwFlags; 00195 FLATPTR fpStart; 00196 __GNU_EXTENSION union { 00197 FLATPTR fpEnd; 00198 DWORD dwWidth; 00199 }; 00200 DDSCAPS ddsCaps; 00201 DDSCAPS ddsCapsAlt; 00202 __GNU_EXTENSION union { 00203 LPVMEMHEAP lpHeap; 00204 DWORD dwHeight; 00205 }; 00206 } VIDMEM; 00207 00208 #define VIDMEM_ISLINEAR 0x00000001l 00209 #define VIDMEM_ISRECTANGULAR 0x00000002l 00210 #define VIDMEM_ISHEAP 0x00000004l 00211 #define VIDMEM_ISNONLOCAL 0x00000008l 00212 #define VIDMEM_ISWC 0x00000010l 00213 #define VIDMEM_HEAPDISABLED 0x00000020l 00214 00215 typedef struct _VIDMEMINFO { 00216 FLATPTR fpPrimary; 00217 DWORD dwFlags; 00218 DWORD dwDisplayWidth; 00219 DWORD dwDisplayHeight; 00220 LONG lDisplayPitch; 00221 DDPIXELFORMAT ddpfDisplay; 00222 DWORD dwOffscreenAlign; 00223 DWORD dwOverlayAlign; 00224 DWORD dwTextureAlign; 00225 DWORD dwZBufferAlign; 00226 DWORD dwAlphaAlign; 00227 DWORD dwNumHeaps; 00228 LPVIDMEM pvmList; 00229 } VIDMEMINFO, *LPVIDMEMINFO; 00230 00231 typedef struct _HEAPALIAS { 00232 FLATPTR fpVidMem; 00233 LPVOID lpAlias; 00234 DWORD dwAliasSize; 00235 } HEAPALIAS, *LPHEAPALIAS; 00236 00237 typedef struct _HEAPALIASINFO { 00238 DWORD dwRefCnt; 00239 DWORD dwFlags; 00240 DWORD dwNumHeaps; 00241 LPHEAPALIAS lpAliases; 00242 } HEAPALIASINFO, *LPHEAPALIASINFO; 00243 00244 #define HEAPALIASINFO_MAPPEDREAL 0x00000001 00245 #define HEAPALIASINFO_MAPPEDDUMMY 0x00000002 00246 00247 /***************************************************************************** 00248 * capabilities structures 00249 */ 00250 typedef struct _DDCORECAPS { 00251 DWORD dwSize; 00252 DWORD dwCaps; 00253 DWORD dwCaps2; 00254 DWORD dwCKeyCaps; 00255 DWORD dwFXCaps; 00256 DWORD dwFXAlphaCaps; 00257 DWORD dwPalCaps; 00258 DWORD dwSVCaps; 00259 DWORD dwAlphaBltConstBitDepths; 00260 DWORD dwAlphaBltPixelBitDepths; 00261 DWORD dwAlphaBltSurfaceBitDepths; 00262 DWORD dwAlphaOverlayConstBitDepths; 00263 DWORD dwAlphaOverlayPixelBitDepths; 00264 DWORD dwAlphaOverlaySurfaceBitDepths; 00265 DWORD dwZBufferBitDepths; 00266 DWORD dwVidMemTotal; 00267 DWORD dwVidMemFree; 00268 DWORD dwMaxVisibleOverlays; 00269 DWORD dwCurrVisibleOverlays; 00270 DWORD dwNumFourCCCodes; 00271 DWORD dwAlignBoundarySrc; 00272 DWORD dwAlignSizeSrc; 00273 DWORD dwAlignBoundaryDest; 00274 DWORD dwAlignSizeDest; 00275 DWORD dwAlignStrideAlign; 00276 DWORD dwRops[DD_ROP_SPACE]; 00277 DDSCAPS ddsCaps; 00278 DWORD dwMinOverlayStretch; 00279 DWORD dwMaxOverlayStretch; 00280 DWORD dwMinLiveVideoStretch; 00281 DWORD dwMaxLiveVideoStretch; 00282 DWORD dwMinHwCodecStretch; 00283 DWORD dwMaxHwCodecStretch; 00284 DWORD dwReserved1; 00285 DWORD dwReserved2; 00286 DWORD dwReserved3; 00287 DWORD dwSVBCaps; 00288 DWORD dwSVBCKeyCaps; 00289 DWORD dwSVBFXCaps; 00290 DWORD dwSVBRops[DD_ROP_SPACE]; 00291 DWORD dwVSBCaps; 00292 DWORD dwVSBCKeyCaps; 00293 DWORD dwVSBFXCaps; 00294 DWORD dwVSBRops[DD_ROP_SPACE]; 00295 DWORD dwSSBCaps; 00296 DWORD dwSSBCKeyCaps; 00297 DWORD dwSSBFXCaps; 00298 DWORD dwSSBRops[DD_ROP_SPACE]; 00299 DWORD dwMaxVideoPorts; 00300 DWORD dwCurrVideoPorts; 00301 DWORD dwSVBCaps2; 00302 } DDCORECAPS, *LPDDCORECAPS; 00303 00304 typedef struct _DDNONLOCALVIDMEMCAPS { 00305 DWORD dwSize; 00306 DWORD dwNLVBCaps; 00307 DWORD dwNLVBCaps2; 00308 DWORD dwNLVBCKeyCaps; 00309 DWORD dwNLVBFXCaps; 00310 DWORD dwNLVBRops[DD_ROP_SPACE]; 00311 } DDNONLOCALVIDMEMCAPS, *LPDDNONLOCALVIDMEMCAPS; 00312 00313 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 00314 #define DDSCAPS2_VERTEXBUFFER DDSCAPS2_RESERVED1 00315 #define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2 00316 00317 /***************************************************************************** 00318 * ddraw->driver callbacks 00319 */ 00320 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l 00321 #define DDHAL_DRIVER_HANDLED 0x00000001l 00322 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l 00323 00324 typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA; 00325 typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA; 00326 typedef struct _DDHAL_DRVSETCOLORKEYDATA *LPDDHAL_DRVSETCOLORKEYDATA; 00327 typedef struct _DDHAL_SETMODEDATA *LPDDHAL_SETMODEDATA; 00328 typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA; 00329 typedef struct _DDHAL_CANCREATESURFACEDATA *LPDDHAL_CANCREATESURFACEDATA; 00330 typedef struct _DDHAL_CREATEPALETTEDATA *LPDDHAL_CREATEPALETTEDATA; 00331 typedef struct _DDHAL_GETSCANLINEDATA *LPDDHAL_GETSCANLINEDATA; 00332 typedef struct _DDHAL_SETEXCLUSIVEMODEDATA *LPDDHAL_SETEXCLUSIVEMODEDATA; 00333 typedef struct _DDHAL_FLIPTOGDISURFACEDATA *LPDDHAL_FLIPTOGDISURFACEDATA; 00334 00335 typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER) (LPDDHAL_DESTROYDRIVERDATA); 00336 typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE) (LPDDHAL_CREATESURFACEDATA); 00337 typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY) (LPDDHAL_DRVSETCOLORKEYDATA); 00338 typedef DWORD (PASCAL *LPDDHAL_SETMODE) (LPDDHAL_SETMODEDATA); 00339 typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA); 00340 typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE) (LPDDHAL_CANCREATESURFACEDATA ); 00341 typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE) (LPDDHAL_CREATEPALETTEDATA); 00342 typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE) (LPDDHAL_GETSCANLINEDATA); 00343 typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE) (LPDDHAL_SETEXCLUSIVEMODEDATA); 00344 typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE) (LPDDHAL_FLIPTOGDISURFACEDATA); 00345 00346 typedef struct _DDHAL_DDCALLBACKS { 00347 DWORD dwSize; 00348 DWORD dwFlags; 00349 LPDDHAL_DESTROYDRIVER DestroyDriver; 00350 LPDDHAL_CREATESURFACE CreateSurface; 00351 LPDDHAL_SETCOLORKEY SetColorKey; 00352 LPDDHAL_SETMODE SetMode; 00353 LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; 00354 LPDDHAL_CANCREATESURFACE CanCreateSurface; 00355 LPDDHAL_CREATEPALETTE CreatePalette; 00356 LPDDHAL_GETSCANLINE GetScanLine; 00357 /* DirectX 2 */ 00358 LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; 00359 LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; 00360 } DDHAL_DDCALLBACKS, *LPDDHAL_DDCALLBACKS; 00361 00362 typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA; 00363 typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA; 00364 typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA; 00365 typedef struct _DDHAL_LOCKDATA *LPDDHAL_LOCKDATA; 00366 typedef struct _DDHAL_UNLOCKDATA *LPDDHAL_UNLOCKDATA; 00367 typedef struct _DDHAL_BLTDATA *LPDDHAL_BLTDATA; 00368 typedef struct _DDHAL_SETCOLORKEYDATA *LPDDHAL_SETCOLORKEYDATA; 00369 typedef struct _DDHAL_ADDATTACHEDSURFACEDATA *LPDDHAL_ADDATTACHEDSURFACEDATA; 00370 typedef struct _DDHAL_GETBLTSTATUSDATA *LPDDHAL_GETBLTSTATUSDATA; 00371 typedef struct _DDHAL_GETFLIPSTATUSDATA *LPDDHAL_GETFLIPSTATUSDATA; 00372 typedef struct _DDHAL_UPDATEOVERLAYDATA *LPDDHAL_UPDATEOVERLAYDATA; 00373 typedef struct _DDHAL_SETOVERLAYPOSITIONDATA *LPDDHAL_SETOVERLAYPOSITIONDATA; 00374 typedef struct _DDHAL_SETPALETTEDATA *LPDDHAL_SETPALETTEDATA; 00375 00376 typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE) (LPDDHAL_DESTROYSURFACEDATA); 00377 typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP) (LPDDHAL_FLIPDATA); 00378 typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST) (LPDDHAL_SETCLIPLISTDATA); 00379 typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK) (LPDDHAL_LOCKDATA); 00380 typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK) (LPDDHAL_UNLOCKDATA); 00381 typedef DWORD (PASCAL *LPDDHALSURFCB_BLT) (LPDDHAL_BLTDATA); 00382 typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY) (LPDDHAL_SETCOLORKEYDATA); 00383 typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA); 00384 typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS) (LPDDHAL_GETBLTSTATUSDATA); 00385 typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS) (LPDDHAL_GETFLIPSTATUSDATA); 00386 typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY) (LPDDHAL_UPDATEOVERLAYDATA); 00387 typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA); 00388 typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE) (LPDDHAL_SETPALETTEDATA); 00389 00390 typedef struct _DDHAL_DDSURFACECALLBACKS { 00391 DWORD dwSize; 00392 DWORD dwFlags; 00393 LPDDHALSURFCB_DESTROYSURFACE DestroySurface; 00394 LPDDHALSURFCB_FLIP Flip; 00395 LPDDHALSURFCB_SETCLIPLIST SetClipList; 00396 LPDDHALSURFCB_LOCK Lock; 00397 LPDDHALSURFCB_UNLOCK Unlock; 00398 LPDDHALSURFCB_BLT Blt; 00399 LPDDHALSURFCB_SETCOLORKEY SetColorKey; 00400 LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; 00401 LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; 00402 LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; 00403 LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; 00404 LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; 00405 LPVOID reserved4; 00406 LPDDHALSURFCB_SETPALETTE SetPalette; 00407 } DDHAL_DDSURFACECALLBACKS, *LPDDHAL_DDSURFACECALLBACKS; 00408 00409 typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA; 00410 typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA; 00411 00412 typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE) (LPDDHAL_DESTROYPALETTEDATA); 00413 typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES) (LPDDHAL_SETENTRIESDATA); 00414 00415 typedef struct _DDHAL_DDPALETTECALLBACKS { 00416 DWORD dwSize; 00417 DWORD dwFlags; 00418 LPDDHALPALCB_DESTROYPALETTE DestroyPalette; 00419 LPDDHALPALCB_SETENTRIES SetEntries; 00420 } DDHAL_DDPALETTECALLBACKS, *LPDDHAL_DDPALETTECALLBACKS; 00421 00422 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF) (LPDDHAL_CANCREATESURFACEDATA); 00423 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF) (LPDDHAL_CREATESURFACEDATA); 00424 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF) (LPDDHAL_DESTROYSURFACEDATA); 00425 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF) (LPDDHAL_LOCKDATA); 00426 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF) (LPDDHAL_UNLOCKDATA); 00427 00428 typedef struct _DDHAL_DDEXEBUFCALLBACKS { 00429 DWORD dwSize; 00430 DWORD dwFlags; 00431 LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer; 00432 LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer; 00433 LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer; 00434 LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer; 00435 LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer; 00436 } DDHAL_DDEXEBUFCALLBACKS, *LPDDHAL_DDEXEBUFCALLBACKS; 00437 00438 typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA; 00439 typedef struct _DDHAL_UPDATENONLOCALHEAPDATA *LPDDHAL_UPDATENONLOCALHEAPDATA; 00440 typedef struct _DDHAL_GETHEAPALIGNMENTDATA *LPDDHAL_GETHEAPALIGNMENTDATA; 00441 00442 typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA); 00443 typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP) (LPDDHAL_UPDATENONLOCALHEAPDATA); 00444 typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT) (LPDDHAL_GETHEAPALIGNMENTDATA); 00445 00446 typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS { 00447 DWORD dwSize; 00448 DWORD dwFlags; 00449 LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; 00450 LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; 00451 LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; 00452 LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus; 00453 } DDHAL_DDMISCELLANEOUSCALLBACKS, *LPDDHAL_DDMISCELLANEOUSCALLBACKS; 00454 00455 typedef struct _DDHAL_CREATESURFACEEXDATA *LPDDHAL_CREATESURFACEEXDATA; 00456 typedef struct _DDHAL_GETDRIVERSTATEDATA *LPDDHAL_GETDRIVERSTATEDATA; 00457 typedef struct _DDHAL_DESTROYDDLOCALDATA *LPDDHAL_DESTROYDDLOCALDATA; 00458 00459 typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA); 00460 typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA); 00461 typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA); 00462 00463 typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS { 00464 DWORD dwSize; 00465 DWORD dwFlags; 00466 LPVOID Reserved; 00467 LPDDHAL_CREATESURFACEEX CreateSurfaceEx; 00468 LPDDHAL_GETDRIVERSTATE GetDriverState; 00469 LPDDHAL_DESTROYDDLOCAL DestroyDDLocal; 00470 } DDHAL_DDMISCELLANEOUS2CALLBACKS, *LPDDHAL_DDMISCELLANEOUS2CALLBACKS; 00471 00472 typedef struct _DDHAL_CANCREATEVPORTDATA *LPDDHAL_CANCREATEVPORTDATA; 00473 typedef struct _DDHAL_CREATEVPORTDATA *LPDDHAL_CREATEVPORTDATA; 00474 typedef struct _DDHAL_FLIPVPORTDATA *LPDDHAL_FLIPVPORTDATA; 00475 typedef struct _DDHAL_GETVPORTCONNECTDATA *LPDDHAL_GETVPORTCONNECTDATA; 00476 typedef struct _DDHAL_GETVPORTBANDWIDTHDATA *LPDDHAL_GETVPORTBANDWIDTHDATA; 00477 typedef struct _DDHAL_GETVPORTINPUTFORMATDATA *LPDDHAL_GETVPORTINPUTFORMATDATA; 00478 typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA; 00479 typedef struct _DDHAL_GETVPORTFIELDDATA *LPDDHAL_GETVPORTFIELDDATA; 00480 typedef struct _DDHAL_GETVPORTLINEDATA *LPDDHAL_GETVPORTLINEDATA; 00481 typedef struct _DDHAL_DESTROYVPORTDATA *LPDDHAL_DESTROYVPORTDATA; 00482 typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA *LPDDHAL_GETVPORTFLIPSTATUSDATA; 00483 typedef struct _DDHAL_UPDATEVPORTDATA *LPDDHAL_UPDATEVPORTDATA; 00484 typedef struct _DDHAL_WAITFORVPORTSYNCDATA *LPDDHAL_WAITFORVPORTSYNCDATA; 00485 typedef struct _DDHAL_GETVPORTSIGNALDATA *LPDDHAL_GETVPORTSIGNALDATA; 00486 typedef struct _DDHAL_VPORTCOLORDATA *LPDDHAL_VPORTCOLORDATA; 00487 00488 typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA); 00489 typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA); 00490 typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA); 00491 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA); 00492 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA); 00493 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA); 00494 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA); 00495 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA); 00496 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA); 00497 typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA); 00498 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA); 00499 typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA); 00500 typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA); 00501 typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA); 00502 typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA); 00503 00504 typedef struct _DDHAL_DDVIDEOPORTCALLBACKS { 00505 DWORD dwSize; 00506 DWORD dwFlags; 00507 LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; 00508 LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; 00509 LPDDHALVPORTCB_FLIP FlipVideoPort; 00510 LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; 00511 LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; 00512 LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; 00513 LPVOID lpReserved1; 00514 LPDDHALVPORTCB_GETFIELD GetVideoPortField; 00515 LPDDHALVPORTCB_GETLINE GetVideoPortLine; 00516 LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; 00517 LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; 00518 LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; 00519 LPDDHALVPORTCB_UPDATE UpdateVideoPort; 00520 LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; 00521 LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; 00522 LPDDHALVPORTCB_COLORCONTROL ColorControl; 00523 } DDHAL_DDVIDEOPORTCALLBACKS; 00524 00525 typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA; 00526 00527 typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA); 00528 00529 typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS { 00530 DWORD dwSize; 00531 DWORD dwFlags; 00532 LPDDHALCOLORCB_COLORCONTROL ColorControl; 00533 } DDHAL_DDCOLORCONTROLCALLBACKS; 00534 00535 typedef struct _DDHAL_SYNCSURFACEDATA *LPDDHAL_SYNCSURFACEDATA; 00536 typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA; 00537 00538 typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA); 00539 typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA); 00540 00541 typedef struct _DDHAL_DDKERNELCALLBACKS { 00542 DWORD dwSize; 00543 DWORD dwFlags; 00544 LPDDHALKERNELCB_SYNCSURFACE SyncSurfaceData; 00545 LPDDHALKERNELCB_SYNCVIDEOPORT SyncVideoPortData; 00546 } DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS; 00547 00548 typedef struct _DDHAL_GETMOCOMPGUIDSDATA *LPDDHAL_GETMOCOMPGUIDSDATA; 00549 typedef struct _DDHAL_GETMOCOMPFORMATSDATA *LPDDHAL_GETMOCOMPFORMATSDATA; 00550 typedef struct _DDHAL_CREATEMOCOMPDATA *LPDDHAL_CREATEMOCOMPDATA; 00551 typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA *LPDDHAL_GETMOCOMPCOMPBUFFDATA; 00552 typedef struct _DDHAL_GETINTERNALMOCOMPDATA *LPDDHAL_GETINTERNALMOCOMPDATA; 00553 typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA *LPDDHAL_BEGINMOCOMPFRAMEDATA; 00554 typedef struct _DDHAL_ENDMOCOMPFRAMEDATA *LPDDHAL_ENDMOCOMPFRAMEDATA; 00555 typedef struct _DDHAL_RENDERMOCOMPDATA *LPDDHAL_RENDERMOCOMPDATA; 00556 typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA *LPDDHAL_QUERYMOCOMPSTATUSDATA; 00557 typedef struct _DDHAL_DESTROYMOCOMPDATA *LPDDHAL_DESTROYMOCOMPDATA; 00558 00559 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)(LPDDHAL_GETMOCOMPGUIDSDATA); 00560 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)(LPDDHAL_GETMOCOMPFORMATSDATA); 00561 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)(LPDDHAL_CREATEMOCOMPDATA); 00562 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)(LPDDHAL_GETMOCOMPCOMPBUFFDATA); 00563 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)(LPDDHAL_GETINTERNALMOCOMPDATA); 00564 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)(LPDDHAL_BEGINMOCOMPFRAMEDATA); 00565 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)(LPDDHAL_ENDMOCOMPFRAMEDATA); 00566 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)(LPDDHAL_RENDERMOCOMPDATA); 00567 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)(LPDDHAL_QUERYMOCOMPSTATUSDATA); 00568 typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)(LPDDHAL_DESTROYMOCOMPDATA); 00569 00570 typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS { 00571 DWORD dwSize; 00572 DWORD dwFlags; 00573 LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; 00574 LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; 00575 LPDDHALMOCOMPCB_CREATE CreateMoComp; 00576 LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; 00577 LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; 00578 LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; 00579 LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; 00580 LPDDHALMOCOMPCB_RENDER RenderMoComp; 00581 LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; 00582 LPDDHALMOCOMPCB_DESTROY DestroyMoComp; 00583 } DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS; 00584 00585 typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE); 00586 00587 /***************************************************************************** 00588 * driver info structure 00589 * 00590 * The HAL is queried for additional callbacks via the GetDriverInfo callback. 00591 */ 00592 typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA; 00593 typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA); 00594 00595 typedef struct _DDHAL_GETDRIVERINFODATA { 00596 DWORD dwSize; 00597 DWORD dwFlags; 00598 GUID guidInfo; 00599 DWORD dwExpectedSize; 00600 LPVOID lpvData; 00601 DWORD dwActualSize; 00602 HRESULT ddRVal; 00603 ULONG_PTR dwContext; 00604 } DDHAL_GETDRIVERINFODATA; 00605 00606 typedef struct _DDHALINFO { 00607 DWORD dwSize; 00608 LPDDHAL_DDCALLBACKS lpDDCallbacks; 00609 LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks; 00610 LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks; 00611 VIDMEMINFO vmiData; 00612 DDCORECAPS ddCaps; 00613 DWORD dwMonitorFrequency; 00614 LPDDHAL_GETDRIVERINFO GetDriverInfo; 00615 DWORD dwModeIndex; 00616 LPDWORD lpdwFourCC; 00617 DWORD dwNumModes; 00618 LPDDHALMODEINFO lpModeInfo; 00619 DWORD dwFlags; 00620 LPVOID lpPDevice; 00621 DWORD hInstance; 00622 /* DirectX 2 */ 00623 ULONG_PTR lpD3DGlobalDriverData; 00624 ULONG_PTR lpD3DHALCallbacks; 00625 LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks; 00626 } DDHALINFO; 00627 00628 #define DDPALETTECALLBACKSSIZE sizeof(DDHAL_DDPALETTECALLBACKS) 00629 #define DDSURFACECALLBACKSSIZE sizeof(DDHAL_DDSURFACECALLBACKS) 00630 #define DDMISCELLANEOUSCALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS) 00631 #define DDMISCELLANEOUS2CALLBACKSSIZE sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS) 00632 #define DDEXEBUFCALLBACKSSIZE sizeof(DDHAL_DDEXEBUFCALLBACKS) 00633 #define DDVIDEOPORTCALLBACKSSIZE sizeof(DDHAL_DDVIDEOPORTCALLBACKS) 00634 #define DDCOLORCONTROLCALLBACKSSIZE sizeof(DDHAL_DDCOLORCONTROLCALLBACKS) 00635 #define DDKERNELCALLBACKSSIZE sizeof(DDHAL_DDKERNELCALLBACKS) 00636 #define DDMOTIONCOMPCALLBACKSSIZE sizeof(DDHAL_DDMOTIONCOMPCALLBACKS) 00637 00638 #define MAX_PALETTE_SIZE 256 00639 00640 #define MAX_AUTOFLIP_BUFFERS 10 00641 #define DDSCAPS2_INDEXBUFFER DDSCAPS2_RESERVED3 00642 #define DDSCAPS3_VIDEO DDSCAPS3_RESERVED2 00643 #define D3DFMT_INTERNAL_D32 71 00644 #define D3DFMT_INTERNAL_S1D15 72 00645 #define D3DFMT_INTERNAL_D15S1 73 00646 #define D3DFMT_INTERNAL_S8D24 74 00647 #define D3DFMT_INTERNAL_D24S8 75 00648 #define D3DFMT_INTERNAL_X8D24 76 00649 #define D3DFMT_INTERNAL_D24X8 77 00650 #define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l 00651 #define DDHAL_PLEASEALLOC_LINEARSIZE 0x00000003l 00652 00653 #define DDHAL_CB32_DESTROYDRIVER 0x00000001l 00654 #define DDHAL_CB32_CREATESURFACE 0x00000002l 00655 #define DDHAL_CB32_SETCOLORKEY 0x00000004l 00656 #define DDHAL_CB32_SETMODE 0x00000008l 00657 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l 00658 #define DDHAL_CB32_CANCREATESURFACE 0x00000020l 00659 #define DDHAL_CB32_CREATEPALETTE 0x00000040l 00660 #define DDHAL_CB32_GETSCANLINE 0x00000080l 00661 #define DDHAL_CB32_SETEXCLUSIVEMODE 0x00000100l 00662 #define DDHAL_CB32_FLIPTOGDISURFACE 0x00000200l 00663 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l 00664 #define DDHAL_PALCB32_SETENTRIES 0x00000002l 00665 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 00666 #define DDHALINFO_MODEXILLEGAL 0x00000002 00667 #define DDHALINFO_GETDRIVERINFOSET 0x00000004 00668 #define DDHALINFO_GETDRIVERINFO2 0x00000008 00669 #define DDRAWI_VPORTSTART 0x0001 00670 #define DDRAWI_VPORTSTOP 0x0002 00671 #define DDRAWI_VPORTUPDATE 0x0003 00672 #define DDRAWI_VPORTGETCOLOR 0x0001 00673 #define DDRAWI_VPORTSETCOLOR 0x0002 00674 #define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001 00675 #define DDHAL_SURFCB32_FLIP 0x00000002 00676 #define DDHAL_SURFCB32_SETCLIPLIST 0x00000004 00677 #define DDHAL_SURFCB32_LOCK 0x00000008 00678 #define DDHAL_SURFCB32_UNLOCK 0x00000010 00679 #define DDHAL_SURFCB32_BLT 0x00000020 00680 #define DDHAL_SURFCB32_SETCOLORKEY 0x00000040 00681 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080 00682 #define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100 00683 #define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200 00684 #define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400 00685 #define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800 00686 #define DDHAL_SURFCB32_RESERVED4 0x00001000 00687 #define DDHAL_SURFCB32_SETPALETTE 0x00002000 00688 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001 00689 #define DDHAL_MISCCB32_UPDATENONLOCALHEAP 0x00000002 00690 #define DDHAL_MISCCB32_GETHEAPALIGNMENT 0x00000004 00691 #define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS 0x00000008 00692 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001 00693 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002 00694 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004 00695 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008 00696 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l 00697 #define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l 00698 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l 00699 #define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l 00700 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l 00701 #define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001 00702 #define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002 00703 #define DDHAL_VPORT32_FLIP 0x00000004 00704 #define DDHAL_VPORT32_GETBANDWIDTH 0x00000008 00705 #define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010 00706 #define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020 00707 #define DDHAL_VPORT32_GETFIELD 0x00000080 00708 #define DDHAL_VPORT32_GETLINE 0x00000100 00709 #define DDHAL_VPORT32_GETCONNECT 0x00000200 00710 #define DDHAL_VPORT32_DESTROY 0x00000400 00711 #define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800 00712 #define DDHAL_VPORT32_UPDATE 0x00001000 00713 #define DDHAL_VPORT32_WAITFORSYNC 0x00002000 00714 #define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000 00715 #define DDHAL_VPORT32_COLORCONTROL 0x00008000 00716 #define DDHAL_COLOR_COLORCONTROL 0x00000001 00717 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l 00718 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l 00719 #define DDHAL_MOCOMP32_GETGUIDS 0x00000001 00720 #define DDHAL_MOCOMP32_GETFORMATS 0x00000002 00721 #define DDHAL_MOCOMP32_CREATE 0x00000004 00722 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008 00723 #define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010 00724 #define DDHAL_MOCOMP32_BEGINFRAME 0x00000020 00725 #define DDHAL_MOCOMP32_ENDFRAME 0x00000040 00726 #define DDHAL_MOCOMP32_RENDER 0x00000080 00727 #define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100 00728 #define DDHAL_MOCOMP32_DESTROY 0x00000200 00729 00730 /* where the high-level ddraw implementation stores the callbacks */ 00731 typedef struct _DDHAL_CALLBACKS { 00732 DDHAL_DDCALLBACKS cbDDCallbacks; 00733 DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks; 00734 DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks; 00735 DDHAL_DDCALLBACKS HALDD; 00736 DDHAL_DDSURFACECALLBACKS HALDDSurface; 00737 DDHAL_DDPALETTECALLBACKS HALDDPalette; 00738 DDHAL_DDCALLBACKS HELDD; 00739 DDHAL_DDSURFACECALLBACKS HELDDSurface; 00740 DDHAL_DDPALETTECALLBACKS HELDDPalette; 00741 DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks; 00742 DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf; 00743 DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf; 00744 DDHAL_DDVIDEOPORTCALLBACKS cbDDVideoPortCallbacks; 00745 DDHAL_DDVIDEOPORTCALLBACKS HALDDVideoPort; 00746 DDHAL_DDCOLORCONTROLCALLBACKS cbDDColorControlCallbacks; 00747 DDHAL_DDCOLORCONTROLCALLBACKS HALDDColorControl; 00748 DDHAL_DDMISCELLANEOUSCALLBACKS cbDDMiscellaneousCallbacks; 00749 DDHAL_DDMISCELLANEOUSCALLBACKS HALDDMiscellaneous; 00750 DDHAL_DDKERNELCALLBACKS cbDDKernelCallbacks; 00751 DDHAL_DDKERNELCALLBACKS HALDDKernel; 00752 DDHAL_DDMOTIONCOMPCALLBACKS cbDDMotionCompCallbacks; 00753 DDHAL_DDMOTIONCOMPCALLBACKS HALDDMotionComp; 00754 } DDHAL_CALLBACKS, *LPDDHAL_CALLBACKS; 00755 00756 /***************************************************************************** 00757 * parameter structures 00758 */ 00759 typedef struct _DDHAL_DESTROYDRIVERDATA { 00760 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00761 HRESULT ddRVal; 00762 LPDDHAL_DESTROYDRIVER DestroyDriver; 00763 } DDHAL_DESTROYDRIVERDATA; 00764 00765 typedef struct _DDHAL_SETMODEDATA { 00766 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00767 DWORD dwModeIndex; 00768 HRESULT ddRVal; 00769 LPDDHAL_SETMODE SetMode; 00770 BOOL inexcl; 00771 BOOL useRefreshRate; 00772 } DDHAL_SETMODEDATA; 00773 00774 typedef struct _DDHAL_CREATESURFACEDATA { 00775 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00776 LPDDSURFACEDESC lpDDSurfaceDesc; 00777 LPDDRAWI_DDRAWSURFACE_LCL *lplpSList; 00778 DWORD dwSCnt; 00779 HRESULT ddRVal; 00780 LPDDHAL_CREATESURFACE CreateSurface; 00781 } DDHAL_CREATESURFACEDATA; 00782 00783 typedef struct _DDHAL_CANCREATESURFACEDATA { 00784 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00785 LPDDSURFACEDESC lpDDSurfaceDesc; 00786 DWORD bIsDifferentPixelFormat; 00787 HRESULT ddRVal; 00788 LPDDHAL_CANCREATESURFACE CanCreateSurface; 00789 } DDHAL_CANCREATESURFACEDATA; 00790 00791 typedef struct _DDHAL_CREATEPALETTEDATA { 00792 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00793 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; 00794 LPPALETTEENTRY lpColorTable; 00795 HRESULT ddRVal; 00796 LPDDHAL_CREATEPALETTE CreatePalette; 00797 BOOL is_excl; 00798 } DDHAL_CREATEPALETTEDATA; 00799 00800 typedef struct _DDHAL_SETEXCLUSIVEMODEDATA { 00801 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00802 DWORD dwEnterExcl; 00803 DWORD dwReserved; 00804 HRESULT ddRVal; 00805 LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; 00806 } DDHAL_SETEXCLUSIVEMODEDATA; 00807 00808 /* surfaces */ 00809 typedef struct _DDHAL_DESTROYSURFACEDATA { 00810 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00811 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 00812 HRESULT ddRVal; 00813 LPDDHALSURFCB_DESTROYSURFACE DestroySurface; 00814 } DDHAL_DESTROYSURFACEDATA; 00815 00816 typedef struct _DDHAL_FLIPDATA { 00817 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00818 LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; 00819 LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; 00820 DWORD dwFlags; 00821 HRESULT ddRVal; 00822 LPDDHALSURFCB_FLIP Flip; 00823 LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurrLeft; 00824 LPDDRAWI_DDRAWSURFACE_LCL lpSurfTargLeft; 00825 } DDHAL_FLIPDATA; 00826 00827 typedef struct _DDHAL_LOCKDATA { 00828 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00829 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 00830 DWORD bHasRect; 00831 RECTL rArea; 00832 LPVOID lpSurfData; 00833 HRESULT ddRVal; 00834 LPDDHALSURFCB_LOCK Lock; 00835 DWORD dwFlags; 00836 } DDHAL_LOCKDATA; 00837 00838 typedef struct _DDHAL_UNLOCKDATA { 00839 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00840 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 00841 HRESULT ddRVal; 00842 LPDDHALSURFCB_UNLOCK Unlock; 00843 } DDHAL_UNLOCKDATA; 00844 00845 typedef struct _DDHAL_BLTDATA { 00846 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00847 LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; 00848 RECTL rDest; 00849 LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; 00850 RECTL rSrc; 00851 DWORD dwFlags; 00852 DWORD dwROPFlags; 00853 DDBLTFX bltFX; 00854 HRESULT ddRVal; 00855 LPDDHALSURFCB_BLT Blt; 00856 BOOL IsClipped; 00857 RECTL rOrigDest; 00858 RECTL rOrigSrc; 00859 DWORD dwRectCnt; 00860 LPRECT prDestRects; 00861 } DDHAL_BLTDATA; 00862 00863 typedef struct _DDHAL_SETPALETTEDATA { 00864 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00865 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 00866 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; 00867 HRESULT ddRVal; 00868 LPDDHALSURFCB_SETPALETTE SetPalette; 00869 BOOL Attach; 00870 } DDHAL_SETPALETTEDATA; 00871 00872 /* palettes */ 00873 typedef struct _DDHAL_DESTROYPALETTEDATA { 00874 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00875 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; 00876 HRESULT ddRVal; 00877 LPDDHALPALCB_DESTROYPALETTE DestroyPalette; 00878 } DDHAL_DESTROYPALETTEDATA; 00879 00880 typedef struct _DDHAL_SETENTRIESDATA { 00881 LPDDRAWI_DIRECTDRAW_GBL lpDD; 00882 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; 00883 DWORD dwBase; 00884 DWORD dwNumEntries; 00885 LPPALETTEENTRY lpEntries; 00886 HRESULT ddRVal; 00887 LPDDHALPALCB_SETENTRIES SetEntries; 00888 } DDHAL_SETENTRIESDATA; 00889 00890 typedef struct _DDHAL_CANCREATEVPORTDATA { 00891 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00892 LPDDVIDEOPORTDESC lpDDVideoPortDesc; 00893 HRESULT ddRVal; 00894 LPDDHALVPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort; 00895 } DDHAL_CANCREATEVPORTDATA; 00896 00897 typedef struct _DDHAL_CREATEVPORTDATA { 00898 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00899 LPDDVIDEOPORTDESC lpDDVideoPortDesc; 00900 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00901 HRESULT ddRVal; 00902 LPDDHALVPORTCB_CREATEVIDEOPORT CreateVideoPort; 00903 } DDHAL_CREATEVPORTDATA; 00904 00905 typedef struct _DDHAL_GETVPORTBANDWIDTHDATA { 00906 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00907 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00908 LPDDPIXELFORMAT lpddpfFormat; 00909 DWORD dwWidth; 00910 DWORD dwHeight; 00911 DWORD dwFlags; 00912 LPDDVIDEOPORTBANDWIDTH lpBandwidth; 00913 HRESULT ddRVal; 00914 LPDDHALVPORTCB_GETBANDWIDTH GetVideoPortBandwidth; 00915 } DDHAL_GETVPORTBANDWIDTHDATA; 00916 00917 typedef struct _DDHAL_GETVPORTINPUTFORMATDATA { 00918 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00919 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00920 DWORD dwFlags; 00921 LPDDPIXELFORMAT lpddpfFormat; 00922 DWORD dwNumFormats; 00923 HRESULT ddRVal; 00924 LPDDHALVPORTCB_GETINPUTFORMATS GetVideoPortInputFormats; 00925 } DDHAL_GETVPORTINPUTFORMATDATA; 00926 00927 typedef struct _DDHAL_GETVPORTFIELDDATA { 00928 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00929 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00930 BOOL bField; 00931 HRESULT ddRVal; 00932 LPDDHALVPORTCB_GETFIELD GetVideoPortField; 00933 } DDHAL_GETVPORTFIELDDATA; 00934 00935 typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA { 00936 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00937 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00938 DWORD dwFlags; 00939 LPDDPIXELFORMAT lpddpfInputFormat; 00940 LPDDPIXELFORMAT lpddpfOutputFormats; 00941 DWORD dwNumFormats; 00942 HRESULT ddRVal; 00943 LPDDHALVPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats; 00944 } DDHAL_GETVPORTOUTPUTFORMATDATA; 00945 00946 typedef struct _DDHAL_GETVPORTLINEDATA { 00947 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00948 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00949 DWORD dwLine; 00950 HRESULT ddRVal; 00951 LPDDHALVPORTCB_GETLINE GetVideoPortLine; 00952 } DDHAL_GETVPORTLINEDATA; 00953 00954 typedef struct _DDHAL_DESTROYVPORTDATA { 00955 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00956 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00957 HRESULT ddRVal; 00958 LPDDHALVPORTCB_DESTROYVPORT DestroyVideoPort; 00959 } DDHAL_DESTROYVPORTDATA; 00960 00961 typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA { 00962 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00963 FLATPTR fpSurface; 00964 HRESULT ddRVal; 00965 LPDDHALVPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus; 00966 } DDHAL_GETVPORTFLIPSTATUSDATA; 00967 00968 typedef struct _DDHAL_UPDATEVPORTDATA { 00969 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00970 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00971 LPDDRAWI_DDRAWSURFACE_INT *lplpDDSurface; 00972 LPDDRAWI_DDRAWSURFACE_INT *lplpDDVBISurface; 00973 LPDDVIDEOPORTINFO lpVideoInfo; 00974 DWORD dwFlags; 00975 DWORD dwNumAutoflip; 00976 DWORD dwNumVBIAutoflip; 00977 HRESULT ddRVal; 00978 LPDDHALVPORTCB_UPDATE UpdateVideoPort; 00979 } DDHAL_UPDATEVPORTDATA; 00980 00981 typedef struct _DDHAL_WAITFORVPORTSYNCDATA { 00982 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00983 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00984 DWORD dwFlags; 00985 DWORD dwLine; 00986 DWORD dwTimeOut; 00987 HRESULT ddRVal; 00988 LPDDHALVPORTCB_WAITFORSYNC WaitForVideoPortSync; 00989 } DDHAL_WAITFORVPORTSYNCDATA; 00990 00991 typedef struct _DDHAL_GETVPORTSIGNALDATA { 00992 LPDDRAWI_DIRECTDRAW_LCL lpDD; 00993 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 00994 DWORD dwStatus; 00995 HRESULT ddRVal; 00996 LPDDHALVPORTCB_GETSIGNALSTATUS GetVideoSignalStatus; 00997 } DDHAL_GETVPORTSIGNALDATA; 00998 00999 typedef struct _DDHAL_VPORTCOLORDATA { 01000 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01001 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 01002 DWORD dwFlags; 01003 LPDDCOLORCONTROL lpColorData; 01004 HRESULT ddRVal; 01005 LPDDHALVPORTCB_COLORCONTROL ColorControl; 01006 } DDHAL_VPORTCOLORDATA; 01007 01008 typedef struct _DDHAL_FLIPVPORTDATA { 01009 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01010 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 01011 LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; 01012 LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; 01013 HRESULT ddRVal; 01014 LPDDHALVPORTCB_FLIP FlipVideoPort; 01015 } DDHAL_FLIPVPORTDATA; 01016 01017 typedef struct _DDHAL_GETVPORTCONNECTDATA { 01018 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01019 DWORD dwPortId; 01020 LPDDVIDEOPORTCONNECT lpConnect; 01021 DWORD dwNumEntries; 01022 HRESULT ddRVal; 01023 LPDDHALVPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo; 01024 } DDHAL_GETVPORTCONNECTDATA; 01025 01026 typedef struct _DDHAL_SYNCSURFACEDATA { 01027 DWORD dwSize; 01028 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01029 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01030 DWORD dwSurfaceOffset; 01031 ULONG_PTR fpLockPtr; 01032 LONG lPitch; 01033 DWORD dwOverlayOffset; 01034 DWORD dwOverlaySrcWidth; 01035 DWORD dwOverlaySrcHeight; 01036 DWORD dwOverlayDestWidth; 01037 DWORD dwOverlayDestHeight; 01038 ULONG_PTR dwDriverReserved1; 01039 ULONG_PTR dwDriverReserved2; 01040 ULONG_PTR dwDriverReserved3; 01041 HRESULT ddRVal; 01042 } DDHAL_SYNCSURFACEDATA; 01043 01044 typedef struct _DDHAL_SYNCVIDEOPORTDATA { 01045 DWORD dwSize; 01046 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01047 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 01048 DWORD dwOriginOffset; 01049 DWORD dwHeight; 01050 DWORD dwVBIHeight; 01051 ULONG_PTR dwDriverReserved1; 01052 ULONG_PTR dwDriverReserved2; 01053 ULONG_PTR dwDriverReserved3; 01054 HRESULT ddRVal; 01055 } DDHAL_SYNCVIDEOPORTDATA; 01056 01057 typedef struct _DDHAL_DESTROYDDLOCALDATA { 01058 DWORD dwFlags; 01059 LPDDRAWI_DIRECTDRAW_LCL pDDLcl; 01060 HRESULT ddRVal; 01061 } DDHAL_DESTROYDDLOCALDATA; 01062 01063 typedef struct _DDHAL_CREATESURFACEEXDATA { 01064 DWORD dwFlags; 01065 LPDDRAWI_DIRECTDRAW_LCL lpDDLcl; 01066 LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl; 01067 HRESULT ddRVal; 01068 } DDHAL_CREATESURFACEEXDATA; 01069 01070 typedef struct _DDHAL_GETHEAPALIGNMENTDATA { 01071 ULONG_PTR dwInstance; 01072 DWORD dwHeap; 01073 HRESULT ddRVal; 01074 LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; 01075 HEAPALIGNMENT Alignment; 01076 } DDHAL_GETHEAPALIGNMENTDATA; 01077 01078 typedef struct _DDMORESURFACECAPS { 01079 DWORD dwSize; 01080 DDSCAPSEX ddsCapsMore; 01081 struct tagExtendedHeapRestrictions { 01082 DDSCAPSEX ddsCapsEx; 01083 DDSCAPSEX ddsCapsExAlt; 01084 } ddsExtendedHeapRestrictions[1]; 01085 } DDMORESURFACECAPS, *LPDDMORESURFACECAPS; 01086 01087 typedef struct _DDSTEREOMODE { 01088 DWORD dwSize; 01089 DWORD dwHeight; 01090 DWORD dwWidth; 01091 DWORD dwBpp; 01092 DWORD dwRefreshRate; 01093 BOOL bSupported; 01094 } DDSTEREOMODE, *LPDDSTEREOMODE; 01095 01096 /***************************************************************************** 01097 * high-level ddraw implementation structures 01098 */ 01099 typedef struct _IUNKNOWN_LIST { 01100 struct _IUNKNOWN_LIST *lpLink; 01101 LPGUID lpGuid; 01102 #ifndef _NO_COM 01103 IUnknown *lpIUnknown; 01104 #else 01105 LPVOID lpIUnknown; 01106 #endif /* _NO_COM */ 01107 } IUNKNOWN_LIST, *LPIUNKNOWN_LIST; 01108 01109 typedef struct _PROCESS_LIST { 01110 struct _PROCESS_LIST *lpLink; 01111 DWORD dwProcessId; 01112 DWORD dwRefCnt; 01113 DWORD dwAlphaDepth; 01114 DWORD dwZDepth; 01115 } PROCESS_LIST, *LPPROCESS_LIST; 01116 01117 typedef struct _ATTACHLIST { 01118 DWORD dwFlags; 01119 struct _ATTACHLIST *lpLink; 01120 LPDDRAWI_DDRAWSURFACE_LCL lpAttached; 01121 LPDDRAWI_DDRAWSURFACE_INT lpIAttached; 01122 } ATTACHLIST, *LPATTACHLIST; 01123 01124 #define DDAL_IMPLICIT 0x00000001 01125 01126 typedef struct _ACCESSRECTLIST { 01127 struct _ACCESSRECTLIST *lpLink; 01128 RECT rDest; 01129 LPDDRAWI_DIRECTDRAW_LCL lpOwner; 01130 LPVOID lpSurfaceData; 01131 DWORD dwFlags; 01132 LPHEAPALIASINFO lpHeapAliasInfo; 01133 } ACCESSRECTLIST, *LPACCESSRECTLIST; 01134 01135 #define ACCESSRECT_VRAMSTYLE 0x00000001 01136 #define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002 01137 #define ACCESSRECT_BROKEN 0x00000004 01138 01139 typedef struct _DBLNODE { 01140 struct _DBLNODE *next; 01141 struct _DBLNODE *prev; 01142 LPDDRAWI_DDRAWSURFACE_LCL object; 01143 LPDDRAWI_DDRAWSURFACE_INT object_int; 01144 } DBLNODE, *LPDBLNODE; 01145 01146 typedef struct _DDRAWI_DIRECTDRAW_INT { 01147 LPVOID lpVtbl; 01148 LPDDRAWI_DIRECTDRAW_LCL lpLcl; 01149 LPDDRAWI_DIRECTDRAW_INT lpLink; 01150 DWORD dwIntRefCnt; 01151 } DDRAWI_DIRECTDRAW_INT; 01152 01153 typedef struct _DDRAWI_DIRECTDRAW_LCL { 01154 DWORD lpDDMore; 01155 LPDDRAWI_DIRECTDRAW_GBL lpGbl; 01156 DWORD dwUnused0; 01157 DWORD dwLocalFlags; 01158 DWORD dwLocalRefCnt; 01159 DWORD dwProcessId; 01160 #ifndef _NO_COM 01161 IUnknown *pUnkOuter; 01162 #else 01163 PVOID pUnkOuter; 01164 #endif 01165 DWORD dwObsolete1; 01166 ULONG_PTR hWnd; 01167 ULONG_PTR hDC; 01168 DWORD dwErrorMode; 01169 LPDDRAWI_DDRAWSURFACE_INT lpPrimary; 01170 LPDDRAWI_DDRAWSURFACE_INT lpCB; 01171 DWORD dwPreferredMode; 01172 /* DirectX 2 */ 01173 HINSTANCE hD3DInstance; 01174 #ifndef _NO_COM 01175 IUnknown *pD3DIUnknown; 01176 #else 01177 PVOID pD3DIUnknown; 01178 #endif 01179 LPDDHAL_CALLBACKS lpDDCB; 01180 ULONG_PTR hDDVxd; 01181 /* DirectX 5.0 */ 01182 DWORD dwAppHackFlags; 01183 /* DirectX 5.0A */ 01184 ULONG_PTR hFocusWnd; 01185 DWORD dwHotTracking; 01186 DWORD dwIMEState; 01187 /* DirectX 6.0 */ 01188 ULONG_PTR hWndPopup; 01189 ULONG_PTR hDD; 01190 ULONG_PTR hGammaCalibrator; 01191 LPDDGAMMACALIBRATORPROC lpGammaCalibrator; 01192 } DDRAWI_DIRECTDRAW_LCL; 01193 01194 #define DDRAWILCL_HASEXCLUSIVEMODE 0x00000001 01195 #define DDRAWILCL_ISFULLSCREEN 0x00000002 01196 #define DDRAWILCL_SETCOOPCALLED 0x00000004 01197 #define DDRAWILCL_ACTIVEYES 0x00000008 01198 #define DDRAWILCL_ACTIVENO 0x00000010 01199 #define DDRAWILCL_HOOKEDHWND 0x00000020 01200 #define DDRAWILCL_ALLOWMODEX 0x00000040 01201 #define DDRAWILCL_V1SCLBEHAVIOUR 0x00000080 01202 #define DDRAWILCL_MODEHASBEENCHANGED 0x00000100 01203 #define DDRAWILCL_CREATEDWINDOW 0x00000200 01204 #define DDRAWILCL_DIRTYDC 0x00000400 01205 #define DDRAWILCL_DISABLEINACTIVATE 0x00000800 01206 #define DDRAWILCL_CURSORCLIPPED 0x00001000 01207 #define DDRAWILCL_EXPLICITMONITOR 0x00002000 01208 #define DDRAWILCL_MULTITHREADED 0x00004000 01209 #define DDRAWILCL_FPUSETUP 0x00008000 01210 #define DDRAWILCL_POWEREDDOWN 0x00010000 01211 #define DDRAWILCL_DIRECTDRAW7 0x00020000 01212 #define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000 01213 #define DDRAWILCL_FPUPRESERVE 0x00080000 01214 #define DDRAWILCL_DX8DRIVER 0x00100000 01215 #define DDRAWILCL_DIRECTDRAW8 0x00200000 01216 01217 typedef struct _DDRAWI_DIRECTDRAW_GBL { 01218 DWORD dwRefCnt; 01219 DWORD dwFlags; 01220 FLATPTR fpPrimaryOrig; 01221 DDCORECAPS ddCaps; 01222 DWORD dwInternal1; 01223 DWORD dwUnused1[9]; 01224 LPDDHAL_CALLBACKS lpDDCBtmp; 01225 LPDDRAWI_DDRAWSURFACE_INT dsList; 01226 LPDDRAWI_DDRAWPALETTE_INT palList; 01227 LPDDRAWI_DDRAWCLIPPER_INT clipperList; 01228 LPDDRAWI_DIRECTDRAW_GBL lp16DD; 01229 DWORD dwMaxOverlays; 01230 DWORD dwCurrOverlays; 01231 DWORD dwMonitorFrequency; 01232 DDCORECAPS ddHELCaps; 01233 DWORD dwUnused2[50]; 01234 DDCOLORKEY ddckCKDestOverlay; 01235 DDCOLORKEY ddckCKSrcOverlay; 01236 VIDMEMINFO vmiData; 01237 LPVOID lpDriverHandle; 01238 LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner; 01239 DWORD dwModeIndex; 01240 DWORD dwModeIndexOrig; 01241 DWORD dwNumFourCC; 01242 LPDWORD lpdwFourCC; 01243 DWORD dwNumModes; 01244 LPDDHALMODEINFO lpModeInfo; 01245 PROCESS_LIST plProcessList; 01246 DWORD dwSurfaceLockCount; 01247 DWORD dwAliasedLockCnt; 01248 ULONG_PTR dwReserved3; 01249 ULONG_PTR hDD; 01250 char cObsolete[12]; 01251 DWORD dwReserved1; 01252 DWORD dwReserved2; 01253 DBLNODE dbnOverlayRoot; 01254 volatile LPWORD lpwPDeviceFlags; 01255 DWORD dwPDevice; 01256 DWORD dwWin16LockCnt; 01257 DWORD dwUnused3; 01258 DWORD hInstance; 01259 DWORD dwEvent16; 01260 DWORD dwSaveNumModes; 01261 /* DirectX 2 */ 01262 ULONG_PTR lpD3DGlobalDriverData; 01263 ULONG_PTR lpD3DHALCallbacks; 01264 DDCORECAPS ddBothCaps; 01265 /* DirectX 5.0 */ 01266 LPDDVIDEOPORTCAPS lpDDVideoPortCaps; 01267 LPDDRAWI_DDVIDEOPORT_INT dvpList; 01268 ULONG_PTR lpD3DHALCallbacks2; 01269 RECT rectDevice; 01270 DWORD cMonitors; 01271 LPVOID gpbmiSrc; 01272 LPVOID gpbmiDest; 01273 LPHEAPALIASINFO phaiHeapAliases; 01274 ULONG_PTR hKernelHandle; 01275 ULONG_PTR pfnNotifyProc; 01276 LPDDKERNELCAPS lpDDKernelCaps; 01277 LPDDNONLOCALVIDMEMCAPS lpddNLVCaps; 01278 LPDDNONLOCALVIDMEMCAPS lpddNLVHELCaps; 01279 LPDDNONLOCALVIDMEMCAPS lpddNLVBothCaps; 01280 ULONG_PTR lpD3DExtendedCaps; 01281 /* DirectX 5.0A */ 01282 DWORD dwDOSBoxEvent; 01283 RECT rectDesktop; 01284 char cDriverName[MAX_DRIVER_NAME]; 01285 /* DirectX 6.0 */ 01286 ULONG_PTR lpD3DHALCallbacks3; 01287 DWORD dwNumZPixelFormats; 01288 LPDDPIXELFORMAT lpZPixelFormats; 01289 LPDDRAWI_DDMOTIONCOMP_INT mcList; 01290 DWORD hDDVxd; 01291 DDSCAPSEX ddsCapsMore; 01292 } DDRAWI_DIRECTDRAW_GBL; 01293 01294 #define DDRAWI_xxxxxxxxx1 0x00000001 01295 #define DDRAWI_xxxxxxxxx2 0x00000002 01296 #define DDRAWI_VIRTUALDESKTOP 0x00000008 01297 #define DDRAWI_MODEX 0x00000010 01298 #define DDRAWI_DISPLAYDRV 0x00000020 01299 #define DDRAWI_FULLSCREEN 0x00000040 01300 #define DDRAWI_MODECHANGED 0x00000080 01301 #define DDRAWI_NOHARDWARE 0x00000100 01302 #define DDRAWI_PALETTEINIT 0x00000200 01303 #define DDRAWI_NOEMULATION 0x00000400 01304 #define DDRAWI_HASCKEYDESTOVERLAY 0x00000800 01305 #define DDRAWI_HASCKEYSRCOVERLAY 0x00001000 01306 #define DDRAWI_HASGDIPALETTE 0x00002000 01307 #define DDRAWI_EMULATIONINITIALIZED 0x00004000 01308 #define DDRAWI_HASGDIPALETTE_EXCLUSIVE 0x00008000 01309 #define DDRAWI_MODEXILLEGAL 0x00010000 01310 #define DDRAWI_FLIPPEDTOGDI 0x00020000 01311 #define DDRAWI_NEEDSWIN16FORVRAMLOCK 0x00040000 01312 #define DDRAWI_PDEVICEVRAMBITCLEARED 0x00080000 01313 #define DDRAWI_STANDARDVGA 0x00100000 01314 #define DDRAWI_EXTENDEDALIGNMENT 0x00200000 01315 #define DDRAWI_CHANGINGMODE 0x00400000 01316 #define DDRAWI_GDIDRV 0x00800000 01317 #define DDRAWI_ATTACHEDTODESKTOP 0x01000000 01318 #define DDRAWI_UMODELOADED 0x02000000 01319 #define DDRAWI_DDRAWDATANOTFETCHED 0x04000000 01320 #define DDRAWI_SECONDARYDRIVERLOADED 0x08000000 01321 #define DDRAWI_TESTINGMODES 0x10000000 01322 #define DDRAWI_DRIVERINFO2 0x20000000 01323 #define DDRAWI_BADPDEV 0x40000000 01324 01325 /* surfaces */ 01326 typedef struct _DDRAWI_DDRAWSURFACE_INT { 01327 LPVOID lpVtbl; 01328 LPDDRAWI_DDRAWSURFACE_LCL lpLcl; 01329 LPDDRAWI_DDRAWSURFACE_INT lpLink; 01330 DWORD dwIntRefCnt; 01331 } DDRAWI_DDRAWSURFACE_INT; 01332 01333 typedef struct _DDRAWI_DDRAWSURFACE_GBL { 01334 DWORD dwRefCnt; 01335 DWORD dwGlobalFlags; 01336 __GNU_EXTENSION union { 01337 LPACCESSRECTLIST lpRectList; 01338 DWORD dwBlockSizeY; 01339 LONG lSlicePitch; 01340 }; 01341 __GNU_EXTENSION union { 01342 LPVMEMHEAP lpVidMemHeap; 01343 DWORD dwBlockSizeX; 01344 }; 01345 __GNU_EXTENSION union { 01346 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01347 LPVOID lpDDHandle; 01348 }; 01349 FLATPTR fpVidMem; 01350 __GNU_EXTENSION union { 01351 LONG lPitch; 01352 DWORD dwLinearSize; 01353 }; 01354 WORD wHeight; 01355 WORD wWidth; 01356 DWORD dwUsageCount; 01357 ULONG_PTR dwReserved1; 01358 DDPIXELFORMAT ddpfSurface; 01359 } DDRAWI_DDRAWSURFACE_GBL; 01360 01361 #define DDRAWISURFGBL_MEMFREE 0x00000001L 01362 #define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002L 01363 #define DDRAWISURFGBL_ISGDISURFACE 0x00000004L 01364 #define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008L 01365 #define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010L 01366 #define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020L 01367 #define DDRAWISURFGBL_LOCKBROKEN 0x00000040L 01368 #define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080L 01369 #define DDRAWISURFGBL_ISCLIENTMEM 0x00000100L 01370 #define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200L 01371 #define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400L 01372 #define DDRAWISURFGBL_HARDWAREOPSTARTED (DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST) 01373 #define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800L 01374 #define DDRAWISURFGBL_VPORTDATA 0x00001000L 01375 #define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000L 01376 #define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000L 01377 #define DDRAWISURFGBL_FASTLOCKHELD 0x00008000L 01378 #define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000L 01379 #define DDRAWISURFGBL_DX8SURFACE 0x00080000L 01380 #define DDRAWISURFGBL_DDHELDONTFREE 0x00100000L 01381 #define DDRAWISURFGBL_NOTIFYWHENUNLOCKED 0x00200000L 01382 #define DDRAWISURFGBL_RESERVED0 0x80000000L // Reserved flag 01383 01384 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE { 01385 DWORD dwSize; 01386 __GNU_EXTENSION union { 01387 DWORD dwPhysicalPageTable; 01388 FLATPTR fpPhysicalVidMem; 01389 }; 01390 LPDWORD pPageTable; 01391 DWORD cPages; 01392 ULONG_PTR dwSavedDCContext; 01393 FLATPTR fpAliasedVidMem; 01394 ULONG_PTR dwDriverReserved; 01395 ULONG_PTR dwHELReserved; 01396 DWORD cPageUnlocks; 01397 ULONG_PTR hKernelSurface; 01398 DWORD dwKernelRefCnt; 01399 LPDDCOLORCONTROL lpColorInfo; 01400 FLATPTR fpNTAlias; 01401 DWORD dwContentsStamp; 01402 LPVOID lpvUnswappedDriverReserved; 01403 LPVOID lpDDRAWReserved2; 01404 DWORD dwDDRAWReserved1; 01405 DWORD dwDDRAWReserved2; 01406 FLATPTR fpAliasOfVidMem; 01407 } DDRAWI_DDRAWSURFACE_GBL_MORE; 01408 01409 /* the MS version of this macro was somewhat obfuscated and unreadable 01410 * (possibly because of mediocre MS coders)... so I simplified it... 01411 * (and so I commit no copyright violations either, hah) */ 01412 #define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \ 01413 (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1)) 01414 01415 #define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \ 01416 ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem ) 01417 01418 typedef struct _DISPLAYMODEINFO { 01419 WORD wWidth; 01420 WORD wHeight; 01421 BYTE wBPP; 01422 BYTE wMonitorsAttachedToDesktop; 01423 WORD wRefreshRate; 01424 } DISPLAYMODEINFO, *LPDISPLAYMODEINFO; 01425 01426 #define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO))) 01427 01428 typedef struct _DDRAWI_DDRAWSURFACE_MORE { 01429 DWORD dwSize; 01430 IUNKNOWN_LIST *lpIUnknowns; 01431 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; 01432 DWORD dwPageLockCount; 01433 DWORD dwBytesAllocated; 01434 LPDDRAWI_DIRECTDRAW_INT lpDD_int; 01435 DWORD dwMipMapCount; 01436 LPDDRAWI_DDRAWCLIPPER_INT lpDDIClipper; 01437 /* DirectX 5.0 */ 01438 LPHEAPALIASINFO lpHeapAliasInfo; 01439 DWORD dwOverlayFlags; 01440 VOID *rgjunc; 01441 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; 01442 LPDDOVERLAYFX lpddOverlayFX; 01443 DDSCAPSEX ddsCapsEx; 01444 DWORD dwTextureStage; 01445 LPVOID lpDDRAWReserved; 01446 LPVOID lpDDRAWReserved2; 01447 LPVOID lpDDrawReserved3; 01448 DWORD dwDDrawReserved4; 01449 LPVOID lpDDrawReserved5; 01450 LPDWORD lpGammaRamp; 01451 LPDWORD lpOriginalGammaRamp; 01452 LPVOID lpDDrawReserved6; 01453 # ifndef WIN95 01454 DISPLAYMODEINFO dmiDDrawReserved7; 01455 # endif 01456 DWORD dwSurfaceHandle; 01457 DWORD qwDDrawReserved8[2]; 01458 LPVOID lpDDrawReserved9; 01459 DWORD cSurfaces; 01460 LPDDSURFACEDESC2 pCreatedDDSurfaceDesc2; 01461 LPDDRAWI_DDRAWSURFACE_LCL *slist; 01462 DWORD dwFVF; 01463 LPVOID lpVB; 01464 } DDRAWI_DDRAWSURFACE_MORE; 01465 01466 typedef struct _DDRAWI_DDRAWSURFACE_LCL { 01467 LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore; 01468 LPDDRAWI_DDRAWSURFACE_GBL lpGbl; 01469 ULONG_PTR hDDSurface; 01470 LPATTACHLIST lpAttachList; 01471 LPATTACHLIST lpAttachListFrom; 01472 DWORD dwLocalRefCnt; 01473 DWORD dwProcessId; 01474 DWORD dwFlags; 01475 DDSCAPS ddsCaps; 01476 __GNU_EXTENSION union { 01477 LPDDRAWI_DDRAWPALETTE_INT lpDDPalette; 01478 LPDDRAWI_DDRAWPALETTE_INT lp16DDPalette; 01479 }; 01480 __GNU_EXTENSION union { 01481 LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper; 01482 LPDDRAWI_DDRAWCLIPPER_INT lp16DDClipper; 01483 }; 01484 DWORD dwModeCreatedIn; 01485 DWORD dwBackBufferCount; 01486 DDCOLORKEY ddckCKDestBlt; 01487 DDCOLORKEY ddckCKSrcBlt; 01488 ULONG_PTR hDC; 01489 ULONG_PTR dwReserved1; 01490 DDCOLORKEY ddckCKSrcOverlay; 01491 DDCOLORKEY ddckCKDestOverlay; 01492 LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying; 01493 DBLNODE dbnOverlayNode; 01494 RECT rcOverlaySrc; 01495 RECT rcOverlayDest; 01496 DWORD dwClrXparent; 01497 DWORD dwAlpha; 01498 LONG lOverlayX; 01499 LONG lOverlayY; 01500 } DDRAWI_DDRAWSURFACE_LCL; 01501 01502 #define DDRAWISURF_ATTACHED 0x00000001L 01503 #define DDRAWISURF_IMPLICITCREATE 0x00000002L 01504 #define DDRAWISURF_ISFREE 0x00000004L 01505 #define DDRAWISURF_ATTACHED_FROM 0x00000008L 01506 #define DDRAWISURF_IMPLICITROOT 0x00000010L 01507 #define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020L 01508 #define DDRAWISURF_DATAISALIASED 0x00000040L 01509 #define DDRAWISURF_HASDC 0x00000080L 01510 #define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100L 01511 #define DDRAWISURF_HASCKEYDESTBLT 0x00000200L 01512 #define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400L 01513 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800L 01514 #define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000L 01515 #define DDRAWISURF_HASPIXELFORMAT 0x00002000L 01516 #define DDRAWISURF_HASOVERLAYDATA 0x00004000L 01517 #define DDRAWISURF_SETGAMMA 0x00008000L 01518 #define DDRAWISURF_SW_CKEYDESTOVERLAY 0x00010000L 01519 #define DDRAWISURF_SW_CKEYDESTBLT 0x00020000L 01520 #define DDRAWISURF_SW_CKEYSRCOVERLAY 0x00040000L 01521 #define DDRAWISURF_SW_CKEYSRCBLT 0x00080000L 01522 #define DDRAWISURF_HW_CKEYDESTOVERLAY 0x00100000L 01523 #define DDRAWISURF_HW_CKEYDESTBLT 0x00200000L 01524 #define DDRAWISURF_HW_CKEYSRCOVERLAY 0x00400000L 01525 #define DDRAWISURF_HW_CKEYSRCBLT 0x00800000L 01526 #define DDRAWISURF_INMASTERSPRITELIST 0x01000000L 01527 #define DDRAWISURF_HELCB 0x02000000L 01528 #define DDRAWISURF_FRONTBUFFER 0x04000000L 01529 #define DDRAWISURF_BACKBUFFER 0x08000000L 01530 #define DDRAWISURF_INVALID 0x10000000L 01531 #define DDRAWISURF_DCIBUSY 0x20000000L 01532 #define DDRAWISURF_GETDCNULL 0x40000000L 01533 #define DDRAWISURF_STEREOSURFACELEFT 0x20000000L 01534 #define DDRAWISURF_DRIVERMANAGED 0x40000000L 01535 #define DDRAWISURF_DCILOCK 0x80000000L 01536 01537 /* palettes */ 01538 typedef struct _DDRAWI_DDRAWPALETTE_INT { 01539 LPVOID lpVtbl; 01540 LPDDRAWI_DDRAWPALETTE_LCL lpLcl; 01541 LPDDRAWI_DDRAWPALETTE_INT lpLink; 01542 DWORD dwIntRefCnt; 01543 } DDRAWI_DDRAWPALETTE_INT; 01544 01545 typedef struct _DDRAWI_DDRAWPALETTE_GBL { 01546 DWORD dwRefCnt; 01547 DWORD dwFlags; 01548 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; 01549 DWORD dwProcessId; 01550 LPPALETTEENTRY lpColorTable; 01551 __GNU_EXTENSION union { 01552 ULONG_PTR dwReserved1; 01553 HPALETTE hHELGDIPalette; 01554 }; 01555 DWORD dwDriverReserved; 01556 DWORD dwContentsStamp; 01557 DWORD dwSaveStamp; 01558 DWORD dwHandle; 01559 } DDRAWI_DDRAWPALETTE_GBL; 01560 01561 #define DDRAWIPAL_256 0x00000001 01562 #define DDRAWIPAL_16 0x00000002 01563 #define DDRAWIPAL_GDI 0x00000004 01564 #define DDRAWIPAL_STORED_8 0x00000008 01565 #define DDRAWIPAL_STORED_16 0x00000010 01566 #define DDRAWIPAL_STORED_24 0x00000020 01567 #define DDRAWIPAL_EXCLUSIVE 0x00000040 01568 #define DDRAWIPAL_INHEL 0x00000080 01569 #define DDRAWIPAL_DIRTY 0x00000100 01570 #define DDRAWIPAL_ALLOW256 0x00000200 01571 #define DDRAWIPAL_4 0x00000400 01572 #define DDRAWIPAL_2 0x00000800 01573 #define DDRAWIPAL_STORED_8INDEX 0x00001000 01574 #define DDRAWIPAL_ALPHA 0x00002000 01575 01576 #define D3DFORMAT_OP_TEXTURE 0x00000001L 01577 #define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L 01578 #define D3DFORMAT_OP_CUBETEXTURE 0x00000004L 01579 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L 01580 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L 01581 #define D3DFORMAT_OP_ZSTENCIL 0x00000040L 01582 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L 01583 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L 01584 #define D3DFORMAT_OP_DISPLAYMODE 0x00000400L 01585 #define D3DFORMAT_OP_3DACCELERATION 0x00000800L 01586 #define D3DFORMAT_OP_PIXELSIZE 0x00001000L 01587 #define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L 01588 #define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L 01589 #define D3DFORMAT_OP_SRGBREAD 0x00008000L 01590 #define D3DFORMAT_OP_BUMPMAP 0x00010000L 01591 #define D3DFORMAT_OP_NOFILTER 0x00040000L 01592 #define DDPF_D3DFORMAT 0x00200000l 01593 #define DDPF_NOVEL_TEXTURE_FORMAT 0x00100000l 01594 #define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L 01595 #define D3DFORMAT_OP_SRGBWRITE 0x00100000L 01596 #define D3DFORMAT_OP_NOALPHABLEND 0x00200000L 01597 #define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L 01598 #define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L 01599 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L 01600 #define DELETED_OK 0 01601 #define DELETED_LASTONE 1 01602 #define DELETED_NOTFOUND 2 01603 #define DDCALLBACKSSIZE_V1 (offsetof(DDHAL_DDCALLBACKS, SetExclusiveMode)) 01604 #define DDCALLBACKSSIZE sizeof( DDHAL_DDCALLBACKS ) 01605 #define DDRAWICLIP_WATCHWINDOW 0x00000001 01606 #define DDRAWICLIP_ISINITIALIZED 0x00000002 01607 #define DDRAWICLIP_INMASTERSPRITELIST 0x00000004 01608 #define PFINDEX_UNINITIALIZED (0UL) 01609 #define PFINDEX_UNSUPPORTED (~0UL) 01610 #define ROP_HAS_SOURCE 0x00000001l 01611 #define ROP_HAS_PATTERN 0x00000002l 01612 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN 01613 #define DDRAWIVPORT_ON 0x00000001 01614 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002 01615 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004 01616 #define DDRAWIVPORT_NOKERNELHANDLES 0x00000008 01617 #define DDRAWIVPORT_SOFTWARE_BOB 0x00000010 01618 #define DDRAWIVPORT_VBION 0x00000020 01619 #define DDRAWIVPORT_VIDEOON 0x00000040 01620 #define DDRAWI_GETCOLOR 0x0001 01621 #define DDRAWI_SETCOLOR 0x0002 01622 #define DDMCQUERY_READ 0x00000001 01623 #define DDWAITVB_I_TESTVB 0x80000006 01624 01625 #define DDBLT_ANYALPHA \ 01626 (DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE | \ 01627 DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE | \ 01628 DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST) 01629 01630 #define DDHAL_ALIGNVALIDCAPS (DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER | \ 01631 DDSCAPS_OVERLAY | DDSCAPS_TEXTURE | \ 01632 DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP ) 01633 01634 #define DDHALINFOSIZE_V2 sizeof(DDHALINFO) 01635 01636 #define DDOVER_ANYALPHA \ 01637 (DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE | \ 01638 DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE | \ 01639 DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST) 01640 01641 typedef struct _DDRAWI_DDRAWPALETTE_LCL { 01642 DWORD lpPalMore; 01643 LPDDRAWI_DDRAWPALETTE_GBL lpGbl; 01644 ULONG_PTR dwUnused0; 01645 DWORD dwLocalRefCnt; 01646 #ifndef _NO_COM 01647 IUnknown *pUnkOuter; 01648 #else 01649 PVOID pUnkOuter; 01650 #endif 01651 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; 01652 ULONG_PTR dwReserved1; 01653 /* DirectX 6.0 */ 01654 ULONG_PTR dwDDRAWReserved1; 01655 ULONG_PTR dwDDRAWReserved2; 01656 ULONG_PTR dwDDRAWReserved3; 01657 } DDRAWI_DDRAWPALETTE_LCL; 01658 01659 typedef struct _DDMCCOMPBUFFERINFO { 01660 DWORD dwSize; 01661 DWORD dwNumCompBuffers; 01662 DWORD dwWidthToCreate; 01663 DWORD dwHeightToCreate; 01664 DWORD dwBytesToAllocate; 01665 DDSCAPS2 ddCompCaps; 01666 DDPIXELFORMAT ddPixelFormat; 01667 } DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO; 01668 01669 typedef struct _DDMCBUFFERINFO { 01670 DWORD dwSize; 01671 LPDDRAWI_DDRAWSURFACE_LCL lpCompSurface; 01672 DWORD dwDataOffset; 01673 DWORD dwDataSize; 01674 LPVOID lpPrivate; 01675 } DDMCBUFFERINFO, *LPDDMCBUFFERINFO; 01676 01677 typedef struct _DDHAL_GETDRIVERSTATEDATA { 01678 DWORD dwFlags; 01679 __GNU_EXTENSION union { 01680 ULONG_PTR dwhContext; 01681 }; 01682 LPDWORD lpdwStates; 01683 DWORD dwLength; 01684 HRESULT ddRVal; 01685 } DDHAL_GETDRIVERSTATEDATA; 01686 01687 typedef struct _DDHAL_ADDATTACHEDSURFACEDATA { 01688 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01689 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01690 LPDDRAWI_DDRAWSURFACE_LCL lpSurfAttached; 01691 HRESULT ddRVal; 01692 LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; 01693 } DDHAL_ADDATTACHEDSURFACEDATA; 01694 01695 typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA { 01696 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01697 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01698 LPDDRAWI_DDRAWSURFACE_LCL lpDestSurface; 01699 DWORD dwInputDataSize; 01700 LPVOID lpInputData; 01701 DWORD dwOutputDataSize; 01702 LPVOID lpOutputData; 01703 HRESULT ddRVal; 01704 LPDDHALMOCOMPCB_BEGINFRAME BeginMoCompFrame; 01705 } DDHAL_BEGINMOCOMPFRAMEDATA; 01706 01707 typedef struct _DDHAL_COLORCONTROLDATA { 01708 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01709 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01710 LPDDCOLORCONTROL lpColorData; 01711 DWORD dwFlags; 01712 HRESULT ddRVal; 01713 LPDDHALCOLORCB_COLORCONTROL ColorControl; 01714 } DDHAL_COLORCONTROLDATA; 01715 01716 typedef struct _DDHAL_CREATEMOCOMPDATA { 01717 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01718 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01719 LPGUID lpGuid; 01720 DWORD dwUncompWidth; 01721 DWORD dwUncompHeight; 01722 DDPIXELFORMAT ddUncompPixelFormat; 01723 LPVOID lpData; 01724 DWORD dwDataSize; 01725 HRESULT ddRVal; 01726 LPDDHALMOCOMPCB_CREATE CreateMoComp; 01727 } DDHAL_CREATEMOCOMPDATA; 01728 01729 typedef struct _DDHAL_DESTROYMOCOMPDATA { 01730 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01731 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01732 HRESULT ddRVal; 01733 LPDDHALMOCOMPCB_DESTROY DestroyMoComp; 01734 } DDHAL_DESTROYMOCOMPDATA; 01735 01736 typedef struct _DDHAL_ENDMOCOMPFRAMEDATA { 01737 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01738 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01739 LPVOID lpInputData; 01740 DWORD dwInputDataSize; 01741 HRESULT ddRVal; 01742 LPDDHALMOCOMPCB_ENDFRAME EndMoCompFrame; 01743 } DDHAL_ENDMOCOMPFRAMEDATA; 01744 01745 typedef struct _DDHAL_FLIPTOGDISURFACEDATA { 01746 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01747 DWORD dwToGDI; 01748 DWORD dwReserved; 01749 HRESULT ddRVal; 01750 LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; 01751 } DDHAL_FLIPTOGDISURFACEDATA; 01752 01753 typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA { 01754 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01755 DDSCAPS DDSCaps; 01756 DWORD dwTotal; 01757 DWORD dwFree; 01758 HRESULT ddRVal; 01759 LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; 01760 DDSCAPSEX ddsCapsEx; 01761 } DDHAL_GETAVAILDRIVERMEMORYDATA; 01762 01763 typedef struct _DDHAL_GETBLTSTATUSDATA { 01764 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01765 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01766 DWORD dwFlags; 01767 HRESULT ddRVal; 01768 LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; 01769 } DDHAL_GETBLTSTATUSDATA; 01770 01771 typedef struct _DDHAL_GETFLIPSTATUSDATA { 01772 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01773 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01774 DWORD dwFlags; 01775 HRESULT ddRVal; 01776 LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; 01777 } DDHAL_GETFLIPSTATUSDATA; 01778 01779 typedef struct _DDHAL_GETINTERNALMOCOMPDATA { 01780 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01781 LPGUID lpGuid; 01782 DWORD dwWidth; 01783 DWORD dwHeight; 01784 DDPIXELFORMAT ddPixelFormat; 01785 DWORD dwScratchMemAlloc; 01786 HRESULT ddRVal; 01787 LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo; 01788 } DDHAL_GETINTERNALMOCOMPDATA; 01789 01790 typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA { 01791 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01792 LPGUID lpGuid; 01793 DWORD dwWidth; 01794 DWORD dwHeight; 01795 DDPIXELFORMAT ddPixelFormat; 01796 DWORD dwNumTypesCompBuffs; 01797 LPDDMCCOMPBUFFERINFO lpCompBuffInfo; 01798 HRESULT ddRVal; 01799 LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo; 01800 } DDHAL_GETMOCOMPCOMPBUFFDATA; 01801 01802 typedef struct _DDHAL_GETMOCOMPGUIDSDATA { 01803 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01804 DWORD dwNumGuids; 01805 LPGUID lpGuids; 01806 HRESULT ddRVal; 01807 LPDDHALMOCOMPCB_GETGUIDS GetMoCompGuids; 01808 } DDHAL_GETMOCOMPGUIDSDATA; 01809 01810 typedef struct _DDHAL_GETMOCOMPFORMATSDATA { 01811 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01812 LPGUID lpGuid; 01813 DWORD dwNumFormats; 01814 LPDDPIXELFORMAT lpFormats; 01815 HRESULT ddRVal; 01816 LPDDHALMOCOMPCB_GETFORMATS GetMoCompFormats; 01817 } DDHAL_GETMOCOMPFORMATSDATA; 01818 01819 typedef struct _DDHAL_GETSCANLINEDATA { 01820 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01821 DWORD dwScanLine; 01822 HRESULT ddRVal; 01823 LPDDHAL_GETSCANLINE GetScanLine; 01824 } DDHAL_GETSCANLINEDATA; 01825 01826 typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA { 01827 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01828 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01829 LPDDRAWI_DDRAWSURFACE_LCL lpSurface; 01830 DWORD dwFlags; 01831 HRESULT ddRVal; 01832 LPDDHALMOCOMPCB_QUERYSTATUS QueryMoCompStatus; 01833 } DDHAL_QUERYMOCOMPSTATUSDATA; 01834 01835 typedef struct _DDHAL_RENDERMOCOMPDATA { 01836 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01837 LPDDRAWI_DDMOTIONCOMP_LCL lpMoComp; 01838 DWORD dwNumBuffers; 01839 LPDDMCBUFFERINFO lpBufferInfo; 01840 DWORD dwFunction; 01841 LPVOID lpInputData; 01842 DWORD dwInputDataSize; 01843 LPVOID lpOutputData; 01844 DWORD dwOutputDataSize; 01845 HRESULT ddRVal; 01846 LPDDHALMOCOMPCB_RENDER RenderMoComp; 01847 } DDHAL_RENDERMOCOMPDATA; 01848 01849 typedef struct _DDHAL_SETCOLORKEYDATA { 01850 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01851 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01852 DWORD dwFlags; 01853 DDCOLORKEY ckNew; 01854 HRESULT ddRVal; 01855 LPDDHALSURFCB_SETCOLORKEY SetColorKey; 01856 } DDHAL_SETCOLORKEYDATA; 01857 01858 typedef struct _DDHAL_SETOVERLAYPOSITIONDATA { 01859 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01860 LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; 01861 LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; 01862 LONG lXPos; 01863 LONG lYPos; 01864 HRESULT ddRVal; 01865 LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; 01866 } DDHAL_SETOVERLAYPOSITIONDATA; 01867 01868 typedef struct _DDHAL_UPDATEOVERLAYDATA { 01869 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01870 LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; 01871 RECTL rDest; 01872 LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; 01873 RECTL rSrc; 01874 DWORD dwFlags; 01875 DDOVERLAYFX overlayFX; 01876 HRESULT ddRVal; 01877 LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; 01878 } DDHAL_UPDATEOVERLAYDATA; 01879 01880 typedef struct _DDHAL_WAITFORVERTICALBLANKDATA { 01881 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01882 DWORD dwFlags; 01883 DWORD bIsInVB; 01884 ULONG_PTR hEvent; 01885 HRESULT ddRVal; 01886 LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; 01887 } DDHAL_WAITFORVERTICALBLANKDATA; 01888 01889 typedef struct _DDHAL_DRVSETCOLORKEYDATA { 01890 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01891 DWORD dwFlags; 01892 DDCOLORKEY ckNew; 01893 HRESULT ddRVal; 01894 LPDDHAL_SETCOLORKEY SetColorKey; 01895 } DDHAL_DRVSETCOLORKEYDATA; 01896 01897 typedef struct _DDMONITORINFO { 01898 WORD Manufacturer; 01899 WORD Product; 01900 DWORD SerialNumber; 01901 GUID DeviceIdentifier; 01902 int Mode640x480; 01903 int Mode800x600; 01904 int Mode1024x768; 01905 int Mode1280x1024; 01906 int Mode1600x1200; 01907 int ModeReserved1; 01908 int ModeReserved2; 01909 int ModeReserved3; 01910 } DDMONITORINFO, FAR *LPDDMONITORINFO; 01911 01912 typedef struct _DDRAWI_DDRAWCLIPPER_INT { 01913 LPVOID lpVtbl; 01914 LPDDRAWI_DDRAWCLIPPER_LCL lpLcl; 01915 LPDDRAWI_DDRAWCLIPPER_INT lpLink; 01916 DWORD dwIntRefCnt; 01917 } DDRAWI_DDRAWCLIPPER_INT; 01918 01919 typedef struct _DDHAL_UPDATENONLOCALHEAPDATA { 01920 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01921 DWORD dwHeap; 01922 FLATPTR fpGARTLin; 01923 FLATPTR fpGARTDev; 01924 ULONG_PTR ulPolicyMaxBytes; 01925 HRESULT ddRVal; 01926 LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; 01927 } DDHAL_UPDATENONLOCALHEAPDATA; 01928 01929 typedef struct _DDHAL_SETCLIPLISTDATA { 01930 LPDDRAWI_DIRECTDRAW_GBL lpDD; 01931 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; 01932 HRESULT ddRVal; 01933 LPDDHALSURFCB_SETCLIPLIST SetClipList; 01934 } DDHAL_SETCLIPLISTDATA; 01935 01936 typedef struct _DDRAWI_DDMOTIONCOMP_LCL { 01937 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01938 GUID guid; 01939 DWORD dwUncompWidth; 01940 DWORD dwUncompHeight; 01941 DDPIXELFORMAT ddUncompPixelFormat; 01942 DWORD dwInternalFlags; 01943 DWORD dwRefCnt; 01944 DWORD dwProcessId; 01945 HANDLE hMoComp; 01946 DWORD dwDriverReserved1; 01947 DWORD dwDriverReserved2; 01948 DWORD dwDriverReserved3; 01949 LPVOID lpDriverReserved1; 01950 LPVOID lpDriverReserved2; 01951 LPVOID lpDriverReserved3; 01952 } DDRAWI_DDMOTIONCOMP_LCL; 01953 01954 typedef struct _DDRAWI_DDMOTIONCOMP_INT { 01955 LPVOID lpVtbl; 01956 LPDDRAWI_DDMOTIONCOMP_LCL lpLcl; 01957 LPDDRAWI_DDMOTIONCOMP_INT lpLink; 01958 DWORD dwIntRefCnt; 01959 } DDRAWI_DDMOTIONCOMP_INT; 01960 01961 typedef struct _DDRAWI_DDVIDEOPORT_LCL { 01962 LPDDRAWI_DIRECTDRAW_LCL lpDD; 01963 DDVIDEOPORTDESC ddvpDesc; 01964 DDVIDEOPORTINFO ddvpInfo; 01965 LPDDRAWI_DDRAWSURFACE_INT lpSurface; 01966 LPDDRAWI_DDRAWSURFACE_INT lpVBISurface; 01967 LPDDRAWI_DDRAWSURFACE_INT *lpFlipInts; 01968 DWORD dwNumAutoflip; 01969 DWORD dwProcessID; 01970 DWORD dwStateFlags; 01971 DWORD dwFlags; 01972 DWORD dwRefCnt; 01973 FLATPTR fpLastFlip; 01974 ULONG_PTR dwReserved1; 01975 ULONG_PTR dwReserved2; 01976 HANDLE hDDVideoPort; 01977 DWORD dwNumVBIAutoflip; 01978 LPDDVIDEOPORTDESC lpVBIDesc; 01979 LPDDVIDEOPORTDESC lpVideoDesc; 01980 LPDDVIDEOPORTINFO lpVBIInfo; 01981 LPDDVIDEOPORTINFO lpVideoInfo; 01982 DWORD dwVBIProcessID; 01983 LPDDRAWI_DDVIDEOPORT_INT lpVPNotify; 01984 } DDRAWI_DDVIDEOPORT_LCL; 01985 01986 typedef struct _DDRAWI_DDVIDEOPORT_INT { 01987 LPVOID lpVtbl; 01988 LPDDRAWI_DDVIDEOPORT_LCL lpLcl; 01989 LPDDRAWI_DDVIDEOPORT_INT lpLink; 01990 DWORD dwIntRefCnt; 01991 DWORD dwFlags; 01992 } DDRAWI_DDVIDEOPORT_INT; 01993 01994 typedef struct _DDRAWI_DDRAWCLIPPER_LCL { 01995 DWORD lpClipMore; 01996 LPDDRAWI_DDRAWCLIPPER_GBL lpGbl; 01997 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; 01998 DWORD dwLocalRefCnt; 01999 #ifndef _NO_COM 02000 IUnknown *pUnkOuter; 02001 #else 02002 PVOID pUnkOuter; 02003 #endif 02004 LPDDRAWI_DIRECTDRAW_INT lpDD_int; 02005 ULONG_PTR dwReserved1; 02006 #ifndef _NO_COM 02007 IUnknown *pAddrefedThisOwner; 02008 #else 02009 PVOID pAddrefedThisOwner; 02010 #endif 02011 } DDRAWI_DDRAWCLIPPER_LCL; 02012 02013 typedef struct _DDRAWI_DDRAWCLIPPER_GBL { 02014 DWORD dwRefCnt; 02015 DWORD dwFlags; 02016 LPDDRAWI_DIRECTDRAW_GBL lpDD; 02017 DWORD dwProcessId; 02018 ULONG_PTR dwReserved1; 02019 ULONG_PTR hWnd; 02020 LPRGNDATA lpStaticClipList; 02021 } DDRAWI_DDRAWCLIPPER_GBL; 02022 02023 typedef BOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,BOOL); 02024 02025 extern HRESULT DDAPI 02026 LateAllocateSurfaceMem( 02027 LPDIRECTDRAWSURFACE lpSurface, 02028 DWORD dwPleaseAllocType, 02029 DWORD dwWidthInBytesOrSize, 02030 DWORD dwHeight); 02031 02032 LPDIRECTDRAWSURFACE GetNextMipMap( 02033 LPDIRECTDRAWSURFACE lpLevel); 02034 02035 typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS; 02036 typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS; 02037 typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS; 02038 typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS; 02039 typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS; 02040 typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS; 02041 typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS; 02042 typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS; 02043 typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS; 02044 typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS; 02045 typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS; 02046 typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS; 02047 typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS; 02048 typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS; 02049 typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS; 02050 02051 typedef DIRECTDRAWCLIPPERCALLBACKS *LPDIRECTDRAWCLIPPERCALLBACKS; 02052 typedef DIRECTDRAWPALETTECALLBACKS *LPDIRECTDRAWPALETTECALLBACKS; 02053 typedef DIRECTDRAWSURFACECALLBACKS *LPDIRECTDRAWSURFACECALLBACKS; 02054 typedef DIRECTDRAWCALLBACKS *LPDIRECTDRAWCALLBACKS; 02055 02056 HRESULT CALLBACK 02057 D3DParseUnknownCommand ( 02058 LPVOID lpvCommands, 02059 LPVOID *lplpvReturnedCommand); 02060 02061 #ifdef __cplusplus 02062 } /* extern "C" */ 02063 #endif 02064 02065 #endif /* __DDRAWI_INCLUDED__ */ Generated on Sun May 27 2012 04:31:21 for ReactOS by
1.7.6.1
|