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; mUserObject = NULL;
mCurPass = -1; mCurPass = -1;
mProcessedMaterial = false; mProcessedMaterial = NULL;
mVertexFormat = NULL; mVertexFormat = NULL;
mMaxStages = 1; mMaxStages = 1;
mActiveParameters = NULL; mActiveParameters = NULL;

View file

@ -217,13 +217,13 @@ void ProcessedMaterial::_initPassStateBlock( RenderPassData *rpd, GFXStateBlockD
_setBlendState( rpd->mBlendOp, result ); _setBlendState( rpd->mBlendOp, result );
} }
if (mMaterial->isDoubleSided()) if (mMaterial && mMaterial->isDoubleSided())
{ {
result.cullDefined = true; result.cullDefined = true;
result.cullMode = GFXCullNone; result.cullMode = GFXCullNone;
} }
if(mMaterial->mAlphaTest) if(mMaterial && mMaterial->mAlphaTest)
{ {
result.alphaDefined = true; result.alphaDefined = true;
result.alphaTestEnable = mMaterial->mAlphaTest; result.alphaTestEnable = mMaterial->mAlphaTest;
@ -235,7 +235,7 @@ void ProcessedMaterial::_initPassStateBlock( RenderPassData *rpd, GFXStateBlockD
NamedTexTarget *texTarget; NamedTexTarget *texTarget;
U32 maxAnisotropy = 1; U32 maxAnisotropy = 1;
if ( mMaterial->mUseAnisotropic[ rpd->mStageNum ] ) if (mMaterial && mMaterial->mUseAnisotropic[ rpd->mStageNum ] )
maxAnisotropy = MATMGR->getDefaultAnisotropy(); maxAnisotropy = MATMGR->getDefaultAnisotropy();
for( U32 i=0; i < rpd->mNumTex; i++ ) 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. /// This is here to deal with the differences between ProcessedCustomMaterials and ProcessedShaderMaterials.
GFXShaderConstBuffer* ProcessedShaderMaterial::_getShaderConstBuffer( const U32 pass ) GFXShaderConstBuffer* ProcessedShaderMaterial::_getShaderConstBuffer( const U32 pass )
{ {
if (pass < mPasses.size()) if (mCurrentParams && pass < mPasses.size())
{ {
return static_cast<ShaderMaterialParameters*>(mCurrentParams)->getBuffer(pass); return static_cast<ShaderMaterialParameters*>(mCurrentParams)->getBuffer(pass);
} }