Added support to disable a draw pool. When the movable option checkbox is selected we will now also cull the terrain draw pool.
parent
88674e02dd
commit
92ce47a1b2
|
|
@ -116,6 +116,7 @@ LLDrawPool::LLDrawPool(const U32 type)
|
|||
sNumDrawPools++;
|
||||
mId = sNumDrawPools;
|
||||
mVertexShaderLevel = 0;
|
||||
mSkipRender = false;
|
||||
}
|
||||
|
||||
LLDrawPool::~LLDrawPool()
|
||||
|
|
|
|||
|
|
@ -77,6 +77,9 @@ public:
|
|||
S32 getId() const { return mId; }
|
||||
U32 getType() const { return mType; }
|
||||
|
||||
BOOL getSkipRenderFlag() const { return mSkipRender;}
|
||||
void setSkipRenderFlag( BOOL flag ) { mSkipRender = flag; }
|
||||
|
||||
virtual LLViewerTexture *getDebugTexture();
|
||||
virtual void beginRenderPass( S32 pass );
|
||||
virtual void endRenderPass( S32 pass );
|
||||
|
|
@ -113,6 +116,7 @@ protected:
|
|||
S32 mVertexShaderLevel;
|
||||
S32 mId;
|
||||
U32 mType; // Type of draw pool
|
||||
BOOL mSkipRender;
|
||||
};
|
||||
|
||||
class LLRenderPass : public LLDrawPool
|
||||
|
|
|
|||
|
|
@ -1003,6 +1003,10 @@ void LLFloaterPathfindingConsole::cleanupRenderableRestoreItems()
|
|||
gPipeline.restorePermanentObjects( mRenderableRestoreList );
|
||||
mRenderableRestoreList.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
gPipeline.skipRenderingOfTerrain( false );
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::setAgentState(LLPathfindingManager::EAgentState pAgentState)
|
||||
|
|
|
|||
|
|
@ -3864,7 +3864,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
|
|||
break;
|
||||
}
|
||||
|
||||
p->render(i);
|
||||
if ( !p->getSkipRenderFlag() ) { p->render(i); }
|
||||
}
|
||||
poolp->endRenderPass(i);
|
||||
LLVertexBuffer::unbind();
|
||||
|
|
@ -4038,7 +4038,7 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
|
|||
break;
|
||||
}
|
||||
|
||||
p->renderDeferred(i);
|
||||
if ( !p->getSkipRenderFlag() ) { p->renderDeferred(i); }
|
||||
}
|
||||
poolp->endDeferredPass(i);
|
||||
LLVertexBuffer::unbind();
|
||||
|
|
@ -10139,6 +10139,8 @@ void LLPipeline::hidePermanentObjects( std::vector<U32>& restoreList )
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
skipRenderingOfTerrain( true );
|
||||
}
|
||||
|
||||
void LLPipeline::restorePermanentObjects( const std::vector<U32>& restoreList )
|
||||
|
|
@ -10183,5 +10185,21 @@ void LLPipeline::restorePermanentObjects( const std::vector<U32>& restoreList )
|
|||
}
|
||||
++itCurrent;
|
||||
}
|
||||
|
||||
skipRenderingOfTerrain( false );
|
||||
}
|
||||
|
||||
void LLPipeline::skipRenderingOfTerrain( BOOL flag )
|
||||
{
|
||||
pool_set_t::iterator iter = mPools.begin();
|
||||
while ( iter != mPools.end() )
|
||||
{
|
||||
LLDrawPool* pPool = *iter;
|
||||
U32 poolType = pPool->getType();
|
||||
if ( hasRenderType( pPool->getType() ) && poolType == LLDrawPool::POOL_TERRAIN )
|
||||
{
|
||||
pPool->setSkipRenderFlag( flag );
|
||||
}
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -368,6 +368,7 @@ public:
|
|||
|
||||
void hidePermanentObjects( std::vector<U32>& restoreList );
|
||||
void restorePermanentObjects( const std::vector<U32>& restoreList );
|
||||
void skipRenderingOfTerrain( BOOL flag );
|
||||
|
||||
private:
|
||||
void unloadShaders();
|
||||
|
|
|
|||
Loading…
Reference in New Issue