Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2017-05-16 11:38:45 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-05-16 11:38:45 +0300
commit027ae0fdef9292b915ed5a4c9b9fb2a82f6ea8f7 (patch)
treefe69ead90f577d12c81102427be84f6e2742965b /source/blender/draw/modes
parent6c951fbd348f56decfa6682c8f490d5872eecb71 (diff)
Fix sculpt dyntopo undo leaving PBVH at NULL
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r--source/blender/draw/modes/sculpt_mode.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/draw/modes/sculpt_mode.c b/source/blender/draw/modes/sculpt_mode.c
index 5053ea47b06..b55e3236ed9 100644
--- a/source/blender/draw/modes/sculpt_mode.c
+++ b/source/blender/draw/modes/sculpt_mode.c
@@ -195,6 +195,17 @@ static void SCULPT_cache_populate(void *vedata, Object *ob)
if (ob->sculpt && ob == OBACT_NEW) {
PBVH *pbvh = ob->sculpt->pbvh;
+
+ /* XXX, needed for dyntopo-undo (which clears).
+ * probably depsgraph should handlle? in 2.7x getting derived-mesh does this (mesh_build_data) */
+ if (pbvh == NULL) {
+ /* create PBVH immediately (would be created on the fly too,
+ * but this avoids waiting on first stroke) */
+ Scene *scene = draw_ctx->scene;
+
+ BKE_sculpt_update_mesh_elements(scene, scene->toolsettings->sculpt, ob, false, false);
+ }
+
if (pbvh && pbvh_has_mask(pbvh)) {
/* Get geometry cache */
DRWShadingGroup *shgroup = object_is_flat(ob) ? stl->g_data->group_flat : stl->g_data->group_smooth;