From 6fa44a4e925993edebe2afbd37974f1c5a007021 Mon Sep 17 00:00:00 2001 From: Azaezel Date: Tue, 10 Mar 2015 06:03:40 -0500 Subject: [PATCH] further insurance that shadow split stay within bounds. --- Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp b/Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp index 257112686..15a338db9 100644 --- a/Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp +++ b/Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp @@ -63,15 +63,15 @@ F32 PSSMLightShadowMap::smSmallestVisiblePixelSize = 25.0f; PSSMLightShadowMap::PSSMLightShadowMap( LightInfo *light ) : LightShadowMap( light ), - mNumSplits( 0 ) + mNumSplits( 1 ) { mIsViewDependent = true; } void PSSMLightShadowMap::_setNumSplits( U32 numSplits, U32 texSize ) { - AssertFatal( numSplits > 0 && numSplits <= MAX_SPLITS, - "PSSMLightShadowMap::_setNumSplits() - Splits must be between 1 and 4!" ); + AssertFatal(numSplits > 0 && numSplits <= MAX_SPLITS, + avar("PSSMLightShadowMap::_setNumSplits() - Splits must be between 1 and %d!", MAX_SPLITS)); releaseTextures(); @@ -387,6 +387,9 @@ void PSSMLightShadowMap::setShaderParameters(GFXShaderConstBuffer* params, Light { PROFILE_SCOPE( PSSMLightShadowMap_setShaderParameters ); + AssertFatal(mNumSplits > 0 && mNumSplits <= MAX_SPLITS, + avar("PSSMLightShadowMap::_setNumSplits() - Splits must be between 1 and %d!", MAX_SPLITS)); + if ( lsc->mTapRotationTexSC->isValid() ) GFX->setTexture( lsc->mTapRotationTexSC->getSamplerRegister(), SHADOWMGR->getTapRotationTex() );