diff options
| -rw-r--r-- | indra/llrender/llrender.cpp | 5 | ||||
| -rw-r--r-- | indra/llrender/lltexture.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 29 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.h | 7 | 
4 files changed, 42 insertions, 1 deletions
| diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index 4597d06260..630b9125a2 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -245,6 +245,11 @@ bool LLTexUnit::bind(LLTexture* texture, bool for_rendering, bool forceBind)  		return texture->bindDefaultImage(mIndex);  	} +	if(texture->isActiveFetching()) //in debug +	{ +		return texture->bindDebugImage(mIndex); +	} +  	//in audit, replace the selected texture by the default one.  	if ((mCurrTexture != gl_tex->getTexName()) || forceBind)  	{ diff --git a/indra/llrender/lltexture.h b/indra/llrender/lltexture.h index 569a65c2e0..9033881424 100644 --- a/indra/llrender/lltexture.h +++ b/indra/llrender/lltexture.h @@ -58,10 +58,12 @@ public:  	virtual S8         getType() const = 0 ;  	virtual void       setKnownDrawSize(S32 width, S32 height) = 0 ;  	virtual bool       bindDefaultImage(const S32 stage = 0) = 0 ; +	virtual bool       bindDebugImage(const S32 stage = 0) = 0;  	virtual void       forceImmediateUpdate() = 0 ;  	virtual void       setActive() = 0 ;  	virtual S32	       getWidth(S32 discard_level = -1) const = 0 ;  	virtual S32	       getHeight(S32 discard_level = -1) const = 0 ; +	virtual bool       isActiveFetching() = 0;  private:  	//note: do not make this function public. diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 7edfa6adfa..12835002d3 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -698,6 +698,28 @@ void LLViewerTexture::setBoostLevel(S32 level)  } +bool LLViewerTexture::isActiveFetching() +{ +	return false; +} + +bool LLViewerTexture::bindDebugImage(const S32 stage) +{ +	if (stage < 0) return false; + +	bool res = true; +	if (LLViewerTexture::sCheckerBoardImagep.notNull() && (this != LLViewerTexture::sCheckerBoardImagep.get())) +	{ +		res = gGL.getTexUnit(stage)->bind(LLViewerTexture::sCheckerBoardImagep); +	} + +	if(!res) +	{ +		return bindDefaultImage(stage); +	} + +	return res; +}  bool LLViewerTexture::bindDefaultImage(S32 stage)   { @@ -1990,6 +2012,13 @@ bool LLViewerFetchedTexture::setDebugFetching(S32 debug_level)  	return true;  } +bool LLViewerFetchedTexture::isActiveFetching() +{ +	static LLCachedControl<bool> monitor_enabled(gSavedSettings,"DebugShowTextureInfo"); + +	return mFetchState > 7 && mFetchState < 10 && monitor_enabled; //in state of WAIT_HTTP_REQ or DECODE_IMAGE. +} +  bool LLViewerFetchedTexture::updateFetch()  {  	static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled"); diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 0a9778ce76..d69a0ffb72 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -167,8 +167,10 @@ public:  	virtual void dump();	// debug info to llinfos  	/*virtual*/ bool bindDefaultImage(const S32 stage = 0) ; +	/*virtual*/ bool bindDebugImage(const S32 stage = 0) ;  	/*virtual*/ void forceImmediateUpdate() ; -	 +	/*virtual*/ bool isActiveFetching(); +  	const LLUUID& getID() const { return mID; }  	void setBoostLevel(S32 level); @@ -506,6 +508,9 @@ public:  	void        loadFromFastCache();  	void        setInFastCacheList(bool in_list) { mInFastCacheList = in_list; }  	bool        isInFastCacheList() { return mInFastCacheList; } + +	/*virtual*/bool  isActiveFetching(); //is actively in fetching by the fetching pipeline. +  protected:  	/*virtual*/ void switchToCachedImage();  	S32 getCurrentDiscardLevelForFetching() ; | 
