void UnloadResource(Ogre::ResourceManager* resMgr, const std::string& resourceName) { Ogre::ResourcePtr rPtr = resMgr->getResourceByName(resourceName); if (rPtr.isNull()) { StringUtil::StrStreamType msg; msg << "Resource no longer exists: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); return; } rPtr->unload(); if (rPtr->isLoaded()) { StringUtil::StrStreamType msg; msg << "Resource was not unloaded: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } else { StringUtil::StrStreamType msg; msg << "Resource was unloaded: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } resMgr->remove(resourceName); rPtr = resMgr->getResourceByName(resourceName); if (rPtr.isNull()) { StringUtil::StrStreamType msg; msg << "Resource was removed: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } else { StringUtil::StrStreamType msg; msg << "Resource was not removed: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } if (resMgr->resourceExists(resourceName)) { StringUtil::StrStreamType msg; msg << "Resource still exists: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } else { StringUtil::StrStreamType msg; msg << "Resource no longer exists: " << resourceName; Ogre::LogManager::getSingleton().logMessage(msg.str()); } }
void ResourceManager::unloadResource(Ogre::ResourceManager* resMgr, const std::string& resourceName) { Ogre::ResourcePtr rPtr = resMgr->getByName(resourceName); if (rPtr.isNull()) return rPtr->unload(); if (rPtr->isLoaded()) LOG_META(FORMAT("The resource '%1%' wasn`t unloaded!", resourceName)); else LOG_META(FORMAT("The resource '%1%' was unloaded!", resourceName)); resMgr->remove(resourceName); rPtr = resMgr->getByName(resourceName); if (!rPtr.isNull()) LOG_META(FORMAT("The resource '%1%' wasn`t removed!", resourceName)); else LOG_META(FORMAT("The resource '%1%' was removed!", resourceName)); }