[Bf-blender-cvs] [824c2659382] master: Fix T72157: Overlay Hide Bone Relationship Lines

Jeroen Bakker noreply at git.blender.org
Wed Dec 4 15:19:31 CET 2019


Commit: 824c2659382b2c76c3e6ec53ca598647af104446
Author: Jeroen Bakker
Date:   Wed Dec 4 08:31:26 2019 +0100
Branches: master
https://developer.blender.org/rB824c2659382b2c76c3e6ec53ca598647af104446

Fix T72157: Overlay Hide Bone Relationship Lines

Bone relationship lines needs to be hidden in:

* object mode
* or when relationship lines are turned off

Reviewed By: fclem

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

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

M	source/blender/draw/engines/overlay/overlay_armature.c

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

diff --git a/source/blender/draw/engines/overlay/overlay_armature.c b/source/blender/draw/engines/overlay/overlay_armature.c
index a45397e9d81..23cdfdb89ad 100644
--- a/source/blender/draw/engines/overlay/overlay_armature.c
+++ b/source/blender/draw/engines/overlay/overlay_armature.c
@@ -147,9 +147,11 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata)
   OVERLAY_PrivateData *pd = vedata->stl->pd;
 
   const DRWContextState *draw_ctx = DRW_context_state_get();
+  const bool is_select_mode = DRW_state_is_select();
   pd->armature.transparent = (draw_ctx->v3d->shading.type == OB_WIRE) ||
                              XRAY_FLAG_ENABLED(draw_ctx->v3d);
-  pd->armature.show_relations = ((draw_ctx->v3d->flag & V3D_HIDE_HELPLINES) == 0);
+  pd->armature.show_relations = ((draw_ctx->v3d->flag & V3D_HIDE_HELPLINES) == 0) &&
+                                !is_select_mode;
   pd->armature.do_pose_fade_geom = (pd->overlay.flag & V3D_OVERLAY_BONE_SELECT) &&
                                    ((draw_ctx->object_mode & OB_MODE_WEIGHT_PAINT) == 0) &&
                                    draw_ctx->object_pose != NULL;
@@ -2159,6 +2161,7 @@ static void armature_context_setup(ArmatureDrawContext *ctx,
                                    OVERLAY_PrivateData *pd,
                                    Object *ob,
                                    const bool do_envelope_dist,
+                                   const bool is_edit_mode,
                                    const bool is_pose_mode,
                                    float *const_color)
 {
@@ -2203,6 +2206,8 @@ static void armature_context_setup(ArmatureDrawContext *ctx,
   ctx->custom_shapes_ghash = cb->custom_shapes_ghash;
   ctx->transparent = pd->armature.transparent;
   ctx->show_relations = pd->armature.show_relations;
+  ctx->do_relations = !DRW_state_is_select() && pd->armature.show_relations &&
+                      (is_edit_mode | is_pose_mode);
   ctx->const_color = DRW_state_is_select() ? select_const_color : const_color;
   ctx->const_wire = (((ob->base_flag & BASE_SELECTED) || (arm->drawtype == ARM_WIRE)) ?
                          1.5f :
@@ -2235,7 +2240,7 @@ void OVERLAY_edit_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
 {
   OVERLAY_PrivateData *pd = vedata->stl->pd;
   ArmatureDrawContext arm_ctx;
-  armature_context_setup(&arm_ctx, pd, ob, true, false, NULL);
+  armature_context_setup(&arm_ctx, pd, ob, true, true, false, NULL);
   draw_armature_edit(&arm_ctx);
 }
 
@@ -2243,7 +2248,7 @@ void OVERLAY_pose_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
 {
   OVERLAY_PrivateData *pd = vedata->stl->pd;
   ArmatureDrawContext arm_ctx;
-  armature_context_setup(&arm_ctx, pd, ob, true, true, NULL);
+  armature_context_setup(&arm_ctx, pd, ob, true, false, true, NULL);
   draw_armature_pose(&arm_ctx);
 }
 
@@ -2254,7 +2259,7 @@ void OVERLAY_armature_cache_populate(OVERLAY_Data *vedata, Object *ob)
   ArmatureDrawContext arm_ctx;
   float *color;
   DRW_object_wire_theme_get(ob, draw_ctx->view_layer, &color);
-  armature_context_setup(&arm_ctx, pd, ob, false, false, color);
+  armature_context_setup(&arm_ctx, pd, ob, false, false, false, color);
   draw_armature_pose(&arm_ctx);
 }



More information about the Bf-blender-cvs mailing list