mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-02 20:10:32 +00:00
Reduce innecesary changes on Render Target textures.
This commit is contained in:
parent
c354f59b72
commit
c0b2e6536b
7 changed files with 29 additions and 9 deletions
|
|
@ -59,6 +59,7 @@ void DualParaboloidLightShadowMap::_render( RenderPassManager* renderPass,
|
|||
mShadowMapTex.set( mTexSize * 2, mTexSize,
|
||||
ShadowMapFormat, &ShadowMapProfile,
|
||||
"DualParaboloidLightShadowMap" );
|
||||
mShadowMapDepth = _getDepthTarget( mShadowMapTex->getWidth(), mShadowMapTex->getHeight() );
|
||||
}
|
||||
|
||||
GFXFrustumSaver frustSaver;
|
||||
|
|
@ -68,8 +69,7 @@ void DualParaboloidLightShadowMap::_render( RenderPassManager* renderPass,
|
|||
GFX->pushActiveRenderTarget();
|
||||
|
||||
mTarget->attachTexture(GFXTextureTarget::Color0, mShadowMapTex);
|
||||
mTarget->attachTexture( GFXTextureTarget::DepthStencil,
|
||||
_getDepthTarget( mShadowMapTex->getWidth(), mShadowMapTex->getHeight() ) );
|
||||
mTarget->attachTexture( GFXTextureTarget::DepthStencil, mShadowMapDepth );
|
||||
GFX->setActiveRenderTarget(mTarget);
|
||||
GFX->clear(GFXClearTarget | GFXClearStencil | GFXClearZBuffer, ColorI::WHITE, 1.0f, 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -259,6 +259,7 @@ protected:
|
|||
GFXTextureTargetRef mTarget;
|
||||
U32 mTexSize;
|
||||
GFXTexHandle mShadowMapTex;
|
||||
GFXTexHandle mShadowMapDepth;
|
||||
|
||||
// The light we are rendering.
|
||||
LightInfo *mLight;
|
||||
|
|
|
|||
|
|
@ -204,7 +204,10 @@ void PSSMLightShadowMap::_render( RenderPassManager* renderPass,
|
|||
if ( mShadowMapTex.isNull() ||
|
||||
mNumSplits != params->numSplits ||
|
||||
mTexSize != texSize )
|
||||
{
|
||||
_setNumSplits( params->numSplits, texSize );
|
||||
mShadowMapDepth = _getDepthTarget( mShadowMapTex->getWidth(), mShadowMapTex->getHeight() );
|
||||
}
|
||||
mLogWeight = params->logWeight;
|
||||
|
||||
Frustum fullFrustum( diffuseState->getCameraFrustum() );
|
||||
|
|
@ -216,8 +219,7 @@ void PSSMLightShadowMap::_render( RenderPassManager* renderPass,
|
|||
// Set our render target
|
||||
GFX->pushActiveRenderTarget();
|
||||
mTarget->attachTexture( GFXTextureTarget::Color0, mShadowMapTex );
|
||||
mTarget->attachTexture( GFXTextureTarget::DepthStencil,
|
||||
_getDepthTarget( mShadowMapTex->getWidth(), mShadowMapTex->getHeight() ) );
|
||||
mTarget->attachTexture( GFXTextureTarget::DepthStencil, mShadowMapDepth );
|
||||
GFX->setActiveRenderTarget( mTarget );
|
||||
GFX->clear( GFXClearStencil | GFXClearZBuffer | GFXClearTarget, ColorI(255,255,255), 1.0f, 0 );
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue