Fixing Getavil memory

svn path=/trunk/; revision=26966
This commit is contained in:
Magnus Olsen 2007-06-02 14:01:43 +00:00
parent c5832b0f71
commit 8c5febf184
2 changed files with 34 additions and 7 deletions

View file

@ -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)

View file

@ -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;
}