From abdfa2a93bd821c773f373c3baad04f23df458ad Mon Sep 17 00:00:00 2001 From: Maarten Bosma Date: Tue, 1 Nov 2005 11:32:35 +0000 Subject: [PATCH] Some cosmetic changes like replacing tabs with spaces and grouping all stubs together. svn path=/trunk/; revision=18925 --- reactos/lib/ddraw/hal/ddraw_hal.c | 757 ++++++++++++++-------------- reactos/lib/ddraw/main/ddraw_main.c | 493 +++++++++--------- 2 files changed, 610 insertions(+), 640 deletions(-) diff --git a/reactos/lib/ddraw/hal/ddraw_hal.c b/reactos/lib/ddraw/hal/ddraw_hal.c index 995fad0eeff..9fe4bbca9be 100644 --- a/reactos/lib/ddraw/hal/ddraw_hal.c +++ b/reactos/lib/ddraw/hal/ddraw_hal.c @@ -15,317 +15,296 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface) { IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - /* point to it self */ - This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal; + /* point to it self */ + This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal; - /* get the object */ - if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc)) - return DDERR_INVALIDPARAMS; + /* get the object */ + if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc)) + return DDERR_INVALIDPARAMS; - - /* alloc all the space */ - This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDHAL_CALLBACKS)); + + /* alloc all the space */ + This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDHAL_CALLBACKS)); - This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, - sizeof(D3DHAL_CALLBACKS)); + This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, + sizeof(D3DHAL_CALLBACKS)); - This->DirectDrawGlobal.lpD3DGlobalDriverData = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(D3DHAL_GLOBALDRIVERDATA)); - - /* Fill in some info */ - This->HalInfo.lpD3DGlobalDriverData = This->DirectDrawGlobal.lpD3DGlobalDriverData; - This->HalInfo.lpD3DHALCallbacks = This->DirectDrawGlobal.lpD3DHALCallbacks; - This->HalInfo.lpDDCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDD; - This->HalInfo.lpDDExeBufCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf; - This->HalInfo.lpDDPaletteCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette; - This->HalInfo.lpDDSurfaceCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface; - - /* query all kinds of infos from the driver */ - if(!DdQueryDirectDrawObject ( - &This->DirectDrawGlobal, - &This->HalInfo, - This->HalInfo.lpDDCallbacks, - This->HalInfo.lpDDSurfaceCallbacks, - This->HalInfo.lpDDPaletteCallbacks, - (LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks, - (LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData, - This->HalInfo.lpDDExeBufCallbacks, - NULL, - NULL, - NULL )) - { - return DD_FALSE; - } - - This->HalInfo.vmiData.pvmList = (LPVIDMEM) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps); + This->DirectDrawGlobal.lpD3DGlobalDriverData = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(D3DHAL_GLOBALDRIVERDATA)); + + /* Fill in some info */ + This->HalInfo.lpD3DGlobalDriverData = This->DirectDrawGlobal.lpD3DGlobalDriverData; + This->HalInfo.lpD3DHALCallbacks = This->DirectDrawGlobal.lpD3DHALCallbacks; + This->HalInfo.lpDDCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDD; + This->HalInfo.lpDDExeBufCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf; + This->HalInfo.lpDDPaletteCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette; + This->HalInfo.lpDDSurfaceCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface; + + /* query all kinds of infos from the driver */ + if(!DdQueryDirectDrawObject ( + &This->DirectDrawGlobal, + &This->HalInfo, + This->HalInfo.lpDDCallbacks, + This->HalInfo.lpDDSurfaceCallbacks, + This->HalInfo.lpDDPaletteCallbacks, + (LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks, + (LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData, + This->HalInfo.lpDDExeBufCallbacks, + NULL, + NULL, + NULL )) + { + return DD_FALSE; + } + + This->HalInfo.vmiData.pvmList = (LPVIDMEM) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps); - This->DirectDrawGlobal.lpdwFourCC = (DWORD *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes); - ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats = - (LPDDSURFACEDESC) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC) * - ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->dwNumTextureFormats); + This->DirectDrawGlobal.lpdwFourCC = (DWORD *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes); + ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats = + (LPDDSURFACEDESC) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC) * + ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->dwNumTextureFormats); - if(!DdQueryDirectDrawObject ( - &This->DirectDrawGlobal, - &This->HalInfo, - This->HalInfo.lpDDCallbacks, - This->HalInfo.lpDDSurfaceCallbacks, - This->HalInfo.lpDDPaletteCallbacks, - (LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks, - (LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData, - This->HalInfo.lpDDExeBufCallbacks, - ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats, - This->DirectDrawGlobal.lpdwFourCC, - This->HalInfo.vmiData.pvmList - )) - { - return DD_FALSE; - } - - /* Copy HalInfo to DirectDrawGlobal (Not complete)*/ - - RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,sizeof(VIDMEMINFO)); - RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeof(DDCORECAPS)); - This->DirectDrawGlobal.dwMonitorFrequency = This->HalInfo.dwMonitorFrequency; + if(!DdQueryDirectDrawObject ( + &This->DirectDrawGlobal, + &This->HalInfo, + This->HalInfo.lpDDCallbacks, + This->HalInfo.lpDDSurfaceCallbacks, + This->HalInfo.lpDDPaletteCallbacks, + (LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks, + (LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData, + This->HalInfo.lpDDExeBufCallbacks, + ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats, + This->DirectDrawGlobal.lpdwFourCC, + This->HalInfo.vmiData.pvmList + )) + { + return DD_FALSE; + } + + /* Copy HalInfo to DirectDrawGlobal (Not complete)*/ + RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,sizeof(VIDMEMINFO)); + RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeof(DDCORECAPS)); + This->DirectDrawGlobal.dwMonitorFrequency = This->HalInfo.dwMonitorFrequency; This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex; This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes; This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo; - - /* Unsure which of these two for lpPDevice + /* Unsure which of these two for lpPDevice This->DirectDrawGlobal.dwPDevice = This->HalInfo.lpPDevice; - This->lpDriverHandle = This->HalInfo.lpPDevice; - */ - + This->lpDriverHandle = This->HalInfo.lpPDevice; + */ This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance; + RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf, + &This->HalInfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS)); - RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,&This->HalInfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS)); + /************************************************************************/ + /* Set up the rest of the callbacks all callbacks we get back from */ + /* gdi32.dll is user mode */ + /************************************************************************/ - - - /************************************************************************/ - /* Set up the rest of the callbacks all callbacks we get back from */ - /* gdi32.dll is user mode */ - /************************************************************************/ + /* Todo add a check see if HalInfo.GetDriverInfo is supported or not */ + /* Do not trust msdn what it say about dwContext it is not in use for + windows nt, it is in use for all os, and it always pont to + DirectDrawGlobal.hDD */ - /* Todo add a check see if HalInfo.GetDriverInfo is supported or not */ + /* FIXME add all callback that have been commect out to gpl */ + /* FIXME free the memmor that being alloc when ddraw.dll exists */ + /* FIXME add check for DriverInfo if the handle or not */ - /* Do not trust msdn what it say about dwContext it is not in use for - windows nt, it is in use for all os, and it always pont to - DirectDrawGlobal.hDD */ + DDHAL_GETDRIVERINFODATA DriverInfo; + memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA)); + DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA); + DriverInfo.dwContext = This->DirectDrawGlobal.hDD; - /* FIXME add all callback that have been commect out to gpl */ - /* FIXME free the memmor that being alloc when ddraw.dll exists */ - /* FIXME add check for DriverInfo if the handle or not */ - - DDHAL_GETDRIVERINFODATA DriverInfo; - memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA)); - DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA); - DriverInfo.dwContext = This->DirectDrawGlobal.hDD; - - - /* Get ColorControlCallbacks */ - DriverInfo.guidInfo = GUID_ColorControlCallbacks; - DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDColorControl; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDCOLORCONTROLCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the GUID_D3DCallbacks callback */ - - /* Problem with include files - DDHAL_DDMISCELLANEOUSCALLBACKS misc; - DriverInfo.guidInfo = GUID_D3DCallbacks; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo);*/ - - /* Get the D3DCallbacks2 */ - This->DirectDrawGlobal.lpD3DHALCallbacks2 = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(D3DHAL_CALLBACKS2)); - DriverInfo.guidInfo = GUID_D3DCallbacks2; - DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks2; - DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the D3DCallbacks3 */ - This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(D3DHAL_CALLBACKS3)); - DriverInfo.guidInfo = GUID_D3DCallbacks3; - DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks; - DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS3); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the misc callback */ - /* Problem with include files - DriverInfo.guidInfo = GUID_D3DCaps; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); - */ - - /* Get the D3DExtendedCaps */ - - This->DirectDrawGlobal.lpD3DExtendedCaps = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(D3DHAL_D3DEXTENDEDCAPS)); - DriverInfo.guidInfo = GUID_D3DExtendedCaps; - DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpD3DExtendedCaps; - DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS); - This->HalInfo.GetDriverInfo( &DriverInfo); + /* Get ColorControlCallbacks */ + DriverInfo.guidInfo = GUID_ColorControlCallbacks; + DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDColorControl; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDCOLORCONTROLCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + /* Get the GUID_D3DCallbacks callback */ + /* Problem with include files + DDHAL_DDMISCELLANEOUSCALLBACKS misc; + DriverInfo.guidInfo = GUID_D3DCallbacks; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo);*/ + + /* Get the D3DCallbacks2 */ + This->DirectDrawGlobal.lpD3DHALCallbacks2 = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(D3DHAL_CALLBACKS2)); + DriverInfo.guidInfo = GUID_D3DCallbacks2; + DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks2; + DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2); + This->HalInfo.GetDriverInfo(&DriverInfo); - /* Get the D3DParseUnknownCommandCallback */ - /* D3dDrawPrimitives2 callback where should it be fill in - DriverInfo.guidInfo = GUID_D3DParseUnknownCommandCallback; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); + + /* Get the D3DCallbacks3 */ + This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(D3DHAL_CALLBACKS3)); + DriverInfo.guidInfo = GUID_D3DCallbacks3; + DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks; + DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS3); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the misc callback */ + /* Problem with include files + DriverInfo.guidInfo = GUID_D3DCaps; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); */ - /* Get the GetHeapAlignment */ - /* where should it be fill in - DriverInfo.guidInfo = GUID_GetHeapAlignment; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); - */ - - - /* Get the KernelCallbacks */ - DriverInfo.guidInfo = GUID_KernelCallbacks; - DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDKernel; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the KernelCaps */ - This->DirectDrawGlobal.lpDDKernelCaps = (LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDHAL_DDKERNELCALLBACKS)); - DriverInfo.guidInfo = GUID_KernelCaps; - DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpDDKernelCaps; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the MiscellaneousCallbacks */ - DriverInfo.guidInfo = GUID_MiscellaneousCallbacks; - DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the Miscellaneous2Callbacks */ - /* Not in the DDRAWI_DIRECTDRAW_GBL we map it up as private - Contain CreatesurfaceEx and other nice callbacks */ - DriverInfo.guidInfo = GUID_Miscellaneous2Callbacks; - DriverInfo.lpvData = &This->Misc2Callback; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); + /* Get the D3DExtendedCaps */ + This->DirectDrawGlobal.lpD3DExtendedCaps = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(D3DHAL_D3DEXTENDEDCAPS)); + DriverInfo.guidInfo = GUID_D3DExtendedCaps; + DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpD3DExtendedCaps; + DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS); + This->HalInfo.GetDriverInfo(&DriverInfo); - /* Get the MotionCompCallbacks */ - DriverInfo.guidInfo = GUID_MotionCompCallbacks; - DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMotionComp; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMOTIONCOMPCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - + /* Get the D3DParseUnknownCommandCallback */ + /* D3dDrawPrimitives2 callback where should it be fill in + DriverInfo.guidInfo = GUID_D3DParseUnknownCommandCallback; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); + */ + + /* Get the GetHeapAlignment */ + /* where should it be fill in + DriverInfo.guidInfo = GUID_GetHeapAlignment; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); + */ + + /* Get the KernelCallbacks */ + DriverInfo.guidInfo = GUID_KernelCallbacks; + DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDKernel; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the KernelCaps */ + This->DirectDrawGlobal.lpDDKernelCaps = (LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDHAL_DDKERNELCALLBACKS)); + DriverInfo.guidInfo = GUID_KernelCaps; + DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpDDKernelCaps; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the MiscellaneousCallbacks */ + DriverInfo.guidInfo = GUID_MiscellaneousCallbacks; + DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the Miscellaneous2Callbacks */ + /* Not in the DDRAWI_DIRECTDRAW_GBL we map it up as private + Contain CreatesurfaceEx and other nice callbacks */ + DriverInfo.guidInfo = GUID_Miscellaneous2Callbacks; + DriverInfo.lpvData = &This->Misc2Callback; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the MotionCompCallbacks */ + DriverInfo.guidInfo = GUID_MotionCompCallbacks; + DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMotionComp; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMOTIONCOMPCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); /* Get the NonLocalVidMemCaps */ - This->DirectDrawGlobal.lpddNLVCaps = (LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDNONLOCALVIDMEMCAPS)); - DriverInfo.guidInfo = GUID_NonLocalVidMemCaps; - DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpddNLVCaps; - DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS); - This->HalInfo.GetDriverInfo( &DriverInfo); - + This->DirectDrawGlobal.lpddNLVCaps = (LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDNONLOCALVIDMEMCAPS)); + DriverInfo.guidInfo = GUID_NonLocalVidMemCaps; + DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpddNLVCaps; + DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS); + This->HalInfo.GetDriverInfo(&DriverInfo); + /* Get the NTCallbacks */ - /* Fill in wher - DriverInfo.guidInfo = GUID_NTCallbacks; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); - */ - - /* Get the NTPrivateDriverCaps */ - /* Fill in wher - DriverInfo.guidInfo = GUID_NTPrivateDriverCaps; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); - */ - - /* Get the UpdateNonLocalHeap */ - /* Fill in where - DriverInfo.guidInfo = GUID_UpdateNonLocalHeap; - DriverInfo.lpvData = &misc; - DriverInfo.dwExpectedSize = sizeof(); - This->HalInfo.GetDriverInfo( &DriverInfo); - */ - - /* Get the VideoPortCallbacks */ - DriverInfo.guidInfo = GUID_VideoPortCallbacks; - DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDVideoPort; - DriverInfo.dwExpectedSize = sizeof(DDHAL_DDVIDEOPORTCALLBACKS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the VideoPortCaps */ - This->DirectDrawGlobal.lpDDVideoPortCaps = (LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDVIDEOPORTCAPS)); - DriverInfo.guidInfo = GUID_VideoPortCaps; - DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpDDVideoPortCaps; - DriverInfo.dwExpectedSize = sizeof(DDVIDEOPORTCAPS); - This->HalInfo.GetDriverInfo( &DriverInfo); - - - /* Get the ZPixelFormats */ - This->DirectDrawGlobal.lpZPixelFormats = (LPDDPIXELFORMAT) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats); - DriverInfo.guidInfo = GUID_ZPixelFormats; - DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpZPixelFormats; - DriverInfo.dwExpectedSize = sizeof(DDPIXELFORMAT); - This->HalInfo.GetDriverInfo( &DriverInfo); - - /* Setup some info from the callbacks we got */ - DDHAL_GETAVAILDRIVERMEMORYDATA mem; - mem.lpDD = &This->DirectDrawGlobal; - - This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem); - - This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree; - This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal; - - /* Now all setup for HAL is done */ - return DD_OK; + /* Fill in wher + DriverInfo.guidInfo = GUID_NTCallbacks; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); + */ + + /* Get the NTPrivateDriverCaps */ + /* Fill in wher + DriverInfo.guidInfo = GUID_NTPrivateDriverCaps; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); + */ + + /* Get the UpdateNonLocalHeap */ + /* Fill in where + DriverInfo.guidInfo = GUID_UpdateNonLocalHeap; + DriverInfo.lpvData = &misc; + DriverInfo.dwExpectedSize = sizeof(); + This->HalInfo.GetDriverInfo( &DriverInfo); + */ + + /* Get the VideoPortCallbacks */ + DriverInfo.guidInfo = GUID_VideoPortCallbacks; + DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDVideoPort; + DriverInfo.dwExpectedSize = sizeof(DDHAL_DDVIDEOPORTCALLBACKS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the VideoPortCaps */ + This->DirectDrawGlobal.lpDDVideoPortCaps = (LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDVIDEOPORTCAPS)); + DriverInfo.guidInfo = GUID_VideoPortCaps; + DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpDDVideoPortCaps; + DriverInfo.dwExpectedSize = sizeof(DDVIDEOPORTCAPS); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Get the ZPixelFormats */ + This->DirectDrawGlobal.lpZPixelFormats = (LPDDPIXELFORMAT) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats); + DriverInfo.guidInfo = GUID_ZPixelFormats; + DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpZPixelFormats; + DriverInfo.dwExpectedSize = sizeof(DDPIXELFORMAT); + This->HalInfo.GetDriverInfo(&DriverInfo); + + /* Setup some info from the callbacks we got */ + DDHAL_GETAVAILDRIVERMEMORYDATA mem; + mem.lpDD = &This->DirectDrawGlobal; + This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem); + This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree; + This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal; + + /* Now all setup for HAL is done */ + return DD_OK; } HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - DDHAL_SETEXCLUSIVEMODEDATA SetExclusiveMode; + DDHAL_SETEXCLUSIVEMODEDATA SetExclusiveMode; - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE)) - { - return DDERR_NODRIVERSUPPORT; - } + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE)) + { + return DDERR_NODRIVERSUPPORT; + } - SetExclusiveMode.lpDD = &This->DirectDrawGlobal; + SetExclusiveMode.lpDD = &This->DirectDrawGlobal; SetExclusiveMode.ddRVal = DDERR_NOTPALETTIZED; - SetExclusiveMode.dwEnterExcl = This->cooperative_level; + SetExclusiveMode.dwEnterExcl = This->cooperative_level; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetExclusiveMode(&SetExclusiveMode) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetExclusiveMode(&SetExclusiveMode) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } - return SetExclusiveMode.ddRVal; + return SetExclusiveMode.ddRVal; } @@ -333,166 +312,172 @@ VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface) { IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - DdDeleteDirectDrawObject (&This->DirectDrawGlobal); + DdDeleteDirectDrawObject (&This->DirectDrawGlobal); - if(This->DirectDrawGlobal.lpDDKernelCaps) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDKernelCaps); + if(This->DirectDrawGlobal.lpDDKernelCaps) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDKernelCaps); - if(This->DirectDrawGlobal.lpddNLVCaps) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpddNLVCaps); + if(This->DirectDrawGlobal.lpddNLVCaps) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpddNLVCaps); - if(This->DirectDrawGlobal.lpDDVideoPortCaps) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDVideoPortCaps); + if(This->DirectDrawGlobal.lpDDVideoPortCaps) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDVideoPortCaps); - if(This->DirectDrawGlobal.lpdwFourCC) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpdwFourCC); + if(This->DirectDrawGlobal.lpdwFourCC) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpdwFourCC); - if(This->DirectDrawGlobal.lpZPixelFormats) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpZPixelFormats); + if(This->DirectDrawGlobal.lpZPixelFormats) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpZPixelFormats); - if(This->HalInfo.vmiData.pvmList) - HeapFree(GetProcessHeap(), 0, This->HalInfo.vmiData.pvmList); - - if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats) - HeapFree(GetProcessHeap(), 0, ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats); - - if(This->DirectDrawGlobal.lpDDCBtmp) - HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDCBtmp); - - if(This->DirectDrawGlobal.lpD3DHALCallbacks) - HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks); - - if(This->DirectDrawGlobal.lpD3DGlobalDriverData) - HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData); + if(This->HalInfo.vmiData.pvmList) + HeapFree(GetProcessHeap(), 0, This->HalInfo.vmiData.pvmList); + + if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats) + HeapFree(GetProcessHeap(), 0, ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats); + + if(This->DirectDrawGlobal.lpDDCBtmp) + HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDCBtmp); + + if(This->DirectDrawGlobal.lpD3DHALCallbacks) + HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks); + + if(This->DirectDrawGlobal.lpD3DGlobalDriverData) + HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData); } HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, - LPDWORD total, LPDWORD free) + LPDWORD total, LPDWORD free) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - DDHAL_GETAVAILDRIVERMEMORYDATA mem; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + DDHAL_GETAVAILDRIVERMEMORYDATA mem; - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)) - { - return DDERR_NODRIVERSUPPORT; - } + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)) + { + return DDERR_NODRIVERSUPPORT; + } - mem.lpDD = &This->DirectDrawGlobal; - mem.ddRVal = DDERR_NOTPALETTIZED; + mem.lpDD = &This->DirectDrawGlobal; + mem.ddRVal = DDERR_NOTPALETTIZED; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } - ddscaps->dwCaps = mem.DDSCaps.dwCaps; - ddscaps->dwCaps2 = mem.ddsCapsEx.dwCaps2; + ddscaps->dwCaps = mem.DDSCaps.dwCaps; + ddscaps->dwCaps2 = mem.ddsCapsEx.dwCaps2; ddscaps->dwCaps3 = mem.ddsCapsEx.dwCaps3; - ddscaps->dwCaps4 = mem.ddsCapsEx.dwCaps4; - *total = mem.dwTotal; - *free = mem.dwFree; - - return mem.ddRVal; + ddscaps->dwCaps4 = mem.ddsCapsEx.dwCaps4; + *total = mem.dwTotal; + *free = mem.dwFree; + + return mem.ddRVal; } HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,HANDLE h) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - DDHAL_WAITFORVERTICALBLANKDATA WaitVectorData; + DDHAL_WAITFORVERTICALBLANKDATA WaitVectorData; - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)) - { - return DDERR_NODRIVERSUPPORT; - } - - WaitVectorData.lpDD = &This->DirectDrawGlobal; - WaitVectorData.dwFlags = dwFlags; - WaitVectorData.hEvent = (DWORD)h; - WaitVectorData.ddRVal = DDERR_NOTPALETTIZED; + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)) + { + return DDERR_NODRIVERSUPPORT; + } + + WaitVectorData.lpDD = &This->DirectDrawGlobal; + WaitVectorData.dwFlags = dwFlags; + WaitVectorData.hEvent = (DWORD)h; + WaitVectorData.ddRVal = DDERR_NOTPALETTIZED; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.WaitForVerticalBlank(&WaitVectorData) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.WaitForVerticalBlank(&WaitVectorData) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } - return WaitVectorData.ddRVal; + return WaitVectorData.ddRVal; } HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; DDHAL_GETSCANLINEDATA GetScan; - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)) - { - return DDERR_NODRIVERSUPPORT; - } + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)) + { + return DDERR_NODRIVERSUPPORT; + } - GetScan.lpDD = &This->DirectDrawGlobal; + GetScan.lpDD = &This->DirectDrawGlobal; GetScan.ddRVal = DDERR_NOTPALETTIZED; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } - *lpdwScanLine = GetScan.ddRVal; - return GetScan.ddRVal; + *lpdwScanLine = GetScan.ddRVal; + return GetScan.ddRVal; } HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - DDHAL_FLIPTOGDISURFACEDATA FlipGdi; + DDHAL_FLIPTOGDISURFACEDATA FlipGdi; - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE)) - { - return DDERR_NODRIVERSUPPORT; - } + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE)) + { + return DDERR_NODRIVERSUPPORT; + } - FlipGdi.lpDD = &This->DirectDrawGlobal; + FlipGdi.lpDD = &This->DirectDrawGlobal; FlipGdi.ddRVal = DDERR_NOTPALETTIZED; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.FlipToGDISurface(&FlipGdi) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } - - /* FIXME where should FlipGdi.dwToGDI be fill in */ - return FlipGdi.ddRVal; + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.FlipToGDISurface(&FlipGdi) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } + + /* FIXME where should FlipGdi.dwToGDI be fill in */ + return FlipGdi.ddRVal; } HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, - DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) + DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) { - DDHAL_SETMODEDATA mode; - - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETMODE)) - { - return DDERR_NODRIVERSUPPORT; - } - - mode.lpDD = &This->DirectDrawGlobal; - mode.ddRVal = DDERR_NODRIVERSUPPORT; - - /* FIXME : add search for which mode.ModeIndex we should use */ - /* FIXME : fill the mode.inexcl; */ - /* FIXME : fill the mode.useRefreshRate; */ - - /* - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetMode(&mode) != DDHAL_DRIVER_HANDLED) - { - return DDERR_NODRIVERSUPPORT; - } - */ - DX_STUB; - /* return mode.ddRVal */ + DX_STUB; } + +#if 0 +HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, + DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) +{ + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETMODE)) + { + return DDERR_NODRIVERSUPPORT; + } + + DDHAL_SETMODEDATA mode; + mode.lpDD = &This->DirectDrawGlobal; + mode.ddRVal = DDERR_NODRIVERSUPPORT; + + // FIXME : add search for which mode.ModeIndex we should use + // FIXME : fill the mode.inexcl; + // FIXME : fill the mode.useRefreshRate; + + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetMode(&mode) != DDHAL_DRIVER_HANDLED) + { + return DDERR_NODRIVERSUPPORT; + } + + return mode.ddRVal +} +#endif + diff --git a/reactos/lib/ddraw/main/ddraw_main.c b/reactos/lib/ddraw/main/ddraw_main.c index 04980c5b56a..ec166a9b4d6 100644 --- a/reactos/lib/ddraw/main/ddraw_main.c +++ b/reactos/lib/ddraw/main/ddraw_main.c @@ -14,90 +14,86 @@ HRESULT WINAPI Main_DirectDraw_Initialize (LPDIRECTDRAW7 iface, LPGUID lpGUID) { IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - HRESULT ret; + HRESULT ret; - + // this if it is not called by DirectDrawCreate + if(FALSE) + return DDERR_ALREADYINITIALIZED; - // this if it is not called by DirectDrawCreate - if(FALSE) - return DDERR_ALREADYINITIALIZED; + // save the parameter + This->lpGUID = lpGUID; - // save the parameter - This->lpGUID = lpGUID; + // get the HDC + This->hdc = GetWindowDC(GetDesktopWindow()); + This->Height = GetDeviceCaps(This->hdc, VERTRES); + This->Width = GetDeviceCaps(This->hdc, HORZRES); + This->Bpp = GetDeviceCaps(This->hdc, BITSPIXEL); - // get the HDC - This->hdc = GetWindowDC(GetDesktopWindow()); - This->Height = GetDeviceCaps(This->hdc, VERTRES); - This->Width = GetDeviceCaps(This->hdc, HORZRES); - This->Bpp = GetDeviceCaps(This->hdc, BITSPIXEL); - - // call software first - if((ret = Hal_DirectDraw_Initialize (iface)) != DD_OK) - return ret; - - // ... then overwrite with hal - if((ret = Hel_DirectDraw_Initialize (iface)) != DD_OK) - return ret; - + // call software first + if((ret = Hal_DirectDraw_Initialize (iface)) != DD_OK) + return ret; + + // ... then overwrite with hal + if((ret = Hel_DirectDraw_Initialize (iface)) != DD_OK) + return ret; - return DD_OK; + return DD_OK; } HRESULT WINAPI Main_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface, HWND hwnd, DWORD cooplevel) { - // TODO: - // - create a scaner that check which driver we should get the HDC from - // for now we always asume it is the active dirver that should be use. - // - allow more Flags + // TODO: + // - create a scaner that check which driver we should get the HDC from + // for now we always asume it is the active dirver that should be use. + // - allow more Flags IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - // check the parameters - if (This->cooperative_level == cooplevel && This->window == hwnd) - return DD_OK; + // check the parameters + if (This->cooperative_level == cooplevel && This->window == hwnd) + return DD_OK; - if (This->window) - return DDERR_HWNDALREADYSET; + if (This->window) + return DDERR_HWNDALREADYSET; - if (This->cooperative_level) - return DDERR_EXCLUSIVEMODEALREADYSET; + if (This->cooperative_level) + return DDERR_EXCLUSIVEMODEALREADYSET; - if ((cooplevel&DDSCL_EXCLUSIVE) && !(cooplevel&DDSCL_FULLSCREEN)) - return DDERR_INVALIDPARAMS; + if ((cooplevel&DDSCL_EXCLUSIVE) && !(cooplevel&DDSCL_FULLSCREEN)) + return DDERR_INVALIDPARAMS; - if (cooplevel&DDSCL_NORMAL && cooplevel&DDSCL_FULLSCREEN) - return DDERR_INVALIDPARAMS; + if (cooplevel&DDSCL_NORMAL && cooplevel&DDSCL_FULLSCREEN) + return DDERR_INVALIDPARAMS; - // set the data - This->window = hwnd; - This->hdc = GetDC(hwnd); - This->cooperative_level = cooplevel; + // set the data + This->window = hwnd; + This->hdc = GetDC(hwnd); + This->cooperative_level = cooplevel; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE) - { - return Hal_DirectDraw_SetCooperativeLevel (iface); - } + { + return Hal_DirectDraw_SetCooperativeLevel (iface); + } - return Hel_DirectDraw_SetCooperativeLevel(iface); + return Hel_DirectDraw_SetCooperativeLevel(iface); } HRESULT WINAPI Main_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight, - DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) + DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags) { - DWORD ret; + DWORD ret; /* FIXME implement hal setMode */ - if((ret = Hal_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, + if((ret = Hal_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags)) == DD_OK) - { - return ret; - } + { + return ret; + } - ret = Hel_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags); + ret = Hel_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags); - return ret; + return ret; } ULONG WINAPI Main_DirectDraw_AddRef (LPDIRECTDRAW7 iface) @@ -105,7 +101,7 @@ ULONG WINAPI Main_DirectDraw_AddRef (LPDIRECTDRAW7 iface) IDirectDrawImpl* This = (IDirectDrawImpl*)iface; ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt); - return ref; + return ref; } ULONG WINAPI Main_DirectDraw_Release (LPDIRECTDRAW7 iface) @@ -115,41 +111,41 @@ ULONG WINAPI Main_DirectDraw_Release (LPDIRECTDRAW7 iface) if (ref == 0) { - // set resoltion back to the one in registry - if(This->cooperative_level & DDSCL_EXCLUSIVE) - ChangeDisplaySettings(NULL, 0); + // set resoltion back to the one in registry + if(This->cooperative_level & DDSCL_EXCLUSIVE) + ChangeDisplaySettings(NULL, 0); - HeapFree(GetProcessHeap(), 0, This); + HeapFree(GetProcessHeap(), 0, This); } - return ref; + return ref; } HRESULT WINAPI Main_DirectDraw_QueryInterface ( - LPDIRECTDRAW7 iface, REFIID id, LPVOID *obj ) + LPDIRECTDRAW7 iface, REFIID id, LPVOID *obj ) { IDirectDrawImpl* This = (IDirectDrawImpl*)iface; if (IsEqualGUID(&IID_IDirectDraw7, id)) - { - *obj = &This->lpVtbl; + { + *obj = &This->lpVtbl; } else if (IsEqualGUID(&IID_IDirectDraw, id)) - { - *obj = &This->lpVtbl_v1; + { + *obj = &This->lpVtbl_v1; } else if (IsEqualGUID(&IID_IDirectDraw2, id)) - { - *obj = &This->lpVtbl_v2; + { + *obj = &This->lpVtbl_v2; } else if (IsEqualGUID(&IID_IDirectDraw4, id)) - { - *obj = &This->lpVtbl_v4; + { + *obj = &This->lpVtbl_v4; } else - { - *obj = NULL; - return E_NOINTERFACE; + { + *obj = NULL; + return E_NOINTERFACE; } Main_DirectDraw_AddRef(iface); @@ -157,183 +153,147 @@ HRESULT WINAPI Main_DirectDraw_QueryInterface ( } HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD, - LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter) + LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter) { if (pUnkOuter!=NULL) - return DDERR_INVALIDPARAMS; + return DDERR_INVALIDPARAMS; - if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize) - return DDERR_UNSUPPORTED; + if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize) + return DDERR_UNSUPPORTED; - // the nasty com stuff - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + // the nasty com stuff + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - IDirectDrawSurfaceImpl* That; + IDirectDrawSurfaceImpl* That; - That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawSurfaceImpl)); - - if (That == NULL) - return E_OUTOFMEMORY; + That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawSurfaceImpl)); + + if (That == NULL) + return E_OUTOFMEMORY; - ZeroMemory(That, sizeof(IDirectDrawSurfaceImpl)); - - That->lpVtbl = &DirectDrawSurface7_Vtable; - That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable; + ZeroMemory(That, sizeof(IDirectDrawSurfaceImpl)); + + That->lpVtbl = &DirectDrawSurface7_Vtable; + That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable; - This->DirectDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DDRAWI_DDRAWSURFACE_INT)); + This->DirectDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(DDRAWI_DDRAWSURFACE_INT)); + That->owner = (IDirectDrawImpl *)This; + That->owner->DirectDrawGlobal.dsList->dwIntRefCnt =1; - That->owner = (IDirectDrawImpl *)This; + /* we alwasy set to use the DirectDrawSurface7_Vtable as internel */ + That->owner->DirectDrawGlobal.dsList->lpVtbl = (PVOID) &DirectDrawSurface7_Vtable; + + *ppSurf = (LPDIRECTDRAWSURFACE7)That; - That->owner->DirectDrawGlobal.dsList->dwIntRefCnt =1; - - /* we alwasy set to use the DirectDrawSurface7_Vtable as internel */ - That->owner->DirectDrawGlobal.dsList->lpVtbl = (PVOID) &DirectDrawSurface7_Vtable; - - - *ppSurf = (LPDIRECTDRAWSURFACE7)That; - - // the real surface object creation - return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD); + // the real surface object creation + return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD); } HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface, DWORD dwFlags, - LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter) + LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter) { if (pUnkOuter!=NULL) - return DDERR_INVALIDPARAMS; + return DDERR_INVALIDPARAMS; - IDirectDrawClipperImpl* That; - That = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawClipperImpl)); + IDirectDrawClipperImpl* That; + That = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawClipperImpl)); - if (That == NULL) - return E_OUTOFMEMORY; + if (That == NULL) + return E_OUTOFMEMORY; - ZeroMemory(That, sizeof(IDirectDrawClipperImpl)); + ZeroMemory(That, sizeof(IDirectDrawClipperImpl)); - That->lpVtbl = &DirectDrawClipper_Vtable; - That->ref = 1; - *ppClipper = (LPDIRECTDRAWCLIPPER)That; + That->lpVtbl = &DirectDrawClipper_Vtable; + That->ref = 1; + *ppClipper = (LPDIRECTDRAWCLIPPER)That; - return That->lpVtbl->Initialize (*ppClipper, (LPDIRECTDRAW)iface, dwFlags); + return That->lpVtbl->Initialize (*ppClipper, (LPDIRECTDRAW)iface, dwFlags); } // This function is exported by the dll HRESULT WINAPI DirectDrawCreateClipper (DWORD dwFlags, - LPDIRECTDRAWCLIPPER* lplpDDClipper, LPUNKNOWN pUnkOuter) + LPDIRECTDRAWCLIPPER* lplpDDClipper, LPUNKNOWN pUnkOuter) { return Main_DirectDraw_CreateClipper(NULL, dwFlags, lplpDDClipper, pUnkOuter); } HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags, - LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter) + LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter) { if (pUnkOuter!=NULL) - return DDERR_INVALIDPARAMS; + return DDERR_INVALIDPARAMS; - IDirectDrawPaletteImpl* That; - That = (IDirectDrawPaletteImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawPaletteImpl)); + IDirectDrawPaletteImpl* That; + That = (IDirectDrawPaletteImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawPaletteImpl)); - if (That == NULL) - return E_OUTOFMEMORY; + if (That == NULL) + return E_OUTOFMEMORY; - ZeroMemory(That, sizeof(IDirectDrawPaletteImpl)); + ZeroMemory(That, sizeof(IDirectDrawPaletteImpl)); - That->lpVtbl = &DirectDrawPalette_Vtable; - That->ref = 1; - *ppPalette = (LPDIRECTDRAWPALETTE)That; + That->lpVtbl = &DirectDrawPalette_Vtable; + That->ref = 1; + *ppPalette = (LPDIRECTDRAWPALETTE)That; - return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent); -} - -/**** Stubs ****/ - -HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface) -{ - DX_STUB; -} - -HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src, - LPDIRECTDRAWSURFACE7* dst) -{ - DX_STUB; -} - -HRESULT WINAPI Main_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags, - LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback) -{ - DX_STUB; -} - -HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags, - LPDDSURFACEDESC2 lpDDSD2, LPVOID context, - LPDDENUMSURFACESCALLBACK7 callback) -{ - DX_STUB; + return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent); } HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface) { - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE) - { - return Hal_DirectDraw_FlipToGDISurface( iface); - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE) + { + return Hal_DirectDraw_FlipToGDISurface( iface); + } - return Hel_DirectDraw_FlipToGDISurface( iface); + return Hel_DirectDraw_FlipToGDISurface( iface); } HRESULT WINAPI Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps, - LPDDCAPS pHELCaps) + LPDDCAPS pHELCaps) { - DWORD status = DD_FALSE; - IDirectDrawImpl *This = (IDirectDrawImpl *)iface; + DWORD status = DD_FALSE; + IDirectDrawImpl *This = (IDirectDrawImpl *)iface; - if (pDriverCaps != NULL) - { - RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS)); - status = DD_OK; - } + if (pDriverCaps != NULL) + { + RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS)); + status = DD_OK; + } - if (pHELCaps != NULL) - { - RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddHELCaps,sizeof(DDCORECAPS)); - status = DD_OK; - } + if (pHELCaps != NULL) + { + RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddHELCaps,sizeof(DDCORECAPS)); + status = DD_OK; + } - /* Both caps mixed ?? */ - /* DDCORECAPS ddBothCaps; */ - - return status; + /* Both caps mixed ?? */ + /* DDCORECAPS ddBothCaps; */ + + return status; } HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD) { - IDirectDrawImpl *This = (IDirectDrawImpl *)iface; + IDirectDrawImpl *This = (IDirectDrawImpl *)iface; - if (pDDSD == NULL) - { + if (pDDSD == NULL) + { return DD_FALSE; - } - - pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH; - pDDSD->dwHeight = This->DirectDrawGlobal.vmiData.dwDisplayHeight; - pDDSD->dwWidth = This->DirectDrawGlobal.vmiData.dwDisplayWidth; - - /* FIXME Do not use DUMMYUNIONNAME1 some how union lPitch does not see by the compiler - but rest of the union are visable. more header problem ??? - */ - pDDSD->lPitch = This->DirectDrawGlobal.vmiData.lDisplayPitch; - + } - /* have not check where I should get hold of this info yet - DWORD dwBackBufferCount; - */ - + pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH; + pDDSD->dwHeight = This->DirectDrawGlobal.vmiData.dwDisplayHeight; + pDDSD->dwWidth = This->DirectDrawGlobal.vmiData.dwDisplayWidth; + pDDSD->lPitch = This->DirectDrawGlobal.vmiData.lDisplayPitch; pDDSD->dwRefreshRate = This->DirectDrawGlobal.dwMonitorFrequency; + + /* have not check where I should get hold of this info yet */ + DWORD dwBackBufferCount; - /* have not check where I should get hold of this info yet + /* have not check where I should get hold of this info yet DWORD dwAlphaBitDepth; DWORD dwReserved; LPVOID lpSurface; @@ -345,123 +305,148 @@ HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDE DDCOLORKEY ddckCKDestBlt; DDCOLORKEY ddckCKSrcOverlay; DDCOLORKEY ddckCKSrcBlt; - */ + */ - RtlCopyMemory(&pDDSD->ddpfPixelFormat,&This->DirectDrawGlobal.vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT)); RtlCopyMemory(&pDDSD->ddsCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS)); - - /* have not check where I should get hold of this info yet + + /* have not check where I should get hold of this info yet DWORD dwTextureStage; */ - return DD_OK; + return DD_OK; } - -HRESULT WINAPI Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes) +HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, + HANDLE h) { - DX_STUB; + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK) + { + return Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h); + } + + return Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h); } -HRESULT WINAPI Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface, - LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface) -{ - DX_STUB; +HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, + LPDWORD total, LPDWORD free) +{ + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; + + if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY) + { + return Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free); + } + + return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free); } HRESULT WINAPI Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq) { IDirectDrawImpl *This = (IDirectDrawImpl *)iface; - if (freq == NULL) - { - return DD_FALSE; - } + if (freq == NULL) + { + return DD_FALSE; + } - *freq = This->DirectDrawGlobal.dwMonitorFrequency; - return DD_OK; + *freq = This->DirectDrawGlobal.dwMonitorFrequency; + return DD_OK; } HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine) -{ - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; +{ + IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE) - { - return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine); - } + if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE) + { + return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine); + } - return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine); + return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine); +} + +/********************************** Stubs **********************************/ + +HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface) +{ + DX_STUB; +} + +HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src, + LPDIRECTDRAWSURFACE7* dst) +{ + DX_STUB; +} + +HRESULT WINAPI Main_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags, + LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback) +{ + DX_STUB; +} + +HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags, + LPDDSURFACEDESC2 lpDDSD2, LPVOID context, + LPDDENUMSURFACESCALLBACK7 callback) +{ + DX_STUB; +} + + +HRESULT WINAPI Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes) +{ + DX_STUB; +} + +HRESULT WINAPI Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface, + LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface) +{ + DX_STUB; } HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface) { - DX_STUB; + DX_STUB; } - -HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags, - HANDLE h) -{ - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK) - { - return Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h); - } - - return Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h); -} - -HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, - LPDWORD total, LPDWORD free) -{ - IDirectDrawImpl* This = (IDirectDrawImpl*)iface; - - if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY) - { - return Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free); - } - - return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free); -} - + HRESULT WINAPI Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc, - LPDIRECTDRAWSURFACE7 *lpDDS) + LPDIRECTDRAWSURFACE7 *lpDDS) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface, - LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags) + LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes, - DWORD dwNumModes, DWORD dwFlags) + DWORD dwNumModes, DWORD dwFlags) { - DX_STUB; + DX_STUB; } HRESULT WINAPI Main_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b) { - DX_STUB; + DX_STUB; } IDirectDraw7Vtbl DirectDraw7_Vtable =