[Bf-blender-cvs] [e53a8f9c51d] sculpt-dev: Merge branch 'master' into sculpt-dev

Joseph Eagar noreply at git.blender.org
Sat Dec 3 12:27:05 CET 2022


Commit: e53a8f9c51d4b4d6e92652bdf371a6215ff1fe83
Author: Joseph Eagar
Date:   Sat Dec 3 03:26:49 2022 -0800
Branches: sculpt-dev
https://developer.blender.org/rBe53a8f9c51d4b4d6e92652bdf371a6215ff1fe83

Merge branch 'master' into sculpt-dev

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



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

diff --cc release/scripts/addons
index 5a818af9508,0b0052bd53a..fdfd24de034
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 5a818af95080cccf04dfa8317f0e966bff515c64
 -Subproject commit 0b0052bd53ad8249ed07dfb87705c338af698bde
++Subproject commit fdfd24de034d4bba4fb67731d0aae81dc4940239
diff --cc release/scripts/startup/bl_ui/properties_data_mesh.py
index 6d676a4ee18,5d7e7cd77b1..56252ff113a
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@@ -535,13 -536,8 +537,10 @@@ class MESH_UL_attributes(UIList)
          flags = []
          indices = [i for i in range(len(attributes))]
  
 +        show_all = _context.tool_settings.save_temp_layers if hasattr(_context, "tool_settings") else False
 +
          for item in attributes:
-             if show_all:
-                 flags.append(self.bitflag_filter_item)
-             else:
-                 flags.append(0)
+             flags.append(0 if item.is_internal else self.bitflag_filter_item)
  
          return flags, indices
  
diff --cc release/scripts/startup/bl_ui/properties_paint_common.py
index 2fd34c78722,3cd5df4df7d..ca7bbdf38c4
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@@ -2151,14 -954,17 +2151,17 @@@ def brush_settings_advanced(layout, con
  
          layout.separator()
  
 -        col = layout.column(align=True)
 -        row = col.row()
 -        row.prop(brush, "use_automasking_cavity", text="Cavity")
 +        #col = layout.column(align=True)
 +        #row = col.row()
 +        #row.prop(brush, "use_automasking_cavity", text="Cavity")
  
 -        is_cavity_active = brush.use_automasking_cavity or brush.use_automasking_cavity_inverted
 +        is_cavity_active = "CAVITY" in flags or "CAVITY_INVERTED" in flags
  
          if is_cavity_active:
-             layout.operator("sculpt.mask_from_cavity", text="Create Mask")
+             props = row.operator("sculpt.mask_from_cavity", text="Create Mask")
+             props.settings_source = "BRUSH"
+ 
+         col.prop(brush, "use_automasking_cavity_inverted", text="Cavity (inverted)")
  
          if is_cavity_active:
              col = layout.column(align=True)
diff --cc release/scripts/startup/bl_ui/space_view3d.py
index a48441d6cff,63aff89aa7d..9ee1f2bb118
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@@ -18,8 -18,13 +18,12 @@@ from bl_ui.properties_grease_pencil_com
  from bl_ui.space_toolsystem_common import (
      ToolActivePanelHelper,
  )
- from bpy.app.translations import contexts as i18n_contexts
+ from bpy.app.translations import (
+     pgettext_iface as iface_,
+     pgettext_tip as tip_,
+     contexts as i18n_contexts,
+ )
  
 -
  class VIEW3D_HT_tool_header(Header):
      bl_space_type = 'VIEW_3D'
      bl_region_type = 'TOOL_HEADER'
diff --cc source/blender/blenkernel/BKE_bassrelief.h
index e3dbc21df65,00000000000..81392f6c88c
mode 100644,000000..100644
--- a/source/blender/blenkernel/BKE_bassrelief.h
+++ b/source/blender/blenkernel/BKE_bassrelief.h
@@@ -1,90 -1,0 +1,91 @@@
 +/*
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * as published by the Free Software Foundation; either version 2
 + * of the License, or (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software Foundation,
 + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 + *
 + * The Original Code is Copyright (C) Blender Foundation.
 + * All rights reserved.
 + */
 +#pragma once
 +
 +/** \file
 + * \ingroup bke
 + */
 +
 +#include "BKE_bvhutils.h"
 +#include "BLI_bitmap.h"
 +#include "BLI_math_matrix.h"
 +
 +struct Scene;
 +struct Mesh;
 +struct BassReliefModifierData;
 +struct Object;
 +struct MDeformVert;
 +struct ModifierEvalContext;
 +struct MPropCol;
 +
 +#define MAX_BASSRELIEF_DEBUG_COLORS 7
 +
 +#ifdef __cplusplus
 +extern "C" {
 +#endif
 +
 +/* Information about a mesh and BVH tree. */
 +typedef struct BassReliefTreeData {
 +  Mesh *mesh;
 +  const MPoly *mpoly;
 +
 +  BVHTree *bvh;
 +  BVHTreeFromMesh treeData;
 +  struct SpaceTransform transform;
 +  float keepDist;
 +
++  const float (*vert_normals)[3];
 +  float (*pnors)[3];
 +  float (*clnors)[3];
 +} BassReliefTreeData;
 +
 +void bassReliefModifier_deform(struct BassReliefModifierData *smd,
 +                               const struct ModifierEvalContext *ctx,
 +                               struct Scene *scene,
 +                               struct Object *ob,
 +                               struct Mesh *mesh,
 +                               const struct MDeformVert *dvert,
 +                               const int defgrp_index,
 +                               float (*vertexCos)[3],
 +                               int numVerts,
 +                               struct MPropCol *debugColors[MAX_BASSRELIEF_DEBUG_COLORS]);
 +
 +/*
 + * NULL initializes to local data
 + */
 +#define NULL_BassReliefCalcData \
 +  { \
 +    NULL, \
 +  }
 +#define NULL_BVHTreeFromMesh \
 +  { \
 +    NULL, \
 +  }
 +#define NULL_BVHTreeRayHit \
 +  { \
 +    NULL, \
 +  }
 +#define NULL_BVHTreeNearest \
 +  { \
 +    0, \
 +  }
 +
 +#ifdef __cplusplus
 +}
 +#endif
diff --cc source/blender/blenkernel/BKE_mesh.h
index 24e2c7c384d,66974dbedb5..3482d3638c7
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@@ -74,10 -70,16 +74,17 @@@ void BKE_mesh_tag_coords_changed(struc
   */
  void BKE_mesh_tag_coords_changed_uniformly(struct Mesh *mesh);
  
+ void BKE_mesh_tag_topology_changed(struct Mesh *mesh);
+ 
+ /**
+  * Call when new edges and vertices have been created but positions and faces haven't changed.
+  */
+ void BKE_mesh_tag_edges_split(struct Mesh *mesh);
+ 
  /* *** mesh.c *** */
  
 -struct BMesh *BKE_mesh_to_bmesh_ex(const struct Mesh *me,
 +struct BMesh *BKE_mesh_to_bmesh_ex(const struct Object *ob,
 +                                   const struct Mesh *me,
                                     const struct BMeshCreateParams *create_params,
                                     const struct BMeshFromMeshParams *convert_params);
  struct BMesh *BKE_mesh_to_bmesh(struct Mesh *me,
diff --cc source/blender/blenkernel/BKE_pbvh.h
index 6e11cbff098,139b6ff6bbe..2efed15b921
--- a/source/blender/blenkernel/BKE_pbvh.h
+++ b/source/blender/blenkernel/BKE_pbvh.h
@@@ -16,93 -16,17 +16,94 @@@
  /* For embedding CCGKey in iterator. */
  #include "BKE_attribute.h"
  #include "BKE_ccg.h"
++
 +#include <stdint.h>
 +
 +//#define DEFRAGMENT_MEMORY
 +
  #include "DNA_customdata_types.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
- // experimental feature to detect quad diagonals and mark (but not dissolve) them
++/* Experimental feature to detect quad diagonals and mark (but not dissolve) them. */
 +//#define SCULPT_DIAGONAL_EDGE_MARKS
 +
 +/*
 +   These structs represent logical verts/edges/faces.
 +   for PBVH_GRIDS and PBVH_FACES they store integer
 +   offsets, PBVH_BMESH stores pointers.
 +
 +   The idea is to enforce stronger type checking by encapsulating
 +   intptr_t's in structs.*/
 +typedef struct PBVHVertRef {
 +  intptr_t i;
 +} PBVHVertRef;
 +
 +typedef struct PBVHEdgeRef {
 +  intptr_t i;
 +} PBVHEdgeRef;
 +
 +typedef struct PBVHFaceRef {
 +  intptr_t i;
 +} PBVHFaceRef;
 +
 +#define PBVH_REF_NONE ((intptr_t)-1)
 +
 +typedef struct SculptPMap {
 +  struct MeshElemMap *pmap;
 +  int *pmap_mem;
 +  int refcount;
 +} SculptPMap;
 +
 +#if 0
 +typedef struct SculptLoopRef {
 +  intptr_t i;
 +} SculptLoopRef;
 +#endif
 +
 +#ifdef DEFRAGMENT_MEMORY
 +#  include "BLI_smallhash.h"
 +#endif
 +
 +typedef struct PBVHTri {
 +  int v[3];       // references into PBVHTriBuf->verts
 +  int eflag;      // bitmask of which edges in the tri are real edges in the mesh
 +  intptr_t l[3];  // loops
 +
 +  float no[3];
 +  PBVHFaceRef f;
 +} PBVHTri;
 +
 +typedef struct PBVHTriBuf {
 +  PBVHTri *tris;
 +  PBVHVertRef *verts;
 +  int *edges;
 +  int totvert, totedge, tottri;
 +  int verts_size, edges_size, tris_size;
 +
 +  SmallHash vertmap;  // maps vertex ptrs to indices within verts
 +
 +  // private field
 +  intptr_t *loops;
 +  int totloop, mat_nr;
 +  float min[3], max[3];
 +} PBVHTriBuf;
 +
 +//#define WITH_PBVH_CACHE
 +
  struct BMLog;
  struct BMesh;
 +struct BMVert;
 +struct BMEdge;
 +struct BMFace;
 +struct Scene;
  struct CCGElem;
 +struct MeshElemMap;
  struct CCGKey;
  struct CustomData;
 +struct TableGSet;
  struct DMFlagMat;
  struct IsectRayPrecalc;
  struct MLoop;
@@@ -217,9 -97,17 +218,18 @@@ typedef struct 
  
  typedef struct {
    float (*color)[4];
 +  int size;
  } PBVHColorBufferNode;
  
+ typedef struct PBVHPixels {
+   /**
+    * Storage for texture painting on PBVH level.
+    *
+    * Contains #blender::bke::pbvh::pixels::PBVHData
+    */
+   void *data;
+ } PBVHPixels;
+ 
  typedef struct PBVHPixelsNode {
    /**
     * Contains triangle/pixel data used during texture painting.
@@@ -668,7 -453,7 +680,8 @@@ void BKE_pbvh_update_all_tri_areas(PBV
  void BKE_pbvh_node_mark_update(PBVHNode *node);
  void BKE_pbvh_node_mark_update_mask(PBVHNode *node);
  void BKE_pbvh_node_mark_update_color(PBVHNode *node);
 +void BKE_pbvh_vert_tag_update_normal_visibility(PBVHNode *node);
+ void BKE_pbvh_node_mark_update_face_sets(PBVHNode *node);
  void BKE_pbvh_node_mark_update_visibility(PBVHNode *node);
  void BKE_pbvh_node_mark_rebuild_draw(PBVHNode *node);
  void BKE_pbvh_node_mark_redraw(PBVHNode *node);
@@@ -916,18 -690,53 +934,66 @@@ void pbvh_vertex_iter_init(PBVH *pbvh, 
    } \
    ((void)0)
  
 +#define BKE_pbvh_vertex_to_index(pbvh, v) \
 +  (BKE_pbvh_type(pbvh) == PBVH_BMESH && v.i != -1 ? BM_elem_index_get((BMVert *)(

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list