86 if (use_select_next) {
248 if (hit_result.depth < depth_min) {
250 depth_min = hit_result.depth;
251 hit_result_near = &hit_result;
254 return hit_result_near;
264 if (hit_result.id != select_id) {
265 if (index_dst != index_src) {
266 hit_results[index_dst] = hit_result;
292 int last_px_id = src_x * (
y + dst_y - 1) + (
x + dst_x - 1);
293 memset(&r_buf[last_px_id + 1], 0, (src_x * src_y - (last_px_id + 1)) *
sizeof(*r_buf));
295 if (last_px_id < 0) {
301 int last_px_written = dst_x * dst_y - 1;
302 const int skip = src_x - dst_x;
305 for (
int i = dst_x;
i--;) {
306 r_buf[last_px_id--] = r_buf[last_px_written--];
308 if (last_px_written < 0) {
312 memset(&r_buf[last_px_id + 1], 0, skip *
sizeof(*r_buf));
314 memset(r_buf, 0, (last_px_id + 1) *
sizeof(*r_buf));
#define BLI_assert_unreachable()
BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
@ GPU_SELECT_NEAREST_SECOND_PASS
@ GPU_SELECT_PICK_NEAREST
const GPUSelectResult * GPU_select_buffer_near(const blender::Span< GPUSelectResult > hit_results)
static GPUSelectState g_select_state
void GPU_select_cache_end()
void GPU_select_begin(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode, int oldhits)
bool GPU_select_is_cached()
bool GPU_select_load_id(uint id)
void GPU_select_begin_next(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode, int oldhits)
static void gpu_select_begin_ex(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode, int oldhits, bool use_select_next)
void GPU_select_cache_load_id()
uint GPU_select_buffer_remove_by_id(blender::MutableSpan< GPUSelectResult > hit_results, uint select_id)
void GPU_select_cache_begin()
void GPU_select_buffer_stride_realign(const rcti *src, const rcti *dst, uint *r_buf)
void gpu_select_next_begin(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode)
uint gpu_select_next_end()
bool gpu_select_pick_load_id(uint id, bool end)
void gpu_select_pick_begin(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode)
uint gpu_select_pick_end()
void gpu_select_pick_cache_begin()
bool gpu_select_pick_is_cached()
void gpu_select_pick_cache_load_id()
void gpu_select_pick_cache_end()
bool gpu_select_query_load_id(uint id)
void gpu_select_query_begin(GPUSelectBuffer *buffer, const rcti *input, GPUSelectMode mode, int oldhits)
uint gpu_select_query_end()
bool use_cache_needs_init