Fixing allot bugs in Main_DirectDraw_GetAvailableVidMem, it is still buggi

svn path=/trunk/; revision=27075
This commit is contained in:
Magnus Olsen 2007-06-08 17:12:05 +00:00
parent 032150f031
commit edddb00510

View file

@ -184,7 +184,8 @@ Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
_SEH_TRY
{
// There is no HEL implentation of this api
if (!(This->lpLcl->lpDDCB->cbDDMiscellaneousCallbacks.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY))
if (!(This->lpLcl->lpDDCB->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY) ||
(This->lpLcl->lpGbl->dwFlags & DDRAWI_NOHARDWARE) )
{
retVal = DDERR_NODIRECTDRAWHW;
}
@ -193,14 +194,47 @@ Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
if ((!dwTotal && !dwFree) || !ddscaps)
{
retVal = DDERR_INVALIDPARAMS;
_SEH_LEAVE;
}
else
if ( ddscaps->dwCaps & (DDSCAPS_BACKBUFFER | DDSCAPS_COMPLEX | DDSCAPS_FLIP |
DDSCAPS_FRONTBUFFER | DDSCAPS_PALETTE | DDSCAPS_SYSTEMMEMORY |
DDSCAPS_VISIBLE | DDSCAPS_WRITEONLY | DDSCAPS_OWNDC))
{
retVal = DDERR_INVALIDPARAMS;
_SEH_LEAVE;
}
/* fixme
if ( ddscaps->dwCaps2 & (DDSCAPS_BACKBUFFER | DDSCAPS_COMPLEX | DDSCAPS_FLIP |
DDSCAPS_FRONTBUFFER | DDSCAPS_PALETTE | DDSCAPS_SYSTEMMEMORY |
DDSCAPS_VISIBLE | DDSCAPS_WRITEONLY | DDSCAPS_OWNDC))
{
retVal = DDERR_INVALIDPARAMS;
_SEH_LEAVE;
}
if ( ddscaps->dwCaps3 & (DDSCAPS_BACKBUFFER | DDSCAPS_COMPLEX | DDSCAPS_FLIP |
DDSCAPS_FRONTBUFFER | DDSCAPS_PALETTE | DDSCAPS_SYSTEMMEMORY |
DDSCAPS_VISIBLE | DDSCAPS_WRITEONLY | DDSCAPS_OWNDC))
{
retVal = DDERR_INVALIDPARAMS;
_SEH_LEAVE;
}
*/
if ( ddscaps->dwCaps4)
{
retVal = DDERR_INVALIDCAPS;
_SEH_LEAVE;
}
ZeroMemory(&memdata, sizeof(DDHAL_GETAVAILDRIVERMEMORYDATA));
memdata.lpDD = This->lpLcl->lpGbl;
memdata.ddRVal = DDERR_INVALIDPARAMS;
memcpy(&memdata.DDSCaps, ddscaps, sizeof(DDSCAPS2));
memdata.ddsCapsEx.dwCaps2 = ddscaps->dwCaps2;
memdata.ddsCapsEx.dwCaps3 = ddscaps->dwCaps3;
This->lpLcl->lpGbl->hDD = This->lpLcl->hDD;
@ -220,7 +254,6 @@ Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
}
}
}
}
_SEH_HANDLE
{
}