[Bf-blender-cvs] [32812c2cc2a] master: Cleanup: Remove redundant mesh data mask handling

Hans Goudey noreply at git.blender.org
Wed Jan 11 03:14:12 CET 2023


Commit: 32812c2cc2a70bee018d205586e70154faeccbf7
Author: Hans Goudey
Date:   Tue Jan 10 20:07:47 2023 -0500
Branches: master
https://developer.blender.org/rB32812c2cc2a70bee018d205586e70154faeccbf7

Cleanup: Remove redundant mesh data mask handling

Byte colors are generic attributes and are therefore included in
CD_MASK_PROP_ALL. Also clarify the use of vertex groups.
They always have to be propagated since they're displayed in
the spreadsheet, etc.

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

M	source/blender/blenkernel/intern/mesh.cc
M	source/blender/blenkernel/intern/object_update.cc

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

diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index f67cf7e0646..47832e669ed 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -517,8 +517,7 @@ static int customdata_compare(
 {
   CustomDataLayer *l1, *l2;
   int layer_count1 = 0, layer_count2 = 0, j;
-  const uint64_t cd_mask_non_generic = CD_MASK_MEDGE | CD_MASK_MPOLY | CD_MASK_PROP_BYTE_COLOR |
-                                       CD_MASK_MDEFORMVERT;
+  const uint64_t cd_mask_non_generic = CD_MASK_MEDGE | CD_MASK_MPOLY | CD_MASK_MDEFORMVERT;
   const uint64_t cd_mask_all_attr = CD_MASK_PROP_ALL | cd_mask_non_generic;
   const Span<MLoop> loops_1 = m1->loops();
   const Span<MLoop> loops_2 = m2->loops();
diff --git a/source/blender/blenkernel/intern/object_update.cc b/source/blender/blenkernel/intern/object_update.cc
index a7da1bfb5d2..5abd5188d1e 100644
--- a/source/blender/blenkernel/intern/object_update.cc
+++ b/source/blender/blenkernel/intern/object_update.cc
@@ -141,9 +141,9 @@ void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *o
       CustomData_MeshMasks cddata_masks = scene->customdata_mask;
       CustomData_MeshMasks_update(&cddata_masks, &CD_MASK_BAREMESH);
       /* Custom attributes should not be removed automatically. They might be used by the render
-       * engine or scripts. They can still be removed explicitly using geometry nodes.
-       * Crease can be used in generic situations with geometry nodes as well. */
-      cddata_masks.vmask |= CD_MASK_PROP_ALL | CD_MASK_CREASE;
+       * engine or scripts. They can still be removed explicitly using geometry nodes. Crease and
+       * vertex groups can be used in arbitrary situations with geometry nodes as well. */
+      cddata_masks.vmask |= CD_MASK_PROP_ALL | CD_MASK_CREASE | CD_MASK_MDEFORMVERT;
       cddata_masks.emask |= CD_MASK_PROP_ALL | CD_MASK_CREASE;
       cddata_masks.fmask |= CD_MASK_PROP_ALL;
       cddata_masks.pmask |= CD_MASK_PROP_ALL;
@@ -154,12 +154,10 @@ void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *o
 #ifdef WITH_FREESTYLE
       cddata_masks.emask |= CD_MASK_FREESTYLE_EDGE;
       cddata_masks.pmask |= CD_MASK_FREESTYLE_FACE;
-      cddata_masks.vmask |= CD_MASK_MDEFORMVERT;
 #endif
       if (DEG_get_mode(depsgraph) == DAG_EVAL_RENDER) {
         /* Always compute UVs, vertex colors as orcos for render. */
-        cddata_masks.lmask |= CD_MASK_PROP_FLOAT2 | CD_MASK_PROP_BYTE_COLOR;
-        cddata_masks.vmask |= CD_MASK_ORCO | CD_MASK_PROP_COLOR;
+        cddata_masks.vmask |= CD_MASK_ORCO;
       }
       makeDerivedMesh(depsgraph, scene, ob, &cddata_masks); /* was CD_MASK_BAREMESH */
       break;



More information about the Bf-blender-cvs mailing list