Browse Source

Merge pull request #1249 from Azaezel/shadow_safeties

further insurance that shadow split stay within bounds.
Luis Anton Rebollo 10 years ago
parent
commit
3c12325e97
1 changed files with 6 additions and 3 deletions
  1. 6 3
      Engine/source/lighting/shadowMap/pssmLightShadowMap.cpp

+ 6 - 3
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() );