1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 10:39:39 +00:00

cache results of query for spash screen names

ResourceGroupManager::listResourceNames returns a list of all resource
accessable which is expensive, this change caches the result of the
processed query so additional splash screen changes are quicker.
This commit is contained in:
Nathan Jeffords 2013-01-02 13:50:44 -08:00
parent ff74f687fb
commit 9afe4467d8
2 changed files with 17 additions and 12 deletions

View file

@ -213,7 +213,9 @@ namespace MWGui
void LoadingScreen::changeWallpaper ()
{
std::vector<std::string> splash;
if (mResources.isNull ())
{
mResources = Ogre::StringVectorPtr (new Ogre::StringVector);
Ogre::StringVectorPtr resources = Ogre::ResourceGroupManager::getSingleton ().listResourceNames ("General", false);
for (Ogre::StringVector::const_iterator it = resources->begin(); it != resources->end(); ++it)
@ -224,11 +226,13 @@ namespace MWGui
boost::to_lower(start);
if (start == "splash")
splash.push_back (*it);
mResources->push_back (*it);
}
if (splash.size())
}
if (mResources->size())
{
std::string randomSplash = splash[rand() % splash.size()];
std::string randomSplash = mResources->at (rand() % mResources->size());
Ogre::TexturePtr tex = Ogre::TextureManager::getSingleton ().load (randomSplash, "General");
mBackgroundImage->setImageTexture (randomSplash);

View file

@ -42,6 +42,7 @@ namespace MWGui
Ogre::Rectangle2D* mRectangle;
Ogre::MaterialPtr mBackgroundMaterial;
Ogre::StringVectorPtr mResources;
bool mLoadingOn;