[Bf-blender-cvs] [96f1e44119c] refactor-mesh-hide-generic: Remove hide layers from files

Hans Goudey noreply at git.blender.org
Wed Aug 10 06:30:46 CEST 2022


Commit: 96f1e44119ceff2d4f8a00e998910eed479eab03
Author: Hans Goudey
Date:   Tue Aug 9 23:30:39 2022 -0500
Branches: refactor-mesh-hide-generic
https://developer.blender.org/rB96f1e44119ceff2d4f8a00e998910eed479eab03

Remove hide layers from files

===================================================================

M	source/blender/blenkernel/BKE_customdata.h
M	source/blender/blenkernel/intern/customdata.cc
M	source/blender/blenkernel/intern/mesh.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h
index 38686a32505..8bad89a9211 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -11,7 +11,9 @@
 #include "BLI_sys_types.h"
 #include "BLI_utildefines.h"
 #ifdef __cplusplus
+#  include "BLI_set.hh"
 #  include "BLI_span.hh"
+#  include "BLI_string_ref.hh"
 #  include "BLI_vector.hh"
 #endif
 
@@ -715,7 +717,8 @@ void CustomData_data_transfer(const struct MeshPairRemap *me_remap,
  * the struct.
  */
 void CustomData_blend_write_prepare(CustomData &data,
-                                    blender::Vector<CustomDataLayer, 16> &layers_to_write);
+                                    blender::Vector<CustomDataLayer, 16> &layers_to_write,
+                                    const blender::Set<blender::StringRef> &skip_names = {});
 
 /**
  * \param layers_to_write: Layers created by #CustomData_blend_write_prepare.
diff --git a/source/blender/blenkernel/intern/customdata.cc b/source/blender/blenkernel/intern/customdata.cc
index 117d2958147..69825031795 100644
--- a/source/blender/blenkernel/intern/customdata.cc
+++ b/source/blender/blenkernel/intern/customdata.cc
@@ -26,6 +26,7 @@
 #include "BLI_math_vector.hh"
 #include "BLI_mempool.h"
 #include "BLI_path_util.h"
+#include "BLI_set.hh"
 #include "BLI_span.hh"
 #include "BLI_string.h"
 #include "BLI_string_ref.hh"
@@ -58,6 +59,7 @@
 #include "data_transfer_intern.h"
 
 using blender::IndexRange;
+using blender::Set;
 using blender::Span;
 using blender::StringRef;
 using blender::Vector;
@@ -4351,7 +4353,9 @@ void CustomData_file_write_info(int type, const char **r_struct_name, int *r_str
   *r_struct_num = typeInfo->structnum;
 }
 
-void CustomData_blend_write_prepare(CustomData &data, Vector<CustomDataLayer, 16> &layers_to_write)
+void CustomData_blend_write_prepare(CustomData &data,
+                                    Vector<CustomDataLayer, 16> &layers_to_write,
+                                    const Set<StringRef> &skip_names)
 {
   for (const CustomDataLayer &layer : Span(data.layers, data.totlayer)) {
     if (layer.flag & CD_FLAG_NOCOPY) {
@@ -4360,6 +4364,9 @@ void CustomData_blend_write_prepare(CustomData &data, Vector<CustomDataLayer, 16
     if (layer.anonymous_id != nullptr) {
       continue;
     }
+    if (skip_names.contains(layer.name)) {
+      continue;
+    }
     layers_to_write.append(layer);
   }
   data.totlayer = layers_to_write.size();
diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index 679204311a3..abf47acd5cc 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -245,14 +245,14 @@ static void mesh_blend_write(BlendWriter *writer, ID *id, const void *id_address
     memset(&mesh->pdata, 0, sizeof(mesh->pdata));
   }
   else {
-    CustomData_blend_write_prepare(mesh->vdata, vert_layers);
-    CustomData_blend_write_prepare(mesh->edata, edge_layers);
-    CustomData_blend_write_prepare(mesh->ldata, loop_layers);
-    CustomData_blend_write_prepare(mesh->pdata, poly_layers);
-  }
+    if (!BLO_write_is_undo(writer)) {
+      BKE_mesh_legacy_convert_hide_layers_to_flags(mesh);
+    }
 
-  if (!BLO_write_is_undo(writer)) {
-    BKE_mesh_legacy_convert_hide_layers_to_flags(mesh);
+    CustomData_blend_write_prepare(mesh->vdata, vert_layers, {".hide_vert"});
+    CustomData_blend_write_prepare(mesh->edata, edge_layers, {".hide_edge"});
+    CustomData_blend_write_prepare(mesh->ldata, loop_layers);
+    CustomData_blend_write_prepare(mesh->pdata, poly_layers, {".hide_poly"});
   }
 
   BLO_write_id_struct(writer, Mesh, id_address, &mesh->id);



More information about the Bf-blender-cvs mailing list