[Bf-blender-cvs] [d8bff8e8f62] master: Free evaluated mesh when owner mesh changes

Sergey Sharybin noreply at git.blender.org
Fri Jun 7 09:14:20 CEST 2019


Commit: d8bff8e8f621b0c2c9de64e14847a19d376e60d3
Author: Sergey Sharybin
Date:   Thu Jun 6 12:26:40 2019 +0200
Branches: master
https://developer.blender.org/rBd8bff8e8f621b0c2c9de64e14847a19d376e60d3

Free evaluated mesh when owner mesh changes

Ensures that evaluated mesh shares the same settings as its owner when
updates related on animation system happens.

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

M	source/blender/blenkernel/intern/mesh.c

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

diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index aa13950f0d5..755a8036e8e 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -2001,4 +2001,12 @@ void BKE_mesh_eval_geometry(Depsgraph *depsgraph, Mesh *mesh)
   /* Clear autospace flag in evaluated mesh, so that texspace does not get recomputed when bbox is
    * (e.g. after modifiers, etc.) */
   mesh->texflag &= ~ME_AUTOSPACE;
+  /* We are here because something did change in the mesh. This means we can not trust the existing
+   * evaluated mesh, and we don't know what parts of the mesh did change. So we simply delete the
+   * evaluated mesh and let objects to re-create it with updated settings. */
+  if (mesh->runtime.mesh_eval != NULL) {
+    mesh->runtime.mesh_eval->edit_mesh = NULL;
+    BKE_id_free(NULL, mesh->runtime.mesh_eval);
+    mesh->runtime.mesh_eval = NULL;
+  }
 }



More information about the Bf-blender-cvs mailing list