Blender  V3.3
GPU_select.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2014 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
10 #include "BLI_sys_types.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 struct rcti;
17 
19 typedef enum eGPUSelectMode {
21  /* gpu_select_query */
24  /* gpu_select_pick */
28 
32 typedef struct GPUSelectResult {
34  unsigned int id;
42  unsigned int depth;
44 
49  unsigned int buffer_len,
50  const struct rcti *input,
51  eGPUSelectMode mode,
52  int oldhits);
61 bool GPU_select_load_id(unsigned int id);
68 unsigned int GPU_select_end(void);
69 
70 /* Cache selection region. */
71 
72 bool GPU_select_is_cached(void);
73 void GPU_select_cache_begin(void);
74 void GPU_select_cache_load_id(void);
75 void GPU_select_cache_end(void);
76 
77 /* Utilities. */
78 
90 void GPU_select_buffer_stride_realign(const struct rcti *src, const struct rcti *dst, uint *r_buf);
91 
92 #ifdef __cplusplus
93 }
94 #endif
unsigned int uint
Definition: BLI_sys_types.h:67
void GPU_select_finalize(void)
uint GPU_select_buffer_remove_by_id(GPUSelectResult *buffer, int hits, uint select_id)
Definition: gpu_select.c:221
void GPU_select_begin(GPUSelectResult *buffer, unsigned int buffer_len, const struct rcti *input, eGPUSelectMode mode, int oldhits)
eGPUSelectMode
Definition: GPU_select.h:19
@ GPU_SELECT_NEAREST_SECOND_PASS
Definition: GPU_select.h:23
@ GPU_SELECT_NEAREST_FIRST_PASS
Definition: GPU_select.h:22
@ GPU_SELECT_PICK_ALL
Definition: GPU_select.h:25
@ GPU_SELECT_ALL
Definition: GPU_select.h:20
@ GPU_SELECT_PICK_NEAREST
Definition: GPU_select.h:26
const GPUSelectResult * GPU_select_buffer_near(const GPUSelectResult *buffer, int hits)
Definition: gpu_select.c:206
void GPU_select_cache_begin(void)
Definition: gpu_select.c:165
bool GPU_select_load_id(unsigned int id)
Definition: gpu_select.c:117
bool GPU_select_is_cached(void)
Definition: gpu_select.c:195
void GPU_select_cache_load_id(void)
Definition: gpu_select.c:176
void GPU_select_buffer_stride_realign(const struct rcti *src, const struct rcti *dst, uint *r_buf)
void GPU_select_cache_end(void)
Definition: gpu_select.c:184
unsigned int GPU_select_end(void)
Definition: gpu_select.c:135
struct GPUSelectResult GPUSelectResult
SyclQueue void void * src
ccl_global float * buffer
ccl_global KernelShaderEvalInput * input
unsigned int id
Definition: GPU_select.h:34
unsigned int depth
Definition: GPU_select.h:42