[Bf-blender-cvs] [0de489fe1df] temp-vert-normals-cleanup: Fix issue with `BKE_mesh_nomain_to_mesh` (remesh operator causes failed assert)
Hans Goudey
noreply at git.blender.org
Wed Jan 5 21:51:15 CET 2022
Commit: 0de489fe1df70530328df765aafc7b34e1281068
Author: Hans Goudey
Date: Wed Jan 5 14:48:47 2022 -0600
Branches: temp-vert-normals-cleanup
https://developer.blender.org/rB0de489fe1df70530328df765aafc7b34e1281068
Fix issue with `BKE_mesh_nomain_to_mesh` (remesh operator causes failed assert)
===================================================================
M source/blender/blenkernel/intern/mesh_convert.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc
index 2e2e9098b49..feed64ff0da 100644
--- a/source/blender/blenkernel/intern/mesh_convert.cc
+++ b/source/blender/blenkernel/intern/mesh_convert.cc
@@ -1471,8 +1471,6 @@ void BKE_mesh_nomain_to_mesh(Mesh *mesh_src,
CustomData_reset(&tmp.ldata);
CustomData_reset(&tmp.pdata);
- BKE_mesh_vertex_normals_ensure(mesh_src);
-
totvert = tmp.totvert = mesh_src->totvert;
totedge = tmp.totedge = mesh_src->totedge;
totloop = tmp.totloop = mesh_src->totloop;
@@ -1486,6 +1484,18 @@ void BKE_mesh_nomain_to_mesh(Mesh *mesh_src,
tmp.cd_flag = mesh_src->cd_flag;
tmp.runtime.deformed_only = mesh_src->runtime.deformed_only;
+ tmp.runtime.cd_dirty_poly = mesh_src->runtime.cd_dirty_poly;
+ tmp.runtime.cd_dirty_vert = mesh_src->runtime.cd_dirty_vert;
+
+ /* Ensure that when no normal layers exist, they are marked dirty, because
+ * normals might not have been included in the mask of copied layers. */
+ if (!CustomData_has_layer(&tmp.vdata, CD_NORMAL)) {
+ tmp.runtime.cd_dirty_vert |= CD_MASK_NORMAL;
+ }
+ if (!CustomData_has_layer(&tmp.pdata, CD_NORMAL)) {
+ tmp.runtime.cd_dirty_poly |= CD_MASK_NORMAL;
+ }
+
if (CustomData_has_layer(&mesh_src->vdata, CD_SHAPEKEY)) {
KeyBlock *kb;
int uid;
More information about the Bf-blender-cvs
mailing list