From 93bfc19ef92d7e2e339e475df6e3e426d07ad652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Foucault?= Date: Sat, 23 Nov 2024 02:45:23 +0100 Subject: [PATCH] Cleanup: Overlay-Next: Use convenience function for overlay flags --- .../engines/overlay/overlay_next_armature.hh | 2 +- .../overlay/overlay_next_attribute_viewer.hh | 3 +- .../engines/overlay/overlay_next_camera.hh | 2 +- .../engines/overlay/overlay_next_empty.hh | 2 +- .../engines/overlay/overlay_next_facing.hh | 4 +- .../draw/engines/overlay/overlay_next_fade.hh | 3 +- .../engines/overlay/overlay_next_instance.cc | 2 +- .../engines/overlay/overlay_next_lattice.hh | 2 +- .../engines/overlay/overlay_next_light.hh | 4 +- .../overlay/overlay_next_lightprobe.hh | 2 +- .../overlay/overlay_next_motion_path.hh | 3 +- .../engines/overlay/overlay_next_origin.hh | 3 +- .../engines/overlay/overlay_next_private.hh | 57 +++++++++++++++++++ .../engines/overlay/overlay_next_sculpt.hh | 11 ++-- .../engines/overlay/overlay_next_speaker.hh | 2 +- .../engines/overlay/overlay_next_wireframe.hh | 2 +- 16 files changed, 77 insertions(+), 27 deletions(-) diff --git a/source/blender/draw/engines/overlay/overlay_next_armature.hh b/source/blender/draw/engines/overlay/overlay_next_armature.hh index b72159eee26..cabda5190be 100644 --- a/source/blender/draw/engines/overlay/overlay_next_armature.hh +++ b/source/blender/draw/engines/overlay/overlay_next_armature.hh @@ -133,7 +133,7 @@ class Armatures { void begin_sync(Resources &res, const State &state) { - enabled_ = state.is_space_v3d() && !(state.overlay.flag & V3D_OVERLAY_HIDE_BONES); + enabled_ = state.is_space_v3d() && state.show_bones(); if (!enabled_) { return; diff --git a/source/blender/draw/engines/overlay/overlay_next_attribute_viewer.hh b/source/blender/draw/engines/overlay/overlay_next_attribute_viewer.hh index 426b9088eb2..dd9cf4b526b 100644 --- a/source/blender/draw/engines/overlay/overlay_next_attribute_viewer.hh +++ b/source/blender/draw/engines/overlay/overlay_next_attribute_viewer.hh @@ -34,8 +34,7 @@ class AttributeViewer { void begin_sync(Resources &res, const State &state) { ps_.init(); - enabled_ = state.is_space_v3d() && !res.is_selection() && - (state.overlay.flag & V3D_OVERLAY_VIEWER_ATTRIBUTE); + enabled_ = state.is_space_v3d() && !res.is_selection() && state.show_attribute_viewer(); if (!enabled_) { return; }; diff --git a/source/blender/draw/engines/overlay/overlay_next_camera.hh b/source/blender/draw/engines/overlay/overlay_next_camera.hh index ea173aa30c2..34761b61245 100644 --- a/source/blender/draw/engines/overlay/overlay_next_camera.hh +++ b/source/blender/draw/engines/overlay/overlay_next_camera.hh @@ -94,7 +94,7 @@ class Cameras { void begin_sync(Resources &res, State &state, View &view) { enabled_ = state.is_space_v3d(); - extras_enabled_ = enabled_ && !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + extras_enabled_ = enabled_ && state.show_extras(); motion_tracking_enabled_ = enabled_ && state.v3d->flag2 & V3D_SHOW_RECONSTRUCTION; images_enabled_ = enabled_ && !res.is_selection(); enabled_ = extras_enabled_ || images_enabled_ || motion_tracking_enabled_; diff --git a/source/blender/draw/engines/overlay/overlay_next_empty.hh b/source/blender/draw/engines/overlay/overlay_next_empty.hh index 1ecd50bf6e6..4d8001db5c9 100644 --- a/source/blender/draw/engines/overlay/overlay_next_empty.hh +++ b/source/blender/draw/engines/overlay/overlay_next_empty.hh @@ -55,7 +55,7 @@ class Empties { void begin_sync(Resources &res, const State &state, View &view) { - enabled_ = state.is_space_v3d() && !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + enabled_ = state.is_space_v3d() && state.show_extras(); if (!enabled_) { return; diff --git a/source/blender/draw/engines/overlay/overlay_next_facing.hh b/source/blender/draw/engines/overlay/overlay_next_facing.hh index 7ee1c2ddc1a..c8098fb0e85 100644 --- a/source/blender/draw/engines/overlay/overlay_next_facing.hh +++ b/source/blender/draw/engines/overlay/overlay_next_facing.hh @@ -28,8 +28,8 @@ class Facing { void begin_sync(Resources &res, const State &state) { - enabled_ = state.v3d && (state.overlay.flag & V3D_OVERLAY_FACE_ORIENTATION) && - !state.xray_enabled && !res.is_selection(); + enabled_ = state.v3d && state.show_face_orientation() && !state.xray_enabled && + !res.is_selection(); if (!enabled_) { /* Not used. But release the data. */ ps_.init(); diff --git a/source/blender/draw/engines/overlay/overlay_next_fade.hh b/source/blender/draw/engines/overlay/overlay_next_fade.hh index e94b59778f4..a018cbcf3c3 100644 --- a/source/blender/draw/engines/overlay/overlay_next_fade.hh +++ b/source/blender/draw/engines/overlay/overlay_next_fade.hh @@ -33,8 +33,7 @@ class Fade { void begin_sync(Resources &res, const State &state) { - const bool do_edit_mesh_fade_geom = !state.xray_enabled && - (state.overlay.flag & V3D_OVERLAY_FADE_INACTIVE); + const bool do_edit_mesh_fade_geom = !state.xray_enabled && state.show_fade_inactive(); enabled_ = state.is_space_v3d() && (do_edit_mesh_fade_geom || state.do_pose_fade_geom) && !res.is_selection(); diff --git a/source/blender/draw/engines/overlay/overlay_next_instance.cc b/source/blender/draw/engines/overlay/overlay_next_instance.cc index 24420e1324f..9492795501f 100644 --- a/source/blender/draw/engines/overlay/overlay_next_instance.cc +++ b/source/blender/draw/engines/overlay/overlay_next_instance.cc @@ -76,7 +76,7 @@ void Instance::init() state.overlay.wireframe_opacity = state.v3d->overlay.wireframe_opacity; } - state.do_pose_xray = (state.overlay.flag & V3D_OVERLAY_BONE_SELECT); + state.do_pose_xray = state.show_bone_selection(); state.do_pose_fade_geom = state.do_pose_xray && !(state.object_mode & OB_MODE_WEIGHT_PAINT) && ctx->object_pose != nullptr; } diff --git a/source/blender/draw/engines/overlay/overlay_next_lattice.hh b/source/blender/draw/engines/overlay/overlay_next_lattice.hh index 9a5163ebc31..d525b49d435 100644 --- a/source/blender/draw/engines/overlay/overlay_next_lattice.hh +++ b/source/blender/draw/engines/overlay/overlay_next_lattice.hh @@ -30,7 +30,7 @@ class Lattices { void begin_sync(Resources &res, const State &state) { enabled_ = state.is_space_v3d(); - enabled_ &= !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + enabled_ &= state.show_extras(); if (!enabled_) { return; } diff --git a/source/blender/draw/engines/overlay/overlay_next_light.hh b/source/blender/draw/engines/overlay/overlay_next_light.hh index e9a45c37668..3c9319b74b3 100644 --- a/source/blender/draw/engines/overlay/overlay_next_light.hh +++ b/source/blender/draw/engines/overlay/overlay_next_light.hh @@ -43,7 +43,7 @@ class Lights { void begin_sync(const State &state) { - enabled_ = state.is_space_v3d() && !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + enabled_ = state.is_space_v3d() && state.show_extras(); if (!enabled_) { return; } @@ -94,7 +94,7 @@ class Lights { call_buffers_.ground_line_buf.append(float4(matrix.location()), select_id); const float4 light_color = {la.r, la.g, la.b, 1.0f}; - const bool show_light_colors = state.overlay.flag & V3D_OVERLAY_SHOW_LIGHT_COLORS; + const bool show_light_colors = state.show_light_colors(); /* Draw the outer ring of the light icon and the sun rays in `light_color`, if required. */ call_buffers_.icon_outer_buf.append(data, select_id); diff --git a/source/blender/draw/engines/overlay/overlay_next_lightprobe.hh b/source/blender/draw/engines/overlay/overlay_next_lightprobe.hh index 0e55521e909..c28b444049a 100644 --- a/source/blender/draw/engines/overlay/overlay_next_lightprobe.hh +++ b/source/blender/draw/engines/overlay/overlay_next_lightprobe.hh @@ -46,7 +46,7 @@ class LightProbes { void begin_sync(Resources &res, const State &state) { - enabled_ = state.is_space_v3d() && !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + enabled_ = state.is_space_v3d() && state.show_extras(); if (!enabled_) { return; } diff --git a/source/blender/draw/engines/overlay/overlay_next_motion_path.hh b/source/blender/draw/engines/overlay/overlay_next_motion_path.hh index a2b6c81cf07..e467b01603c 100644 --- a/source/blender/draw/engines/overlay/overlay_next_motion_path.hh +++ b/source/blender/draw/engines/overlay/overlay_next_motion_path.hh @@ -32,8 +32,7 @@ class MotionPath { public: void begin_sync(Resources &res, const State &state) { - enabled_ = state.v3d && !(state.overlay.flag & V3D_OVERLAY_HIDE_MOTION_PATHS) && - !res.is_selection(); + enabled_ = state.v3d && state.show_motion_paths() && !res.is_selection(); if (!enabled_) { /* Not used. But release the data. */ motion_path_ps_.init(); diff --git a/source/blender/draw/engines/overlay/overlay_next_origin.hh b/source/blender/draw/engines/overlay/overlay_next_origin.hh index 1a06be7a0d9..d003d9bdd7f 100644 --- a/source/blender/draw/engines/overlay/overlay_next_origin.hh +++ b/source/blender/draw/engines/overlay/overlay_next_origin.hh @@ -28,8 +28,7 @@ class Origins { const bool is_paint_mode = (state.object_mode & (OB_MODE_ALL_PAINT | OB_MODE_ALL_PAINT_GPENCIL | OB_MODE_SCULPT_CURVES)) != 0; - enabled_ = state.is_space_v3d() && !is_paint_mode && - (state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_ORIGINS) == 0; + enabled_ = state.is_space_v3d() && !is_paint_mode && state.show_object_origins(); point_buf_.clear(); } diff --git a/source/blender/draw/engines/overlay/overlay_next_private.hh b/source/blender/draw/engines/overlay/overlay_next_private.hh index a565ede2325..5d9d3773fc0 100644 --- a/source/blender/draw/engines/overlay/overlay_next_private.hh +++ b/source/blender/draw/engines/overlay/overlay_next_private.hh @@ -115,6 +115,63 @@ struct State { { return this->space_type == SPACE_NODE; } + + bool show_extras() const + { + return (this->overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS) == 0; + } + bool show_face_orientation() const + { + return (this->overlay.flag & V3D_OVERLAY_FACE_ORIENTATION); + } + bool show_bone_selection() const + { + return (this->overlay.flag & V3D_OVERLAY_BONE_SELECT); + } + bool show_wireframes() const + { + return (this->overlay.flag & V3D_OVERLAY_WIREFRAMES); + } + bool show_motion_paths() const + { + return (this->overlay.flag & V3D_OVERLAY_HIDE_MOTION_PATHS) == 0; + } + bool show_bones() const + { + return (this->overlay.flag & V3D_OVERLAY_HIDE_BONES) == 0; + } + bool show_object_origins() const + { + return (this->overlay.flag & V3D_OVERLAY_HIDE_OBJECT_ORIGINS) == 0; + } + bool show_fade_inactive() const + { + return (this->overlay.flag & V3D_OVERLAY_FADE_INACTIVE); + } + bool show_attribute_viewer() const + { + return (this->overlay.flag & V3D_OVERLAY_VIEWER_ATTRIBUTE); + } + bool show_attribute_viewer_text() const + { + return (this->overlay.flag & V3D_OVERLAY_VIEWER_ATTRIBUTE_TEXT); + } + bool show_sculpt_mask() const + { + return (this->overlay.flag & V3D_OVERLAY_SCULPT_SHOW_MASK); + } + bool show_sculpt_face_sets() const + { + return (this->overlay.flag & V3D_OVERLAY_SCULPT_SHOW_FACE_SETS); + } + bool show_sculpt_curves_cage() const + { + return (this->overlay.flag & V3D_OVERLAY_SCULPT_CURVES_CAGE); + } + bool show_light_colors() const + { + return (this->overlay.flag & V3D_OVERLAY_SHOW_LIGHT_COLORS); + } }; static inline float4x4 winmat_polygon_offset(float4x4 winmat, float view_dist, float offset) diff --git a/source/blender/draw/engines/overlay/overlay_next_sculpt.hh b/source/blender/draw/engines/overlay/overlay_next_sculpt.hh index f516bd473a0..c71ec7ca01e 100644 --- a/source/blender/draw/engines/overlay/overlay_next_sculpt.hh +++ b/source/blender/draw/engines/overlay/overlay_next_sculpt.hh @@ -42,12 +42,13 @@ class Sculpts { void begin_sync(Resources &res, const State &state) { - const int sculpt_overlay_flags = V3D_OVERLAY_SCULPT_SHOW_FACE_SETS | - V3D_OVERLAY_SCULPT_SHOW_MASK | V3D_OVERLAY_SCULPT_CURVES_CAGE; + show_curves_cage_ = state.show_sculpt_curves_cage(); + show_face_set_ = state.show_sculpt_face_sets(); + show_mask_ = state.show_sculpt_mask(); enabled_ = state.is_space_v3d() && !state.xray_enabled && !res.is_selection() && ELEM(state.object_mode, OB_MODE_SCULPT_CURVES, OB_MODE_SCULPT) && - (state.overlay.flag & sculpt_overlay_flags); + (show_curves_cage_ || show_face_set_ || show_mask_); if (!enabled_) { /* Not used. But release the data. */ @@ -56,10 +57,6 @@ class Sculpts { return; } - show_curves_cage_ = state.overlay.flag & V3D_OVERLAY_SCULPT_CURVES_CAGE; - show_face_set_ = state.overlay.flag & V3D_OVERLAY_SCULPT_SHOW_FACE_SETS; - show_mask_ = state.overlay.flag & V3D_OVERLAY_SCULPT_SHOW_MASK; - float curve_cage_opacity = show_curves_cage_ ? state.overlay.sculpt_curves_cage_opacity : 0.0f; float face_set_opacity = show_face_set_ ? state.overlay.sculpt_mode_face_sets_opacity : 0.0f; float mask_opacity = show_mask_ ? state.overlay.sculpt_mode_mask_opacity : 0.0f; diff --git a/source/blender/draw/engines/overlay/overlay_next_speaker.hh b/source/blender/draw/engines/overlay/overlay_next_speaker.hh index 576ff3e4734..7a6bf9d6c8e 100644 --- a/source/blender/draw/engines/overlay/overlay_next_speaker.hh +++ b/source/blender/draw/engines/overlay/overlay_next_speaker.hh @@ -31,7 +31,7 @@ class Speakers { void begin_sync(const State &state) { - enabled_ = state.is_space_v3d() && !(state.overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS); + enabled_ = state.is_space_v3d() && state.show_extras(); if (!enabled_) { return; diff --git a/source/blender/draw/engines/overlay/overlay_next_wireframe.hh b/source/blender/draw/engines/overlay/overlay_next_wireframe.hh index 216236f8c73..7ec286f2a8b 100644 --- a/source/blender/draw/engines/overlay/overlay_next_wireframe.hh +++ b/source/blender/draw/engines/overlay/overlay_next_wireframe.hh @@ -45,7 +45,7 @@ class Wireframe { return; } - show_wire_ = state.is_wireframe_mode || (state.overlay.flag & V3D_OVERLAY_WIREFRAMES); + show_wire_ = state.is_wireframe_mode || state.show_wireframes(); const bool is_selection = res.is_selection(); const bool do_smooth_lines = (U.gpu_flag & USER_GPU_FLAG_OVERLAY_SMOOTH_WIRE) != 0;