diff --git a/source/blender/editors/space_view3d/view3d_select.cc b/source/blender/editors/space_view3d/view3d_select.cc index b8ed7d3abc1..ec1c1247d1a 100644 --- a/source/blender/editors/space_view3d/view3d_select.cc +++ b/source/blender/editors/space_view3d/view3d_select.cc @@ -2072,7 +2072,7 @@ static int selectbuffer_ret_hits_5(blender::MutableSpan hit_res * Populate a select buffer with objects and bones, if there are any. * Checks three selection levels and compare. * - * \param do_nearest_xray_if_supported: When set, read in hits that don't stop + * \param do_nearest_xray: When set, read in hits that don't stop * at the nearest surface. The hits must still be ordered by depth. * Needed so we can step to the next, non-active object when it's already selected, see: #76445. */ @@ -2081,7 +2081,7 @@ static int mixed_bones_object_selectbuffer(const ViewContext *vc, const int mval[2], eV3DSelectObjectFilter select_filter, bool do_nearest, - bool do_nearest_xray_if_supported, + bool do_nearest_xray, const bool do_material_slot_selection) { rcti rect; @@ -2091,10 +2091,8 @@ static int mixed_bones_object_selectbuffer(const ViewContext *vc, eV3DSelectMode select_mode = (do_nearest ? VIEW3D_SELECT_PICK_NEAREST : VIEW3D_SELECT_PICK_ALL); int hits = 0; - if (do_nearest_xray_if_supported) { - if ((U.gpu_flag & USER_GPU_FLAG_NO_DEPT_PICK) == 0) { - select_mode = VIEW3D_SELECT_PICK_ALL; - } + if (do_nearest_xray) { + select_mode = VIEW3D_SELECT_PICK_ALL; } /* we _must_ end cache before return, use 'goto finally' */ diff --git a/source/blender/editors/space_view3d/view3d_view.cc b/source/blender/editors/space_view3d/view3d_view.cc index a3d0818e3b5..589e71c16d3 100644 --- a/source/blender/editors/space_view3d/view3d_view.cc +++ b/source/blender/editors/space_view3d/view3d_view.cc @@ -498,10 +498,6 @@ static bool drw_select_loop_pass(eDRWSelectStage stage, void *user_data) /* quirk of GPU_select_end, only take hits value from first call. */ data->hits = hits; } - if (data->gpu_select_mode == GPU_SELECT_NEAREST_FIRST_PASS) { - data->gpu_select_mode = GPU_SELECT_NEAREST_SECOND_PASS; - continue_pass = (hits > 0); - } data->pass += 1; } else { @@ -558,13 +554,10 @@ int view3d_opengl_select_ex(const ViewContext *vc, BKE_view_layer_synced_ensure(scene, vc->view_layer); const bool use_obedit_skip = (BKE_view_layer_edit_object_get(vc->view_layer) != nullptr) && (vc->obedit == nullptr); - const bool is_pick_select = (U.gpu_flag & USER_GPU_FLAG_NO_DEPT_PICK) == 0; - const bool do_passes = ((is_pick_select == false) && - (select_mode == VIEW3D_SELECT_PICK_NEAREST)); - const bool use_nearest = (is_pick_select && select_mode == VIEW3D_SELECT_PICK_NEAREST); + const bool use_nearest = select_mode == VIEW3D_SELECT_PICK_NEAREST; bool draw_surface = true; - eGPUSelectMode gpu_select_mode; + eGPUSelectMode gpu_select_mode = GPU_SELECT_INVALID; /* case not a box select */ if (input->xmin == input->xmax) { @@ -576,24 +569,14 @@ int view3d_opengl_select_ex(const ViewContext *vc, rect = *input; } - if (is_pick_select) { - if (select_mode == VIEW3D_SELECT_PICK_NEAREST) { - gpu_select_mode = GPU_SELECT_PICK_NEAREST; - } - else if (select_mode == VIEW3D_SELECT_PICK_ALL) { - gpu_select_mode = GPU_SELECT_PICK_ALL; - } - else { - gpu_select_mode = GPU_SELECT_ALL; - } + if (select_mode == VIEW3D_SELECT_PICK_NEAREST) { + gpu_select_mode = GPU_SELECT_PICK_NEAREST; + } + else if (select_mode == VIEW3D_SELECT_PICK_ALL) { + gpu_select_mode = GPU_SELECT_PICK_ALL; } else { - if (do_passes) { - gpu_select_mode = GPU_SELECT_NEAREST_FIRST_PASS; - } - else { - gpu_select_mode = GPU_SELECT_ALL; - } + gpu_select_mode = GPU_SELECT_ALL; } /* Important to use 'vc->obact', not 'BKE_view_layer_active_object_get(vc->view_layer)' below, diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index bff8caf5aba..84bb21da51a 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -1322,7 +1322,7 @@ typedef enum eUserpref_UI_Flag2 { /** #UserDef.gpu_flag */ typedef enum eUserpref_GPU_Flag { - USER_GPU_FLAG_NO_DEPT_PICK = (1 << 0), + USER_GPU_FLAG_NO_DEPT_PICK = (1 << 0), /* Unused. To be removed. */ USER_GPU_FLAG_NO_EDIT_MODE_SMOOTH_WIRE = (1 << 1), USER_GPU_FLAG_OVERLAY_SMOOTH_WIRE = (1 << 2), USER_GPU_FLAG_SUBDIVISION_EVALUATION = (1 << 3),