Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 319 of file ddraw_main.c.
Referenced by Main_DirectDraw_GetAvailableVidMem(), and Main_DirectDraw_GetCaps().
{ HRESULT retVal = DD_OK; DDHAL_GETAVAILDRIVERMEMORYDATA memdata; DX_WINDBG_trace(); _SEH2_TRY { // There is no HEL implentation of this api if (!(This->lpLcl->lpDDCB->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY) || (This->lpLcl->lpGbl->dwFlags & DDRAWI_NOHARDWARE) ) { retVal = DDERR_NODIRECTDRAWHW; } else { if ((!dwTotal && !dwFree) || !ddscaps) { retVal = DDERR_INVALIDPARAMS; _SEH2_LEAVE; } if ( ddscaps->dwCaps & (DDSCAPS_BACKBUFFER | DDSCAPS_COMPLEX | DDSCAPS_FLIP | DDSCAPS_FRONTBUFFER | DDSCAPS_PALETTE | DDSCAPS_SYSTEMMEMORY | DDSCAPS_VISIBLE | DDSCAPS_WRITEONLY | DDSCAPS_OWNDC)) { retVal = DDERR_INVALIDPARAMS; _SEH2_LEAVE; } /* ddscaps->dwCaps2 & 0x01 this flag is outdate and are set to 0 in ms dxsdk the name of this flag is DDSCAPS2_HARDWAREDEINTERLACE */ if ( ddscaps->dwCaps2 & 0x01) { retVal = DDERR_INVALIDCAPS; _SEH2_LEAVE; } if ( ddscaps->dwCaps3 & ~( DDSCAPS3_MULTISAMPLE_QUALITY_MASK | DDSCAPS3_MULTISAMPLE_MASK | DDSCAPS3_RESERVED1 | DDSCAPS3_RESERVED2 | DDSCAPS3_LIGHTWEIGHTMIPMAP | DDSCAPS3_AUTOGENMIPMAP | DDSCAPS3_DMAP)) { retVal = DDERR_INVALIDCAPS; _SEH2_LEAVE; } if ( ddscaps->dwCaps4) { retVal = DDERR_INVALIDCAPS; _SEH2_LEAVE; } ZeroMemory(&memdata, sizeof(DDHAL_GETAVAILDRIVERMEMORYDATA)); memdata.lpDD = This->lpLcl->lpGbl; memdata.ddRVal = DDERR_INVALIDPARAMS; memdata.ddsCapsEx.dwCaps2 = ddscaps->dwCaps2; memdata.ddsCapsEx.dwCaps3 = ddscaps->dwCaps3; This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; if (This->lpLcl->lpDDCB->HALDDMiscellaneous.GetAvailDriverMemory(&memdata) == DDHAL_DRIVER_NOTHANDLED) { retVal = DDERR_NODIRECTDRAWHW; if (dwTotal) *dwTotal = 0; if (dwFree) *dwFree = 0; } else { if (dwTotal) *dwTotal = memdata.dwTotal; if (dwFree) *dwFree = memdata.dwFree; retVal = memdata.ddRVal; } } } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { } _SEH2_END; return retVal; }