Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/ddrawi.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /* | |
| 2 * DirectDraw driver interface | |
| 3 * (DirectX 7 version) | |
| 4 * | |
| 5 * Copyright (C) 2001 Ove Kaaven | |
| 6 * | |
| 7 * This library is free software; you can redistribute it and/or | |
| 8 * modify it under the terms of the GNU Lesser General Public | |
| 9 * License as published by the Free Software Foundation; either | |
| 10 * version 2.1 of the License, or (at your option) any later version. | |
| 11 * | |
| 12 * This library is distributed in the hope that it will be useful, | |
| 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 15 * Lesser General Public License for more details. | |
| 16 * | |
| 17 * You should have received a copy of the GNU Lesser General Public | |
| 18 * License along with this library; if not, write to the Free Software | |
| 19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| 20 */ | |
| 21 | |
| 22 #ifndef __WINE_DDRAWI_H | |
| 23 #define __WINE_DDRAWI_H | |
| 24 | |
| 25 #include <_mingw_dxhelper.h> | |
| 26 | |
| 27 #ifdef __cplusplus | |
| 28 extern "C" { | |
| 29 #endif | |
| 30 | |
| 31 #include <ddraw.h> | |
| 32 #include <dciddi.h> /* the DD HAL is layered onto DCI escapes */ | |
| 33 | |
| 34 typedef struct _DDVIDEOPORTCAPS *LPDDVIDEOPORTCAPS; /* should be in dvp.h */ | |
| 35 typedef struct _DDKERNELCAPS *LPDDKERNELCAPS; /* should be in ddkernel.h */ | |
| 36 typedef struct _VMEMHEAP *LPVMEMHEAP; /* should be in dmemmgr.h */ | |
| 37 | |
| 38 #define DDAPI WINAPI | |
| 39 | |
| 40 /* the DirectDraw versions */ | |
| 41 #define DD_VERSION 0x0200 /* compatibility version */ | |
| 42 #define DD_RUNTIME_VERSION 0x0700 /* actual version */ | |
| 43 | |
| 44 /* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */ | |
| 45 #define DD_HAL_VERSION 0x0100 | |
| 46 | |
| 47 /* more DCICOMMAND escapes */ | |
| 48 #define DDCREATEDRIVEROBJECT 10 | |
| 49 #define DDGET32BITDRIVERNAME 11 | |
| 50 #define DDNEWCALLBACKFNS 12 | |
| 51 #define DDVERSIONINFO 13 | |
| 52 | |
| 53 #define MAX_DRIVER_NAME CCHDEVICENAME | |
| 54 | |
| 55 /***************************************************************************** | |
| 56 * Initialization stuff | |
| 57 */ | |
| 58 typedef struct { | |
| 59 char szName[260]; | |
| 60 char szEntryPoint[64]; | |
| 61 DWORD dwContext; | |
| 62 } DD32BITDRIVERDATA,*LPDD32BITDRIVERDATA; | |
| 63 | |
| 64 typedef struct { | |
| 65 DWORD dwHALVersion; | |
| 66 ULONG_PTR dwReserved1; | |
| 67 ULONG_PTR dwReserved2; | |
| 68 } DDVERSIONDATA,*LPDDVERSIONDATA; | |
| 69 | |
| 70 typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext); | |
| 71 | |
| 72 /* pointer to video memory */ | |
| 73 typedef ULONG_PTR FLATPTR; | |
| 74 | |
| 75 /* predeclare some structures */ | |
| 76 typedef struct _DDHALINFO *LPDDHALINFO; | |
| 77 typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT; | |
| 78 typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL; | |
| 79 typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL; | |
| 80 typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT; | |
| 81 typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL; | |
| 82 typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL; | |
| 83 typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE; | |
| 84 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE; | |
| 85 typedef struct _DDRAWI_DDRAWPALETTE_INT *LPDDRAWI_DDRAWPALETTE_INT; | |
| 86 typedef struct _DDRAWI_DDRAWPALETTE_LCL *LPDDRAWI_DDRAWPALETTE_LCL; | |
| 87 typedef struct _DDRAWI_DDRAWPALETTE_GBL *LPDDRAWI_DDRAWPALETTE_GBL; | |
| 88 typedef struct _DDRAWI_DDRAWCLIPPER_INT *LPDDRAWI_DDRAWCLIPPER_INT; | |
| 89 typedef struct _DDRAWI_DDRAWCLIPPER_LCL *LPDDRAWI_DDRAWCLIPPER_LCL; | |
| 90 typedef struct _DDRAWI_DDRAWCLIPPER_GBL *LPDDRAWI_DDRAWCLIPPER_GBL; | |
| 91 typedef struct _DDRAWI_DDVIDEOPORT_INT *LPDDRAWI_DDVIDEOPORT_INT; | |
| 92 typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL; | |
| 93 typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT; | |
| 94 typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL; | |
| 95 | |
| 96 /* structure GUIDs for GetDriverInfo */ | |
| 97 DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0,0x49E7,0x11D0,0x88,0x9D,0x00,0xAA,0x00,0xBB,0xB7,0x6A ); | |
| 98 /* ...videport stuff here... */ | |
| 99 DEFINE_GUID( GUID_D3DCallbacks2, 0x0BA584E1,0x70B6,0x11D0,0x88,0x9D,0x00,0xAA,0x00,0xBB,0xB7,0x6A ); | |
| 100 DEFINE_GUID( GUID_D3DCallbacks3, 0xDDF41230,0xEC0A,0x11D0,0xA9,0xB6,0x00,0xAA,0x00,0xC0,0x99,0x3E ); | |
| 101 DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86C4FA80,0x8D84,0x11D0,0x94,0xE8,0x00,0xC0,0x4F,0xC3,0x41,0x37 ); | |
| 102 /* ...kernel stuff here... */ | |
| 103 DEFINE_GUID( GUID_D3DExtendedCaps, 0x7DE41F80,0x9D93,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29 ); | |
| 104 DEFINE_GUID( GUID_ZPixelFormats, 0x93869880,0x36CF,0x11D1,0x9B,0x1B,0x00,0xAA,0x00,0xBB,0xB8,0xAE ); | |
| 105 DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3B8A0466,0xF269,0x11D1,0x88,0x0B,0x00,0xC0,0x4F,0xD9,0x30,0xC5 ); | |
| 106 DEFINE_GUID( GUID_DDStereoMode, 0xF828169C,0xA8E8,0x11D2,0xA1,0xF2,0x00,0xA0,0xC9,0x83,0xEA,0xF6 ); | |
| 107 /* ...more stuff here... */ | |
| 108 DEFINE_GUID(GUID_D3DParseUnknownCommandCallback,0x2E04FFA0,0x98E4,0x11D1,0x8C,0xE1,0x00,0xA0,0xC9,0x06,0x29,0xA8 ); | |
| 109 /* ...motioncomp stuff here... */ | |
| 110 DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00,0x3E5A,0x11D1,0xB6,0x40,0x00,0xAA,0x00,0xA1,0xF9,0x6A ); | |
| 111 | |
| 112 /***************************************************************************** | |
| 113 * driver->ddraw callbacks | |
| 114 */ | |
| 115 typedef BOOL (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset); | |
| 116 typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight); | |
| 117 typedef void (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem); | |
| 118 | |
| 119 typedef struct { | |
| 120 DWORD dwSize; | |
| 121 LPDDHAL_SETINFO lpSetInfo; | |
| 122 LPDDHAL_VIDMEMALLOC lpVidMemAlloc; | |
| 123 LPDDHAL_VIDMEMFREE lpVidMemFree; | |
| 124 } DDHALDDRAWFNS,*LPDDHALDDRAWFNS; | |
| 125 | |
| 126 /***************************************************************************** | |
| 127 * mode info structure | |
| 128 */ | |
| 129 typedef struct _DDHALMODEINFO { | |
| 130 DWORD dwWidth; | |
| 131 DWORD dwHeight; | |
| 132 LONG lPitch; | |
| 133 DWORD dwBPP; | |
| 134 WORD wFlags; | |
| 135 WORD wRefreshRate; | |
| 136 DWORD dwRBitMask; | |
| 137 DWORD dwGBitMask; | |
| 138 DWORD dwBBitMask; | |
| 139 DWORD dwAlphaBitMask; | |
| 140 } DDHALMODEINFO,*LPDDHALMODEINFO; | |
| 141 | |
| 142 #define DDMODEINFO_PALETTIZED 0x0001 | |
| 143 #define DDMODEINFO_MODEX 0x0002 | |
| 144 #define DDMODEINFO_UNSUPPORTED 0x0004 | |
| 145 #define DDMODEINFO_STANDARDVGA 0x0008 | |
| 146 #define DDMODEINFO_MAXREFRESH 0x0010 | |
| 147 #define DDMODEINFO_STEREO 0x0020 | |
| 148 | |
| 149 /***************************************************************************** | |
| 150 * video memory info structure | |
| 151 */ | |
| 152 typedef struct _VIDMEM { | |
| 153 DWORD dwFlags; | |
| 154 FLATPTR fpStart; | |
| 155 union { | |
| 156 FLATPTR fpEnd; | |
| 157 DWORD dwWidth; | |
| 158 } DUMMYUNIONNAME1; | |
| 159 DDSCAPS ddsCaps; | |
| 160 DDSCAPS ddsCapsAlt; | |
| 161 union { | |
| 162 LPVMEMHEAP lpHeap; | |
| 163 DWORD dwHeight; | |
| 164 } DUMMYUNIONNAME2; | |
| 165 } VIDMEM,*LPVIDMEM; | |
| 166 | |
| 167 #define VIDMEM_ISLINEAR 0x00000001 | |
| 168 #define VIDMEM_ISRECTANGULAR 0x00000002 | |
| 169 #define VIDMEM_ISHEAP 0x00000004 | |
| 170 #define VIDMEM_ISNONLOCAL 0x00000008 | |
| 171 #define VIDMEM_ISWC 0x00000010 | |
| 172 #define VIDMEM_ISDISABLED 0x00000020 | |
| 173 | |
| 174 typedef struct _VIDMEMINFO { | |
| 175 FLATPTR fpPrimary; | |
| 176 DWORD dwFlags; | |
| 177 DWORD dwDisplayWidth; | |
| 178 DWORD dwDisplayHeight; | |
| 179 LONG lDisplayPitch; | |
| 180 DDPIXELFORMAT ddpfDisplay; | |
| 181 DWORD dwOffscreenAlign; | |
| 182 DWORD dwOverlayAlign; | |
| 183 DWORD dwTextureAlign; | |
| 184 DWORD dwZBufferAlign; | |
| 185 DWORD dwAlphaAlign; | |
| 186 DWORD dwNumHeaps; | |
| 187 LPVIDMEM pvmList; | |
| 188 } VIDMEMINFO,*LPVIDMEMINFO; | |
| 189 | |
| 190 typedef struct _HEAPALIAS { | |
| 191 FLATPTR fpVidMem; | |
| 192 LPVOID lpAlias; | |
| 193 DWORD dwAliasSize; | |
| 194 } HEAPALIAS,*LPHEAPALIAS; | |
| 195 | |
| 196 typedef struct _HEAPALIASINFO { | |
| 197 DWORD dwRefCnt; | |
| 198 DWORD dwFlags; | |
| 199 DWORD dwNumHeaps; | |
| 200 LPHEAPALIAS lpAliases; | |
| 201 } HEAPALIASINFO,*LPHEAPALIASINFO; | |
| 202 | |
| 203 #define HEAPALIASINFO_MAPPEDREAL 0x00000001 | |
| 204 #define HEAPALIASINFO_MAPPEDDUMMY 0x00000002 | |
| 205 | |
| 206 /***************************************************************************** | |
| 207 * capabilities structures | |
| 208 */ | |
| 209 typedef struct _DDCORECAPS { | |
| 210 DWORD dwSize; | |
| 211 DWORD dwCaps; | |
| 212 DWORD dwCaps2; | |
| 213 DWORD dwCKeyCaps; | |
| 214 DWORD dwFXCaps; | |
| 215 DWORD dwFXAlphaCaps; | |
| 216 DWORD dwPalCaps; | |
| 217 DWORD dwSVCaps; | |
| 218 DWORD dwAlphaBltConstBitDepths; | |
| 219 DWORD dwAlphaBltPixelBitDepths; | |
| 220 DWORD dwAlphaBltSurfaceBitDepths; | |
| 221 DWORD dwAlphaOverlayConstBitDepths; | |
| 222 DWORD dwAlphaOverlayPixelBitDepths; | |
| 223 DWORD dwAlphaOverlaySurfaceBitDepths; | |
| 224 DWORD dwZBufferBitDepths; | |
| 225 DWORD dwVidMemTotal; | |
| 226 DWORD dwVidMemFree; | |
| 227 DWORD dwMaxVisibleOverlays; | |
| 228 DWORD dwCurrVisibleOverlays; | |
| 229 DWORD dwNumFourCCCodes; | |
| 230 DWORD dwAlignBoundarySrc; | |
| 231 DWORD dwAlignSizeSrc; | |
| 232 DWORD dwAlignBoundaryDest; | |
| 233 DWORD dwAlignSizeDest; | |
| 234 DWORD dwAlignStrideAlign; | |
| 235 DWORD dwRops[DD_ROP_SPACE]; | |
| 236 DDSCAPS ddsCaps; | |
| 237 DWORD dwMinOverlayStretch; | |
| 238 DWORD dwMaxOverlayStretch; | |
| 239 DWORD dwMinLiveVideoStretch; | |
| 240 DWORD dwMaxLiveVideoStretch; | |
| 241 DWORD dwMinHwCodecStretch; | |
| 242 DWORD dwMaxHwCodecStretch; | |
| 243 DWORD dwReserved1; | |
| 244 DWORD dwReserved2; | |
| 245 DWORD dwReserved3; | |
| 246 DWORD dwSVBCaps; | |
| 247 DWORD dwSVBCKeyCaps; | |
| 248 DWORD dwSVBFXCaps; | |
| 249 DWORD dwSVBRops[DD_ROP_SPACE]; | |
| 250 DWORD dwVSBCaps; | |
| 251 DWORD dwVSBCKeyCaps; | |
| 252 DWORD dwVSBFXCaps; | |
| 253 DWORD dwVSBRops[DD_ROP_SPACE]; | |
| 254 DWORD dwSSBCaps; | |
| 255 DWORD dwSSBCKeyCaps; | |
| 256 DWORD dwSSBFXCaps; | |
| 257 DWORD dwSSBRops[DD_ROP_SPACE]; | |
| 258 DWORD dwMaxVideoPorts; | |
| 259 DWORD dwCurrVideoPorts; | |
| 260 DWORD dwSVBCaps2; | |
| 261 } DDCORECAPS,*LPDDCORECAPS; | |
| 262 | |
| 263 typedef struct _DDNONLOCALVIDMEMCAPS { | |
| 264 DWORD dwSize; | |
| 265 DWORD dwNLVBCaps; | |
| 266 DWORD dwNLVBCaps2; | |
| 267 DWORD dwNLVBCKeyCaps; | |
| 268 DWORD dwNLVBFXCaps; | |
| 269 DWORD dwNLVBRops[DD_ROP_SPACE]; | |
| 270 } DDNONLOCALVIDMEMCAPS,*LPDDNONLOCALVIDMEMCAPS; | |
| 271 | |
| 272 typedef struct _DDSCAPSEX { | |
| 273 DWORD dwCaps2; | |
| 274 DWORD dwCaps3; | |
| 275 DWORD dwCaps4; | |
| 276 } DDSCAPSEX,*LPDDSCAPSEX; | |
| 277 | |
| 278 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2 | |
| 279 #define DDSCAPS2_VERTEXBUFFER DDSCAPS2_RESERVED1 | |
| 280 #define DDSCAPS2_COMMANDBUFFER DDSCAPS2_RESERVED2 | |
| 281 | |
| 282 /***************************************************************************** | |
| 283 * ddraw->driver callbacks | |
| 284 */ | |
| 285 #define DDHAL_DRIVER_NOTHANDLED 0 | |
| 286 #define DDHAL_DRIVER_HANDLED 1 | |
| 287 #define DDHAL_DRIVER_NOCKEYHW 2 | |
| 288 | |
| 289 typedef struct _DDHAL_DESTROYDRIVERDATA *LPDDHAL_DESTROYDRIVERDATA; | |
| 290 typedef struct _DDHAL_CREATESURFACEDATA *LPDDHAL_CREATESURFACEDATA; | |
| 291 typedef struct _DDHAL_DRVSETCOLORKEYDATA *LPDDHAL_DRVSETCOLORKEYDATA; | |
| 292 typedef struct _DDHAL_SETMODEDATA *LPDDHAL_SETMODEDATA; | |
| 293 typedef struct _DDHAL_WAITFORVERTICALBLANKDATA *LPDDHAL_WAITFORVERTICALBLANKDATA; | |
| 294 typedef struct _DDHAL_CANCREATESURFACEDATA *LPDDHAL_CANCREATESURFACEDATA; | |
| 295 typedef struct _DDHAL_CREATEPALETTEDATA *LPDDHAL_CREATEPALETTEDATA; | |
| 296 typedef struct _DDHAL_GETSCANLINEDATA *LPDDHAL_GETSCANLINEDATA; | |
| 297 typedef struct _DDHAL_SETEXCLUSIVEMODEDATA *LPDDHAL_SETEXCLUSIVEMODEDATA; | |
| 298 typedef struct _DDHAL_FLIPTOGDISURFACEDATA *LPDDHAL_FLIPTOGDISURFACEDATA; | |
| 299 | |
| 300 typedef DWORD (PASCAL *LPDDHAL_DESTROYDRIVER) (LPDDHAL_DESTROYDRIVERDATA); | |
| 301 typedef DWORD (PASCAL *LPDDHAL_CREATESURFACE) (LPDDHAL_CREATESURFACEDATA); | |
| 302 typedef DWORD (PASCAL *LPDDHAL_SETCOLORKEY) (LPDDHAL_DRVSETCOLORKEYDATA); | |
| 303 typedef DWORD (PASCAL *LPDDHAL_SETMODE) (LPDDHAL_SETMODEDATA); | |
| 304 typedef DWORD (PASCAL *LPDDHAL_WAITFORVERTICALBLANK)(LPDDHAL_WAITFORVERTICALBLANKDATA); | |
| 305 typedef DWORD (PASCAL *LPDDHAL_CANCREATESURFACE) (LPDDHAL_CANCREATESURFACEDATA ); | |
| 306 typedef DWORD (PASCAL *LPDDHAL_CREATEPALETTE) (LPDDHAL_CREATEPALETTEDATA); | |
| 307 typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE) (LPDDHAL_GETSCANLINEDATA); | |
| 308 typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE) (LPDDHAL_SETEXCLUSIVEMODEDATA); | |
| 309 typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE) (LPDDHAL_FLIPTOGDISURFACEDATA); | |
| 310 | |
| 311 typedef struct _DDHAL_DDCALLBACKS { | |
| 312 DWORD dwSize; | |
| 313 DWORD dwFlags; | |
| 314 LPDDHAL_DESTROYDRIVER DestroyDriver; | |
| 315 LPDDHAL_CREATESURFACE CreateSurface; | |
| 316 LPDDHAL_SETCOLORKEY SetColorKey; | |
| 317 LPDDHAL_SETMODE SetMode; | |
| 318 LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank; | |
| 319 LPDDHAL_CANCREATESURFACE CanCreateSurface; | |
| 320 LPDDHAL_CREATEPALETTE CreatePalette; | |
| 321 LPDDHAL_GETSCANLINE GetScanLine; | |
| 322 /* DirectX 2 */ | |
| 323 LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; | |
| 324 LPDDHAL_FLIPTOGDISURFACE FlipToGDISurface; | |
| 325 } DDHAL_DDCALLBACKS,*LPDDHAL_DDCALLBACKS; | |
| 326 | |
| 327 typedef struct _DDHAL_DESTROYSURFACEDATA *LPDDHAL_DESTROYSURFACEDATA; | |
| 328 typedef struct _DDHAL_FLIPDATA *LPDDHAL_FLIPDATA; | |
| 329 typedef struct _DDHAL_SETCLIPLISTDATA *LPDDHAL_SETCLIPLISTDATA; | |
| 330 typedef struct _DDHAL_LOCKDATA *LPDDHAL_LOCKDATA; | |
| 331 typedef struct _DDHAL_UNLOCKDATA *LPDDHAL_UNLOCKDATA; | |
| 332 typedef struct _DDHAL_BLTDATA *LPDDHAL_BLTDATA; | |
| 333 typedef struct _DDHAL_SETCOLORKEYDATA *LPDDHAL_SETCOLORKEYDATA; | |
| 334 typedef struct _DDHAL_ADDATTACHEDSURFACEDATA *LPDDHAL_ADDATTACHEDSURFACEDATA; | |
| 335 typedef struct _DDHAL_GETBLTSTATUSDATA *LPDDHAL_GETBLTSTATUSDATA; | |
| 336 typedef struct _DDHAL_GETFLIPSTATUSDATA *LPDDHAL_GETFLIPSTATUSDATA; | |
| 337 typedef struct _DDHAL_UPDATEOVERLAYDATA *LPDDHAL_UPDATEOVERLAYDATA; | |
| 338 typedef struct _DDHAL_SETOVERLAYPOSITIONDATA *LPDDHAL_SETOVERLAYPOSITIONDATA; | |
| 339 typedef struct _DDHAL_SETPALETTEDATA *LPDDHAL_SETPALETTEDATA; | |
| 340 | |
| 341 typedef DWORD (PASCAL *LPDDHALSURFCB_DESTROYSURFACE) (LPDDHAL_DESTROYSURFACEDATA); | |
| 342 typedef DWORD (PASCAL *LPDDHALSURFCB_FLIP) (LPDDHAL_FLIPDATA); | |
| 343 typedef DWORD (PASCAL *LPDDHALSURFCB_SETCLIPLIST) (LPDDHAL_SETCLIPLISTDATA); | |
| 344 typedef DWORD (PASCAL *LPDDHALSURFCB_LOCK) (LPDDHAL_LOCKDATA); | |
| 345 typedef DWORD (PASCAL *LPDDHALSURFCB_UNLOCK) (LPDDHAL_UNLOCKDATA); | |
| 346 typedef DWORD (PASCAL *LPDDHALSURFCB_BLT) (LPDDHAL_BLTDATA); | |
| 347 typedef DWORD (PASCAL *LPDDHALSURFCB_SETCOLORKEY) (LPDDHAL_SETCOLORKEYDATA); | |
| 348 typedef DWORD (PASCAL *LPDDHALSURFCB_ADDATTACHEDSURFACE)(LPDDHAL_ADDATTACHEDSURFACEDATA); | |
| 349 typedef DWORD (PASCAL *LPDDHALSURFCB_GETBLTSTATUS) (LPDDHAL_GETBLTSTATUSDATA); | |
| 350 typedef DWORD (PASCAL *LPDDHALSURFCB_GETFLIPSTATUS) (LPDDHAL_GETFLIPSTATUSDATA); | |
| 351 typedef DWORD (PASCAL *LPDDHALSURFCB_UPDATEOVERLAY) (LPDDHAL_UPDATEOVERLAYDATA); | |
| 352 typedef DWORD (PASCAL *LPDDHALSURFCB_SETOVERLAYPOSITION)(LPDDHAL_SETOVERLAYPOSITIONDATA); | |
| 353 typedef DWORD (PASCAL *LPDDHALSURFCB_SETPALETTE) (LPDDHAL_SETPALETTEDATA); | |
| 354 | |
| 355 typedef struct _DDHAL_DDSURFACECALLBACKS { | |
| 356 DWORD dwSize; | |
| 357 DWORD dwFlags; | |
| 358 LPDDHALSURFCB_DESTROYSURFACE DestroySurface; | |
| 359 LPDDHALSURFCB_FLIP Flip; | |
| 360 LPDDHALSURFCB_SETCLIPLIST SetClipList; | |
| 361 LPDDHALSURFCB_LOCK Lock; | |
| 362 LPDDHALSURFCB_UNLOCK Unlock; | |
| 363 LPDDHALSURFCB_BLT Blt; | |
| 364 LPDDHALSURFCB_SETCOLORKEY SetColorKey; | |
| 365 LPDDHALSURFCB_ADDATTACHEDSURFACE AddAttachedSurface; | |
| 366 LPDDHALSURFCB_GETBLTSTATUS GetBltStatus; | |
| 367 LPDDHALSURFCB_GETFLIPSTATUS GetFlipStatus; | |
| 368 LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay; | |
| 369 LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition; | |
| 370 LPVOID reserved4; | |
| 371 LPDDHALSURFCB_SETPALETTE SetPalette; | |
| 372 } DDHAL_DDSURFACECALLBACKS,*LPDDHAL_DDSURFACECALLBACKS; | |
| 373 | |
| 374 typedef struct _DDHAL_DESTROYPALETTEDATA *LPDDHAL_DESTROYPALETTEDATA; | |
| 375 typedef struct _DDHAL_SETENTRIESDATA *LPDDHAL_SETENTRIESDATA; | |
| 376 | |
| 377 typedef DWORD (PASCAL *LPDDHALPALCB_DESTROYPALETTE)(LPDDHAL_DESTROYPALETTEDATA); | |
| 378 typedef DWORD (PASCAL *LPDDHALPALCB_SETENTRIES) (LPDDHAL_SETENTRIESDATA); | |
| 379 | |
| 380 typedef struct _DDHAL_DDPALETTECALLBACKS { | |
| 381 DWORD dwSize; | |
| 382 DWORD dwFlags; | |
| 383 LPDDHALPALCB_DESTROYPALETTE DestroyPalette; | |
| 384 LPDDHALPALCB_SETENTRIES SetEntries; | |
| 385 } DDHAL_DDPALETTECALLBACKS,*LPDDHAL_DDPALETTECALLBACKS; | |
| 386 | |
| 387 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CANCREATEEXEBUF)(LPDDHAL_CANCREATESURFACEDATA); | |
| 388 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_CREATEEXEBUF) (LPDDHAL_CREATESURFACEDATA); | |
| 389 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_DESTROYEXEBUF) (LPDDHAL_DESTROYSURFACEDATA); | |
| 390 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_LOCKEXEBUF) (LPDDHAL_LOCKDATA); | |
| 391 typedef DWORD (PASCAL *LPDDHALEXEBUFCB_UNLOCKEXEBUF) (LPDDHAL_UNLOCKDATA); | |
| 392 | |
| 393 typedef struct _DDHAL_DDEXEBUFCALLBACKS { | |
| 394 DWORD dwSize; | |
| 395 DWORD dwFlags; | |
| 396 LPDDHALEXEBUFCB_CANCREATEEXEBUF CanCreateExecuteBuffer; | |
| 397 LPDDHALEXEBUFCB_CREATEEXEBUF CreateExecuteBuffer; | |
| 398 LPDDHALEXEBUFCB_DESTROYEXEBUF DestroyExecuteBuffer; | |
| 399 LPDDHALEXEBUFCB_LOCKEXEBUF LockExecuteBuffer; | |
| 400 LPDDHALEXEBUFCB_UNLOCKEXEBUF UnlockExecuteBuffer; | |
| 401 } DDHAL_DDEXEBUFCALLBACKS,*LPDDHAL_DDEXEBUFCALLBACKS; | |
| 402 | |
| 403 typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA *LPDDHAL_GETAVAILDRIVERMEMORYDATA; | |
| 404 typedef struct _DDHAL_UPDATENONLOCALHEAPDATA *LPDDHAL_UPDATENONLOCALHEAPDATA; | |
| 405 typedef struct _DDHAL_GETHEAPALIGNMENTDATA *LPDDHAL_GETHEAPALIGNMENTDATA; | |
| 406 | |
| 407 typedef DWORD (PASCAL *LPDDHAL_GETAVAILDRIVERMEMORY)(LPDDHAL_GETAVAILDRIVERMEMORYDATA); | |
| 408 typedef DWORD (PASCAL *LPDDHAL_UPDATENONLOCALHEAP) (LPDDHAL_UPDATENONLOCALHEAPDATA); | |
| 409 typedef DWORD (PASCAL *LPDDHAL_GETHEAPALIGNMENT) (LPDDHAL_GETHEAPALIGNMENTDATA); | |
| 410 | |
| 411 typedef struct _DDHAL_DDMISCELLANEOUSCALLBACKS { | |
| 412 DWORD dwSize; | |
| 413 DWORD dwFlags; | |
| 414 LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory; | |
| 415 LPDDHAL_UPDATENONLOCALHEAP UpdateNonLocalHeap; | |
| 416 LPDDHAL_GETHEAPALIGNMENT GetHeapAlignment; | |
| 417 LPDDHALSURFCB_GETBLTSTATUS GetSysmemBltStatus; | |
| 418 } DDHAL_DDMISCELLANEOUSCALLBACKS,*LPDDHAL_DDMISCELLANEOUSCALLBACKS; | |
| 419 | |
| 420 typedef struct _DDHAL_CREATESURFACEEXDATA *LPDDHAL_CREATESURFACEEXDATA; | |
| 421 typedef struct _DDHAL_GETDRIVERSTATEDATA *LPDDHAL_GETDRIVERSTATEDATA; | |
| 422 typedef struct _DDHAL_DESTROYDDLOCALDATA *LPDDHAL_DESTROYDDLOCALDATA; | |
| 423 | |
| 424 typedef DWORD (PASCAL *LPDDHAL_CREATESURFACEEX)(LPDDHAL_CREATESURFACEEXDATA); | |
| 425 typedef DWORD (PASCAL *LPDDHAL_GETDRIVERSTATE) (LPDDHAL_GETDRIVERSTATEDATA); | |
| 426 typedef DWORD (PASCAL *LPDDHAL_DESTROYDDLOCAL) (LPDDHAL_DESTROYDDLOCALDATA); | |
| 427 | |
| 428 typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS { | |
| 429 DWORD dwSize; | |
| 430 DWORD dwFlags; | |
| 431 LPVOID Reserved; | |
| 432 LPDDHAL_CREATESURFACEEX CreateSurfaceEx; | |
| 433 LPDDHAL_GETDRIVERSTATE GetDriverState; | |
| 434 LPDDHAL_DESTROYDDLOCAL DestroyDDLocal; | |
| 435 } DDHAL_DDMISCELLANEOUS2CALLBACKS,*LPDDHAL_DDMISCELLANEOUS2CALLBACKS; | |
| 436 | |
| 437 typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE); | |
| 438 | |
| 439 /***************************************************************************** | |
| 440 * driver info structure | |
| 441 * | |
| 442 * The HAL is queried for additional callbacks via the GetDriverInfo callback. | |
| 443 */ | |
| 444 typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA; | |
| 445 typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA); | |
| 446 | |
| 447 typedef struct _DDHALINFO { | |
| 448 DWORD dwSize; | |
| 449 LPDDHAL_DDCALLBACKS lpDDCallbacks; | |
| 450 LPDDHAL_DDSURFACECALLBACKS lpDDSurfaceCallbacks; | |
| 451 LPDDHAL_DDPALETTECALLBACKS lpDDPaletteCallbacks; | |
| 452 VIDMEMINFO vmiData; | |
| 453 DDCORECAPS ddCaps; | |
| 454 DWORD dwMonitorFrequency; | |
| 455 LPDDHAL_GETDRIVERINFO GetDriverInfo; | |
| 456 DWORD dwModeIndex; | |
| 457 LPDWORD lpdwFourCC; | |
| 458 DWORD dwNumModes; | |
| 459 LPDDHALMODEINFO lpModeInfo; | |
| 460 DWORD dwFlags; | |
| 461 LPVOID lpPDevice; | |
| 462 DWORD hInstance; | |
| 463 /* DirectX 2 */ | |
| 464 ULONG_PTR lpD3DGlobalDriverData; | |
| 465 ULONG_PTR lpD3DHALCallbacks; | |
| 466 LPDDHAL_DDEXEBUFCALLBACKS lpDDExeBufCallbacks; | |
| 467 } DDHALINFO; | |
| 468 | |
| 469 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001 | |
| 470 #define DDHALINFO_MODEXILLEGAL 0x00000002 | |
| 471 #define DDHALINFO_GETDRIVERINFOSET 0x00000004 | |
| 472 | |
| 473 /* where the high-level ddraw implementation stores the callbacks */ | |
| 474 typedef struct _DDHAL_CALLBACKS { | |
| 475 DDHAL_DDCALLBACKS cbDDCallbacks; | |
| 476 DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks; | |
| 477 DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks; | |
| 478 DDHAL_DDCALLBACKS HALDD; | |
| 479 DDHAL_DDSURFACECALLBACKS HALDDSurface; | |
| 480 DDHAL_DDPALETTECALLBACKS HALDDPalette; | |
| 481 DDHAL_DDCALLBACKS HELDD; | |
| 482 DDHAL_DDSURFACECALLBACKS HELDDSurface; | |
| 483 DDHAL_DDPALETTECALLBACKS HELDDPalette; | |
| 484 DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks; | |
| 485 DDHAL_DDEXEBUFCALLBACKS HALDDExeBuf; | |
| 486 DDHAL_DDEXEBUFCALLBACKS HELDDExeBuf; | |
| 487 /* there's more... videoport, colorcontrol, misc, and motion compensation callbacks... */ | |
| 488 } DDHAL_CALLBACKS,*LPDDHAL_CALLBACKS; | |
| 489 | |
| 490 /***************************************************************************** | |
| 491 * parameter structures | |
| 492 */ | |
| 493 typedef struct _DDHAL_DESTROYDRIVERDATA { | |
| 494 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 495 HRESULT ddRVal; | |
| 496 LPDDHAL_DESTROYDRIVER DestroyDriver; | |
| 497 } DDHAL_DESTROYDRIVERDATA; | |
| 498 | |
| 499 typedef struct _DDHAL_SETMODEDATA { | |
| 500 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 501 DWORD dwModeIndex; | |
| 502 HRESULT ddRVal; | |
| 503 LPDDHAL_SETMODE SetMode; | |
| 504 BOOL inexcl; | |
| 505 BOOL useRefreshRate; | |
| 506 } DDHAL_SETMODEDATA; | |
| 507 | |
| 508 typedef struct _DDHAL_CREATESURFACEDATA { | |
| 509 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 510 LPDDSURFACEDESC lpDDSurfaceDesc; | |
| 511 LPDDRAWI_DDRAWSURFACE_LCL * lplpSList; | |
| 512 DWORD dwSCnt; | |
| 513 HRESULT ddRVal; | |
| 514 LPDDHAL_CREATESURFACE CreateSurface; | |
| 515 } DDHAL_CREATESURFACEDATA; | |
| 516 | |
| 517 typedef struct _DDHAL_CANCREATESURFACEDATA { | |
| 518 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 519 LPDDSURFACEDESC lpDDSurfaceDesc; | |
| 520 DWORD bIsDifferentPixelFormat; | |
| 521 HRESULT ddRVal; | |
| 522 LPDDHAL_CANCREATESURFACE CanCreateSurface; | |
| 523 } DDHAL_CANCREATESURFACEDATA; | |
| 524 | |
| 525 typedef struct _DDHAL_CREATEPALETTEDATA { | |
| 526 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 527 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; | |
| 528 LPPALETTEENTRY lpColorTable; | |
| 529 HRESULT ddRVal; | |
| 530 LPDDHAL_CREATEPALETTE CreatePalette; | |
| 531 BOOL is_excl; | |
| 532 } DDHAL_CREATEPALETTEDATA; | |
| 533 | |
| 534 typedef struct _DDHAL_SETEXCLUSIVEMODEDATA { | |
| 535 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 536 DWORD dwEnterExcl; | |
| 537 DWORD dwReserved; | |
| 538 HRESULT ddRVal; | |
| 539 LPDDHAL_SETEXCLUSIVEMODE SetExclusiveMode; | |
| 540 } DDHAL_SETEXCLUSIVEMODEDATA; | |
| 541 | |
| 542 /* surfaces */ | |
| 543 typedef struct _DDHAL_DESTROYSURFACEDATA { | |
| 544 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 545 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; | |
| 546 HRESULT ddRVal; | |
| 547 LPDDHALSURFCB_DESTROYSURFACE DestroySurface; | |
| 548 } DDHAL_DESTROYSURFACEDATA; | |
| 549 | |
| 550 typedef struct _DDHAL_FLIPDATA { | |
| 551 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 552 LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurr; | |
| 553 LPDDRAWI_DDRAWSURFACE_LCL lpSurfTarg; | |
| 554 DWORD dwFlags; | |
| 555 HRESULT ddRVal; | |
| 556 LPDDHALSURFCB_FLIP Flip; | |
| 557 LPDDRAWI_DDRAWSURFACE_LCL lpSurfCurrLeft; | |
| 558 LPDDRAWI_DDRAWSURFACE_LCL lpSurfTargLeft; | |
| 559 } DDHAL_FLIPDATA; | |
| 560 | |
| 561 typedef struct _DDHAL_LOCKDATA { | |
| 562 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 563 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; | |
| 564 DWORD bHasRect; | |
| 565 RECTL rArea; | |
| 566 LPVOID lpSurfData; | |
| 567 HRESULT ddRVal; | |
| 568 LPDDHALSURFCB_LOCK Lock; | |
| 569 DWORD dwFlags; | |
| 570 } DDHAL_LOCKDATA; | |
| 571 | |
| 572 typedef struct _DDHAL_UNLOCKDATA { | |
| 573 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 574 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; | |
| 575 HRESULT ddRVal; | |
| 576 LPDDHALSURFCB_UNLOCK Unlock; | |
| 577 } DDHAL_UNLOCKDATA; | |
| 578 | |
| 579 typedef struct _DDHAL_BLTDATA { | |
| 580 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 581 LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface; | |
| 582 RECTL rDest; | |
| 583 LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface; | |
| 584 RECTL rSrc; | |
| 585 DWORD dwFlags; | |
| 586 DWORD dwROPFlags; | |
| 587 DDBLTFX bltFX; | |
| 588 HRESULT ddRVal; | |
| 589 LPDDHALSURFCB_BLT Blt; | |
| 590 BOOL IsClipped; | |
| 591 RECTL rOrigDest; | |
| 592 RECTL rOrigSrc; | |
| 593 DWORD dwRectCnt; | |
| 594 LPRECT prDestRects; | |
| 595 } DDHAL_BLTDATA; | |
| 596 | |
| 597 typedef struct _DDHAL_SETPALETTEDATA { | |
| 598 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 599 LPDDRAWI_DDRAWSURFACE_LCL lpDDSurface; | |
| 600 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; | |
| 601 HRESULT ddRVal; | |
| 602 LPDDHALSURFCB_SETPALETTE SetPalette; | |
| 603 BOOL Attach; | |
| 604 } DDHAL_SETPALETTEDATA; | |
| 605 | |
| 606 /* palettes */ | |
| 607 typedef struct _DDHAL_DESTROYPALETTEDATA { | |
| 608 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 609 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; | |
| 610 HRESULT ddRVal; | |
| 611 LPDDHALPALCB_DESTROYPALETTE DestroyPalette; | |
| 612 } DDHAL_DESTROYPALETTEDATA; | |
| 613 | |
| 614 typedef struct _DDHAL_SETENTRIESDATA { | |
| 615 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 616 LPDDRAWI_DDRAWPALETTE_GBL lpDDPalette; | |
| 617 DWORD dwBase; | |
| 618 DWORD dwNumEntries; | |
| 619 LPPALETTEENTRY lpEntries; | |
| 620 HRESULT ddRVal; | |
| 621 LPDDHALPALCB_SETENTRIES SetEntries; | |
| 622 } DDHAL_SETENTRIESDATA; | |
| 623 | |
| 624 typedef struct _DDHAL_GETDRIVERINFODATA { | |
| 625 DWORD dwSize; | |
| 626 DWORD dwFlags; | |
| 627 GUID guidInfo; | |
| 628 DWORD dwExpectedSize; | |
| 629 LPVOID lpvData; | |
| 630 DWORD dwActualSize; | |
| 631 HRESULT ddRVal; | |
| 632 ULONG_PTR dwContext; | |
| 633 } DDHAL_GETDRIVERINFODATA; | |
| 634 | |
| 635 /***************************************************************************** | |
| 636 * high-level ddraw implementation structures | |
| 637 */ | |
| 638 typedef struct _IUNKNOWN_LIST { | |
| 639 struct _IUNKNOWN_LIST * lpLink; | |
| 640 LPGUID lpGuid; | |
| 641 IUnknown * lpIUnknown; | |
| 642 } IUNKNOWN_LIST,*LPIUNKNOWN_LIST; | |
| 643 | |
| 644 typedef struct _PROCESS_LIST { | |
| 645 struct _PROCESS_LIST * lpLink; | |
| 646 DWORD dwProcessId; | |
| 647 DWORD dwRefCnt; | |
| 648 DWORD dwAlphaDepth; | |
| 649 DWORD dwZDepth; | |
| 650 } PROCESS_LIST,*LPPROCESS_LIST; | |
| 651 | |
| 652 typedef struct _ATTACHLIST { | |
| 653 DWORD dwFlags; | |
| 654 struct _ATTACHLIST * lpLink; | |
| 655 LPDDRAWI_DDRAWSURFACE_LCL lpAttached; | |
| 656 LPDDRAWI_DDRAWSURFACE_INT lpIAttached; | |
| 657 } ATTACHLIST,*LPATTACHLIST; | |
| 658 | |
| 659 #define DDAL_IMPLICIT 0x00000001 | |
| 660 | |
| 661 typedef struct _ACCESSRECTLIST { | |
| 662 struct _ACCESSRECTLIST * lpLink; | |
| 663 RECT rDest; | |
| 664 LPDDRAWI_DIRECTDRAW_LCL lpOwner; | |
| 665 LPVOID lpSurfaceData; | |
| 666 DWORD dwFlags; | |
| 667 LPHEAPALIASINFO lpHeapAliasInfo; | |
| 668 } ACCESSRECTLIST,*LPACCESSRECTLIST; | |
| 669 | |
| 670 #define ACCESSRECT_VRAMSTYLE 0x00000001 | |
| 671 #define ACCESSRECT_NOTHOLDINGWIN16LOCK 0x00000002 | |
| 672 #define ACCESSRECT_BROKEN 0x00000004 | |
| 673 | |
| 674 typedef struct _DBLNODE { | |
| 675 struct _DBLNODE * next; | |
| 676 struct _DBLNODE * prev; | |
| 677 LPDDRAWI_DDRAWSURFACE_LCL object; | |
| 678 LPDDRAWI_DDRAWSURFACE_INT object_int; | |
| 679 } DBLNODE,*LPDBLNODE; | |
| 680 | |
| 681 typedef struct _DDRAWI_DIRECTDRAW_INT { | |
| 682 LPVOID lpVtbl; | |
| 683 LPDDRAWI_DIRECTDRAW_LCL lpLcl; | |
| 684 LPDDRAWI_DIRECTDRAW_INT lpLink; | |
| 685 DWORD dwIntRefCnt; | |
| 686 } DDRAWI_DIRECTDRAW_INT; | |
| 687 | |
| 688 typedef struct _DDRAWI_DIRECTDRAW_LCL { | |
| 689 DWORD lpDDMore; | |
| 690 LPDDRAWI_DIRECTDRAW_GBL lpGbl; | |
| 691 DWORD dwUnused0; | |
| 692 DWORD dwLocalFlags; | |
| 693 DWORD dwLocalRefCnt; | |
| 694 DWORD dwProcessId; | |
| 695 IUnknown * pUnkOuter; | |
| 696 DWORD dwObsolete1; | |
| 697 ULONG_PTR hWnd; | |
| 698 ULONG_PTR hDC; | |
| 699 DWORD dwErrorMode; | |
| 700 LPDDRAWI_DDRAWSURFACE_INT lpPrimary; | |
| 701 LPDDRAWI_DDRAWSURFACE_INT lpCB; | |
| 702 DWORD dwPreferredMode; | |
| 703 /* DirectX 2 */ | |
| 704 HINSTANCE hD3DInstance; | |
| 705 IUnknown * pD3DIUnknown; | |
| 706 LPDDHAL_CALLBACKS lpDDCB; | |
| 707 ULONG_PTR hDDVxd; | |
| 708 /* DirectX 5.0 */ | |
| 709 DWORD dwAppHackFlags; | |
| 710 /* DirectX 5.0A */ | |
| 711 ULONG_PTR hFocusWnd; | |
| 712 DWORD dwHotTracking; | |
| 713 DWORD dwIMEState; | |
| 714 /* DirectX 6.0 */ | |
| 715 ULONG_PTR hWndPopup; | |
| 716 ULONG_PTR hDD; | |
| 717 ULONG_PTR hGammaCalibrator; | |
| 718 LPDDGAMMACALIBRATORPROC lpGammaCalibrator; | |
| 719 } DDRAWI_DIRECTDRAW_LCL; | |
| 720 | |
| 721 #define DDRAWILCL_HASEXCLUSIVEMODE 0x00000001 | |
| 722 #define DDRAWILCL_ISFULLSCREEN 0x00000002 | |
| 723 #define DDRAWILCL_SETCOOPCALLED 0x00000004 | |
| 724 #define DDRAWILCL_ACTIVEYES 0x00000008 | |
| 725 #define DDRAWILCL_ACTIVENO 0x00000010 | |
| 726 #define DDRAWILCL_HOOKEDHWND 0x00000020 | |
| 727 #define DDRAWILCL_ALLOWMODEX 0x00000040 | |
| 728 #define DDRAWILCL_V1SCLBEHAVIOUR 0x00000080 | |
| 729 #define DDRAWILCL_MODEHASBEENCHANGED 0x00000100 | |
| 730 #define DDRAWILCL_CREATEDWINDOW 0x00000200 | |
| 731 #define DDRAWILCL_DIRTYDC 0x00000400 | |
| 732 #define DDRAWILCL_DISABLEINACTIVATE 0x00000800 | |
| 733 #define DDRAWILCL_CURSORCLIPPED 0x00001000 | |
| 734 #define DDRAWILCL_EXPLICITMONITOR 0x00002000 | |
| 735 #define DDRAWILCL_MULTITHREADED 0x00004000 | |
| 736 #define DDRAWILCL_FPUSETUP 0x00008000 | |
| 737 #define DDRAWILCL_POWEREDDOWN 0x00010000 | |
| 738 #define DDRAWILCL_DIRECTDRAW7 0x00020000 | |
| 739 #define DDRAWILCL_ATTEMPTEDD3DCONTEXT 0x00040000 | |
| 740 #define DDRAWILCL_FPUPRESERVE 0x00080000 | |
| 741 | |
| 742 typedef struct _DDRAWI_DIRECTDRAW_GBL { | |
| 743 DWORD dwRefCnt; | |
| 744 DWORD dwFlags; | |
| 745 FLATPTR fpPrimaryOrig; | |
| 746 DDCORECAPS ddCaps; | |
| 747 DWORD dwInternal1; | |
| 748 DWORD dwUnused1[9]; | |
| 749 LPDDHAL_CALLBACKS lpDDCBtmp; | |
| 750 LPDDRAWI_DDRAWSURFACE_INT dsList; | |
| 751 LPDDRAWI_DDRAWPALETTE_INT palList; | |
| 752 LPDDRAWI_DDRAWCLIPPER_INT clipperList; | |
| 753 LPDDRAWI_DIRECTDRAW_GBL lp16DD; | |
| 754 DWORD dwMaxOverlays; | |
| 755 DWORD dwCurrOverlays; | |
| 756 DWORD dwMonitorFrequency; | |
| 757 DDCORECAPS ddHELCaps; | |
| 758 DWORD dwUnused2[50]; | |
| 759 DDCOLORKEY ddckCKDestOverlay; | |
| 760 DDCOLORKEY ddckCKSrcOverlay; | |
| 761 VIDMEMINFO vmiData; | |
| 762 LPVOID lpDriverHandle; | |
| 763 LPDDRAWI_DIRECTDRAW_LCL lpExclusiveOwner; | |
| 764 DWORD dwModeIndex; | |
| 765 DWORD dwModeIndexOrig; | |
| 766 DWORD dwNumFourCC; | |
| 767 LPDWORD lpdwFourCC; | |
| 768 DWORD dwNumModes; | |
| 769 LPDDHALMODEINFO lpModeInfo; | |
| 770 PROCESS_LIST plProcessList; | |
| 771 DWORD dwSurfaceLockCount; | |
| 772 DWORD dwAliasedLockCnt; | |
| 773 ULONG_PTR dwReserved3; | |
| 774 ULONG_PTR hDD; | |
| 775 char cObsolete[12]; | |
| 776 DWORD dwReserved1; | |
| 777 DWORD dwReserved2; | |
| 778 DBLNODE dbnOverlayRoot; | |
| 779 volatile LPWORD lpwPDeviceFlags; | |
| 780 DWORD dwPDevice; | |
| 781 DWORD dwWin16LockCnt; | |
| 782 DWORD dwUnused3; | |
| 783 DWORD hInstance; | |
| 784 DWORD dwEvent16; | |
| 785 DWORD dwSaveNumModes; | |
| 786 /* DirectX 2 */ | |
| 787 ULONG_PTR lpD3DGlobalDriverData; | |
| 788 ULONG_PTR lpD3DHALCallbacks; | |
| 789 DDCORECAPS ddBothCaps; | |
| 790 /* DirectX 5.0 */ | |
| 791 LPDDVIDEOPORTCAPS lpDDVideoPortCaps; | |
| 792 LPDDRAWI_DDVIDEOPORT_INT dvpList; | |
| 793 ULONG_PTR lpD3DHALCallbacks2; | |
| 794 RECT rectDevice; | |
| 795 DWORD cMonitors; | |
| 796 LPVOID gpbmiSrc; | |
| 797 LPVOID gpbmiDest; | |
| 798 LPHEAPALIASINFO phaiHeapAliases; | |
| 799 ULONG_PTR hKernelHandle; | |
| 800 ULONG_PTR pfnNotifyProc; | |
| 801 LPDDKERNELCAPS lpDDKernelCaps; | |
| 802 LPDDNONLOCALVIDMEMCAPS lpddNLVCaps; | |
| 803 LPDDNONLOCALVIDMEMCAPS lpddNLVHELCaps; | |
| 804 LPDDNONLOCALVIDMEMCAPS lpddNLVBothCaps; | |
| 805 ULONG_PTR lpD3DExtendedCaps; | |
| 806 /* DirectX 5.0A */ | |
| 807 DWORD dwDOSBoxEvent; | |
| 808 RECT rectDesktop; | |
| 809 char cDriverName[MAX_DRIVER_NAME]; | |
| 810 /* DirectX 6.0 */ | |
| 811 ULONG_PTR lpD3DHALCallbacks3; | |
| 812 DWORD dwNumZPixelFormats; | |
| 813 LPDDPIXELFORMAT lpZPixelFormats; | |
| 814 LPDDRAWI_DDMOTIONCOMP_INT mcList; | |
| 815 DWORD hDDVxd; | |
| 816 DDSCAPSEX ddsCapsMore; | |
| 817 } DDRAWI_DIRECTDRAW_GBL; | |
| 818 | |
| 819 #define DDRAWI_VIRTUALDESKTOP 0x00000008 | |
| 820 #define DDRAWI_MODEX 0x00000010 | |
| 821 #define DDRAWI_DISPLAYDRV 0x00000020 | |
| 822 #define DDRAWI_FULLSCREEN 0x00000040 | |
| 823 #define DDRAWI_MODECHANGED 0x00000080 | |
| 824 #define DDRAWI_NOHARDWARE 0x00000100 | |
| 825 #define DDRAWI_PALETTEINIT 0x00000200 | |
| 826 #define DDRAWI_NOEMULATION 0x00000400 | |
| 827 /* more... */ | |
| 828 | |
| 829 /* surfaces */ | |
| 830 typedef struct _DDRAWI_DDRAWSURFACE_INT { | |
| 831 LPVOID lpVtbl; | |
| 832 LPDDRAWI_DDRAWSURFACE_LCL lpLcl; | |
| 833 LPDDRAWI_DDRAWSURFACE_INT lpLink; | |
| 834 DWORD dwIntRefCnt; | |
| 835 } DDRAWI_DDRAWSURFACE_INT; | |
| 836 | |
| 837 typedef struct _DDRAWI_DDRAWSURFACE_GBL { | |
| 838 DWORD dwRefCnt; | |
| 839 DWORD dwGlobalFlags; | |
| 840 union { | |
| 841 LPACCESSRECTLIST lpRectList; | |
| 842 DWORD dwBlockSizeY; | |
| 843 } DUMMYUNIONNAME1; | |
| 844 union { | |
| 845 LPVMEMHEAP lpVidMemHeap; | |
| 846 DWORD dwBlockSizeX; | |
| 847 } DUMMYUNIONNAME2; | |
| 848 union { | |
| 849 LPDDRAWI_DIRECTDRAW_GBL lpDD; | |
| 850 LPVOID lpDDHandle; | |
| 851 } DUMMYUNIONNAME3; | |
| 852 FLATPTR fpVidMem; | |
| 853 union { | |
| 854 LONG lPitch; | |
| 855 DWORD dwLinearSize; | |
| 856 } DUMMYUNIONNAME4; | |
| 857 WORD wHeight; | |
| 858 WORD wWidth; | |
| 859 DWORD dwUsageCount; | |
| 860 ULONG_PTR dwReserved1; /* for display driver use */ | |
| 861 /* optional (defaults to primary surface pixelformat) */ | |
| 862 DDPIXELFORMAT ddpfSurface; | |
| 863 } DDRAWI_DDRAWSURFACE_GBL; | |
| 864 | |
| 865 #define DDRAWISURFGBL_MEMFREE 0x00000001 | |
| 866 #define DDRAWISURFGBL_SYSMEMREQUESTED 0x00000002 | |
| 867 #define DDRAWISURFGBL_ISGDISURFACE 0x00000004 | |
| 868 #define DDRAWISURFGBL_SOFTWAREAUTOFLIP 0x00000008 | |
| 869 #define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK 0x00000010 | |
| 870 #define DDRAWISURFGBL_LOCKVRAMSTYLE 0x00000020 | |
| 871 #define DDRAWISURFGBL_LOCKBROKEN 0x00000040 | |
| 872 #define DDRAWISURFGBL_IMPLICITHANDLE 0x00000080 | |
| 873 #define DDRAWISURFGBL_ISCLIENTMEM 0x00000100 | |
| 874 #define DDRAWISURFGBL_HARDWAREOPSOURCE 0x00000200 | |
| 875 #define DDRAWISURFGBL_HARDWAREOPDEST 0x00000400 | |
| 876 #define DDRAWISURFGBL_HARDWAREOPSTARTED 0x00000600 | |
| 877 #define DDRAWISURFGBL_VPORTINTERLEAVED 0x00000800 | |
| 878 #define DDRAWISURFGBL_VPORTDATA 0x00001000 | |
| 879 #define DDRAWISURFGBL_LATEALLOCATELINEAR 0x00002000 | |
| 880 #define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER 0x00004000 | |
| 881 #define DDRAWISURFGBL_FASTLOCKHELD 0x00008000 | |
| 882 #define DDRAWISURFGBL_READONLYLOCKHELD 0x00010000 | |
| 883 | |
| 884 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE { | |
| 885 DWORD dwSize; | |
| 886 union { | |
| 887 DWORD dwPhysicalPageTable; | |
| 888 FLATPTR fpPhysicalVidMem; | |
| 889 } DUMMYUNIONNAME1; | |
| 890 LPDWORD pPageTable; | |
| 891 DWORD cPages; | |
| 892 ULONG_PTR dwSavedDCContext; | |
| 893 FLATPTR fpAliasedVidMem; | |
| 894 ULONG_PTR dwDriverReserved; | |
| 895 ULONG_PTR dwHELReserved; | |
| 896 DWORD cPageUnlocks; | |
| 897 ULONG_PTR hKernelSurface; | |
| 898 DWORD dwKernelRefCnt; | |
| 899 LPDDCOLORCONTROL lpColorInfo; | |
| 900 FLATPTR fpNTAlias; | |
| 901 DWORD dwContentsStamp; | |
| 902 LPVOID lpvUnswappedDriverReserved; | |
| 903 LPVOID lpDDRAWReserved2; | |
| 904 DWORD dwDDRAWReserved1; | |
| 905 DWORD dwDDRAWReserved2; | |
| 906 FLATPTR fpAliasOfVidMem; | |
| 907 } DDRAWI_DDRAWSURFACE_GBL_MORE; | |
| 908 | |
| 909 /* the MS version of this macro was somewhat obfuscated and unreadable | |
| 910 * (possibly because of mediocre MS coders)... so I simplified it... | |
| 911 * (and so I commit no copyright violations either, hah) */ | |
| 912 #define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \ | |
| 913 (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1)) | |
| 914 | |
| 915 typedef struct _DDRAWI_DDRAWSURFACE_MORE { | |
| 916 DWORD dwSize; | |
| 917 IUNKNOWN_LIST * lpIUnknowns; | |
| 918 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; | |
| 919 DWORD dwPageLockCount; | |
| 920 DWORD dwBytesAllocated; | |
| 921 LPDDRAWI_DIRECTDRAW_INT lpDD_int; | |
| 922 DWORD dwMipMapCount; | |
| 923 LPDDRAWI_DDRAWCLIPPER_INT lpDDIClipper; | |
| 924 /* DirectX 5.0 */ | |
| 925 LPHEAPALIASINFO lpHeapAliasInfo; | |
| 926 DWORD dwOverlayFlags; | |
| 927 VOID *rgjunc; | |
| 928 LPDDRAWI_DDVIDEOPORT_LCL lpVideoPort; | |
| 929 LPDDOVERLAYFX lpddOverlayFX; | |
| 930 DDSCAPSEX ddsCapsEx; | |
| 931 DWORD dwTextureStage; | |
| 932 LPVOID lpDDRAWReserved; | |
| 933 LPVOID lpDDRAWReserved2; | |
| 934 LPVOID lpDDrawReserved3; | |
| 935 DWORD dwDDrawReserved4; | |
| 936 LPVOID lpDDrawReserved5; | |
| 937 LPDWORD lpGammaRamp; | |
| 938 LPDWORD lpOriginalGammaRamp; | |
| 939 LPVOID lpDDrawReserved6; | |
| 940 DWORD dwSurfaceHandle; | |
| 941 DWORD qwDDrawReserved8[2]; | |
| 942 LPVOID lpDDrawReserved9; | |
| 943 DWORD cSurfaces; | |
| 944 LPDDSURFACEDESC2 pCreatedDDSurfaceDesc2; | |
| 945 LPDDRAWI_DDRAWSURFACE_LCL *slist; | |
| 946 DWORD dwFVF; | |
| 947 LPVOID lpVB; | |
| 948 } DDRAWI_DDRAWSURFACE_MORE; | |
| 949 | |
| 950 typedef struct _DDRAWI_DDRAWSURFACE_LCL { | |
| 951 LPDDRAWI_DDRAWSURFACE_MORE lpSurfMore; | |
| 952 LPDDRAWI_DDRAWSURFACE_GBL lpGbl; | |
| 953 ULONG_PTR hDDSurface; | |
| 954 LPATTACHLIST lpAttachList; | |
| 955 LPATTACHLIST lpAttachListFrom; | |
| 956 DWORD dwLocalRefCnt; | |
| 957 DWORD dwProcessId; | |
| 958 DWORD dwFlags; | |
| 959 DDSCAPS ddsCaps; | |
| 960 LPDDRAWI_DDRAWPALETTE_INT lpDDPalette; | |
| 961 LPDDRAWI_DDRAWCLIPPER_LCL lpDDClipper; | |
| 962 DWORD dwModeCreatedIn; | |
| 963 DWORD dwBackBufferCount; | |
| 964 DDCOLORKEY ddckCKDestBlt; | |
| 965 DDCOLORKEY ddckCKSrcBlt; | |
| 966 ULONG_PTR hDC; | |
| 967 ULONG_PTR dwReserved1; /* for display driver use */ | |
| 968 /* overlays only */ | |
| 969 DDCOLORKEY ddckCKSrcOverlay; | |
| 970 DDCOLORKEY ddckCKDestOverlay; | |
| 971 LPDDRAWI_DDRAWSURFACE_INT lpSurfaceOverlaying; | |
| 972 DBLNODE dbnOverlayNode; | |
| 973 RECT rcOverlaySrc; | |
| 974 RECT rcOverlayDest; | |
| 975 DWORD dwClrXparent; | |
| 976 DWORD dwAlpha; | |
| 977 LONG lOverlayX; | |
| 978 LONG lOverlayY; | |
| 979 } DDRAWI_DDRAWSURFACE_LCL; | |
| 980 | |
| 981 #define DDRAWISURF_ATTACHED 0x00000001 | |
| 982 #define DDRAWISURF_IMPLICITCREATE 0x00000002 | |
| 983 #define DDRAWISURF_ISFREE 0x00000004 | |
| 984 #define DDRAWISURF_ATTACHED_FROM 0x00000008 | |
| 985 #define DDRAWISURF_IMPLICITROOT 0x00000010 | |
| 986 #define DDRAWISURF_PARTOFPRIMARYCHAIN 0x00000020 | |
| 987 #define DDRAWISURF_DATAISALIASED 0x00000040 | |
| 988 #define DDRAWISURF_HASDC 0x00000080 | |
| 989 #define DDRAWISURF_HASCKEYDESTOVERLAY 0x00000100 | |
| 990 #define DDRAWISURF_HASCKEYDESTBLT 0x00000200 | |
| 991 #define DDRAWISURF_HASCKEYSRCOVERLAY 0x00000400 | |
| 992 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800 | |
| 993 #define DDRAWISURF_LOCKEXCLUDEDCURSOR 0x00001000 | |
| 994 #define DDRAWISURF_HASPIXELFORMAT 0x00002000 | |
| 995 #define DDRAWISURF_HASOVERLAYDATA 0x00004000 | |
| 996 #define DDRAWISURF_SETGAMMA 0x00008000 | |
| 997 /* more... */ | |
| 998 #define DDRAWISURF_INVALID 0x10000000 | |
| 999 | |
| 1000 /* palettes */ | |
| 1001 typedef struct _DDRAWI_DDRAWPALETTE_INT { | |
| 1002 LPVOID lpVtbl; | |
| 1003 LPDDRAWI_DDRAWPALETTE_LCL lpLcl; | |
| 1004 LPDDRAWI_DDRAWPALETTE_INT lpLink; | |
| 1005 DWORD dwIntRefCnt; | |
| 1006 } DDRAWI_DDRAWPALETTE_INT; | |
| 1007 | |
| 1008 typedef struct _DDRAWI_DDRAWPALETTE_GBL { | |
| 1009 DWORD dwRefCnt; | |
| 1010 DWORD dwFlags; | |
| 1011 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; | |
| 1012 DWORD dwProcessId; | |
| 1013 LPPALETTEENTRY lpColorTable; | |
| 1014 union { | |
| 1015 ULONG_PTR dwReserved1; /* for display driver use */ | |
| 1016 HPALETTE hHELGDIPalette; | |
| 1017 } DUMMYUNIONNAME1; | |
| 1018 /* DirectX 5.0 */ | |
| 1019 DWORD dwDriverReserved; | |
| 1020 DWORD dwContentsStamp; | |
| 1021 /* DirectX 6.0 */ | |
| 1022 DWORD dwSaveStamp; | |
| 1023 /* DirectX 7.0 */ | |
| 1024 DWORD dwHandle; | |
| 1025 } DDRAWI_DDRAWPALETTE_GBL; | |
| 1026 | |
| 1027 #define DDRAWIPAL_256 0x00000001 | |
| 1028 #define DDRAWIPAL_16 0x00000002 | |
| 1029 #define DDRAWIPAL_GDI 0x00000004 | |
| 1030 #define DDRAWIPAL_STORED_8 0x00000008 | |
| 1031 #define DDRAWIPAL_STORED_16 0x00000010 | |
| 1032 #define DDRAWIPAL_STORED_24 0x00000020 | |
| 1033 #define DDRAWIPAL_EXCLUSIVE 0x00000040 | |
| 1034 #define DDRAWIPAL_INHEL 0x00000080 | |
| 1035 #define DDRAWIPAL_DIRTY 0x00000100 | |
| 1036 #define DDRAWIPAL_ALLOW256 0x00000200 | |
| 1037 #define DDRAWIPAL_4 0x00000400 | |
| 1038 #define DDRAWIPAL_2 0x00000800 | |
| 1039 #define DDRAWIPAL_STORED_8INDEX 0x00001000 | |
| 1040 #define DDRAWIPAL_ALPHA 0x00002000 | |
| 1041 | |
| 1042 typedef struct _DDRAWI_DDRAWPALETTE_LCL { | |
| 1043 DWORD lpPalMore; | |
| 1044 LPDDRAWI_DDRAWPALETTE_GBL lpGbl; | |
| 1045 ULONG_PTR dwUnused0; | |
| 1046 DWORD dwLocalRefCnt; | |
| 1047 IUnknown * pUnkOuter; | |
| 1048 LPDDRAWI_DIRECTDRAW_LCL lpDD_lcl; | |
| 1049 ULONG_PTR dwReserved1; | |
| 1050 /* DirectX 6.0 */ | |
| 1051 ULONG_PTR dwDDRAWReserved1; | |
| 1052 ULONG_PTR dwDDRAWReserved2; | |
| 1053 ULONG_PTR dwDDRAWReserved3; | |
| 1054 } DDRAWI_DDRAWPALETTE_LCL; | |
| 1055 | |
| 1056 #ifdef __cplusplus | |
| 1057 } /* extern "C" */ | |
| 1058 #endif | |
| 1059 | |
| 1060 #endif /* __WINE_DDRAWI_H */ |
