From 027ae0fdef9292b915ed5a4c9b9fb2a82f6ea8f7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 May 2017 18:38:45 +1000 Subject: Fix sculpt dyntopo undo leaving PBVH at NULL --- source/blender/draw/modes/sculpt_mode.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'source/blender/draw/modes') 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; -- cgit v1.2.3