From 1eb73d1596485f5dc00cdc2e5cf8ff9b8a17f503 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 28 Feb 2020 12:21:42 +0100 Subject: [PATCH] Multires: Fix CCG->MDISPS conversion happens twice Was happening when leaving sculpt mode, introducing unnecessary lag to the operation. --- source/blender/blenkernel/intern/multires.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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)