[Bf-blender-cvs] [4c3d11c2332] sculpt-dev: Merge remote-tracking branch 'origin' into sculpt-dev

Joseph Eagar noreply at git.blender.org
Thu May 26 22:45:35 CEST 2022


Commit: 4c3d11c233286de7c71230f8fb08d590736c9aae
Author: Joseph Eagar
Date:   Thu May 26 13:45:19 2022 -0700
Branches: sculpt-dev
https://developer.blender.org/rB4c3d11c233286de7c71230f8fb08d590736c9aae

Merge remote-tracking branch 'origin' into sculpt-dev

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



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

diff --cc release/datafiles/blender_icons_geom.py
index ef014cd07f0,b95baf3419e..964826418b3
--- a/release/datafiles/blender_icons_geom.py
+++ b/release/datafiles/blender_icons_geom.py
@@@ -115,26 -118,15 +118,25 @@@ def object_child_map(objects)
          ob_all.sort(key=lambda ob: ob.name)
      return objects_children
  
 -
 +import sys
 +def get_active_vcol(me):
 +  vcol = me.vertex_colors.active
 +  if not vcol and len(me.vertex_colors) > 0:
 +    vcol = me.vertex_colors[0]
 +  
 +  return vcol
 +  
  def mesh_data_lists_from_mesh(me, material_colors):
      me_loops = me.loops[:]
-     me_loops_color = get_active_vcol(me)
-     me_loops_color = me_loops_color.data[:] if me_loops_color else None
+     me_loops_color = me.attributes.active_color.data[:]
      me_verts = me.vertices[:]
      me_polys = me.polygons[:]
 -
 +  
      tris_data = []
 -
 +    
 +    class white:
 +        color = [1, 1, 1, 1]
 +    
      for p in me_polys:
          # Note, all faces are handled, backfacing/zero area is checked just before writing.
          material_index = p.material_index
diff --cc release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 8fe0ff63c9a,1b714a40d03..7fa52769789
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@@ -266,8 -273,10 +266,8 @@@ class VIEW3D_PT_tools_posemode_options(
          layout.prop(tool_settings, "use_transform_pivot_point_align", text="Locations")
  
  # ********** default tools for paint modes ****************
 -
 -
  class TEXTURE_UL_texpaintslots(UIList):
-     def draw_item(self, _context, layout, _data, item, icon, _active_data, _active_propname, _index):
+     def draw_item(self, _context, layout, _data, item, _icon, _active_data, _active_propname, _index):
          # mat = data
  
          if self.layout_type in {'DEFAULT', 'COMPACT'}:
diff --cc source/blender/CMakeLists.txt
index deff45d0350,efa2be9e48c..06402e005ae
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@@ -87,6 -87,42 +87,43 @@@ set(SRC_DNA_IN
    ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_workspace_types.h
    ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_world_types.h
    ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_xr_types.h
++  ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_sculpt_brush_types.h
+ )
+ 
+ set(SRC_DNA_DEFAULTS_INC
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_armature_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_asset_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_brush_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_cachefile_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_camera_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_collection_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curves_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curve_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_fluid_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_gpencil_modifier_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_image_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lattice_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_lightprobe_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_light_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_linestyle_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_material_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mesh_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_meta_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_modifier_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_movieclip_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_object_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_particle_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_pointcloud_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_scene_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_simulation_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_space_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_speaker_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_texture_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_vec_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_view3d_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_volume_defaults.h
+   ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_world_defaults.h
  )
  
  add_subdirectory(datatoc)
diff --cc source/blender/blenkernel/intern/paint.c
index 34d6270bed3,cff7eb20b05..6cc4d7e2d0b
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@@ -621,9 -606,14 +621,14 @@@ ePaintMode BKE_paintmode_get_from_tool(
  
  Brush *BKE_paint_brush(Paint *p)
  {
 -  return (Brush *)BKE_paint_brush_for_read((const Paint *)p);
 +  return p ? (p->brush_eval ? p->brush_eval : p->brush) : NULL;
  }
  
+ const Brush *BKE_paint_brush_for_read(const Paint *p)
+ {
+   return p ? p->brush : NULL;
+ }
+ 
  void BKE_paint_brush_set(Paint *p, Brush *br)
  {
    if (p) {
diff --cc source/blender/blenkernel/intern/pbvh.c
index 88ed3f3c4da,1d4fbb92fa0..ee02093dba2
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@@ -677,14 -560,11 +677,14 @@@ void BKE_pbvh_build_mesh(PBVH *pbvh
    pbvh->mloop = mloop;
    pbvh->looptri = looptri;
    pbvh->verts = verts;
 +  pbvh->mdyntopo_verts = mdyntopo_verts;
    BKE_mesh_vertex_normals_ensure(mesh);
    pbvh->vert_normals = BKE_mesh_vertex_normals_for_write(mesh);
-   pbvh->vert_bitmap = BLI_BITMAP_NEW(totvert, "bvh->vert_bitmap");
+   pbvh->vert_bitmap = MEM_calloc_arrayN(totvert, sizeof(bool), "bvh->vert_bitmap");
    pbvh->totvert = totvert;
    pbvh->leaf_limit = LEAF_LIMIT;
 +  pbvh->depth_limit = LEAF_DEPTH_LIMIT;
 +
    pbvh->vdata = vdata;
    pbvh->ldata = ldata;
    pbvh->pdata = pdata;
@@@ -2218,10 -1876,10 +2218,10 @@@ bool BKE_pbvh_node_fully_unmasked_get(P
    return (node->flag & PBVH_Leaf) && (node->flag & PBVH_FullyUnmasked);
  }
  
 -void BKE_pbvh_vert_mark_update(PBVH *pbvh, int index)
 +void BKE_pbvh_vert_mark_update(PBVH *pbvh, SculptVertRef vertex)
  {
    BLI_assert(pbvh->type == PBVH_FACES);
-   BLI_BITMAP_ENABLE(pbvh->vert_bitmap, vertex.i);
 -  pbvh->vert_bitmap[index] = true;
++  pbvh->vert_bitmap[vertex.i] = true;
  }
  
  void BKE_pbvh_node_get_loops(PBVH *pbvh,
diff --cc source/blender/blenkernel/intern/pbvh_intern.h
index 06fb4a7288f,a86663a9c74..2a84ac2276f
--- a/source/blender/blenkernel/intern/pbvh_intern.h
+++ b/source/blender/blenkernel/intern/pbvh_intern.h
@@@ -167,21 -142,16 +172,23 @@@ struct PBVH 
    int totvert;
  
    int leaf_limit;
 +  int depth_limit;
  
    /* Mesh data */
 +  struct MeshElemMap *vemap;
 +  SculptPMap *pmap;
 +
    const struct Mesh *mesh;
  
-   /* Note: Normals are not const because they can be updated for drawing by sculpt code. */
+   /* NOTE: Normals are not `const` because they can be updated for drawing by sculpt code. */
    float (*vert_normals)[3];
-   MVert *verts;
-   const MPoly *mpoly;
-   const MLoop *mloop;
++
+   struct MVert *verts;
+   const struct MPoly *mpoly;
+   const struct MLoop *mloop;
+   const struct MLoopTri *looptri;
 +  struct MSculptVert *mdyntopo_verts;
-   const MLoopTri *looptri;
++
    CustomData *vdata;
    CustomData *ldata;
    CustomData *pdata;
diff --cc source/blender/bmesh/intern/bmesh_log.c
index cd03bc13bad,a81ae934629..fbec530451a
--- a/source/blender/bmesh/intern/bmesh_log.c
+++ b/source/blender/bmesh/intern/bmesh_log.c
@@@ -1065,34 -285,29 +1065,35 @@@ static void bm_log_faces_unmake_pre
    }
  }
  
 -static void bm_log_faces_restore(BMesh *bm, BMLog *log, GHash *faces)
 +static void bm_log_edges_unmake(
 +    BMesh *bm, BMLog *log, GHash *edges, BMLogEntry *entry, BMLogCallbacks *callbacks)
  {
    GHashIterator gh_iter;
 -  const int cd_face_sets = CustomData_get_offset(&bm->pdata, CD_SCULPT_FACE_SETS);
+ 
 -  GHASH_ITER (gh_iter, faces) {
 -    void *key = BLI_ghashIterator_getKey(&gh_iter);
 -    BMLogFace *lf = BLI_ghashIterator_getValue(&gh_iter);
 -    BMVert *v[3] = {
 -        bm_log_vert_from_id(log, lf->v_ids[0]),
 -        bm_log_vert_from_id(log, lf->v_ids[1]),
 -        bm_log_vert_from_id(log, lf->v_ids[2]),
 -    };
 -    BMFace *f;
 -
 -    f = BM_face_create_verts(bm, v, 3, NULL, BM_CREATE_NOP, true);
 -    f->head.hflag = lf->hflag;
 -    bm_log_face_id_set(log, f, POINTER_AS_UINT(key));
 +  GHASH_ITER (gh_iter, edges) {
 +    BMLogEdge *le = BLI_ghashIterator_getValue(&gh_iter);
 +    BMEdge *e = bm_log_edge_from_id(log, le->head.id);
 +
 +    if (!e) {
 +      fprintf(DEBUG_FILE,
 +              "%s: missing edge; edge id: %d [%s]\n",
 +              GET_TRACE(le, entry),
 +              le->head.id,
 +              GET_MSG(le));
 +      continue;
 +    }
  
 -    /* Ensure face sets have valid values.  Fixes T80174. */
 -    if (cd_face_sets != -1) {
 -      BM_ELEM_CD_SET_INT(f, cd_face_sets, 1);
 +    if (e->head.htype != BM_EDGE) {
 +      fprintf(DEBUG_FILE,
 +              "%s: not an edge; edge id: %d, type: %d [%s]\n",
 +              GET_TRACE(le, entry),
 +              le->head.id,
 +              e->head.htype,
 +              GET_MSG(le));
 +      continue;
      }
 +
 +    BM_edge_kill(bm, e);
    }
  }
  
diff --cc source/blender/bmesh/intern/bmesh_mesh_convert.cc
index 4f712ba2159,40f1d7c496d..e89b2f40e3d
--- a/source/blender/bmesh/intern/bmesh_mesh_convert.cc
+++ b/source/blender/bmesh/intern/bmesh_mesh_convert.cc
@@@ -78,7 -78,6 +78,8 @@@
  #include "MEM_guardedalloc.h"
  
  #include "BLI_alloca.h"
 +#include "BLI_array.h"
++#include "BLI_bitmap.h"
  #include "BLI_array.hh"
  #include "BLI_index_range.hh"
  #include "BLI_listbase.h"
diff --cc source/blender/editors/interface/interface_handlers.c
index 5b8bce9894e,a7dfff2edb4..b596c9813d7
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@@ -6291,8 -6303,8 +6306,8 @@@ static int ui_do_but_COLOR(bContext *C
              }
              else if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR) {
                RNA_property_float_get_array(&but->rna

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list