diff options
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_armature.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_armature.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_armature.c b/source/blender/draw/engines/overlay/overlay_armature.c index 481dec340ba..7ccb5d5a753 100644 --- a/source/blender/draw/engines/overlay/overlay_armature.c +++ b/source/blender/draw/engines/overlay/overlay_armature.c @@ -228,11 +228,12 @@ void OVERLAY_armature_cache_init(OVERLAY_Data *vedata) { format = formats->instance_extra; - sh = OVERLAY_shader_armature_degrees_of_freedom(); + sh = OVERLAY_shader_armature_degrees_of_freedom_wire(); grp = DRW_shgroup_create(sh, armature_ps); DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); cb->dof_lines = BUF_INSTANCE(grp, format, DRW_cache_bone_dof_lines_get()); + sh = OVERLAY_shader_armature_degrees_of_freedom_solid(); grp = DRW_shgroup_create(sh, armature_transp_ps); DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo); cb->dof_sphere = BUF_INSTANCE(grp, format, DRW_cache_bone_dof_sphere_get()); @@ -2167,7 +2168,8 @@ static void armature_context_setup(ArmatureDrawContext *ctx, 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)) ? + ctx->const_wire = ((((ob->base_flag & BASE_SELECTED) && (pd->v3d_flag & V3D_SELECT_OUTLINE)) || + (arm->drawtype == ARM_WIRE)) ? 1.5f : ((!is_filled || is_transparent) ? 1.0f : 0.0f)); } |