diff options
author | Thomas Dinges <blender@dingto.org> | 2022-02-14 19:48:52 +0300 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2022-02-14 19:48:52 +0300 |
commit | 19403fc852224b2c29df3e5f1f2106ba91f105a2 (patch) | |
tree | 59818c3cf9e14fbfa2e54ee8817bf1d8b78ea07c /source/blender/blenkernel/intern/mesh_convert.cc | |
parent | d8e2f612ec52ce0272cbc8a5e9ff0c6b89ce16a6 (diff) | |
parent | a5edff4b73ba74155dcad93103e2fef2c59df67f (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_convert.cc')
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc index 7de2841dc9f..c3d819bf46e 100644 --- a/source/blender/blenkernel/intern/mesh_convert.cc +++ b/source/blender/blenkernel/intern/mesh_convert.cc @@ -1037,7 +1037,12 @@ static Mesh *mesh_new_from_mesh(Object *object, Mesh *mesh) { /* While we could copy this into the new mesh, * add the data to 'mesh' so future calls to this function don't need to re-convert the data. */ - BKE_mesh_wrapper_ensure_mdata(mesh); + if (mesh->runtime.wrapper_type == ME_WRAPPER_TYPE_BMESH) { + BKE_mesh_wrapper_ensure_mdata(mesh); + } + else { + BKE_mesh_wrapper_ensure_subdivision(object, mesh); + } Mesh *mesh_result = (Mesh *)BKE_id_copy_ex( nullptr, &mesh->id, nullptr, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT); @@ -1074,6 +1079,7 @@ static Mesh *mesh_new_from_mesh_object_with_layers(Depsgraph *depsgraph, mask.pmask |= CD_MASK_ORIGINDEX; } Mesh *result = mesh_create_eval_final(depsgraph, scene, &object_for_eval, &mask); + BKE_mesh_wrapper_ensure_subdivision(object, result); return result; } |