Author: greatlrd Date: Sun Jun 17 16:30:58 2007 New Revision: 27212
URL: http://svn.reactos.org/svn/reactos?rev=27212&view=rev Log: GetCpas filling in how much memory we got now from HAL
Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c
Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Ddraw/ddr... ============================================================================== --- trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c (original) +++ trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c Sun Jun 17 16:30:58 2007 @@ -468,23 +468,53 @@
if ((IsBadWritePtr(pDriverCaps,sizeof(LPDDCAPS)))) { + DDSCAPS2 ddscaps = { 0 }; + DWORD dwTotal = 0; + DWORD dwFree = 0; /* Setup hardware caps */ + + Main_DirectDraw_GetAvailableVidMem4(iface, &ddscaps, &dwTotal, &dwFree); + + switch (pDriverCaps->dwSize) { case sizeof(DDCAPS_DX1): - retVal = DDERR_INVALIDPARAMS; - break; + { + LPDDCAPS_DX1 myCaps = (LPDDCAPS_DX1) pDriverCaps; + + myCaps->dwVidMemFree = dwFree; + myCaps->dwVidMemTotal = dwTotal; + } + break; + case sizeof(DDCAPS_DX3): - retVal = DDERR_INVALIDPARAMS; - break; + { + LPDDCAPS_DX3 myCaps = (LPDDCAPS_DX3) pDriverCaps; + + myCaps->dwVidMemFree = dwFree; + myCaps->dwVidMemTotal = dwTotal; + } + break; + case sizeof(DDCAPS_DX5): - retVal = DDERR_INVALIDPARAMS; + { + LPDDCAPS_DX5 myCaps = (LPDDCAPS_DX5) pDriverCaps; + + myCaps->dwVidMemFree = dwFree; + myCaps->dwVidMemTotal = dwTotal; + } break;
/* DDCAPS_DX6 is same as DDCAPS_DX7 */ case sizeof(DDCAPS_DX7): - retVal = DDERR_INVALIDPARAMS; - break; + { + LPDDCAPS_DX7 myCaps = (LPDDCAPS_DX7) pDriverCaps; + + myCaps->dwVidMemFree = dwFree; + myCaps->dwVidMemTotal = dwTotal; + } + break; + default: retVal = DDERR_INVALIDPARAMS; break; @@ -515,6 +545,8 @@ break; } } + + return retVal; }