BKE's modifier_isEnabled: add check on NULL Scene pointer.

We do not always have that one available, and even without the
isDisabled callback this func is helpful.

Note that this is a bot stupid, only modifier actually needing a valid
Scene pointer here is subsurf... :|
This commit is contained in:
Bastien Montagne
2018-01-24 11:12:01 +01:00
parent 3e20ac8df3
commit 9112cceb5e

View File

@@ -434,6 +434,11 @@ bool modifiers_isParticleEnabled(Object *ob)
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
}
/**
* Check whether is enabled.
*
* \param scene Current scene, may be NULL, in which case isDisabled callback of the modifier is never called.
*/
bool modifier_isEnabled(struct Scene *scene, ModifierData *md, int required_mode)
{
const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
@@ -441,7 +446,7 @@ bool modifier_isEnabled(struct Scene *scene, ModifierData *md, int required_mode
md->scene = scene;
if ((md->mode & required_mode) != required_mode) return false;
if (mti->isDisabled && mti->isDisabled(md, required_mode == eModifierMode_Render)) return false;
if (scene != NULL && mti->isDisabled && mti->isDisabled(md, required_mode == eModifierMode_Render)) return false;
if (md->mode & eModifierMode_DisableTemporary) return false;
if ((required_mode & eModifierMode_Editmode) && !(mti->flags & eModifierTypeFlag_SupportsEditmode)) return false;