Merge pull request #423 from tdev/material-ptrs

fixed pointer problems and guard in material files
This commit is contained in:
SilentMike 2013-08-11 22:12:16 -07:00
commit 824944d7b5
3 changed files with 5 additions and 5 deletions

View file

@ -242,7 +242,7 @@ void MatInstance::construct()
{
mUserObject = NULL;
mCurPass = -1;
mProcessedMaterial = false;
mProcessedMaterial = NULL;
mVertexFormat = NULL;
mMaxStages = 1;
mActiveParameters = NULL;

View file

@ -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++ )

View file

@ -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<ShaderMaterialParameters*>(mCurrentParams)->getBuffer(pass);
}