diff options
author | Joseph Eagar <joeedh@gmail.com> | 2021-09-15 12:16:03 +0300 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2021-09-15 12:16:03 +0300 |
commit | ecdd6a302e6c171ab163eb3272efec96d6da9097 (patch) | |
tree | 7ee79759f75fcbf41eecd38e90b3db6075e961e6 | |
parent | 173f5f94ff71d18792da4f1a98f5d0ef5c39b169 (diff) |
Sculpt dyntopo: fix missing bit from last commit
* BM_mesh_bm_to_me now saves id layers by default.
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 8 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_log.c | 2 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_convert.c | 6 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_convert.h | 2 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_convert_threaded.c | 6 | ||||
-rw-r--r-- | source/blender/bmesh/tests/bmesh_core_test.cc | 5 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_boundary.c | 3 |
7 files changed, 12 insertions, 20 deletions
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 4b03b41d2cb..ab7d32160e5 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -1395,19 +1395,13 @@ static void sculptsession_bm_to_me_update_data_only(Object *ob, bool reorder) ss->bm, ob->data, (&(struct BMeshToMeshParams){.calc_object_remap = false, -#ifdef WHEN_GLOBAL_UNDO_WORKS - /* for memfile undo steps we need to save id and temporary layers */ .copy_temp_cdlayers = true, - .copy_mesh_id_layers = true, + .ignore_mesh_id_layers = false, .cd_mask_extra = CD_MASK_MESH_ID | CD_MASK_DYNTOPO_VERT -#else - .copy_temp_cdlayers = false, - .copy_mesh_id_layers = false -#endif })); } diff --git a/source/blender/bmesh/intern/bmesh_log.c b/source/blender/bmesh/intern/bmesh_log.c index d767ef4529f..deb735c8cf3 100644 --- a/source/blender/bmesh/intern/bmesh_log.c +++ b/source/blender/bmesh/intern/bmesh_log.c @@ -1081,7 +1081,7 @@ static void bm_log_full_mesh_intern(BMesh *bm, BMLog *log, BMLogEntry *entry) .calc_object_remap = false, .cd_mask_extra = cd_mask_extra, .copy_temp_cdlayers = true, - .copy_mesh_id_layers = true}), + .ignore_mesh_id_layers = false}), NULL); } diff --git a/source/blender/bmesh/intern/bmesh_mesh_convert.c b/source/blender/bmesh/intern/bmesh_mesh_convert.c index 70d946a6f05..e5ea4461119 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_convert.c +++ b/source/blender/bmesh/intern/bmesh_mesh_convert.c @@ -931,10 +931,10 @@ void BM_mesh_bm_to_me( { CustomData_MeshMasks mask = CD_MASK_MESH; CustomData_MeshMasks_update(&mask, ¶ms->cd_mask_extra); - CustomDataMask extra2 = params->copy_mesh_id_layers ? CD_MASK_MESH_ID : 0; + CustomDataMask extra2 = !params->ignore_mesh_id_layers ? CD_MASK_MESH_ID : 0; // copy id layers? temporarily clear cd_temporary and cd_flag_elem_nocopy flags - if (params->copy_mesh_id_layers) { + if (!params->ignore_mesh_id_layers) { for (int i = 0; i < 4; i++) { int idx = CustomData_get_layer_index(srcdatas[i], CD_MESH_ID); @@ -1313,7 +1313,7 @@ void BM_mesh_bm_to_me( BKE_mesh_runtime_clear_geometry(me); // restore original cd layer flags to bmesh id layers - if (params->copy_mesh_id_layers) { + if (!params->ignore_mesh_id_layers) { for (int i = 0; i < 4; i++) { int idx = CustomData_get_layer_index(srcdatas[i], CD_MESH_ID); if (idx >= 0) { diff --git a/source/blender/bmesh/intern/bmesh_mesh_convert.h b/source/blender/bmesh/intern/bmesh_mesh_convert.h index b40e3862427..4c46fda236a 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_convert.h +++ b/source/blender/bmesh/intern/bmesh_mesh_convert.h @@ -67,7 +67,7 @@ struct BMeshToMeshParams { uint update_shapekey_indices : 1; struct CustomData_MeshMasks cd_mask_extra; uint copy_temp_cdlayers : 1; - uint copy_mesh_id_layers : 1; + uint ignore_mesh_id_layers : 1; }; void BM_enter_multires_space(struct Object *ob, struct BMesh *bm, int space); diff --git a/source/blender/bmesh/intern/bmesh_mesh_convert_threaded.c b/source/blender/bmesh/intern/bmesh_mesh_convert_threaded.c index 97c148d27bd..1b5dc9643eb 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_convert_threaded.c +++ b/source/blender/bmesh/intern/bmesh_mesh_convert_threaded.c @@ -853,7 +853,7 @@ void BM_mesh_bm_to_me_threaded( CustomData_MeshMasks mask = CD_MASK_MESH; CustomData_MeshMasks_update(&mask, ¶ms->cd_mask_extra); - CustomDataMask extra2 = params->copy_mesh_id_layers ? CD_MASK_MESH_ID : 0; + CustomDataMask extra2 = !params->ignore_mesh_id_layers ? CD_MASK_MESH_ID : 0; CustomData *srcdatas[] = {&bm->vdata, &bm->edata, &bm->ldata, &bm->pdata}; int id_flags[4] = {-1, -1, -1, -1}; @@ -861,7 +861,7 @@ void BM_mesh_bm_to_me_threaded( taskdata.extra2 = extra2; // copy id layers? temporarily clear cd_temporary and cd_flag_elem_nocopy flags - if (params->copy_mesh_id_layers) { + if (!params->ignore_mesh_id_layers) { for (int i = 0; i < 4; i++) { int idx = CustomData_get_layer_index(srcdatas[i], CD_MESH_ID); @@ -902,7 +902,7 @@ void BM_mesh_bm_to_me_threaded( // BLI_threadpool_ # endif // undo changes to source bmesh's id layers' flags - if (params->copy_mesh_id_layers) { + if (!params->ignore_mesh_id_layers) { for (int i = 0; i < 4; i++) { int idx = CustomData_get_layer_index(srcdatas[i], CD_MESH_ID); diff --git a/source/blender/bmesh/tests/bmesh_core_test.cc b/source/blender/bmesh/tests/bmesh_core_test.cc index 91b14334d94..8770e16ac2b 100644 --- a/source/blender/bmesh/tests/bmesh_core_test.cc +++ b/source/blender/bmesh/tests/bmesh_core_test.cc @@ -10,10 +10,9 @@ TEST(bmesh_core, BMVertCreate) BMVert *bv1, *bv2, *bv3; const float co1[3] = {1.0f, 2.0f, 0.0f}; - BMeshCreateParams bm_params; + BMeshCreateParams bm_params = {0}; + bm_params.use_toolflags = true; - bm_params.use_unique_ids = false; - bm_params.no_reuse_ids = false; bm = BM_mesh_create(&bm_mesh_allocsize_default, &bm_params); EXPECT_EQ(bm->totvert, 0); diff --git a/source/blender/editors/sculpt_paint/sculpt_boundary.c b/source/blender/editors/sculpt_paint/sculpt_boundary.c index 2e65c7afe65..8261b88d6bf 100644 --- a/source/blender/editors/sculpt_paint/sculpt_boundary.c +++ b/source/blender/editors/sculpt_paint/sculpt_boundary.c @@ -1270,8 +1270,7 @@ static void end_vis_object(SculptSession *ss, Object *ob, BMesh *bm) me, (&(struct BMeshToMeshParams){.calc_object_remap = false, .update_shapekey_indices = false, - .copy_temp_cdlayers = false, - .copy_mesh_id_layers = false})); + .copy_temp_cdlayers = false})); DEG_id_tag_update(&me->id, ID_RECALC_ALL); } |