[Bf-blender-cvs] [eb46b55e569] blender-v2.83-release: Fix T75613: "In Front" setting did not override image empty "Depth"

Vincent Blankfield noreply at git.blender.org
Wed Apr 15 18:50:01 CEST 2020


Commit: eb46b55e569fdb23d89cd779df6575adcc2fec2e
Author: Vincent Blankfield
Date:   Wed Apr 15 18:49:32 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rBeb46b55e569fdb23d89cd779df6575adcc2fec2e

Fix T75613: "In Front" setting did not override image empty "Depth"

Differential Revision: https://developer.blender.org/D7418

Reviewers: campbellbarton, brecht

===================================================================

M	release/scripts/startup/bl_ui/properties_data_empty.py
M	source/blender/draw/engines/overlay/overlay_image.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/properties_data_empty.py b/release/scripts/startup/bl_ui/properties_data_empty.py
index 88fdaae0433..898ab2e4359 100644
--- a/release/scripts/startup/bl_ui/properties_data_empty.py
+++ b/release/scripts/startup/bl_ui/properties_data_empty.py
@@ -49,7 +49,9 @@ class DATA_PT_empty(DataButtonsPanel, Panel):
             col.prop(ob, "empty_image_offset", text="Y", index=1)
 
             col = layout.column()
-            col.row().prop(ob, "empty_image_depth", text="Depth", expand=True)
+            depth_row = col.row()
+            depth_row.enabled = not ob.show_in_front
+            depth_row.prop(ob, "empty_image_depth", text="Depth", expand=True)
             col.row().prop(ob, "empty_image_side", text="Side", expand=True)
             col.prop(ob, "show_empty_image_orthographic", text="Display Orthographic")
             col.prop(ob, "show_empty_image_perspective", text="Display Perspective")
diff --git a/source/blender/draw/engines/overlay/overlay_image.c b/source/blender/draw/engines/overlay/overlay_image.c
index 45d218b4959..c67b3179fa2 100644
--- a/source/blender/draw/engines/overlay/overlay_image.c
+++ b/source/blender/draw/engines/overlay/overlay_image.c
@@ -395,16 +395,22 @@ void OVERLAY_image_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
   /* Use the actual depth if we are doing depth tests to determine the distance to the object */
   char depth_mode = DRW_state_is_depth() ? OB_EMPTY_IMAGE_DEPTH_DEFAULT : ob->empty_image_depth;
   DRWPass *pass = NULL;
-  switch (depth_mode) {
-    case OB_EMPTY_IMAGE_DEPTH_DEFAULT:
-      pass = (use_alpha_blend) ? psl->image_empties_blend_ps : psl->image_empties_ps;
-      break;
-    case OB_EMPTY_IMAGE_DEPTH_BACK:
-      pass = psl->image_empties_back_ps;
-      break;
-    case OB_EMPTY_IMAGE_DEPTH_FRONT:
-      pass = psl->image_empties_front_ps;
-      break;
+  if ((ob->dtx & OB_DRAWXRAY) != 0) {
+    /* Object In Front overrides image empty depth mode. */
+    pass = psl->image_empties_front_ps;
+  }
+  else {
+    switch (depth_mode) {
+      case OB_EMPTY_IMAGE_DEPTH_DEFAULT:
+        pass = (use_alpha_blend) ? psl->image_empties_blend_ps : psl->image_empties_ps;
+        break;
+      case OB_EMPTY_IMAGE_DEPTH_BACK:
+        pass = psl->image_empties_back_ps;
+        break;
+      case OB_EMPTY_IMAGE_DEPTH_FRONT:
+        pass = psl->image_empties_front_ps;
+        break;
+    }
   }
 
   if (show_frame) {



More information about the Bf-blender-cvs mailing list