diff --git a/Engine/source/materials/matInstance.cpp b/Engine/source/materials/matInstance.cpp index b7be80f3e..a61b75bf7 100644 --- a/Engine/source/materials/matInstance.cpp +++ b/Engine/source/materials/matInstance.cpp @@ -242,7 +242,7 @@ void MatInstance::construct() { mUserObject = NULL; mCurPass = -1; - mProcessedMaterial = false; + mProcessedMaterial = NULL; mVertexFormat = NULL; mMaxStages = 1; mActiveParameters = NULL; diff --git a/Engine/source/materials/processedMaterial.cpp b/Engine/source/materials/processedMaterial.cpp index 1a18ef225..34ce285a0 100644 --- a/Engine/source/materials/processedMaterial.cpp +++ b/Engine/source/materials/processedMaterial.cpp @@ -217,13 +217,13 @@ void ProcessedMaterial::_initPassStateBlock( RenderPassData *rpd, GFXStateBlockD _setBlendState( rpd->mBlendOp, result ); } - if (mMaterial->isDoubleSided()) + if (mMaterial && mMaterial->isDoubleSided()) { result.cullDefined = true; result.cullMode = GFXCullNone; } - if(mMaterial->mAlphaTest) + if(mMaterial && mMaterial->mAlphaTest) { result.alphaDefined = true; result.alphaTestEnable = mMaterial->mAlphaTest; @@ -235,7 +235,7 @@ void ProcessedMaterial::_initPassStateBlock( RenderPassData *rpd, GFXStateBlockD NamedTexTarget *texTarget; U32 maxAnisotropy = 1; - if ( mMaterial->mUseAnisotropic[ rpd->mStageNum ] ) + if (mMaterial && mMaterial->mUseAnisotropic[ rpd->mStageNum ] ) maxAnisotropy = MATMGR->getDefaultAnisotropy(); for( U32 i=0; i < rpd->mNumTex; i++ ) diff --git a/Engine/source/materials/processedShaderMaterial.cpp b/Engine/source/materials/processedShaderMaterial.cpp index db6e70803..1265eeb5e 100644 --- a/Engine/source/materials/processedShaderMaterial.cpp +++ b/Engine/source/materials/processedShaderMaterial.cpp @@ -1256,7 +1256,7 @@ MaterialParameterHandle* ProcessedShaderMaterial::getMaterialParameterHandle(con /// This is here to deal with the differences between ProcessedCustomMaterials and ProcessedShaderMaterials. GFXShaderConstBuffer* ProcessedShaderMaterial::_getShaderConstBuffer( const U32 pass ) { - if (pass < mPasses.size()) + if (mCurrentParams && pass < mPasses.size()) { return static_cast(mCurrentParams)->getBuffer(pass); }