diff options
| -rw-r--r-- | indra/newview/llstartup.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/lltexturefetch.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/llviewertexturelist.h | 2 | 
4 files changed, 36 insertions, 14 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 6aca701fe2..ce940e1d4e 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1285,9 +1285,6 @@ bool idle_startup()  		// Initialize classes w/graphics stuff.  		//  		LLViewerStatsRecorder::instance(); // Since textures work in threads -		gTextureList.doPrefetchImages();		 -		display_startup(); -  		LLSurface::initClasses();  		display_startup(); @@ -1432,6 +1429,12 @@ bool idle_startup()  	if (STATE_SEED_CAP_GRANTED == LLStartUp::getStartupState())  	{  		display_startup(); + +        // These textures are not warrantied to be cached, so needs +        // to hapen with caps granted +        gTextureList.doPrefetchImages(); + +        display_startup();  		update_texture_fetch();  		display_startup(); diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 3099092abb..a7dcb1a9bb 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1342,10 +1342,14 @@ bool LLTextureFetchWorker::doWork(S32 param)  		if ( use_http && mCanUseHTTP && mUrl.empty())//get http url.  		{  			LLViewerRegion* region = NULL; -			if (mHost.isInvalid()) -				region = gAgent.getRegion(); -			else -				region = LLWorld::getInstance()->getRegion(mHost); +            if (mHost.isInvalid()) +            { +                region = gAgent.getRegion(); +            } +            else if (LLWorld::instanceExists()) +            { +                region = LLWorld::getInstance()->getRegion(mHost); +            }  			if (region)  			{ diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 546a03def2..fccf768f4d 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -50,6 +50,7 @@  #include "llviewercontrol.h"  #include "llviewertexture.h"  #include "llviewermedia.h" +#include "llviewernetwork.h"  #include "llviewerregion.h"  #include "llviewerstats.h"  #include "pipeline.h" @@ -160,12 +161,6 @@ void LLViewerTextureList::doPreloadImages()  		image->setAddressMode(LLTexUnit::TAM_WRAP);  		mImagePreloads.insert(image);  	} -	image = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL, FTT_DEFAULT, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); -	if (image)  -	{ -		image->setAddressMode(LLTexUnit::TAM_WRAP);	 -		mImagePreloads.insert(image); -	}  	image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,  		0, 0, IMG_TRANSPARENT);  	if (image)  @@ -198,7 +193,18 @@ void LLViewerTextureList::doPreloadImages()  static std::string get_texture_list_name()  { -	return gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "texture_list_" + gSavedSettings.getString("LoginLocation") + "." + gDirUtilp->getUserName() + ".xml"); +    if (LLGridManager::getInstance()->isInProductionGrid()) +    { +        return gDirUtilp->getExpandedFilename(LL_PATH_CACHE, +            "texture_list_" + gSavedSettings.getString("LoginLocation") + "." + gDirUtilp->getUserName() + ".xml"); +    } +    else +    { +        const std::string& grid_id_str = LLGridManager::getInstance()->getGridId(); +        const std::string& grid_id_lower = utf8str_tolower(grid_id_str); +        return gDirUtilp->getExpandedFilename(LL_PATH_CACHE, +            "texture_list_" + gSavedSettings.getString("LoginLocation") + "." + gDirUtilp->getUserName() + "." + grid_id_lower + ".xml"); +    }  }  void LLViewerTextureList::doPrefetchImages() @@ -207,6 +213,13 @@ void LLViewerTextureList::doPrefetchImages()  	gTextureTimer.start();  	gTextureTimer.pause(); +    LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL, FTT_DEFAULT, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); +    if (imagep) +    { +        imagep->setAddressMode(LLTexUnit::TAM_WRAP); +        mImagePreloads.insert(imagep); +    } +  	if (LLAppViewer::instance()->getPurgeCache())  	{  		// cache was purged, no point diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h index 41b3568570..0018e78d45 100644 --- a/indra/newview/llviewertexturelist.h +++ b/indra/newview/llviewertexturelist.h @@ -131,7 +131,9 @@ public:  	void updateMaxResidentTexMem(S32Megabytes mem); +    // Local UI images  	void doPreloadImages(); +    // Network images. Needs caps and cache to work  	void doPrefetchImages();  	void clearFetchingRequests();  | 
