diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-28 14:00:40 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2019-05-28 16:09:57 +0300 |
commit | dee5c1aa409cb9d3f80f7b8422b073e67a469cfc (patch) | |
tree | c5ce182004300c810e24c02ba63ac3e49303186a | |
parent | 94370e23e975397e5656026f25d936221cf2f1ec (diff) |
MeshAnalysis: Disable when XRay is turned on
When XRay is turned on the mesh analysis did not draw correct. This
change won't draw the mesh analysis overlay when xray is turned on.
In terms of giving the user a visual feedback of this limitation we
render the overlay options inactive.
Reviewed By: brecht, fclem
Maniphest Tasks: T65225
Differential Revision: https://developer.blender.org/D4965
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 14 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_forward.c | 2 | ||||
-rw-r--r-- | source/blender/draw/modes/edit_mesh_mode.c | 2 |
3 files changed, 14 insertions, 4 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index b79d5bf7aa2..fdf9570763a 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -5557,6 +5557,7 @@ class VIEW3D_PT_overlay_edit_mesh_shading(Panel): layout = self.layout view = context.space_data + shading = view.shading overlay = view.overlay tool_settings = context.tool_settings display_all = overlay.show_overlays @@ -5574,12 +5575,21 @@ class VIEW3D_PT_overlay_edit_mesh_shading(Panel): sub = row.row() sub.prop(tool_settings, "vertex_group_user", expand=True) - col.prop(overlay, "show_statvis", text="Mesh Analysis") + if shading.type == 'WIREFRAME': + xray = shading.show_xray_wireframe and shading.xray_alpha_wireframe < 1.0 + elif shading.type == 'SOLID': + xray = shading.show_xray and shading.xray_alpha < 1.0 + else: + xray = False + statvis_active = not xray + row = col.row() + row.active = statvis_active + row.prop(overlay, "show_statvis", text="Mesh Analysis") if overlay.show_statvis: col = col.column() + col.active = statvis_active sub = col.split() - sub.active = overlay.show_statvis sub.label(text="Type") sub.prop(statvis, "type", text="") diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c index 5f15fb3f19e..6b1982151cf 100644 --- a/source/blender/draw/engines/workbench/workbench_forward.c +++ b/source/blender/draw/engines/workbench/workbench_forward.c @@ -431,7 +431,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata) noise_offset = fmodf(noise_offset + 1.0f / 8.0f, 1.0f); } - if (XRAY_FLAG_ENABLED(wpd)) { + if (XRAY_ENABLED(wpd)) { blend_threshold = 1.0f - XRAY_ALPHA(wpd) * 0.9f; } diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c index 081590bb003..afe735ec7f5 100644 --- a/source/blender/draw/modes/edit_mesh_mode.c +++ b/source/blender/draw/modes/edit_mesh_mode.c @@ -701,7 +701,7 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob) DRW_shgroup_call(g_data->fweights_shgrp, geom, ob->obmat); } - if (do_show_mesh_analysis) { + if (do_show_mesh_analysis && !XRAY_ACTIVE(v3d)) { Mesh *me = (Mesh *)ob->data; BMEditMesh *embm = me->edit_mesh; const bool is_original = embm->mesh_eval_final && |