diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2020-10-01 19:11:51 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2020-10-02 18:05:03 +0300 |
commit | e3b49bb850018ae73088b8d4e7c195206f8b2f31 (patch) | |
tree | c82d7c13476cefd52df96c0a51688cb98aa521d6 | |
parent | 81573058698dfc4a9a171dffa61c1c8d5d42377b (diff) |
Fix T81200: Crash on certain armature select operators when OpenGL Depth
Picking is disabled
Affected were (at least)
- Select Linked pick
- Select Shortest Path
Was originally caused by rB8b347fc2cdc6 [which got improved in
rBfc8a7a44b200 - but only partially].
After removal of BONESEL_NOSEL we have to filter out -1 from the hits for
any bone picking it seems (since armature drawing uses this).
In rBfc8a7a44b200, this was done for 'ED_armature_edit_select_pick' (or
'get_nearest_editbonepoint' precisely), now do this for
'ed_armature_pick_bone_impl' as well.
Reviewers: campbellbarton
Maniphest Tasks: T81200
Differential Revision: https://developer.blender.org/D9080
-rw-r--r-- | source/blender/editors/armature/armature_select.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/editors/armature/armature_select.c b/source/blender/editors/armature/armature_select.c index 4c5efb304c9..09d54410e55 100644 --- a/source/blender/editors/armature/armature_select.c +++ b/source/blender/editors/armature/armature_select.c @@ -335,8 +335,16 @@ static void *ed_armature_pick_bone_impl( BLI_rcti_init_pt_radius(&rect, xy, 0); - hits = view3d_opengl_select( - &vc, buffer, MAXPICKBUF, &rect, VIEW3D_SELECT_PICK_NEAREST, VIEW3D_SELECT_FILTER_NOP); + /* Don't use hits with this ID, (armature drawing uses this). */ + const int select_id_ignore = -1; + + hits = view3d_opengl_select_with_id_filter(&vc, + buffer, + MAXPICKBUF, + &rect, + VIEW3D_SELECT_PICK_NEAREST, + VIEW3D_SELECT_FILTER_NOP, + select_id_ignore); *r_base = NULL; |