[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