[Bf-blender-cvs] [bb3584e3cb1] temp-sculpt-colors: temp-sculpt-colors: fix edit mode vcol drawing

Joseph Eagar noreply at git.blender.org
Tue Mar 22 17:42:53 CET 2022


Commit: bb3584e3cb13cb1115023066e74cbfa735410d1b
Author: Joseph Eagar
Date:   Tue Mar 22 09:42:25 2022 -0700
Branches: temp-sculpt-colors
https://developer.blender.org/rBbb3584e3cb13cb1115023066e74cbfa735410d1b

temp-sculpt-colors: fix edit mode vcol drawing

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

M	source/blender/blenkernel/intern/attribute.c
M	source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc

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

diff --git a/source/blender/blenkernel/intern/attribute.c b/source/blender/blenkernel/intern/attribute.c
index 56ddae73d0b..60457ec5367 100644
--- a/source/blender/blenkernel/intern/attribute.c
+++ b/source/blender/blenkernel/intern/attribute.c
@@ -631,6 +631,8 @@ void BKE_id_attribute_copy_domains_temp(ID *temp_id,
     case ID_ME: {
       Mesh *me = (Mesh *)temp_id;
 
+      me->edit_mesh = NULL;
+
       me->vdata = vdata ? *vdata : reset;
       me->edata = edata ? *edata : reset;
       me->ldata = ldata ? *ldata : reset;
diff --git a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc
index 93710fba3b9..371b28217fe 100644
--- a/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc
+++ b/source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc
@@ -40,12 +40,12 @@ static blender::Vector<VColRef> get_vcol_refs(const CustomData *cd_vdata,
         continue;
       }
 
-      if (!(vcol_layers & (1UL << layeri))) {
-        layeri++;
+      if (layer->flag & CD_FLAG_TEMPORARY) {
         continue;
       }
 
-      if (layer->flag & CD_FLAG_TEMPORARY) {
+      if (!(vcol_layers & (1UL << layeri))) {
+        layeri++;
         continue;
       }
 
@@ -89,21 +89,22 @@ static void init_vcol_format(GPUVertFormat *format,
 
     GPU_vertformat_safe_attr_name(ref.layer->name, attr_safe_name, GPU_MAX_SAFE_ATTR_NAME);
 
+    /* VCol layer name. */
     BLI_snprintf(attr_name, sizeof(attr_name), "c%s", attr_safe_name);
-
     GPU_vertformat_attr_add(format, attr_name, GPU_COMP_U16, 4, GPU_FETCH_INT_TO_FLOAT_UNIT);
 
+    /* Active layer name. */
     if (ref.layer == active) {
       GPU_vertformat_alias_add(format, "ac");
     }
 
+    /* Active render layer name. */
     if (ref.layer == render) {
       GPU_vertformat_alias_add(format, "c");
     }
 
     /* Gather number of auto layers. */
     /* We only do `vcols` that are not overridden by `uvs`. */
-
     bool bad = ref.domain == ATTR_DOMAIN_CORNER;
     bad = bad && CustomData_get_named_layer_index(cd_ldata, CD_MLOOPUV, ref.layer->name) != -1;
 
@@ -149,7 +150,6 @@ static void extract_vcol_init(const MeshRenderData *mr,
   CustomDataLayer *active_color = BKE_id_attributes_active_color_get(&query_mesh.id);
   CustomDataLayer *render_color = BKE_id_attributes_render_color_get(&query_mesh.id);
 
-  // BKE_id_attribute_domain
   const uint32_t vcol_layers = cache->cd_used.vcol;
   init_vcol_format(&format, cache, cd_vdata, cd_ldata, active_color, render_color);



More information about the Bf-blender-cvs mailing list