[Bf-blender-cvs] [b51763a7730] master: Fix T101888: Curves editmode: modifiers "Display in Edit mode" no effect

Philipp Oeser noreply at git.blender.org
Wed Oct 19 12:00:35 CEST 2022


Commit: b51763a773009d887460bac14e9f7b65cbf54e5b
Author: Philipp Oeser
Date:   Tue Oct 18 10:30:37 2022 +0200
Branches: master
https://developer.blender.org/rBb51763a773009d887460bac14e9f7b65cbf54e5b

Fix T101888: Curves editmode: modifiers "Display in Edit mode" no effect

Add the eModifierMode_Editmode to the required modes for curves modifier
evaluation. Only this way the modifier can be skipped in evaluation.

Maniphest Tasks: T101888

Differential Revision: https://developer.blender.org/D16280

===================================================================

M	source/blender/blenkernel/intern/curves.cc
M	source/blender/blenkernel/intern/object.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/curves.cc b/source/blender/blenkernel/intern/curves.cc
index 01be22a57b0..72e53023d6d 100644
--- a/source/blender/blenkernel/intern/curves.cc
+++ b/source/blender/blenkernel/intern/curves.cc
@@ -287,7 +287,10 @@ static void curves_evaluate_modifiers(struct Depsgraph *depsgraph,
 {
   /* Modifier evaluation modes. */
   const bool use_render = (DEG_get_mode(depsgraph) == DAG_EVAL_RENDER);
-  const int required_mode = use_render ? eModifierMode_Render : eModifierMode_Realtime;
+  int required_mode = use_render ? eModifierMode_Render : eModifierMode_Realtime;
+  if (BKE_object_is_in_editmode(object)) {
+    required_mode = (ModifierMode)(int(required_mode) | eModifierMode_Editmode);
+  }
   ModifierApplyFlag apply_flag = use_render ? MOD_APPLY_RENDER : MOD_APPLY_USECACHE;
   const ModifierEvalContext mectx = {depsgraph, object, apply_flag};
 
diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc
index 2d949fb5c65..d98f5e85028 100644
--- a/source/blender/blenkernel/intern/object.cc
+++ b/source/blender/blenkernel/intern/object.cc
@@ -1902,6 +1902,7 @@ bool BKE_object_is_in_editmode(const Object *ob)
       /* Grease Pencil object has no edit mode data. */
       return GPENCIL_EDIT_MODE((bGPdata *)ob->data);
     case OB_CURVES:
+      /* Curves object has no edit mode data. */
       return ob->mode == OB_MODE_EDIT;
     default:
       return false;



More information about the Bf-blender-cvs mailing list