[Bf-blender-cvs] [1eb73d15964] master: Multires: Fix CCG->MDISPS conversion happens twice

Sergey Sharybin noreply at git.blender.org
Fri Feb 28 12:24:35 CET 2020


Commit: 1eb73d1596485f5dc00cdc2e5cf8ff9b8a17f503
Author: Sergey Sharybin
Date:   Fri Feb 28 12:21:42 2020 +0100
Branches: master
https://developer.blender.org/rB1eb73d1596485f5dc00cdc2e5cf8ff9b8a17f503

Multires: Fix CCG->MDISPS conversion happens twice

Was happening when leaving sculpt mode, introducing unnecessary lag
to the operation.

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

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

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

diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index ad33fd9b2e0..3447d37f1ab 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -417,9 +417,21 @@ void multires_flush_sculpt_updates(Object *object)
     return;
   }
 
+  SubdivCCG *subdiv_ccg = sculpt_session->subdiv_ccg;
+  if (subdiv_ccg == NULL) {
+    return;
+  }
+
+  if (!subdiv_ccg->dirty.coords && !subdiv_ccg->dirty.hidden) {
+    return;
+  }
+
   Mesh *mesh = object->data;
   multiresModifier_reshapeFromCCG(
       sculpt_session->multires->totlvl, mesh, sculpt_session->subdiv_ccg);
+
+  subdiv_ccg->dirty.coords = false;
+  subdiv_ccg->dirty.hidden = false;
 }
 
 void multires_force_sculpt_rebuild(Object *object)



More information about the Bf-blender-cvs mailing list