[Bf-blender-cvs] [e8f1ce29cd0] temp-sculpt-colors: temp-sculpt-colors: fix bug in get_vcol_refs

Joseph Eagar noreply at git.blender.org
Wed Jan 12 10:16:50 CET 2022


Commit: e8f1ce29cd0e5cf0827a33da07106688e07f1b25
Author: Joseph Eagar
Date:   Wed Jan 12 01:16:13 2022 -0800
Branches: temp-sculpt-colors
https://developer.blender.org/rBe8f1ce29cd0e5cf0827a33da07106688e07f1b25

temp-sculpt-colors: fix bug in get_vcol_refs

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

M	source/blender/draw/intern/mesh_extractors/extract_mesh_vbo_vcol.cc

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

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 d1c816330ed..705f6a88cb9 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
@@ -59,6 +59,11 @@ static std::vector<AttributeRef> get_vcol_refs(const CustomData *cd_vdata,
       AttributeDomain domain = domains[step2];
 
       int i = cdata->typemap[(int)type];
+
+      if (i == -1) {
+        continue;
+      }
+
       for (; i < cdata->totlayer && (CustomDataType)cdata->layers[i].type == type; i++, layeri++) {
         const CustomDataLayer *layer = cdata->layers + i;
 
@@ -275,14 +280,14 @@ static void extract_vcol_init(const MeshRenderData *mr,
       const MLoop *mloop = mr->mloop;
 
       if (ref.type == CD_PROP_COLOR) {
-        pcol = static_cast<MPropCol*>(cdata->layers[idx].data);
+        pcol = static_cast<MPropCol *>(cdata->layers[idx].data);
       }
       else {
         mcol = static_cast<MLoopCol *>(cdata->layers[idx].data);
       }
 
       const bool is_corner = ref.domain == ATTR_DOMAIN_CORNER;
-      
+
       for (int i = 0; i < totloop; i++, mloop++) {
         const int v_i = is_corner ? i : mloop->v;



More information about the Bf-blender-cvs mailing list