Fix: Overlay-Next when multiple objects are click selected
Fixes Overlay-Next selection when multiple objects are hit. To reproduce: - enable "Ovlay Next" in Preferences>Experimental - create any Empty object and duplicate it without moving - try to select by clicking them Crash occurs because `mixed_bones_object_selectbuffer` in `view3d_select.cc` expects that `view3d_opengl_select_ex` will append results to `buffer`. Depending on situation after several `view3d_opengl_select_ex`calls with decreasing radius it tries to `slice` results from buffer: ```c has_bones9 = selectbuffer_has_bones(storage.as_span().slice(ofs, hits9)); ``` Pull Request: https://projects.blender.org/blender/blender/pulls/124154
This commit is contained in:
parent
80f0c613c0
commit
a412268980
@ -50,8 +50,10 @@ eGPUSelectMode gpu_select_next_get_mode()
|
||||
|
||||
void gpu_select_next_set_result(GPUSelectResult *hit_buf, uint hit_len)
|
||||
{
|
||||
g_state.buffer->storage.resize(hit_len);
|
||||
blender::MutableSpan<GPUSelectResult> hit_results = g_state.buffer->storage.as_mutable_span();
|
||||
const int old_size = g_state.buffer->storage.size();
|
||||
g_state.buffer->storage.resize(old_size + hit_len);
|
||||
blender::MutableSpan<GPUSelectResult> hit_results =
|
||||
g_state.buffer->storage.as_mutable_span().slice(old_size, hit_len);
|
||||
const blender::Span<GPUSelectResult> hits(hit_buf, hit_len);
|
||||
|
||||
/* TODO(fclem): There might be some conversion to do to align to the other APIs output. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user