diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2012-05-17 17:22:19 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2012-05-17 17:22:19 +0400 |
commit | ef3be824a05b81ca0a11a9996a62b0b01c5ca54c (patch) | |
tree | 114f8e20faed32945c46f2882328f77743505625 /source/blender/blenkernel | |
parent | 9b42b996493d0202247fc245c873e20d13ce92be (diff) |
Fix [#31495] Modifiers in Text objects don't respect edit mode flag.
Need to also check for cu->editfont for text edit mode...
Also use modifier_isEnabled() to make general tests whether a modifier should be applied or skipped.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 9b172b50bca..9274d7aefcb 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -752,7 +752,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl Curve *cu = ob->data; ListBase *nurb = BKE_curve_nurbs_get(cu); int numVerts = 0; - const int editmode = (!forRender && cu->editnurb); + const int editmode = (!forRender && (cu->editnurb || cu->editfont)); ModifierApplyFlag app_flag = 0; float (*originalVerts)[3] = NULL; float (*deformedVerts)[3] = NULL; @@ -793,9 +793,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl md->scene = scene; - if ((md->mode & required_mode) != required_mode) - continue; - if (mti->isDisabled && mti->isDisabled(md, forRender)) + if (!modifier_isEnabled(scene, md, required_mode)) continue; if (mti->type != eModifierTypeType_OnlyDeform) continue; @@ -867,7 +865,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba Curve *cu = ob->data; ListBase *nurb = BKE_curve_nurbs_get(cu); int required_mode = 0, totvert = 0; - int editmode = (!forRender && cu->editnurb); + int editmode = (!forRender && (cu->editnurb || cu->editfont)); DerivedMesh *dm = NULL, *ndm; float (*vertCos)[3] = NULL; int useCache = !forRender; @@ -899,9 +897,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba md->scene = scene; - if ((md->mode & required_mode) != required_mode) - continue; - if (mti->isDisabled && mti->isDisabled(md, forRender)) + if (!modifier_isEnabled(scene, md, required_mode)) continue; if (mti->type == eModifierTypeType_OnlyDeform || @@ -1095,7 +1091,7 @@ static void curve_calc_orcodm(Scene *scene, Object *ob, DerivedMesh *derivedFina ModifierData *pretessellatePoint; Curve *cu = ob->data; int required_mode; - int editmode = (!forRender && cu->editnurb); + int editmode = (!forRender && (cu->editnurb || cu->editfont)); DerivedMesh *ndm, *orcodm = NULL; const ModifierApplyFlag app_flag = forRender ? MOD_APPLY_RENDER : 0; @@ -1118,9 +1114,7 @@ static void curve_calc_orcodm(Scene *scene, Object *ob, DerivedMesh *derivedFina md->scene = scene; - if ((md->mode & required_mode) != required_mode) - continue; - if (mti->isDisabled && mti->isDisabled(md, forRender)) + if (!modifier_isEnabled(scene, md, required_mode)) continue; if (mti->type != eModifierTypeType_Constructive) continue; |