From e922dd7d8a307c54d49bc01649a12610b022192b Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Tue, 24 Nov 2020 17:32:40 +0100 Subject: Viewport: cannot select object by clicking on its instances Selecting an object by clicking on its instances only worked, when the object itself is visible. However, it is possible to hide the object and still keep the instances visible. The solution is to give every object the correct `select_id` in the depsgraph object iterator right before rendering. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D9640 --- source/blender/draw/engines/overlay/overlay_extra.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'source/blender/draw/engines/overlay/overlay_extra.c') diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c index 4ca7ee42f8d..39f17581e0d 100644 --- a/source/blender/draw/engines/overlay/overlay_extra.c +++ b/source/blender/draw/engines/overlay/overlay_extra.c @@ -871,7 +871,6 @@ static void camera_view3d_reconstruction(OVERLAY_ExtraCallBuffers *cb, { const DRWContextState *draw_ctx = DRW_context_state_get(); const bool is_select = DRW_state_is_select(); - const Object *orig_camera_object = DEG_get_original_object(camera_object); MovieClip *clip = BKE_object_movieclip_get(scene, ob, false); if (clip == NULL) { @@ -945,7 +944,7 @@ static void camera_view3d_reconstruction(OVERLAY_ExtraCallBuffers *cb, } if (is_select) { - DRW_select_load_id(orig_camera_object->runtime.select_id | (track_index << 16)); + DRW_select_load_id(camera_object->runtime.select_id | (track_index << 16)); track_index++; } -- cgit v1.2.3