diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2020-02-28 14:21:42 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2020-02-28 14:24:26 +0300 |
commit | 1eb73d1596485f5dc00cdc2e5cf8ff9b8a17f503 (patch) | |
tree | 9571da6fa572cced0d7a548dad456e6c981e01cd /source | |
parent | 944da82eafeb88ecfebfa5c302aaea97150c49eb (diff) |
Multires: Fix CCG->MDISPS conversion happens twice
Was happening when leaving sculpt mode, introducing unnecessary lag
to the operation.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/multires.c | 12 |
1 files changed, 12 insertions, 0 deletions
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) |