Fix T99253: Missing face center dots with deform modifier cage option
Before 8c25889bb6
, subsurf face center tags were stored in each
vertex, so they were always copied to duplicate meshes. Now they are
stored in runtime data though, so they need to be copied explicitly.
The function name "reset_on_copy" is a bit awkward here, so the
tags are copied by the caller.
This commit is contained in:
parent
002f339aed
commit
3306b4a86b
Notes:
blender-bot
2023-02-14 03:13:26 +01:00
Referenced by issue #99253, 3.2 regression: deforming modifiers have stopped displaying original faces with on cage option enabled.
|
@ -96,6 +96,10 @@ static void mesh_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
|
|||
const Mesh *mesh_src = (const Mesh *)id_src;
|
||||
|
||||
BKE_mesh_runtime_reset_on_copy(mesh_dst, flag);
|
||||
/* Copy face dot tags, since meshes may be duplicated after a subsurf modifier
|
||||
* or node, but we still need to be able to draw face center vertices. */
|
||||
mesh_dst->runtime.subsurf_face_dot_tags = static_cast<uint32_t *>(
|
||||
MEM_dupallocN(mesh_src->runtime.subsurf_face_dot_tags));
|
||||
if ((mesh_src->id.tag & LIB_TAG_NO_MAIN) == 0) {
|
||||
/* This is a direct copy of a main mesh, so for now it has the same topology. */
|
||||
mesh_dst->runtime.deformed_only = true;
|
||||
|
|
Loading…
Reference in New Issue