diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llviewermessage.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/pipeline.cpp | 16 | ||||
| -rwxr-xr-x | indra/newview/pipeline.h | 2 | 
3 files changed, 18 insertions, 2 deletions
| diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index bf1e915d5d..c5126ea78a 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3917,6 +3917,8 @@ void process_teleport_finish(LLMessageSystem* msg, void**)  	// Teleport is finished; it can't be cancelled now.  	gViewerWindow->setProgressCancelButtonVisible(FALSE); +	gPipeline.doResetVertexBuffers(true); +  	// Do teleport effect for where you're leaving  	// VEFFECT: TeleportStart  	LLHUDEffectSpiral *effectp = (LLHUDEffectSpiral *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINT, TRUE); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index c2c981893a..c4fa80f0a2 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -7385,12 +7385,26 @@ void LLPipeline::resetVertexBuffers()  static LLTrace::BlockTimerStatHandle FTM_RESET_VB("Reset VB"); -void LLPipeline::doResetVertexBuffers() +void LLPipeline::doResetVertexBuffers(bool forced)  {  	if (!mResetVertexBuffers)  	{  		return;  	} +	if(!forced && LLSpatialPartition::sTeleportRequested) +	{ +		if(gAgent.getTeleportState() != LLAgent::TELEPORT_NONE) +		{ +			return; //wait for teleporting to finish +		} +		else +		{ +			//teleporting aborted +			LLSpatialPartition::sTeleportRequested = FALSE; +			mResetVertexBuffers = false; +			return; +		} +	}  	LL_RECORD_BLOCK_TIME(FTM_RESET_VB);  	mResetVertexBuffers = false; diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 469c7b329e..9e29ebd2a8 100755 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -101,7 +101,7 @@ public:  	void destroyGL();  	void restoreGL();  	void resetVertexBuffers(); -	void doResetVertexBuffers(); +	void doResetVertexBuffers(bool forced = false);  	void resizeScreenTexture();  	void releaseGLBuffers();  	void releaseLUTBuffers(); | 
