[Bf-blender-cvs] [81f15a51aa7] master: Sculpt: Fix sculpt face set undo creating duplicate face set layers
Joseph Eagar
noreply at git.blender.org
Sat Oct 1 00:35:27 CEST 2022
Commit: 81f15a51aa7891c16579d004eac446ec4e7866be
Author: Joseph Eagar
Date: Fri Sep 30 15:35:11 2022 -0700
Branches: master
https://developer.blender.org/rB81f15a51aa7891c16579d004eac446ec4e7866be
Sculpt: Fix sculpt face set undo creating duplicate face set layers
===================================================================
M source/blender/editors/sculpt_paint/sculpt_undo.c
===================================================================
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c
index 04c60933c73..ee9ae6a898b 100644
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -486,8 +486,13 @@ static bool sculpt_undo_restore_face_sets(bContext *C, SculptUndoNode *unode)
BKE_view_layer_synced_ensure(scene, view_layer);
Object *ob = BKE_view_layer_active_object_get(view_layer);
Mesh *me = BKE_object_get_original_mesh(ob);
- int *face_sets = CustomData_add_layer_named(
- &me->pdata, CD_PROP_INT32, CD_CONSTRUCT, NULL, me->totpoly, ".sculpt_face_set");
+
+ int *face_sets = CustomData_get_layer_named(&me->pdata, CD_PROP_INT32, ".sculpt_face_set");
+ if (!face_sets) {
+ face_sets = CustomData_add_layer_named(
+ &me->pdata, CD_PROP_INT32, CD_CONSTRUCT, NULL, me->totpoly, ".sculpt_face_set");
+ }
+
for (int i = 0; i < me->totpoly; i++) {
SWAP(int, face_sets[i], unode->face_sets[i]);
}
More information about the Bf-blender-cvs
mailing list