diff options
Diffstat (limited to 'indra')
28 files changed, 142 insertions, 91 deletions
| diff --git a/indra/llappearance/lltexturemanagerbridge.h b/indra/llappearance/lltexturemanagerbridge.h index 4b814b522d..4b814b522d 100644..100755 --- a/indra/llappearance/lltexturemanagerbridge.h +++ b/indra/llappearance/lltexturemanagerbridge.h diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp index 87fd47cb2c..f1f7da5fd1 100644 --- a/indra/newview/llcolorswatch.cpp +++ b/indra/newview/llcolorswatch.cpp @@ -241,7 +241,7 @@ void LLColorSwatchCtrl::draw()  	{  		if (!mFallbackImageName.empty())  		{ -			LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName, TRUE,  +			LLPointer<LLViewerFetchedTexture> fallback_image = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName, FTT_LOCAL_FILE, TRUE,   				LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  			if( fallback_image->getComponents() == 4 )  			{	 diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index 809f34bdff..0adb42428d 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -69,6 +69,7 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :  	sDetailScale = 1.f/gSavedSettings.getF32("RenderTerrainScale");  	sDetailMode = gSavedSettings.getS32("RenderTerrainDetail");  	mAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient.tga",  +													FTT_LOCAL_FILE,  													TRUE, LLGLTexture::BOOST_UI,   													LLViewerTexture::FETCHED_TEXTURE,  													format, int_format, @@ -78,6 +79,7 @@ LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :  	mAlphaRampImagep->setAddressMode(LLTexUnit::TAM_CLAMP);  	m2DAlphaRampImagep = LLViewerTextureManager::getFetchedTextureFromFile("alpha_gradient_2d.j2c",  +													FTT_LOCAL_FILE,  													TRUE, LLGLTexture::BOOST_UI,   													LLViewerTexture::FETCHED_TEXTURE,  													format, int_format, diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index 26890bd75f..5ddc15df42 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -66,11 +66,11 @@ LLVector3 LLDrawPoolWater::sLightDir;  LLDrawPoolWater::LLDrawPoolWater() :  	LLFacePool(POOL_WATER)  { -	mHBTex[0] = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLGLTexture::BOOST_UI); +	mHBTex[0] = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	gGL.getTexUnit(0)->bind(mHBTex[0]) ;  	mHBTex[0]->setAddressMode(LLTexUnit::TAM_CLAMP); -	mHBTex[1] = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLGLTexture::BOOST_UI); +	mHBTex[1] = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	gGL.getTexUnit(0)->bind(mHBTex[1]);  	mHBTex[1]->setAddressMode(LLTexUnit::TAM_CLAMP); diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index c9f5b42b20..100f1d580b 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -2496,7 +2496,7 @@ void LLModelLoader::loadTextures()  				if(!material.mDiffuseMapFilename.empty())  				{  					material.mDiffuseMap =  -						LLViewerTextureManager::getFetchedTextureFromUrl("file://" + material.mDiffuseMapFilename, TRUE, LLGLTexture::BOOST_PREVIEW); +						LLViewerTextureManager::getFetchedTextureFromUrl("file://" + material.mDiffuseMapFilename, FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_PREVIEW);  					material.mDiffuseMap->setLoadedCallback(LLModelPreview::textureLoadedCallback, 0, TRUE, FALSE, mPreview, NULL, FALSE);  					material.mDiffuseMap->forceToSaveRawImage(0, F32_MAX);  					mNumOfFetchingTextures++ ; diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index 685b566fa8..25e92dc17e 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -765,7 +765,7 @@ void LLFloaterReporter::takeScreenshot()  	// store in the image list so it doesn't try to fetch from the server  	LLPointer<LLViewerFetchedTexture> image_in_list =  -		LLViewerTextureManager::getFetchedTexture(mResourceDatap->mAssetInfo.mUuid, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::FETCHED_TEXTURE); +		LLViewerTextureManager::getFetchedTexture(mResourceDatap->mAssetInfo.mUuid);  	image_in_list->createGLTexture(0, raw, 0, TRUE, LLGLTexture::OTHER);  	// the texture picker then uses that texture diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp index c987dbb4fb..6c17f62c1e 100644 --- a/indra/newview/llfloaterscriptdebug.cpp +++ b/indra/newview/llfloaterscriptdebug.cpp @@ -105,7 +105,7 @@ void LLFloaterScriptDebug::addScriptLine(const std::string &utf8mesg, const std:  	if (objectp)  	{ -		objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", TRUE, LLGLTexture::BOOST_UI)); +		objectp->setIcon(LLViewerTextureManager::getFetchedTextureFromFile("script_error.j2c", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI));  		floater_label = llformat("%s(%.0f, %.0f, %.0f)",  						user_name.c_str(),  						objectp->getPositionRegion().mV[VX], diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 48f784838c..25df4889b0 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -195,7 +195,7 @@ bool LLLocalBitmap::updateSelf(EUpdateType optional_firstupdate)  					mLastModified = new_last_modified;  					LLPointer<LLViewerFetchedTexture> texture = new LLViewerFetchedTexture -						("file://"+mFilename, mWorldID, LL_LOCAL_USE_MIPMAPS); +						("file://"+mFilename, FTT_LOCAL_FILE, mWorldID, LL_LOCAL_USE_MIPMAPS);  					texture->createGLTexture(LL_LOCAL_DISCARD_LEVEL, raw_image);  					texture->setCachedRawImage(LL_LOCAL_DISCARD_LEVEL, raw_image); @@ -437,8 +437,8 @@ void LLLocalBitmap::updateUserPrims(LLUUID old_id, LLUUID new_id)  					LLFace* face = object->mDrawable->getFace(face_iter);  					if (face && face->getTexture() && face->getTexture()->getID() == old_id)  					{ -						object->setTEImage(face_iter, LLViewerTextureManager::getFetchedTexture -							(new_id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); +						object->setTEImage(face_iter, LLViewerTextureManager::getFetchedTexture( +							new_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));  						update_obj = true;  					} diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 3784208e37..91a98792eb 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -468,7 +468,7 @@ void LLPreviewTexture::onAspectRatioCommit(LLUICtrl* ctrl, void* userdata)  void LLPreviewTexture::loadAsset()  { -	mImage = LLViewerTextureManager::getFetchedTexture(mImageID, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +	mImage = LLViewerTextureManager::getFetchedTexture(mImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  	mImageOldBoostLevel = mImage->getBoostLevel();  	mImage->setBoostLevel(LLGLTexture::BOOST_PREVIEW);  	mImage->forceToSaveRawImage(0) ; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 1ee9b377ba..4681efd3e5 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -1603,7 +1603,7 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)  				// Texture picker defaults aren't inventory items  				// * Don't need to worry about permissions for them  				// * Can just apply the texture and be done with it. -				objectp->setTEImage(te, LLViewerTextureManager::getFetchedTexture(mImageID, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); +				objectp->setTEImage(te, LLViewerTextureManager::getFetchedTexture(mImageID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));  			}  			return true;  		} @@ -1769,7 +1769,7 @@ BOOL LLSelectMgr::selectionRevertTextures()  					}  					else  					{ -						object->setTEImage(te, LLViewerTextureManager::getFetchedTexture(id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); +						object->setTEImage(te, LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));  					}  				}  			} @@ -5183,7 +5183,7 @@ void LLSelectMgr::updateSilhouettes()  	if (!mSilhouetteImagep)  	{ -		mSilhouetteImagep = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", TRUE, LLGLTexture::BOOST_UI); +		mSilhouetteImagep = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI);  	}  	mHighlightedObjects->cleanupNodes(); diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 3dc506d265..d8438967a2 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -570,7 +570,7 @@ void LLFloaterTexturePicker::draw()  		mTexturep = NULL;  		if(mImageAssetID.notNull())  		{ -			mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES); +			mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID);  			mTexturep->setBoostLevel(LLGLTexture::BOOST_PREVIEW);  		} @@ -1456,7 +1456,7 @@ void LLTextureCtrl::draw()  	}  	else if (!mImageAssetID.isNull())  	{ -		LLPointer<LLViewerFetchedTexture> texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES,LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +		LLPointer<LLViewerFetchedTexture> texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES,LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  		texture->setBoostLevel(LLGLTexture::BOOST_PREVIEW);  		texture->forceToSaveRawImage(0) ; diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 81bc70906d..6f31d768d6 100755 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -389,7 +389,8 @@ public:  	virtual void onCompleted(LLCore::HttpHandle handle, LLCore::HttpResponse * response);  protected: -	LLTextureFetchWorker(LLTextureFetch* fetcher, const std::string& url, const LLUUID& id, const LLHost& host, +	LLTextureFetchWorker(LLTextureFetch* fetcher, FTType f_type, +						 const std::string& url, const LLUUID& id, const LLHost& host,  						 F32 priority, S32 discard, S32 size);  private: @@ -506,6 +507,7 @@ private:  	LLPointer<LLImageFormatted> mFormattedImage;  	LLPointer<LLImageRaw> mRawImage;  	LLPointer<LLImageRaw> mAuxImage; +	FTType mFTType;  	LLUUID mID;  	LLHost mHost;  	std::string mUrl; @@ -827,6 +829,7 @@ volatile bool LLTextureFetch::svMetricsDataBreak(true);	// Start with a data bre  // called from MAIN THREAD  LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher, +										   FTType f_type, // Fetched image type  										   const std::string& url, // Optional URL  										   const LLUUID& id,	// Image UUID  										   const LLHost& host,	// Simulator host @@ -838,6 +841,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,  	  mState(INIT),  	  mWriteToCacheState(NOT_WRITE),  	  mFetcher(fetcher), +	  mFTType(f_type),  	  mID(id),  	  mHost(host),  	  mUrl(url), @@ -1171,7 +1175,7 @@ bool LLTextureFetchWorker::doWork(S32 param)  																		  offset, size, responder);  				mCacheReadTimer.reset();  			} -			else if (mUrl.empty() && mFetcher->canLoadFromCache()) +			else if ((mUrl.empty()||mFTType==FTT_SERVER_BAKE) && mFetcher->canLoadFromCache())  			{  				setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it @@ -1285,6 +1289,10 @@ bool LLTextureFetchWorker::doWork(S32 param)  				mCanUseHTTP = false;  			}  		} +		if (mFTType == FTT_SERVER_BAKE) +		{ +			mWriteToCacheState = CAN_WRITE; +		}  		if (mCanUseHTTP && !mUrl.empty())  		{  			mState = WAIT_HTTP_RESOURCE; @@ -2396,7 +2404,7 @@ LLTextureFetch::~LLTextureFetch()  	// ~LLQueuedThread() called here  } -bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority, +bool LLTextureFetch::createRequest(FTType f_type, const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,  								   S32 w, S32 h, S32 c, S32 desired_discard, bool needs_aux, bool can_use_http)  {  	if(mFetcherLocked) @@ -2479,7 +2487,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con  	}  	else  	{ -		worker = new LLTextureFetchWorker(this, url, id, host, priority, desired_discard, desired_size); +		worker = new LLTextureFetchWorker(this, f_type, url, id, host, priority, desired_discard, desired_size);  		lockQueue();													// +Mfq  		mRequestMap[id] = worker;  		unlockQueue();													// -Mfq diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index 1e58ba35d4..544499232d 100644..100755 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -52,6 +52,7 @@ class LLHost;  class LLViewerAssetStats;  class LLTextureFetchDebugger;  class LLTextureCache; +enum FTType;  // Interface class @@ -77,7 +78,7 @@ public:  	void shutDownImageDecodeThread();  	// Threads:  T* (but Tmain mostly) -	bool createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority, +	bool createRequest(FTType f_type, const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,  					   S32 w, S32 h, S32 c, S32 discard, bool needs_aux, bool can_use_http);  	// Requests that a fetch operation be deleted from the queue. diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index c4b370a4b4..fcf5af76ff 100755 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -3273,7 +3273,7 @@ void LLViewerObject::boostTexturePriority(BOOL boost_children /* = TRUE */)  	{  		LLSculptParams *sculpt_params = (LLSculptParams *)getParameterEntry(LLNetworkData::PARAMS_SCULPT);  		LLUUID sculpt_id = sculpt_params->getSculptTexture(); -		LLViewerTextureManager::getFetchedTexture(sculpt_id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLGLTexture::BOOST_SELECTED); +		LLViewerTextureManager::getFetchedTexture(sculpt_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)->setBoostLevel(LLGLTexture::BOOST_SELECTED);  	}  	if (boost_children) @@ -4016,7 +4016,7 @@ void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry)  //	if (mDrawable.notNull() && mDrawable->isVisible())  //	{  		const LLUUID& image_id = getTE(te)->getID(); -		mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +		mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  //	}  } @@ -4066,7 +4066,7 @@ S32 LLViewerObject::setTETexture(const U8 te, const LLUUID& uuid)  {  	// Invalid host == get from the agent's sim  	LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture( -		uuid, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost::invalid); +		uuid, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, LLHost::invalid);  	return setTETextureCore(te,image);  } diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index e9501931eb..1d0bda34a7 100755 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -265,6 +265,7 @@ LLPointer<LLViewerTexture> LLViewerTextureManager::getLocalTexture(const U32 wid  LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(  	                                               const LLUUID &image_id,											        +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -272,11 +273,12 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTexture(  												   LLGLenum primary_format,  												   LLHost request_from_host)  { -	return gTextureList.getImage(image_id, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ; +	return gTextureList.getImage(image_id, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;  }  LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromFile( -	                                               const std::string& filename,												    +	                                               const std::string& filename, +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -284,11 +286,12 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromFile(  												   LLGLenum primary_format,   												   const LLUUID& force_id)  { -	return gTextureList.getImageFromFile(filename, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ; +	return gTextureList.getImageFromFile(filename, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;  }  //static  -LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string& url,									  +LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const std::string& url, +									 FTType f_type,  									 BOOL usemipmaps,  									 LLViewerTexture::EBoostLevel boost_priority,  									 S8 texture_type, @@ -297,12 +300,12 @@ LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromUrl(const s  									 const LLUUID& force_id  									 )  { -	return gTextureList.getImageFromUrl(url, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ; +	return gTextureList.getImageFromUrl(url, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id) ;  } -LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromHost(const LLUUID& image_id, LLHost host)  +LLViewerFetchedTexture* LLViewerTextureManager::getFetchedTextureFromHost(const LLUUID& image_id, FTType f_type, LLHost host)   { -	return gTextureList.getImageFromHost(image_id, host) ; +	return gTextureList.getImageFromHost(image_id, f_type, host) ;  }  // Create a bridge to the viewer texture manager. @@ -375,7 +378,7 @@ void LLViewerTextureManager::init()  	LLViewerFetchedTexture::sDefaultImagep->dontDiscard();  	LLViewerFetchedTexture::sDefaultImagep->setCategory(LLGLTexture::OTHER) ; - 	LLViewerFetchedTexture::sSmokeImagep = LLViewerTextureManager::getFetchedTexture(IMG_SMOKE, TRUE, LLGLTexture::BOOST_UI); + 	LLViewerFetchedTexture::sSmokeImagep = LLViewerTextureManager::getFetchedTexture(IMG_SMOKE, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	LLViewerFetchedTexture::sSmokeImagep->setNoDelete() ;  	image_raw = new LLImageRaw(32,32,3); @@ -396,7 +399,7 @@ void LLViewerTextureManager::init()  	LLViewerTexture::initClass() ;  	// Create a texture manager bridge. -	gTextureManagerBridgep = new LLViewerTextureManagerBridge(); +	gTextureManagerBridgep = new LLViewerTextureManagerBridge;  	if (LLMetricPerformanceTesterBasic::isMetricLogRequested(sTesterName) && !LLMetricPerformanceTesterBasic::getTester(sTesterName))  	{ @@ -902,25 +905,28 @@ void LLViewerTexture::updateBindStatsForTester()  //start of LLViewerFetchedTexture  //---------------------------------------------------------------------------------------------- -LLViewerFetchedTexture::LLViewerFetchedTexture(const LLUUID& id, const LLHost& host, BOOL usemipmaps) +LLViewerFetchedTexture::LLViewerFetchedTexture(const LLUUID& id, FTType f_type, const LLHost& host, BOOL usemipmaps)  	: LLViewerTexture(id, usemipmaps),  	mTargetHost(host)  {  	init(TRUE) ; +	mFTType = f_type;  	generateGLTexture() ;  } -LLViewerFetchedTexture::LLViewerFetchedTexture(const LLImageRaw* raw, BOOL usemipmaps) +LLViewerFetchedTexture::LLViewerFetchedTexture(const LLImageRaw* raw, FTType f_type, BOOL usemipmaps)  	: LLViewerTexture(raw, usemipmaps)  {  	init(TRUE) ; +	mFTType = f_type;  } -LLViewerFetchedTexture::LLViewerFetchedTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps) +LLViewerFetchedTexture::LLViewerFetchedTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps)  	: LLViewerTexture(id, usemipmaps),  	mUrl(url)  {  	init(TRUE) ; +	mFTType = f_type;  	generateGLTexture() ;  } @@ -986,6 +992,8 @@ void LLViewerFetchedTexture::init(bool firstinit)  	mLastCallBackActiveTime = 0.f;  	mInDebug = FALSE; + +	mFTType = FTT_UNKNOWN;  }  LLViewerFetchedTexture::~LLViewerFetchedTexture() @@ -1006,6 +1014,11 @@ S8 LLViewerFetchedTexture::getType() const  	return LLViewerTexture::FETCHED_TEXTURE ;  } +FTType LLViewerFetchedTexture::getFTType() const +{ +	return mFTType; +} +  void LLViewerFetchedTexture::cleanup()  {  	for(callback_list_t::iterator iter = mLoadedCallbackList.begin(); @@ -1922,7 +1935,7 @@ bool LLViewerFetchedTexture::updateFetch()  		// bypass texturefetch directly by pulling from LLTextureCache  		bool fetch_request_created = false; -		fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), decode_priority, +		fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mFTType, mUrl, getID(), getTargetHost(), decode_priority,  																			  w, h, c, desired_discard, needsAux(), mCanUseHTTP);  		if (fetch_request_created) @@ -2909,14 +2922,14 @@ BOOL LLViewerFetchedTexture::insertToAtlas()  //----------------------------------------------------------------------------------------------  //start of LLViewerLODTexture  //---------------------------------------------------------------------------------------------- -LLViewerLODTexture::LLViewerLODTexture(const LLUUID& id, const LLHost& host, BOOL usemipmaps) -	: LLViewerFetchedTexture(id, host, usemipmaps) +LLViewerLODTexture::LLViewerLODTexture(const LLUUID& id, FTType f_type, const LLHost& host, BOOL usemipmaps) +	: LLViewerFetchedTexture(id, f_type, host, usemipmaps)  {  	init(TRUE) ;  } -LLViewerLODTexture::LLViewerLODTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps) -	: LLViewerFetchedTexture(url, id, usemipmaps) +LLViewerLODTexture::LLViewerLODTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps) +	: LLViewerFetchedTexture(url, f_type, id, usemipmaps)  {  	init(TRUE) ;  } diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index ba6beec883..f2e1a90713 100644..100755 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -232,6 +232,16 @@ public:  }; +enum FTType +{ +	FTT_UNKNOWN = -1, +	FTT_DEFAULT = 0, // standard texture fetched by id. +	FTT_SERVER_BAKE, // texture produced by appearance service and fetched from there. +	FTT_HOST_BAKE, // old-style baked texture uploaded by viewer and fetched from avatar's host. +	FTT_MAP_TILE, // tiles are fetched from map server directly. +	FTT_LOCAL_FILE // fetch directly from a local file. +}; +  //  //textures are managed in gTextureList.  //raw image data is fetched from remote or local cache @@ -245,9 +255,9 @@ class LLViewerFetchedTexture : public LLViewerTexture  protected:  	/*virtual*/ ~LLViewerFetchedTexture();  public: -	LLViewerFetchedTexture(const LLUUID& id, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE); -	LLViewerFetchedTexture(const LLImageRaw* raw, BOOL usemipmaps); -	LLViewerFetchedTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps = TRUE); +	LLViewerFetchedTexture(const LLUUID& id, FTType f_type, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE); +	LLViewerFetchedTexture(const LLImageRaw* raw, FTType f_type, BOOL usemipmaps); +	LLViewerFetchedTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps = TRUE);  public:  	static F32 maxDecodePriority(); @@ -272,6 +282,7 @@ public:  public:  	/*virtual*/ S8 getType() const ; +	FTType getFTType() const;  	/*virtual*/ void forceImmediateUpdate() ;  	/*virtual*/ void dump() ; @@ -436,7 +447,8 @@ protected:  	S8  mHasFetcher;				// We've made a fecth request  	S8  mIsFetching;				// Fetch request is active  	bool mCanUseHTTP ;              //This texture can be fetched through http if true. -	 + +	FTType mFTType; // What category of image is this - map tile, server bake, etc?  	mutable S8 mIsMissingAsset;		// True if we know that there is no image asset with this image id in the database.		  	typedef std::list<LLLoadedCallbackEntry*> callback_list_t; @@ -496,8 +508,8 @@ protected:  	/*virtual*/ ~LLViewerLODTexture(){}  public: -	LLViewerLODTexture(const LLUUID& id, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE); -	LLViewerLODTexture(const std::string& url, const LLUUID& id, BOOL usemipmaps = TRUE); +	LLViewerLODTexture(const LLUUID& id, FTType f_type, const LLHost& host = LLHost::invalid, BOOL usemipmaps = TRUE); +	LLViewerLODTexture(const std::string& url, FTType f_type, const LLUUID& id, BOOL usemipmaps = TRUE);  	/*virtual*/ S8 getType() const;  	// Process image stats to determine priority/quality requirements. @@ -611,6 +623,7 @@ public:  	static LLPointer<LLViewerTexture> getLocalTexture(const U32 width, const U32 height, const U8 components, BOOL usemipmaps, BOOL generate_gl_tex = TRUE) ;  	static LLViewerFetchedTexture* getFetchedTexture(const LLUUID &image_id,									  +									 FTType f_type = FTT_DEFAULT,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,		// Get the requested level immediately upon creation.  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -620,6 +633,7 @@ public:  									 );  	static LLViewerFetchedTexture* getFetchedTextureFromFile(const std::string& filename,									  +									 FTType f_type = FTT_LOCAL_FILE,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -629,6 +643,7 @@ public:  									 );  	static LLViewerFetchedTexture* getFetchedTextureFromUrl(const std::string& url,									  +									 FTType f_type,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -637,7 +652,7 @@ public:  									 const LLUUID& force_id = LLUUID::null  									 ); -	static LLViewerFetchedTexture* getFetchedTextureFromHost(const LLUUID& image_id, LLHost host) ; +	static LLViewerFetchedTexture* getFetchedTextureFromHost(const LLUUID& image_id, FTType f_type, LLHost host) ;  	static void init() ;  	static void cleanup() ; diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index beadef34ba..d2af48f528 100755 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -112,10 +112,10 @@ void LLViewerTextureList::doPreloadImages()  	llassert_always(mUUIDMap.empty()) ;  	// Set the "missing asset" image -	LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI); +	LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", FTT_LOCAL_FILE, MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);  	// Set the "white" image -	LLViewerFetchedTexture::sWhiteImagep = LLViewerTextureManager::getFetchedTextureFromFile("white.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI); +	LLViewerFetchedTexture::sWhiteImagep = LLViewerTextureManager::getFetchedTextureFromFile("white.tga", FTT_LOCAL_FILE, MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);  	LLTexUnit::sWhiteTexture = LLViewerFetchedTexture::sWhiteImagep->getTexName();  	LLUIImageList* image_list = LLUIImageList::getInstance(); @@ -130,33 +130,33 @@ void LLViewerTextureList::doPreloadImages()  	//uv_test->setMipFilterNearest(TRUE, TRUE);  	// prefetch specific UUIDs -	LLViewerTextureManager::getFetchedTexture(IMG_SHOT, TRUE); -	LLViewerTextureManager::getFetchedTexture(IMG_SMOKE_POOF, TRUE); -	LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); +	LLViewerTextureManager::getFetchedTexture(IMG_SHOT); +	LLViewerTextureManager::getFetchedTexture(IMG_SMOKE_POOF); +	LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTextureFromFile("silhouette.j2c", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);  	if (image)   	{  		image->setAddressMode(LLTexUnit::TAM_WRAP);  		mImagePreloads.insert(image);  	} -	image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); +	image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryLines.png", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);  	if (image)   	{  		image->setAddressMode(LLTexUnit::TAM_WRAP);	  		mImagePreloads.insert(image);  	} -	image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryPassLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); +	image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryPassLines.png", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);  	if (image)   	{  		image->setAddressMode(LLTexUnit::TAM_WRAP);  		mImagePreloads.insert(image);  	} -	image = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); +	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", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, +	image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,  		0,0,LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"));  	if (image)   	{ @@ -198,7 +198,7 @@ void LLViewerTextureList::doPrefetchImages()  		if(LLViewerTexture::FETCHED_TEXTURE == texture_type || LLViewerTexture::LOD_TEXTURE == texture_type)  		{ -			LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(uuid, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, texture_type); +			LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(uuid, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_NONE, texture_type);  			if (image)  			{  				image->addTextureStats((F32)pixel_area); @@ -324,7 +324,8 @@ void LLViewerTextureList::restoreGL()  /////////////////////////////////////////////////////////////////////////////// -LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string& filename,												    +LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string& filename, +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -341,15 +342,16 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string&  	if (full_path.empty())  	{  		llwarns << "Failed to find local image file: " << filename << llendl; -		return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLGLTexture::BOOST_UI); +		return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	}  	std::string url = "file://" + full_path; -	return getImageFromUrl(url, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id); +	return getImageFromUrl(url, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, force_id);  }  LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string& url, +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -397,10 +399,10 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&  		switch(texture_type)  		{  		case LLViewerTexture::FETCHED_TEXTURE: -			imagep = new LLViewerFetchedTexture(url, new_id, usemipmaps); +			imagep = new LLViewerFetchedTexture(url, f_type, new_id, usemipmaps);  			break ;  		case LLViewerTexture::LOD_TEXTURE: -			imagep = new LLViewerLODTexture(url, new_id, usemipmaps); +			imagep = new LLViewerLODTexture(url, f_type, new_id, usemipmaps);  			break ;  		default:  			llerrs << "Invalid texture type " << texture_type << llendl ; @@ -430,7 +432,8 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&  } -LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,											        +LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id, +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -449,7 +452,7 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,  	if ((&image_id == NULL) || image_id.isNull())  	{ -		return (LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, TRUE, LLGLTexture::BOOST_UI)); +		return (LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI));  	}  	LLPointer<LLViewerFetchedTexture> imagep = findImage(image_id); @@ -468,11 +471,15 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,  			llwarns << "Requested texture " << image_id << " already exists with a different target host, requested: "   					<< request_from_host << " current: " << texture->getTargetHost() << llendl;  		} +		if (f_type != FTT_DEFAULT && imagep->getFTType() != f_type) +		{ +			llwarns << "FTType mismatch: requested " << f_type << " image has " << imagep->getFTType() << llendl; +		}  	}  	if (imagep.isNull())  	{ -		imagep = createImage(image_id, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ; +		imagep = createImage(image_id, f_type, usemipmaps, boost_priority, texture_type, internal_format, primary_format, request_from_host) ;  	}  	imagep->setGLTextureCreated(true); @@ -481,7 +488,8 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,  }  //when this function is called, there is no such texture in the gTextureList with image_id. -LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,											        +LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id, +												   FTType f_type,  												   BOOL usemipmaps,  												   LLViewerTexture::EBoostLevel boost_priority,  												   S8 texture_type, @@ -495,10 +503,10 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,  	switch(texture_type)  	{  	case LLViewerTexture::FETCHED_TEXTURE: -		imagep = new LLViewerFetchedTexture(image_id, request_from_host, usemipmaps); +		imagep = new LLViewerFetchedTexture(image_id, f_type, request_from_host, usemipmaps);  		break ;  	case LLViewerTexture::LOD_TEXTURE: -		imagep = new LLViewerLODTexture(image_id, request_from_host, usemipmaps); +		imagep = new LLViewerLODTexture(image_id, f_type, request_from_host, usemipmaps);  		break ;  	default:  		llerrs << "Invalid texture type " << texture_type << llendl ; @@ -1388,7 +1396,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d  	U8 *data = new U8[data_size];  	msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size); -	LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +	LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  	if (!image)  	{  		delete [] data; @@ -1460,7 +1468,7 @@ void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_d  	U8 *data = new U8[data_size];  	msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size); -	LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +	LLViewerFetchedTexture *image = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  	if (!image)  	{  		delete [] data; @@ -1565,7 +1573,7 @@ LLUIImagePtr LLUIImageList::loadUIImageByName(const std::string& name, const std  	{  		boost_priority = LLGLTexture::BOOST_UI;  	} -	LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTextureFromFile(filename, MIPMAP_NO, boost_priority); +	LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTextureFromFile(filename, FTT_LOCAL_FILE, MIPMAP_NO, boost_priority);  	return loadUIImage(imagep, name, use_mips, scale_rect, clip_rect);  } @@ -1576,7 +1584,7 @@ LLUIImagePtr LLUIImageList::loadUIImageByID(const LLUUID& id,  	{  		boost_priority = LLGLTexture::BOOST_UI;  	} -	LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(id, MIPMAP_NO, boost_priority); +	LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, MIPMAP_NO, boost_priority);  	return loadUIImage(imagep, id.asString(), use_mips, scale_rect, clip_rect);  } diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h index 05c7c35f7c..136042620d 100644..100755 --- a/indra/newview/llviewertexturelist.h +++ b/indra/newview/llviewertexturelist.h @@ -130,6 +130,7 @@ private:  	void removeImageFromList(LLViewerFetchedTexture *image);  	LLViewerFetchedTexture * getImage(const LLUUID &image_id,									  +									 FTType f_type = FTT_DEFAULT,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,		// Get the requested level immediately upon creation.  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -139,6 +140,7 @@ private:  									 );  	LLViewerFetchedTexture * getImageFromFile(const std::string& filename,									  +									 FTType f_type = FTT_LOCAL_FILE,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,		// Get the requested level immediately upon creation.  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -148,6 +150,7 @@ private:  									 );  	LLViewerFetchedTexture* getImageFromUrl(const std::string& url, +									 FTType f_type,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,		// Get the requested level immediately upon creation.  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -157,6 +160,7 @@ private:  									 );  	LLViewerFetchedTexture* createImage(const LLUUID &image_id, +									 FTType f_type,  									 BOOL usemipmap = TRUE,  									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,		// Get the requested level immediately upon creation.  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE, @@ -167,8 +171,8 @@ private:  	// Request image from a specific host, used for baked avatar textures.  	// Implemented in header in case someone changes default params above. JC -	LLViewerFetchedTexture* getImageFromHost(const LLUUID& image_id, LLHost host) -	{ return getImage(image_id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); }	 +	LLViewerFetchedTexture* getImageFromHost(const LLUUID& image_id, FTType f_type, LLHost host) +	{ return getImage(image_id, f_type, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); }	  public:  	typedef std::set<LLPointer<LLViewerFetchedTexture> > image_list_t;	 diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp index 4477893063..e8425dc76a 100755 --- a/indra/newview/llviewerwearable.cpp +++ b/indra/newview/llviewerwearable.cpp @@ -350,7 +350,7 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)  			{	  				image_id = getDefaultTextureImageID((ETextureIndex) te);  			} -			LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( image_id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE ); +			LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE );  			// MULTI-WEARABLE: assume index 0 will be used when writing to avatar. TODO: eliminate the need for this.  			viewer_avatar->setLocalTextureTE(te, image, 0);  		} diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index cec1dc677f..8cc3416d0e 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1813,14 +1813,14 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU  		{  			LL_DEBUGS("Avatar") << avString() << "from URL " << url << llendl;  			result = LLViewerTextureManager::getFetchedTextureFromUrl( -				url, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, uuid); +				url, FTT_SERVER_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, uuid);  		}  		else  		{  			LL_DEBUGS("Avatar") << avString() << "from host " << uuid << llendl;  			LLHost host = getObjectHost();  			result = LLViewerTextureManager::getFetchedTexture( -				uuid, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host); +				uuid, FTT_HOST_BAKE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);  		}  	}  	return result; @@ -7011,7 +7011,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  			&& baked_index != BAKED_SKIRT)  		{  			setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,  -				LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); +				LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));  		}  	} diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index f7902c5302..240ab202f8 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -2648,7 +2648,7 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )  {  	// Baked textures live on other sims.  	LLHost target_host = getObjectHost();	 -	setTEImage( te, LLViewerTextureManager::getFetchedTextureFromHost( uuid, target_host ) ); +	setTEImage( te, LLViewerTextureManager::getFetchedTextureFromHost( uuid, FTT_HOST_BAKE, target_host ) );  	updateMeshTextures();  	dirtyMesh(); diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp index 2a7b7cfa37..6a25b765cf 100644 --- a/indra/newview/llvograss.cpp +++ b/indra/newview/llvograss.cpp @@ -102,7 +102,7 @@ void LLVOGrass::updateSpecies()  		SpeciesMap::const_iterator it = sSpeciesTable.begin();  		mSpecies = (*it).first;  	} -	setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE)); +	setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));  } diff --git a/indra/newview/llvoicevisualizer.cpp b/indra/newview/llvoicevisualizer.cpp index 315e618132..2241537aaf 100644 --- a/indra/newview/llvoicevisualizer.cpp +++ b/indra/newview/llvoicevisualizer.cpp @@ -136,7 +136,7 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type )  	for (int i=0; i<NUM_VOICE_SYMBOL_WAVES; i++)  	{  		mSoundSymbol.mWaveFadeOutStartTime	[i] = mCurrentTime; -		mSoundSymbol.mTexture				[i] = LLViewerTextureManager::getFetchedTextureFromFile(sound_level_img[i], FALSE, LLGLTexture::BOOST_UI); +		mSoundSymbol.mTexture				[i] = LLViewerTextureManager::getFetchedTextureFromFile(sound_level_img[i], FTT_LOCAL_FILE, FALSE, LLGLTexture::BOOST_UI);  		mSoundSymbol.mWaveActive			[i] = false;  		mSoundSymbol.mWaveOpacity			[i] = 1.0f;  		mSoundSymbol.mWaveExpansion			[i] = 1.0f; diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index bf09e6550d..36793017ed 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -384,9 +384,9 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)  	mSun.setIntensity(SUN_INTENSITY);  	mMoon.setIntensity(0.1f * SUN_INTENSITY); -	mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLGLTexture::BOOST_UI); +	mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	mSunTexturep->setAddressMode(LLTexUnit::TAM_CLAMP); -	mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLGLTexture::BOOST_UI); +	mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	mMoonTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);  	mBloomTexturep = LLViewerTextureManager::getFetchedTexture(IMG_BLOOM1);  	mBloomTexturep->setNoDelete() ; @@ -478,9 +478,9 @@ void LLVOSky::restoreGL()  	{  		mSkyTex[i].restoreGL();  	} -	mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, TRUE, LLGLTexture::BOOST_UI); +	mSunTexturep = LLViewerTextureManager::getFetchedTexture(gSunTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	mSunTexturep->setAddressMode(LLTexUnit::TAM_CLAMP); -	mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, TRUE, LLGLTexture::BOOST_UI); +	mMoonTexturep = LLViewerTextureManager::getFetchedTexture(gMoonTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);  	mMoonTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);  	mBloomTexturep = LLViewerTextureManager::getFetchedTexture(IMG_BLOOM1);  	mBloomTexturep->setNoDelete() ; diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp index 68bb40d727..145a0380d6 100644 --- a/indra/newview/llvotree.cpp +++ b/indra/newview/llvotree.cpp @@ -316,7 +316,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,  	//  Load Species-Specific data   	//  	static const S32 MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 32 ; //frames. -	mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +	mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  	mTreeImagep->setMaxVirtualSizeResetInterval(MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL); //allow to wait for at most 16 frames to reset virtual size.  	mBranchLength = sSpeciesTable[mSpecies]->mBranchLength; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 0e65df939a..8730ef66bb 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -1006,7 +1006,7 @@ BOOL LLVOVolume::setVolume(const LLVolumeParams ¶ms_in, const S32 detail, bo  	if (is404)  	{ -		setIcon(LLViewerTextureManager::getFetchedTextureFromFile("icons/Inv_Mesh.png", TRUE, LLGLTexture::BOOST_UI)); +		setIcon(LLViewerTextureManager::getFetchedTextureFromFile("icons/Inv_Mesh.png", FTT_LOCAL_FILE, TRUE, LLGLTexture::BOOST_UI));  		//render prim proxy when mesh loading attempts give up  		volume_params.setSculptID(LLUUID::null, LL_SCULPT_TYPE_NONE); @@ -1090,7 +1090,7 @@ void LLVOVolume::updateSculptTexture()  		LLUUID id =  sculpt_params->getSculptTexture();  		if (id.notNull())  		{ -			mSculptTexture = LLViewerTextureManager::getFetchedTexture(id, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +			mSculptTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  		}  	}  	else diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp index 4d52f23ddb..c89a00f3a4 100644 --- a/indra/newview/llworldmap.cpp +++ b/indra/newview/llworldmap.cpp @@ -78,7 +78,7 @@ void LLSimInfo::setLandForSaleImage (LLUUID image_id)  	// Fetch the image  	if (mMapImageID.notNull())  	{ -		mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE); +		mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);  		mOverlayImage->setAddressMode(LLTexUnit::TAM_CLAMP);  	}  	else @@ -92,7 +92,7 @@ LLPointer<LLViewerFetchedTexture> LLSimInfo::getLandForSaleImage ()  	if (mOverlayImage.isNull() && mMapImageID.notNull())  	{  		// Fetch the image if it hasn't been done yet (unlikely but...) -		mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE); +		mOverlayImage = LLViewerTextureManager::getFetchedTexture(mMapImageID, FTT_DEFAULT, MIPMAP_TRUE, LLGLTexture::BOOST_MAP, LLViewerTexture::LOD_TEXTURE);  		mOverlayImage->setAddressMode(LLTexUnit::TAM_CLAMP);  	}  	if (!mOverlayImage.isNull()) diff --git a/indra/newview/llworldmipmap.cpp b/indra/newview/llworldmipmap.cpp index c9d2a24a4e..895ccaef5a 100644 --- a/indra/newview/llworldmipmap.cpp +++ b/indra/newview/llworldmipmap.cpp @@ -189,7 +189,7 @@ LLPointer<LLViewerFetchedTexture> LLWorldMipmap::loadObjectsTile(U32 grid_x, U32  	// END DEBUG  	//LL_INFOS("World Map") << "LLWorldMipmap::loadObjectsTile(), URL = " << imageurl << LL_ENDL; -	LLPointer<LLViewerFetchedTexture> img = LLViewerTextureManager::getFetchedTextureFromUrl(imageurl, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); +	LLPointer<LLViewerFetchedTexture> img = LLViewerTextureManager::getFetchedTextureFromUrl(imageurl, FTT_MAP_TILE, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);  	img->setBoostLevel(LLGLTexture::BOOST_MAP);  	// Return the smart pointer | 
