void CGUITextureManager::Flush() { CSingleLock lock(g_graphicsContext); ivecTextures i; i = m_vecTextures.begin(); while (i != m_vecTextures.end()) { CTextureMap* pMap = *i; pMap->Flush(); if (pMap->IsEmpty() ) { delete pMap; i = m_vecTextures.erase(i); } else { ++i; } } }
void CGUITextureManager::Flush() { CSingleLock lock(CServiceBroker::GetWinSystem()->GetGfxContext()); ivecTextures i; i = m_vecTextures.begin(); while (i != m_vecTextures.end()) { CTextureMap* pMap = *i; pMap->Flush(); if (pMap->IsEmpty() ) { delete pMap; i = m_vecTextures.erase(i); } else { ++i; } } }
void CGUITextureManager::ReleaseTexture(const CStdString& strTextureName, int iPicture) { CSingleLock lock(g_graphicsContext); #ifndef _LINUX MEMORYSTATUS stat; GlobalMemoryStatus(&stat); DWORD dwMegFree = stat.dwAvailPhys / (1024 * 1024); if (dwMegFree > 29) { // dont release skin textures, they are reloaded each time //if (strTextureName.GetAt(1) != ':') return; //CLog::Log(LOGINFO, "release:%s", strTextureName.c_str()); } #endif ivecTextures i; i = m_vecTextures.begin(); while (i != m_vecTextures.end()) { CTextureMap* pMap = *i; if (pMap->GetName() == strTextureName) { pMap->Release(iPicture); if (pMap->IsEmpty() ) { //CLog::Log(LOGINFO, " cleanup:%s", strTextureName.c_str()); delete pMap; i = m_vecTextures.erase(i); } return; } ++i; } CLog::Log(LOGWARNING, "%s: Unable to release texture %s", __FUNCTION__, strTextureName.c_str()); }