[Bf-blender-cvs] [f803a0a95b6] master: Sculpt: Fix T103341: Move sculpt overlay flags to View3DOverlay.flag
Joseph Eagar
noreply at git.blender.org
Fri Dec 23 02:01:08 CET 2022
Commit: f803a0a95b6769145528914d21910c10ce24c861
Author: Joseph Eagar
Date: Thu Dec 22 16:52:44 2022 -0800
Branches: master
https://developer.blender.org/rBf803a0a95b6769145528914d21910c10ce24c861
Sculpt: Fix T103341: Move sculpt overlay flags to View3DOverlay.flag
"Show mask" and "Show face sets" were being stored in
`Sculpt`, yet their opacities are in `View3dOverlay`.
Now `View3DOverlay` has the flags too.
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenkernel/BKE_blender_version.h
M source/blender/blenkernel/BKE_paint.h
M source/blender/blenkernel/intern/paint.cc
M source/blender/blenkernel/intern/pbvh.c
M source/blender/blenkernel/intern/pbvh_intern.h
M source/blender/blenloader/intern/versioning_300.cc
M source/blender/draw/engines/overlay/overlay_engine.cc
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesdna/DNA_view3d_defaults.h
M source/blender/makesdna/DNA_view3d_types.h
M source/blender/makesrna/intern/rna_sculpt_paint.c
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 263a323bb63..4feb92e71df 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -6741,15 +6741,15 @@ class VIEW3D_PT_overlay_sculpt(Panel):
overlay = view.overlay
row = layout.row(align=True)
- row.prop(sculpt, "show_mask", text="")
+ row.prop(overlay, "sculpt_show_mask", text="")
sub = row.row()
- sub.active = sculpt.show_mask
+ sub.active = overlay.sculpt_show_mask
sub.prop(overlay, "sculpt_mode_mask_opacity", text="Mask")
row = layout.row(align=True)
- row.prop(sculpt, "show_face_sets", text="")
+ row.prop(overlay, "sculpt_show_face_sets", text="")
sub = row.row()
- sub.active = sculpt.show_face_sets
+ sub.active = overlay.sculpt_show_face_sets
row.prop(overlay, "sculpt_mode_face_sets_opacity", text="Face Sets")
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index 7c241a4fa12..2ddda93c93b 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -25,7 +25,7 @@ extern "C" {
/* Blender file format version. */
#define BLENDER_FILE_VERSION BLENDER_VERSION
-#define BLENDER_FILE_SUBVERSION 5
+#define BLENDER_FILE_SUBVERSION 6
/* Minimum Blender version that supports reading file written with the current
* version. Older Blender versions will test this and show a warning if the file
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 5c878486c68..ba631bd92a0 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -632,8 +632,6 @@ typedef struct SculptSession {
/* PBVH acceleration structure */
struct PBVH *pbvh;
- bool show_mask;
- bool show_face_sets;
/* Painting on deformed mesh */
bool deform_modifiers_active; /* Object is deformed with some modifiers. */
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc
index ebbe3c2c4fa..acc6a32b0eb 100644
--- a/source/blender/blenkernel/intern/paint.cc
+++ b/source/blender/blenkernel/intern/paint.cc
@@ -1675,8 +1675,6 @@ static void sculpt_update_object(
ss->depsgraph = depsgraph;
ss->deform_modifiers_active = sculpt_modifiers_active(scene, sd, ob);
- ss->show_mask = (sd->flags & SCULPT_HIDE_MASK) == 0;
- ss->show_face_sets = (sd->flags & SCULPT_HIDE_FACE_SETS) == 0;
ss->building_vp_handle = false;
@@ -1775,9 +1773,6 @@ static void sculpt_update_object(
}
}
- pbvh_show_mask_set(ss->pbvh, ss->show_mask);
- pbvh_show_face_sets_set(ss->pbvh, ss->show_face_sets);
-
if (ss->deform_modifiers_active) {
/* Painting doesn't need crazyspace, use already evaluated mesh coordinates if possible. */
bool used_me_eval = false;
@@ -2173,8 +2168,6 @@ static PBVH *build_pbvh_for_dynamic_topology(Object *ob)
ob->sculpt->bm_log,
ob->sculpt->attrs.dyntopo_node_id_vertex->bmesh_cd_offset,
ob->sculpt->attrs.dyntopo_node_id_face->bmesh_cd_offset);
- pbvh_show_mask_set(pbvh, ob->sculpt->show_mask);
- pbvh_show_face_sets_set(pbvh, false);
return pbvh;
}
@@ -2207,9 +2200,6 @@ static PBVH *build_pbvh_from_regular_mesh(Object *ob, Mesh *me_eval_deform, bool
looptri,
looptris_num);
- pbvh_show_mask_set(pbvh, ob->sculpt->show_mask);
- pbvh_show_face_sets_set(pbvh, ob->sculpt->show_face_sets);
-
const bool is_deformed = check_sculpt_object_deformed(ob, true);
if (is_deformed && me_eval_deform != nullptr) {
int totvert;
@@ -2240,8 +2230,6 @@ static PBVH *build_pbvh_from_ccg(Object *ob, SubdivCCG *subdiv_ccg, bool respect
subdiv_ccg->grid_hidden,
base_mesh,
subdiv_ccg);
- pbvh_show_mask_set(pbvh, ob->sculpt->show_mask);
- pbvh_show_face_sets_set(pbvh, ob->sculpt->show_face_sets);
return pbvh;
}
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index ca0039d1a58..a6a362b1daf 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -3419,16 +3419,6 @@ bool pbvh_has_face_sets(PBVH *pbvh)
return false;
}
-void pbvh_show_mask_set(PBVH *pbvh, bool show_mask)
-{
- pbvh->show_mask = show_mask;
-}
-
-void pbvh_show_face_sets_set(PBVH *pbvh, bool show_face_sets)
-{
- pbvh->show_face_sets = show_face_sets;
-}
-
void BKE_pbvh_set_frustum_planes(PBVH *pbvh, PBVHFrustumPlanes *planes)
{
pbvh->num_planes = planes->num_planes;
diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h
index e465e8be002..ee728a698dd 100644
--- a/source/blender/blenkernel/intern/pbvh_intern.h
+++ b/source/blender/blenkernel/intern/pbvh_intern.h
@@ -191,8 +191,6 @@ struct PBVH {
/* flag are verts/faces deformed */
bool deformed;
- bool show_mask;
- bool show_face_sets;
bool respect_hide;
/* Dynamic topology */
diff --git a/source/blender/blenloader/intern/versioning_300.cc b/source/blender/blenloader/intern/versioning_300.cc
index 79b1164c0dd..90bca21cbe3 100644
--- a/source/blender/blenloader/intern/versioning_300.cc
+++ b/source/blender/blenloader/intern/versioning_300.cc
@@ -3822,6 +3822,19 @@ void blo_do_versions_300(FileData *fd, Library * /*lib*/, Main *bmain)
}
}
+ if (!MAIN_VERSION_ATLEAST(bmain, 305, 6)) {
+ LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) {
+ LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
+ LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D *)sl;
+ v3d->overlay.flag |= (int)(V3D_OVERLAY_SCULPT_SHOW_MASK |
+ V3D_OVERLAY_SCULPT_SHOW_FACE_SETS);
+ }
+ }
+ }
+ }
+ }
/**
* Versioning code until next subversion bump goes here.
*
diff --git a/source/blender/draw/engines/overlay/overlay_engine.cc b/source/blender/draw/engines/overlay/overlay_engine.cc
index c41cfc790fa..2eea0ad2f65 100644
--- a/source/blender/draw/engines/overlay/overlay_engine.cc
+++ b/source/blender/draw/engines/overlay/overlay_engine.cc
@@ -92,10 +92,10 @@ static void OVERLAY_engine_init(void *vedata)
}
if (ts->sculpt) {
- if (ts->sculpt->flags & SCULPT_HIDE_FACE_SETS) {
+ if (!(v3d->overlay.flag & (int)V3D_OVERLAY_SCULPT_SHOW_FACE_SETS)) {
pd->overlay.sculpt_mode_face_sets_opacity = 0.0f;
}
- if (ts->sculpt->flags & SCULPT_HIDE_MASK) {
+ if (!(v3d->overlay.flag & (int)V3D_OVERLAY_SCULPT_SHOW_MASK)) {
pd->overlay.sculpt_mode_mask_opacity = 0.0f;
}
}
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 5f68b2d0c78..e81d8d8ed55 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -2470,13 +2470,8 @@ typedef enum eSculptFlags {
/** If set, dynamic-topology detail size will be constant in object space. */
SCULPT_DYNTOPO_DETAIL_CONSTANT = (1 << 13),
SCULPT_DYNTOPO_DETAIL_BRUSH = (1 << 14),
+ /* unused = (1 << 15), */
SCULPT_DYNTOPO_DETAIL_MANUAL = (1 << 16),
-
- /** Don't display mask in viewport, but still use it for strokes. */
- SCULPT_HIDE_MASK = (1 << 15),
-
- /** Don't display face sets in viewport. */
- SCULPT_HIDE_FACE_SETS = (1 << 17),
} eSculptFlags;
/** #Sculpt.transform_mode */
diff --git a/source/blender/makesdna/DNA_view3d_defaults.h b/source/blender/makesdna/DNA_view3d_defaults.h
index f124bdd5d94..0c0ed210a2b 100644
--- a/source/blender/makesdna/DNA_view3d_defaults.h
+++ b/source/blender/makesdna/DNA_view3d_defaults.h
@@ -36,7 +36,7 @@
#define _DNA_DEFAULT_View3DOverlay \
{ \
- .flag = V3D_OVERLAY_VIEWER_ATTRIBUTE, \
+ .flag = V3D_OVERLAY_VIEWER_ATTRIBUTE | V3D_OVERLAY_SCULPT_SHOW_MASK | V3D_OVERLAY_SCULPT_SHOW_FACE_SETS, \
.wireframe_threshold = 1.0f, \
.wireframe_opacity = 1.0f, \
.viewer_attribute_opacity = 1.0f, \
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 8e44588bb34..0b7c483b7d0 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -546,6 +546,8 @@ enum {
V3D_OVERLAY_STATS = (1 << 11),
V3D_OVERLAY_FADE_INACTIVE = (1 << 12),
V3D_OVERLAY_VIEWER_ATTRIBUTE = (1 << 13),
+ V3D_OVERLAY_SCULPT_SHOW_MASK = (1 << 14),
+ V3D_OVERLAY_SCULPT_SHOW_FACE_SETS = (1 << 15),
};
/** #View3DOverlay.edit_flag */
diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c
index a57f3c5a1a6..003e26333d2 100644
--- a/source/blender/makesrna/intern/rna_sculpt_paint.c
+++ b/source/blender/makesrna/intern/rna_sculpt_paint.c
@@ -393,24 +393,6 @@ static void rna_Sculpt_update(bContext *C, PointerRNA *UNUSED(ptr))
}
}
-static void rna_Sculpt_ShowMask_update(bContext *C, PointerRNA *UNUSED(ptr))
-{
- Scene *scene = CTX_data_scene(C);
- ViewLayer *view_layer = CTX_data_view_layer(C);
- BKE_view_layer_synced_ensure(scene, view_layer);
- Object *object = BKE_view_layer_active_object_get(view_layer);
- if (object == NULL || object->sculpt == NULL) {
- return;
- }
- Sculpt *sd = scene->toolsettings->sculpt;
- object->sculpt->show_mask = ((sd->flags & SCULPT_HIDE_MASK) == 0);
- if (object->sculpt->pbvh != NULL) {
- pbvh_show_mask_set(object->sculpt->pbvh, object->sculpt->show_mask);
- }
- DEG_id_tag_update(&object->id, ID_RECALC_GEOMETRY);
- WM_main_add_notifier(NC_OBJECT | ND_MODIFIER, object);
-}
-
static char *rna_Sculpt_path(const PointerRNA *UNUSED(ptr))
{
return BLI_strdup("tool_settings.sculpt");
@@ -848,18 +830,6 @@ static void rna_def_sculpt(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Sculpt_update")
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list