1
0
forked from 0ad/0ad

Fix crash when setting rally point

This was SVN commit r13908.
This commit is contained in:
Ykkrosh 2013-09-29 14:02:47 +00:00
parent d663dae2d8
commit eceae8be5c
3 changed files with 8 additions and 0 deletions

View File

@ -111,4 +111,5 @@ void CModelDecal::SetTransform(const CMatrix3D& transform)
void CModelDecal::RemoveShadows()
{
m_Decal.m_Material.AddShaderDefine(str_DISABLE_RECEIVE_SHADOWS, str_1);
m_Decal.m_Material.RecomputeCombinedShaderDefines();
}

View File

@ -52,6 +52,7 @@ public:
void SetShaderEffect(const CStr& effect);
CStrIntern GetShaderEffect() const { return m_ShaderEffect; }
// Must call RecomputeCombinedShaderDefines after this, before rendering with this material
void AddShaderDefine(CStrIntern key, CStrIntern value);
// conditionFlags is a bitmask representing which indexes of the
@ -59,7 +60,9 @@ public:
// Use 0 if you don't care about conditional defines.
const CShaderDefines& GetShaderDefines(uint32_t conditionFlags) const { return m_CombinedShaderDefines.at(conditionFlags); }
// Must call RecomputeCombinedShaderDefines after this, before rendering with this material
void AddConditionalDefine(const char* defname, const char* defvalue, int type, std::vector<float> &args);
const CShaderConditionalDefines& GetConditionalDefines() const { return m_ConditionalDefines; }
void AddStaticUniform(const char* key, const CVector4D& value);

View File

@ -626,7 +626,10 @@ void CModel::AddFlagsRec(int flags)
m_Flags |= flags;
if (flags & MODELFLAG_IGNORE_LOS)
{
m_Material.AddShaderDefine(str_IGNORE_LOS, str_1);
m_Material.RecomputeCombinedShaderDefines();
}
for (size_t i = 0; i < m_Props.size(); ++i)
if (m_Props[i].m_Model->ToCModel())
@ -638,6 +641,7 @@ void CModel::RemoveShadowsRec()
m_Flags &= ~MODELFLAG_CASTSHADOWS;
m_Material.AddShaderDefine(str_DISABLE_RECEIVE_SHADOWS, str_1);
m_Material.RecomputeCombinedShaderDefines();
for (size_t i = 0; i < m_Props.size(); ++i)
{