diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-17 09:54:40 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-05-17 09:54:40 +0300 |
commit | ba4d215139c09dd5f9012abdb4399e9e16920c3a (patch) | |
tree | 2e42e12a59a046100345ac9354a66e9a9946ea79 /source/blender/draw/modes/pose_mode.c | |
parent | 41cba97f47e71b77adb7db6d80bb13b8c10d2f7d (diff) |
T55090: Proxy bones were not selectable
- Implemented custom selection in pose mode overriding the rest. This
selection mode is only done for bone selection right now
Diffstat (limited to 'source/blender/draw/modes/pose_mode.c')
-rw-r--r-- | source/blender/draw/modes/pose_mode.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c index 084e9341d18..f138704cced 100644 --- a/source/blender/draw/modes/pose_mode.c +++ b/source/blender/draw/modes/pose_mode.c @@ -202,7 +202,7 @@ static void POSE_cache_populate(void *vedata, Object *ob) DRW_shgroup_armature_pose(ob, passes); } } - else if (ob->type == OB_MESH && POSE_is_bone_selection_overlay_active() && POSE_is_driven_by_active_armature(ob)) { + else if (ob->type == OB_MESH && !DRW_state_is_select() && POSE_is_bone_selection_overlay_active() && POSE_is_driven_by_active_armature(ob)) { struct Gwn_Batch *geom = DRW_cache_object_surface_get(ob); if (geom) { DRW_shgroup_call_object_add(stl->g_data->bone_selection_shgrp, geom, ob); @@ -244,6 +244,12 @@ static void POSE_draw_scene(void *vedata) const bool transparent_bones = (draw_ctx->v3d->overlay.arm_flag & V3D_OVERLAY_ARM_TRANSP_BONES) != 0; const bool bone_selection_overlay = POSE_is_bone_selection_overlay_active(); + if (DRW_state_is_select()) { + DRW_draw_pass(psl->bone_solid); + DRW_draw_pass(psl->bone_wire); + return; + } + if(bone_selection_overlay) { GPU_framebuffer_bind(dfbl->default_fb); DRW_draw_pass(psl->bone_selection); |