[Bf-blender-cvs] [f0a4c631bba] blender2.8: Fix incorrect object in editmode tests in depsgraph eval.

Brecht Van Lommel noreply at git.blender.org
Fri Apr 13 13:04:55 CEST 2018


Commit: f0a4c631bbac6247e3b3795681a3a31398f71c13
Author: Brecht Van Lommel
Date:   Fri Apr 13 12:51:49 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBf0a4c631bbac6247e3b3795681a3a31398f71c13

Fix incorrect object in editmode tests in depsgraph eval.

These cases should not depend on the view layer.

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

M	source/blender/blenkernel/intern/object_update.c
M	source/blender/modifiers/intern/MOD_meshdeform.c
M	source/blender/modifiers/intern/MOD_surfacedeform.c

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

diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index 7904e479933..c70e07e6c4c 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -222,7 +222,7 @@ void BKE_object_handle_data_update(
 	}
 
 	/* particles */
-	if ((ob != OBEDIT_FROM_VIEW_LAYER(eval_ctx->view_layer)) && ob->particlesystem.first) {
+	if (!(ob->mode & OB_MODE_EDIT) && ob->particlesystem.first) {
 		ParticleSystem *tpsys, *psys;
 		DerivedMesh *dm;
 		ob->transflag &= ~OB_DUPLIPARTS;
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index 6bf735e1e5c..d7f4af8df63 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -298,7 +298,7 @@ static void meshdeformModifier_do(
 	 *
 	 * We'll support this case once granular dependency graph is landed.
 	 */
-	if (mmd->object == OBEDIT_FROM_VIEW_LAYER(eval_ctx->view_layer)) {
+	if (mmd->object->mode & OB_MODE_EDIT) {
 		BMEditMesh *em = BKE_editmesh_from_object(mmd->object);
 		tmpdm = editbmesh_get_derived_cage_and_final(eval_ctx, md->scene, mmd->object, em, 0, &cagedm);
 		if (tmpdm)
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index b5fd1e55839..30b569207db 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -1096,7 +1096,7 @@ static void deformVert(
 }
 
 static void surfacedeformModifier_do(
-        ModifierData *md, const EvaluationContext *eval_ctx,
+        ModifierData *md,
         float (*vertexCos)[3], unsigned int numverts, Object *ob)
 {
 	SurfaceDeformModifierData *smd = (SurfaceDeformModifierData *)md;
@@ -1110,7 +1110,7 @@ static void surfacedeformModifier_do(
 	}
 
 	/* Handle target mesh both in and out of edit mode */
-	if (smd->target == OBEDIT_FROM_VIEW_LAYER(eval_ctx->view_layer)) {
+	if (smd->target->mode & OB_MODE_EDIT) {
 		BMEditMesh *em = BKE_editmesh_from_object(smd->target);
 		tdm = em->derivedFinal;
 	}
@@ -1181,21 +1181,21 @@ static void surfacedeformModifier_do(
 }
 
 static void deformVerts(
-        ModifierData *md, const struct EvaluationContext *eval_ctx,
+        ModifierData *md, const struct EvaluationContext *UNUSED(eval_ctx),
         Object *ob, DerivedMesh *UNUSED(derivedData),
         float (*vertexCos)[3], int numVerts,
         ModifierApplyFlag UNUSED(flag))
 {
-	surfacedeformModifier_do(md, eval_ctx, vertexCos, numVerts, ob);
+	surfacedeformModifier_do(md, vertexCos, numVerts, ob);
 }
 
 static void deformVertsEM(
-        ModifierData *md, const struct EvaluationContext *eval_ctx,
+        ModifierData *md, const struct EvaluationContext *UNUSED(eval_ctx),
         Object *ob, struct BMEditMesh *UNUSED(editData),
         DerivedMesh *UNUSED(derivedData),
         float (*vertexCos)[3], int numVerts)
 {
-	surfacedeformModifier_do(md, eval_ctx, vertexCos, numVerts, ob);
+	surfacedeformModifier_do(md, vertexCos, numVerts, ob);
 }
 
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))



More information about the Bf-blender-cvs mailing list