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()); }
void CGUITextureManager::ReleaseTexture(const std::string& strTextureName, bool immediately /*= false */) { CSingleLock lock(g_graphicsContext); ivecTextures i; i = m_vecTextures.begin(); while (i != m_vecTextures.end()) { CTextureMap* pMap = *i; if (pMap->GetName() == strTextureName) { if (pMap->Release()) { //CLog::Log(LOGINFO, " cleanup:%s", strTextureName.c_str()); // add to our textures to free m_unusedTextures.push_back(std::make_pair(pMap, immediately ? 0 : XbmcThreads::SystemClockMillis())); i = m_vecTextures.erase(i); } return; } ++i; } CLog::Log(LOGWARNING, "%s: Unable to release texture %s", __FUNCTION__, strTextureName.c_str()); }
void CGUITextureManager::ReleaseTexture(const CStdString& strTextureName) { CSingleLock lock(g_graphicsContext); ivecTextures i; i = m_vecTextures.begin(); while (i != m_vecTextures.end()) { CTextureMap* pMap = *i; if (pMap->GetName() == strTextureName) { if (pMap->Release()) { //CLog::Log(LOGINFO, " cleanup:%s", strTextureName.c_str()); // add to our textures to free m_unusedTextures.push_back(pMap); i = m_vecTextures.erase(i); } return; } ++i; } CLog::Log(LOGWARNING, "%s: Unable to release texture %s", __FUNCTION__, strTextureName.c_str()); }