From 44d5d1b0f3504b2e6bde685b373fab85589eb94f Mon Sep 17 00:00:00 2001 From: Miguel Pozo Date: Mon, 10 Feb 2025 10:48:59 +0100 Subject: [PATCH] Fix #133638: Overlay-Next: X-Ray + Overlays Alternative (cleaner) version of #134069. Pull Request: https://projects.blender.org/blender/blender/pulls/134243 --- .../blender/draw/engines/overlay/overlay_next_instance.cc | 2 +- source/blender/draw/engines/overlay/overlay_next_paint.hh | 6 ++++-- source/blender/draw/engines/overlay/overlay_next_sculpt.hh | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source/blender/draw/engines/overlay/overlay_next_instance.cc b/source/blender/draw/engines/overlay/overlay_next_instance.cc index c3ca034bb12..22e227d47cd 100644 --- a/source/blender/draw/engines/overlay/overlay_next_instance.cc +++ b/source/blender/draw/engines/overlay/overlay_next_instance.cc @@ -747,7 +747,7 @@ bool Instance::object_is_rendered_transparent(const Object *object, const State return false; } - if (state.xray_enabled) { + if (!state.is_solid()) { return true; } diff --git a/source/blender/draw/engines/overlay/overlay_next_paint.hh b/source/blender/draw/engines/overlay/overlay_next_paint.hh index 0a0fbf9bca7..22304706900 100644 --- a/source/blender/draw/engines/overlay/overlay_next_paint.hh +++ b/source/blender/draw/engines/overlay/overlay_next_paint.hh @@ -94,8 +94,10 @@ class Paints : Overlay { /* Support masked transparency in Workbench. * EEVEE can't be supported since depth won't match. */ const eDrawType shading_type = eDrawType(state.v3d->shading.type); - const bool masked_transparency_support = (shading_type <= OB_SOLID) || - BKE_scene_uses_blender_workbench(state.scene); + const bool masked_transparency_support = ((shading_type == OB_SOLID) || + (shading_type >= OB_SOLID && + BKE_scene_uses_blender_workbench(state.scene))) && + !state.xray_enabled; const bool shadeless = shading_type == OB_WIRE; const bool draw_contours = state.overlay.wpaint_flag & V3D_OVERLAY_WPAINT_CONTOURS; diff --git a/source/blender/draw/engines/overlay/overlay_next_sculpt.hh b/source/blender/draw/engines/overlay/overlay_next_sculpt.hh index fae0498e9e9..90c1c506f20 100644 --- a/source/blender/draw/engines/overlay/overlay_next_sculpt.hh +++ b/source/blender/draw/engines/overlay/overlay_next_sculpt.hh @@ -50,7 +50,7 @@ class Sculpts : Overlay { 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() && + enabled_ = state.is_space_v3d() && !state.is_wire() && !res.is_selection() && !state.is_depth_only_drawing && ELEM(state.object_mode, OB_MODE_SCULPT_CURVES, OB_MODE_SCULPT) && (show_curves_cage_ || show_face_set_ || show_mask_);