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

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

Reviewers: campbellbarton, brecht
This commit is contained in:
Vincent Blankfield 2020-04-15 18:49:32 +02:00 committed by Jacques Lucke
parent f250b1f5a0
commit eb46b55e56
Notes: blender-bot 2023-02-14 08:10:06 +01:00
Referenced by issue #75613, In front setting not working at the Viewport Display (Multiple versions of Blender)
2 changed files with 19 additions and 11 deletions

View File

@ -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")

View File

@ -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) {