Commit: 35cbf3b5dcd21e327922dbc16e5abae047da68c4 Author: Pablo Dobarro Date: Mon Apr 20 02:06:12 2020 +0200 Branches: blender-v2.83-release https://developer.blender.org/rB35cbf3b5dcd21e327922dbc16e5abae047da68c4
Fix crash on Multires Face Set visibility sync Multires uses the data of the Face Sets stored in the base mesh to manage the grid's visibility, so these pointers can no longer be set to NULL when editing Multires objects as they are requried for some operations. Reviewed By: sergey Differential Revision: https://developer.blender.org/D7431 =================================================================== M release/scripts/addons M source/blender/blenkernel/BKE_paint.h M source/blender/blenkernel/intern/paint.c M source/tools =================================================================== diff --git a/release/scripts/addons b/release/scripts/addons index cc1a2f5af86..f12430cae60 160000 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit cc1a2f5af8681158905be040099ea14bb814b331 +Subproject commit f12430cae606db8aeeb72f99fe15ebbd71d4a92c diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h index f78a142704b..7822f285c3b 100644 --- a/source/blender/blenkernel/BKE_paint.h +++ b/source/blender/blenkernel/BKE_paint.h @@ -294,10 +294,15 @@ typedef struct SculptSession { struct MultiresModifierData *modifier; int level; } multires; + + /* These are always assigned to base mesh data when using PBVH_FACES and PBVH_GRIDS. */ struct MVert *mvert; struct MPoly *mpoly; struct MLoop *mloop; + + /* These contain the vertex and poly counts of the final mesh. */ int totvert, totpoly; + struct KeyBlock *shapekey_active; float *vmask; @@ -306,6 +311,7 @@ typedef struct SculptSession { int *pmap_mem; /* Mesh Face Sets */ + /* Total number of polys of the base mesh. */ int totfaces; int *face_sets; diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 420538061bb..d4408291712 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -1514,9 +1514,12 @@ static void sculpt_update_object( ss->totvert = me_eval->totvert; ss->totpoly = me_eval->totpoly; ss->totfaces = me->totpoly; - ss->mvert = NULL; - ss->mpoly = NULL; - ss->mloop = NULL; + + /* These are assigned to the base mesh in Multires. This is needed because Face Sets operators + * and tools use the Face Sets data from the base mesh when Multires is active. */ + ss->mvert = me->mvert; + ss->mpoly = me->mpoly; + ss->mloop = me->mloop; } else { ss->totvert = me->totvert; diff --git a/source/tools b/source/tools index 35dd27ded66..8a36c2833db 160000 --- a/source/tools +++ b/source/tools @@ -1 +1 @@ -Subproject commit 35dd27ded664b1068e773c27988ee221f3ce39d9 +Subproject commit 8a36c2833db48ed78c436ee19534ce5cf3b2eeee _______________________________________________ Bf-blender-cvs mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-blender-cvs
