Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <j.bakker@atmind.nl>2018-05-17 09:54:40 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-05-17 09:54:40 +0300
commitba4d215139c09dd5f9012abdb4399e9e16920c3a (patch)
tree2e42e12a59a046100345ac9354a66e9a9946ea79 /source/blender/draw/modes/pose_mode.c
parent41cba97f47e71b77adb7db6d80bb13b8c10d2f7d (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.c8
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);