From 8c5febf18415274a2a64cc1f3f8c92057334f661 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sat, 2 Jun 2007 14:01:43 +0000 Subject: [PATCH] Fixing Getavil memory svn path=/trunk/; revision=26966 --- reactos/dll/directx/ddraw/Ddraw/ddraw_main.c | 3 +- reactos/dll/directx/ddraw/startup.c | 38 ++++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c index ca1b7fa8e18..4f1942879a7 100644 --- a/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c +++ b/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c @@ -164,11 +164,12 @@ Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps, } DDHAL_GETAVAILDRIVERMEMORYDATA memdata; + ZeroMemory(&memdata, sizeof(DDHAL_GETAVAILDRIVERMEMORYDATA)); memdata.lpDD = This->lpLcl->lpGbl; memdata.ddRVal = DDERR_INVALIDPARAMS; memcpy(&memdata.DDSCaps, ddscaps, sizeof(DDSCAPS2)); - if (This->lpLcl->lpDDCB->cbDDMiscellaneousCallbacks.GetAvailDriverMemory(&memdata) == DDHAL_DRIVER_NOTHANDLED) + if (This->lpLcl->lpDDCB->HALDDMiscellaneous.GetAvailDriverMemory(&memdata) == DDHAL_DRIVER_NOTHANDLED) return DDERR_NODIRECTDRAWHW; if (dwTotal) diff --git a/reactos/dll/directx/ddraw/startup.c b/reactos/dll/directx/ddraw/startup.c index c3e25b3479e..9c1d5655742 100644 --- a/reactos/dll/directx/ddraw/startup.c +++ b/reactos/dll/directx/ddraw/startup.c @@ -548,12 +548,15 @@ StartDirectDrawHal(LPDIRECTDRAW iface, BOOL reenable) // DxHeapMemFree( mpTextures); /* FIXME D3D setup mD3dCallbacks and mD3dDriverData */ - DDHAL_GETDRIVERINFODATA DdGetDriverInfo = { 0 }; - DdGetDriverInfo.dwSize = sizeof (DDHAL_GETDRIVERINFODATA); - DdGetDriverInfo.guidInfo = GUID_MiscellaneousCallbacks; - DdGetDriverInfo.lpvData = (PVOID)&ddgbl.lpDDCBtmp->cbDDMiscellaneousCallbacks; - DdGetDriverInfo.dwExpectedSize = sizeof (DDHAL_DDMISCELLANEOUSCALLBACKS); - if(mHALInfo.GetDriverInfo (&DdGetDriverInfo) == DDHAL_DRIVER_NOTHANDLED || DdGetDriverInfo.ddRVal != DD_OK) + DDHAL_GETDRIVERINFODATA DdGetDriverInfo = { 0 }; + DdGetDriverInfo.dwSize = sizeof (DDHAL_GETDRIVERINFODATA); + DdGetDriverInfo.guidInfo = GUID_MiscellaneousCallbacks; + + DdGetDriverInfo.lpvData = (PVOID)&ddgbl.lpDDCBtmp->HALDDMiscellaneous; + + DdGetDriverInfo.dwExpectedSize = sizeof (DDHAL_DDMISCELLANEOUSCALLBACKS); + + if(mHALInfo.GetDriverInfo (&DdGetDriverInfo) == DDHAL_DRIVER_NOTHANDLED || DdGetDriverInfo.ddRVal != DD_OK) { DxHeapMemFree(mpFourCC); DxHeapMemFree(mpTextures); @@ -562,6 +565,29 @@ StartDirectDrawHal(LPDIRECTDRAW iface, BOOL reenable) return DD_FALSE; } + /* try get the memory and show it */ + if (ddgbl.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory) + { + DDHAL_GETAVAILDRIVERMEMORYDATA memdata; + char buffer[2048]; + + ZeroMemory(&memdata, sizeof(DDHAL_GETAVAILDRIVERMEMORYDATA)); + + + DX_STUB_str("found GetAvailDriverMemory, testing \n"); + memdata.lpDD = &ddgbl; + memdata.ddRVal = DDERR_GENERIC; + ddgbl.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&memdata); + + sprintf ( buffer, "GetAvailDriverMemory : retval %ld, Graphice memory free %ld Bytes, memory total %ld Bytes\n",memdata.ddRVal,memdata.dwFree,memdata.dwTotal); + OutputDebugStringA(buffer); + + + + + } + + DX_STUB_str("Return DD_OK\n"); return DD_OK; }