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:
-rw-r--r--source/blender/blenkernel/intern/multires_reshape.c5
-rw-r--r--source/blender/blenkernel/intern/object.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/multires_reshape.c b/source/blender/blenkernel/intern/multires_reshape.c
index 72be2617798..af3219ca06c 100644
--- a/source/blender/blenkernel/intern/multires_reshape.c
+++ b/source/blender/blenkernel/intern/multires_reshape.c
@@ -1163,6 +1163,11 @@ bool multiresModifier_reshapeFromCCG(
return false;
}
MDisps *mdisps = CustomData_get_layer(&coarse_mesh->ldata, CD_MDISPS);
+ if (mdisps == NULL) {
+ /* Multires displacement has been removed before current changes were
+ * applies to all the levels. */
+ return false;
+ }
GridPaintMask *grid_paint_mask =
CustomData_get_layer(&coarse_mesh->ldata, CD_GRID_PAINT_MASK);
Subdiv *subdiv = subdiv_ccg->subdiv;
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 3e2e890f542..694dae77bcd 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -425,6 +425,9 @@ static void object_update_from_subsurf_ccg(Object *object)
Mesh *mesh_cow = object->runtime.mesh_orig;
copy_ccg_data(mesh_cow, mesh_orig, CD_MDISPS);
copy_ccg_data(mesh_cow, mesh_orig, CD_GRID_PAINT_MASK);
+ /* Everything is now up-to-date. */
+ subdiv_ccg->dirty.coords = false;
+ subdiv_ccg->dirty.hidden = false;
}
/* free data derived from mesh, called when mesh changes or is freed */