[Bf-blender-cvs] [475d5a38eed] refactor-mesh-hide-generic: Merge branch 'master' into refactor-mesh-hide-generic

Hans Goudey noreply at git.blender.org
Tue Aug 2 18:17:45 CEST 2022


Commit: 475d5a38eed7a679c1a3cb10714cb7ab88c265a7
Author: Hans Goudey
Date:   Tue Aug 2 11:17:31 2022 -0500
Branches: refactor-mesh-hide-generic
https://developer.blender.org/rB475d5a38eed7a679c1a3cb10714cb7ab88c265a7

Merge branch 'master' into refactor-mesh-hide-generic

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



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

diff --cc source/blender/editors/sculpt_paint/sculpt.c
index 20cc48f3d83,17acf8d884e..85cc1b526ab
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@@ -344,12 -344,9 +344,11 @@@ int SCULPT_active_face_set_get(SculptSe
  void SCULPT_vertex_visible_set(SculptSession *ss, PBVHVertRef vertex, bool visible)
  {
    switch (BKE_pbvh_type(ss->pbvh)) {
 -    case PBVH_FACES:
 -      SET_FLAG_FROM_TEST(ss->mvert[vertex.i].flag, !visible, ME_HIDE);
 +    case PBVH_FACES: {
 +      bool *hide_vert = BKE_pbvh_get_vert_hide_for_write(ss->pbvh);
 +      hide_vert[vertex.i] = visible;
-       BKE_pbvh_vert_mark_update(ss->pbvh, vertex);
        break;
 +    }
      case PBVH_BMESH: {
        BMVert *v = (BMVert *)vertex.i;
        BM_elem_flag_set(v, BM_ELEM_HIDDEN, !visible);
diff --cc source/blender/editors/sculpt_paint/sculpt_undo.c
index eca663d21b9,85778f4f00a..99f6a45ce1a
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@@ -312,14 -346,15 +346,14 @@@ static bool sculpt_undo_restore_hidden(
    SculptSession *ss = ob->sculpt;
    SubdivCCG *subdiv_ccg = ss->subdiv_ccg;
  
 -  if (unode->maxvert) {
 -    MVert *mvert = ss->mvert;
 +  bool *hide_vert = BKE_pbvh_get_vert_hide_for_write(ss->pbvh);
  
 +  if (unode->maxvert) {
      for (int i = 0; i < unode->totvert; i++) {
 -      MVert *v = &mvert[unode->index[i]];
 -      if ((BLI_BITMAP_TEST(unode->vert_hidden, i) != 0) != ((v->flag & ME_HIDE) != 0)) {
 +      if ((BLI_BITMAP_TEST(unode->vert_hidden, i) != 0) != hide_vert[i]) {
          BLI_BITMAP_FLIP(unode->vert_hidden, i);
-         hide_vert[i] = !hide_vert[i];
-         BKE_pbvh_vert_mark_update(ss->pbvh, BKE_pbvh_make_vref(unode->index[i]));
 -        v->flag ^= ME_HIDE;
++        hide_vert[unode->index[i]] = !hide_vert[i];
+         modified_vertices[unode->index[i]] = true;
        }
      }
    }



More information about the Bf-blender-cvs mailing list