diff options
| -rw-r--r-- | indra/llrender/llimagegl.cpp | 11 | ||||
| -rw-r--r-- | indra/llrender/llimagegl.h | 2 | 
2 files changed, 13 insertions, 0 deletions
| diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index a86a0aac23..311009064f 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -362,6 +362,7 @@ void LLImageGL::init(BOOL usemipmaps)  	mGLTextureCreated = FALSE ;  	mIsMask = FALSE; +	mNeedsAlpahAndPickMask = TRUE ;  }  void LLImageGL::cleanup() @@ -1356,6 +1357,11 @@ void LLImageGL::setTarget(const LLGLenum target, const LLTexUnit::eTextureType b  void LLImageGL::analyzeAlpha(const void* data_in, S32 w, S32 h)  { +	if(!mNeedsAlpahAndPickMask) +	{ +		return ; +	} +  	if (mFormatType != GL_UNSIGNED_BYTE)  	{  		llwarns << "Cannot analyze alpha for image with format type " << std::hex << mFormatType << std::dec << llendl; @@ -1416,6 +1422,11 @@ void LLImageGL::analyzeAlpha(const void* data_in, S32 w, S32 h)  //----------------------------------------------------------------------------  void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)  { +	if(!mNeedsAlpahAndPickMask) +	{ +		return ; +	} +  	if (mFormatType != GL_UNSIGNED_BYTE ||  		mFormatPrimary != GL_RGBA)  	{ diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h index 09210b1ef1..b58472d398 100644 --- a/indra/llrender/llimagegl.h +++ b/indra/llrender/llimagegl.h @@ -167,6 +167,7 @@ public:  	void init(BOOL usemipmaps);  	virtual void cleanup(); // Clean up the LLImageGL so it can be reinitialized.  Be careful when using this in derived class destructors +	void setNeedsAlpahAndPickMask(BOOL need_mask) {mNeedsAlpahAndPickMask = need_mask;}  public:  	// Various GL/Rendering options  	S32 mTextureMemory; @@ -180,6 +181,7 @@ private:  	S8 mAutoGenMips;  	BOOL mIsMask; +	BOOL mNeedsAlpahAndPickMask;  	bool     mGLTextureCreated ;  	LLGLuint mTexName; | 
