diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldynamictexture.cpp | 22 | 
1 files changed, 17 insertions, 5 deletions
| diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp index bb4e6c7a3e..a460a4f618 100644 --- a/indra/newview/lldynamictexture.cpp +++ b/indra/newview/lldynamictexture.cpp @@ -167,12 +167,19 @@ void LLViewerDynamicTexture::postRender(BOOL success)  			{  				generateGLTexture() ;  			} -			if(!mGLTexturep->getHasGLTexture()) +			else if(!mGLTexturep->getHasGLTexture()) +			{ +				generateGLTexture() ; +			}			 +			else if(mGLTexturep->getDiscardLevel() != 0)//do not know how it happens, but regenerate one if it does.  			{  				generateGLTexture() ;  			} -			llcallstacks << "class type: " << (S32)getType() << llcallstacksendl ; +			if(gGLManager.mDebugGPU) +			{ +				LLGLState::dumpStates() ; +			}  			success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);  		}  	} @@ -211,11 +218,16 @@ BOOL LLViewerDynamicTexture::updateAllInstances()  		{  			LLViewerDynamicTexture *dynamicTexture = *iter;  			if (dynamicTexture->needsRender()) -			{ +			{				 +				if(gGLManager.mDebugGPU) +				{				 +					llinfos << "class type: " << (S32)dynamicTexture->getType() << llendl; +					LLGLState::dumpStates() ; +				} +  				glClear(GL_DEPTH_BUFFER_BIT);  				gDepthDirty = TRUE; -				 -				 +								  				gGL.color4f(1,1,1,1);  				dynamicTexture->preRender();	// Must be called outside of startRender()  				result = FALSE; | 
