[Bf-blender-cvs] [67fdff9d69f] sculpt-dev: Sculpt-dev: Fix merge bug and broken origmask

Joseph Eagar noreply at git.blender.org
Thu May 5 05:34:37 CEST 2022


Commit: 67fdff9d69fbf58ae49af8ff36439801fa847d74
Author: Joseph Eagar
Date:   Wed May 4 20:33:43 2022 -0700
Branches: sculpt-dev
https://developer.blender.org/rB67fdff9d69fbf58ae49af8ff36439801fa847d74

Sculpt-dev: Fix merge bug and broken origmask

* Remove error check for PBVH_BMESH that's
  not valid in sculpt-dev.
* Fix bug in original mask api.

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

M	source/blender/blenkernel/BKE_pbvh.h
M	source/blender/blenkernel/intern/pbvh.c
M	source/blender/editors/sculpt_paint/sculpt.c

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

diff --git a/source/blender/blenkernel/BKE_pbvh.h b/source/blender/blenkernel/BKE_pbvh.h
index 35fb213ef89..1ac14c8ab55 100644
--- a/source/blender/blenkernel/BKE_pbvh.h
+++ b/source/blender/blenkernel/BKE_pbvh.h
@@ -583,6 +583,7 @@ void BKE_pbvh_node_fully_masked_set(PBVHNode *node, int fully_masked);
 bool BKE_pbvh_node_fully_masked_get(PBVHNode *node);
 void BKE_pbvh_node_fully_unmasked_set(PBVHNode *node, int fully_masked);
 bool BKE_pbvh_node_fully_unmasked_get(PBVHNode *node);
+void BKE_pbvh_node_mark_curvature_update(PBVHNode *node);
 
 void BKE_pbvh_mark_rebuild_pixels(PBVH *pbvh);
 void BKE_pbvh_vert_mark_update(PBVH *pbvh, SculptVertRef vertex);
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index e068faf9c43..37749572f14 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -4268,6 +4268,8 @@ void BKE_pbvh_check_tri_areas(PBVH *pbvh, PBVHNode *node)
       }
       break;
     }
+    case PBVH_GRIDS:
+      break;
     case PBVH_BMESH: {
       BMFace *f;
       const int cd_face_area = pbvh->cd_face_area;
@@ -5268,6 +5270,10 @@ bool BKE_pbvh_get_origvert(
           copy_v3_v3(mv->origco, pbvh->verts[vertex.i].co);
           copy_v3_v3(mv->origno, pbvh->vert_normals[vertex.i]);
           mask = (float *)CustomData_get_layer(pbvh->vdata, CD_PAINT_MASK);
+
+          if (mask) {
+            mask += vertex.i;
+          }
         }
         else {
           const CCGKey *key = BKE_pbvh_get_grid_key(pbvh);
@@ -5281,7 +5287,7 @@ bool BKE_pbvh_get_origvert(
         }
 
         if (mask) {
-          mv->origmask = (ushort)(mask[vertex.i] * 65535.0f);
+          mv->origmask = (ushort)(*mask * 65535.0f);
         }
 
         if (pbvh->color_layer) {
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index fc0877ff9c2..5d82357f8d1 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -7762,10 +7762,8 @@ bool SCULPT_handles_colors_report(SculptSession *ss, ReportList *reports)
 {
   switch (BKE_pbvh_type(ss->pbvh)) {
     case PBVH_FACES:
-      return true;
     case PBVH_BMESH:
-      BKE_report(reports, RPT_ERROR, "Not supported in dynamic topology mode");
-      return false;
+      return true;
     case PBVH_GRIDS:
       BKE_report(reports, RPT_ERROR, "Not supported in multiresolution mode");
       return false;



More information about the Bf-blender-cvs mailing list