Blender  V2.93
Macros | Typedefs | Enumerations | Functions | Variables
GPU_batch.h File Reference
#include "BLI_utildefines.h"
#include "GPU_index_buffer.h"
#include "GPU_shader.h"
#include "GPU_vertex_buffer.h"

Go to the source code of this file.

Macros

#define GPU_BATCH_VBO_MAX_LEN   6
 
#define GPU_BATCH_INST_VBO_MAX_LEN   2
 
#define GPU_BATCH_VAO_STATIC_LEN   3
 
#define GPU_BATCH_VAO_DYN_ALLOC_COUNT   16
 
#define GPU_BATCH_OWNS_NONE   GPU_BATCH_INVALID
 
#define GPU_batch_create(prim, verts, elem)   GPU_batch_create_ex(prim, verts, elem, 0)
 
#define GPU_batch_init(batch, prim, verts, elem)   GPU_batch_init_ex(batch, prim, verts, elem, 0)
 
#define GPU_batch_vertbuf_add(batch, verts)   GPU_batch_vertbuf_add_ex(batch, verts, false)
 
#define GPU_batch_uniform_1i(batch, name, x)   GPU_shader_uniform_1i((batch)->shader, name, x);
 
#define GPU_batch_uniform_1b(batch, name, x)   GPU_shader_uniform_1b((batch)->shader, name, x);
 
#define GPU_batch_uniform_1f(batch, name, x)   GPU_shader_uniform_1f((batch)->shader, name, x);
 
#define GPU_batch_uniform_2f(batch, name, x, y)   GPU_shader_uniform_2f((batch)->shader, name, x, y);
 
#define GPU_batch_uniform_3f(batch, name, x, y, z)    GPU_shader_uniform_3f((batch)->shader, name, x, y, z);
 
#define GPU_batch_uniform_4f(batch, name, x, y, z, w)    GPU_shader_uniform_4f((batch)->shader, name, x, y, z, w);
 
#define GPU_batch_uniform_2fv(batch, name, val)   GPU_shader_uniform_2fv((batch)->shader, name, val);
 
#define GPU_batch_uniform_3fv(batch, name, val)   GPU_shader_uniform_3fv((batch)->shader, name, val);
 
#define GPU_batch_uniform_4fv(batch, name, val)   GPU_shader_uniform_4fv((batch)->shader, name, val);
 
#define GPU_batch_uniform_2fv_array(batch, name, len, val)    GPU_shader_uniform_2fv_array((batch)->shader, name, len, val);
 
#define GPU_batch_uniform_4fv_array(batch, name, len, val)    GPU_shader_uniform_4fv_array((batch)->shader, name, len, val);
 
#define GPU_batch_uniform_mat4(batch, name, val)    GPU_shader_uniform_mat4((batch)->shader, name, val);
 
#define GPU_batch_texture_bind(batch, name, tex)    GPU_texture_bind(tex, GPU_shader_get_texture_binding((batch)->shader, name));
 
#define GPU_BATCH_DISCARD_SAFE(batch)
 
#define GPU_BATCH_CLEAR_SAFE(batch)
 
#define GPU_BATCH_DISCARD_ARRAY_SAFE(_batch_array, _len)
 

Typedefs

typedef enum eGPUBatchFlag eGPUBatchFlag
 

Enumerations

enum  eGPUBatchFlag {
  GPU_BATCH_INVALID = 0 , GPU_BATCH_OWNS_VBO = (1 << 0) , GPU_BATCH_OWNS_VBO_MAX = (GPU_BATCH_OWNS_VBO << (GPU_BATCH_VBO_MAX_LEN - 1)) , GPU_BATCH_OWNS_VBO_ANY = ((GPU_BATCH_OWNS_VBO << GPU_BATCH_VBO_MAX_LEN) - 1) ,
  GPU_BATCH_OWNS_INST_VBO = (GPU_BATCH_OWNS_VBO_MAX << 1) , GPU_BATCH_OWNS_INST_VBO_MAX = (GPU_BATCH_OWNS_INST_VBO << (GPU_BATCH_INST_VBO_MAX_LEN - 1)) , GPU_BATCH_OWNS_INST_VBO_ANY , GPU_BATCH_OWNS_INDEX = (GPU_BATCH_OWNS_INST_VBO_MAX << 1) ,
  GPU_BATCH_INIT = (1 << 16) , GPU_BATCH_BUILDING = (1 << 16) , GPU_BATCH_DIRTY = (1 << 17)
}
 

Functions

 BLI_STATIC_ASSERT (GPU_BATCH_OWNS_INDEX< GPU_BATCH_INIT, "eGPUBatchFlag: Error: status flags are shadowed by the ownership bits!") typedef struct GPUBatch
 
GPUBatchGPU_batch_calloc (void)
 
GPUBatchGPU_batch_create_ex (GPUPrimType prim, GPUVertBuf *vert, GPUIndexBuf *elem, eGPUBatchFlag owns_flag)
 
void GPU_batch_init_ex (GPUBatch *batch, GPUPrimType prim, GPUVertBuf *vert, GPUIndexBuf *elem, eGPUBatchFlag owns_flag)
 
void GPU_batch_copy (GPUBatch *batch_dst, GPUBatch *batch_src)
 
void GPU_batch_clear (GPUBatch *)
 
void GPU_batch_discard (GPUBatch *)
 
void GPU_batch_instbuf_set (GPUBatch *, GPUVertBuf *, bool own_vbo)
 
void GPU_batch_elembuf_set (GPUBatch *batch, GPUIndexBuf *elem, bool own_ibo)
 
int GPU_batch_instbuf_add_ex (GPUBatch *, GPUVertBuf *, bool own_vbo)
 
int GPU_batch_vertbuf_add_ex (GPUBatch *, GPUVertBuf *, bool own_vbo)
 
void GPU_batch_set_shader (GPUBatch *batch, GPUShader *shader)
 
void GPU_batch_program_set_imm_shader (GPUBatch *batch)
 
void GPU_batch_program_set_builtin (GPUBatch *batch, eGPUBuiltinShader shader_id)
 
void GPU_batch_program_set_builtin_with_config (GPUBatch *batch, eGPUBuiltinShader shader_id, eGPUShaderConfig sh_cfg)
 
void GPU_batch_draw (GPUBatch *batch)
 
void GPU_batch_draw_range (GPUBatch *batch, int v_first, int v_count)
 
void GPU_batch_draw_instanced (GPUBatch *batch, int i_count)
 
void GPU_batch_draw_advanced (GPUBatch *, int v_first, int v_count, int i_first, int i_count)
 
void gpu_batch_init (void)
 
void gpu_batch_exit (void)
 

Variables

 GPUBatch
 

Detailed Description

GPU geometry batch Contains VAOs + VBOs + Shader representing a drawable entity.

Definition in file GPU_batch.h.

Macro Definition Documentation

◆ GPU_BATCH_CLEAR_SAFE

#define GPU_BATCH_CLEAR_SAFE (   batch)
Value:
do { \
if (batch != NULL) { \
GPU_batch_clear(batch); \
memset(batch, 0, sizeof(*(batch))); \
} \
} while (0)
GPUBatch * batch
Definition: drawnode.c:3779

Definition at line 207 of file GPU_batch.h.

◆ GPU_batch_create

#define GPU_batch_create (   prim,
  verts,
  elem 
)    GPU_batch_create_ex(prim, verts, elem, 0)

Definition at line 107 of file GPU_batch.h.

◆ GPU_BATCH_DISCARD_ARRAY_SAFE

#define GPU_BATCH_DISCARD_ARRAY_SAFE (   _batch_array,
  _len 
)
Value:
do { \
if (_batch_array != NULL) { \
BLI_assert(_len > 0); \
for (int _i = 0; _i < _len; _i++) { \
GPU_BATCH_DISCARD_SAFE(_batch_array[_i]); \
} \
MEM_freeN(_batch_array); \
} \
} while (0)

Definition at line 215 of file GPU_batch.h.

◆ GPU_BATCH_DISCARD_SAFE

#define GPU_BATCH_DISCARD_SAFE (   batch)
Value:
do { \
if (batch != NULL) { \
GPU_batch_discard(batch); \
batch = NULL; \
} \
} while (0)

Definition at line 199 of file GPU_batch.h.

◆ GPU_batch_init

#define GPU_batch_init (   batch,
  prim,
  verts,
  elem 
)    GPU_batch_init_ex(batch, prim, verts, elem, 0)

Definition at line 108 of file GPU_batch.h.

◆ GPU_BATCH_INST_VBO_MAX_LEN

#define GPU_BATCH_INST_VBO_MAX_LEN   2

Definition at line 36 of file GPU_batch.h.

◆ GPU_BATCH_OWNS_NONE

#define GPU_BATCH_OWNS_NONE   GPU_BATCH_INVALID

Definition at line 64 of file GPU_batch.h.

◆ GPU_batch_texture_bind

#define GPU_batch_texture_bind (   batch,
  name,
  tex 
)     GPU_texture_bind(tex, GPU_shader_get_texture_binding((batch)->shader, name));

Definition at line 149 of file GPU_batch.h.

◆ GPU_batch_uniform_1b

#define GPU_batch_uniform_1b (   batch,
  name,
  x 
)    GPU_shader_uniform_1b((batch)->shader, name, x);

Definition at line 133 of file GPU_batch.h.

◆ GPU_batch_uniform_1f

#define GPU_batch_uniform_1f (   batch,
  name,
  x 
)    GPU_shader_uniform_1f((batch)->shader, name, x);

Definition at line 134 of file GPU_batch.h.

◆ GPU_batch_uniform_1i

#define GPU_batch_uniform_1i (   batch,
  name,
  x 
)    GPU_shader_uniform_1i((batch)->shader, name, x);

Definition at line 132 of file GPU_batch.h.

◆ GPU_batch_uniform_2f

#define GPU_batch_uniform_2f (   batch,
  name,
  x,
  y 
)    GPU_shader_uniform_2f((batch)->shader, name, x, y);

Definition at line 135 of file GPU_batch.h.

◆ GPU_batch_uniform_2fv

#define GPU_batch_uniform_2fv (   batch,
  name,
  val 
)    GPU_shader_uniform_2fv((batch)->shader, name, val);

Definition at line 140 of file GPU_batch.h.

◆ GPU_batch_uniform_2fv_array

#define GPU_batch_uniform_2fv_array (   batch,
  name,
  len,
  val 
)     GPU_shader_uniform_2fv_array((batch)->shader, name, len, val);

Definition at line 143 of file GPU_batch.h.

◆ GPU_batch_uniform_3f

#define GPU_batch_uniform_3f (   batch,
  name,
  x,
  y,
  z 
)     GPU_shader_uniform_3f((batch)->shader, name, x, y, z);

Definition at line 136 of file GPU_batch.h.

◆ GPU_batch_uniform_3fv

#define GPU_batch_uniform_3fv (   batch,
  name,
  val 
)    GPU_shader_uniform_3fv((batch)->shader, name, val);

Definition at line 141 of file GPU_batch.h.

◆ GPU_batch_uniform_4f

#define GPU_batch_uniform_4f (   batch,
  name,
  x,
  y,
  z,
  w 
)     GPU_shader_uniform_4f((batch)->shader, name, x, y, z, w);

Definition at line 138 of file GPU_batch.h.

◆ GPU_batch_uniform_4fv

#define GPU_batch_uniform_4fv (   batch,
  name,
  val 
)    GPU_shader_uniform_4fv((batch)->shader, name, val);

Definition at line 142 of file GPU_batch.h.

◆ GPU_batch_uniform_4fv_array

#define GPU_batch_uniform_4fv_array (   batch,
  name,
  len,
  val 
)     GPU_shader_uniform_4fv_array((batch)->shader, name, len, val);

Definition at line 145 of file GPU_batch.h.

◆ GPU_batch_uniform_mat4

#define GPU_batch_uniform_mat4 (   batch,
  name,
  val 
)     GPU_shader_uniform_mat4((batch)->shader, name, val);

Definition at line 147 of file GPU_batch.h.

◆ GPU_BATCH_VAO_DYN_ALLOC_COUNT

#define GPU_BATCH_VAO_DYN_ALLOC_COUNT   16

Definition at line 38 of file GPU_batch.h.

◆ GPU_BATCH_VAO_STATIC_LEN

#define GPU_BATCH_VAO_STATIC_LEN   3

Definition at line 37 of file GPU_batch.h.

◆ GPU_BATCH_VBO_MAX_LEN

#define GPU_BATCH_VBO_MAX_LEN   6

Definition at line 35 of file GPU_batch.h.

◆ GPU_batch_vertbuf_add

#define GPU_batch_vertbuf_add (   batch,
  verts 
)    GPU_batch_vertbuf_add_ex(batch, verts, false)

Definition at line 121 of file GPU_batch.h.

Typedef Documentation

◆ eGPUBatchFlag

Enumeration Type Documentation

◆ eGPUBatchFlag

Enumerator
GPU_BATCH_INVALID 

Invalid default state.

GPU_BATCH_OWNS_VBO 

GPUVertBuf ownership. (One bit per vbo)

GPU_BATCH_OWNS_VBO_MAX 
GPU_BATCH_OWNS_VBO_ANY 
GPU_BATCH_OWNS_INST_VBO 

Instance GPUVertBuf ownership. (One bit per vbo)

GPU_BATCH_OWNS_INST_VBO_MAX 
GPU_BATCH_OWNS_INST_VBO_ANY 
GPU_BATCH_OWNS_INDEX 

GPUIndexBuf ownership.

GPU_BATCH_INIT 

Has been initialized. At least one VBO is set.

GPU_BATCH_BUILDING 

Batch is initialized but its VBOs are still being populated. (optional)

GPU_BATCH_DIRTY 

Cached data need to be rebuild. (VAO, PSO, ...)

Definition at line 40 of file GPU_batch.h.

Function Documentation

◆ BLI_STATIC_ASSERT()

BLI_STATIC_ASSERT ( )

IMPORTANT: Do not allocate manually as the real struct is bigger (i.e: GLBatch). This is only the common and "public" part of the struct. Use the provided allocator. TODO(fclem): Make the content of this struct hidden and expose getters/setters.

verts[0] is required, others can be NULL

Instance attributes.

NULL if element list not needed

Bookkeeping.

Type of geometry to draw.

Current assigned shader. DEPRECATED. Here only for uniform binding.

Definition at line 66 of file GPU_batch.h.

References GPU_BATCH_INST_VBO_MAX_LEN, GPU_BATCH_VBO_MAX_LEN, GPUBatch, shader(), and verts.

◆ GPU_batch_calloc()

GPUBatch* GPU_batch_calloc ( void  )

◆ GPU_batch_clear()

void GPU_batch_clear ( GPUBatch batch)

◆ GPU_batch_copy()

void GPU_batch_copy ( GPUBatch batch_dst,
GPUBatch batch_src 
)

◆ GPU_batch_create_ex()

GPUBatch* GPU_batch_create_ex ( GPUPrimType  prim,
GPUVertBuf vert,
GPUIndexBuf elem,
eGPUBatchFlag  owns_flag 
)

Definition at line 60 of file gpu_batch.cc.

References batch, GPU_batch_calloc(), GPU_batch_init_ex(), GPUBatch, and verts.

Referenced by batch_screen_edges_get(), batch_sphere_wire(), blf_batch_draw_init(), draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_seq_fcurve_overlay(), DRW_cache_bone_arrows_get(), DRW_cache_bone_box_get(), DRW_cache_bone_box_wire_get(), DRW_cache_bone_dof_lines_get(), DRW_cache_bone_dof_sphere_get(), DRW_cache_bone_envelope_outline_get(), DRW_cache_bone_envelope_solid_get(), DRW_cache_bone_octahedral_get(), DRW_cache_bone_octahedral_wire_get(), DRW_cache_bone_point_get(), DRW_cache_bone_point_wire_outline_get(), DRW_cache_bone_stick_get(), DRW_cache_camera_distances_get(), DRW_cache_camera_frame_get(), DRW_cache_camera_tria_get(), DRW_cache_camera_tria_wire_get(), DRW_cache_camera_volume_get(), DRW_cache_camera_volume_wire_get(), DRW_cache_circle_get(), DRW_cache_cube_get(), DRW_cache_cursor_get(), DRW_cache_empty_capsule_body_get(), DRW_cache_empty_capsule_cap_get(), DRW_cache_empty_cone_get(), DRW_cache_empty_cube_get(), DRW_cache_empty_cylinder_get(), DRW_cache_empty_sphere_get(), DRW_cache_field_cone_limit_get(), DRW_cache_field_curve_get(), DRW_cache_field_force_get(), DRW_cache_field_sphere_limit_get(), DRW_cache_field_tube_limit_get(), DRW_cache_field_vortex_get(), DRW_cache_field_wind_get(), DRW_cache_fullscreen_quad_get(), DRW_cache_gpencil_face_wireframe_get(), DRW_cache_grid_get(), DRW_cache_groundline_get(), DRW_cache_light_area_disk_lines_get(), DRW_cache_light_area_square_lines_get(), DRW_cache_light_point_lines_get(), DRW_cache_light_spot_lines_get(), DRW_cache_light_spot_volume_get(), DRW_cache_light_sun_lines_get(), DRW_cache_lightprobe_cube_get(), DRW_cache_lightprobe_grid_get(), DRW_cache_lightprobe_planar_get(), DRW_cache_normal_arrow_get(), DRW_cache_particles_get_prim(), DRW_cache_plain_axes_get(), drw_cache_procedural_lines_get(), drw_cache_procedural_points_get(), drw_cache_procedural_triangles_get(), DRW_cache_quad_get(), DRW_cache_quad_wires_get(), DRW_cache_single_arrow_get(), DRW_cache_speaker_get(), DRW_cache_sphere_get(), DRW_gpencil_dummy_buffer_get(), DRW_metaball_batch_cache_get_triangles_with_normals(), DRW_metaball_batch_cache_get_wireframes_face(), drw_volume_selection_surface_cb(), drw_volume_wireframe_cb(), gpencil_sbuffer_stroke_ensure(), gpu_batch_preset_panel_drag_widget(), GPU_batch_preset_quad(), gpu_batch_sphere(), GPU_batch_tris_from_poly_2d_encoded(), GPU_batch_wire_from_poly_2d_encoded(), gpu_viewport_batch_create(), hair_batch_cache_ensure_procedural_indices(), immBeginBatch(), knifetool_draw(), lattice_batch_cache_create_overlay_batches(), nodelink_batch_init(), particle_batch_cache_ensure_procedural_indices(), stitch_draw_vbo(), ui_batch_roundbox_shadow_get(), ui_batch_roundbox_widget_get(), waveform_draw_one(), and wm_gizmo_geometryinfo_draw().

◆ GPU_batch_discard()

void GPU_batch_discard ( GPUBatch batch)

◆ GPU_batch_draw()

void GPU_batch_draw ( GPUBatch batch)

◆ GPU_batch_draw_advanced()

void GPU_batch_draw_advanced ( GPUBatch gpu_batch,
int  v_first,
int  v_count,
int  i_first,
int  i_count 
)

◆ GPU_batch_draw_instanced()

void GPU_batch_draw_instanced ( GPUBatch batch,
int  i_count 
)

◆ GPU_batch_draw_range()

void GPU_batch_draw_range ( GPUBatch batch,
int  v_first,
int  v_count 
)

Definition at line 240 of file gpu_batch.cc.

References batch, GPU_batch_draw_advanced(), and GPU_shader_bind().

Referenced by knifetool_draw().

◆ GPU_batch_elembuf_set()

void GPU_batch_elembuf_set ( GPUBatch batch,
GPUIndexBuf elem,
bool  own_ibo 
)

◆ gpu_batch_exit()

void gpu_batch_exit ( void  )

Definition at line 323 of file gpu_batch.cc.

References gpu_batch_presets_exit().

Referenced by GPU_exit().

◆ gpu_batch_init()

void gpu_batch_init ( void  )

Definition at line 318 of file gpu_batch.cc.

References gpu_batch_presets_init().

Referenced by GPU_init().

◆ GPU_batch_init_ex()

void GPU_batch_init_ex ( GPUBatch batch,
GPUPrimType  prim,
GPUVertBuf vert,
GPUIndexBuf elem,
eGPUBatchFlag  owns_flag 
)

◆ GPU_batch_instbuf_add_ex()

int GPU_batch_instbuf_add_ex ( GPUBatch batch,
GPUVertBuf insts,
bool  own_vbo 
)

◆ GPU_batch_instbuf_set()

void GPU_batch_instbuf_set ( GPUBatch batch,
GPUVertBuf inst,
bool  own_vbo 
)

◆ GPU_batch_program_set_builtin()

void GPU_batch_program_set_builtin ( GPUBatch batch,
eGPUBuiltinShader  shader_id 
)

◆ GPU_batch_program_set_builtin_with_config()

void GPU_batch_program_set_builtin_with_config ( GPUBatch batch,
eGPUBuiltinShader  shader_id,
eGPUShaderConfig  sh_cfg 
)

◆ GPU_batch_program_set_imm_shader()

void GPU_batch_program_set_imm_shader ( GPUBatch batch)

Definition at line 307 of file gpu_batch.cc.

References batch, GPU_batch_set_shader(), and immGetShader().

Referenced by gpu_viewport_draw_colormanaged().

◆ GPU_batch_set_shader()

void GPU_batch_set_shader ( GPUBatch batch,
GPUShader shader 
)

◆ GPU_batch_vertbuf_add_ex()

int GPU_batch_vertbuf_add_ex ( GPUBatch batch,
GPUVertBuf verts,
bool  own_vbo 
)

Variable Documentation

◆ GPUBatch

GPUBatch

Definition at line 93 of file GPU_batch.h.

Referenced by basic_cache_populate(), batch_screen_edges_get(), BLI_STATIC_ASSERT(), curve_batch_cache_clear(), curve_draw_stroke_3d(), draw_cache_view_batch(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), draw_select_id_edit_mesh(), draw_select_id_mesh(), draw_seq_fcurve_overlay(), draw_widgetbase_batch(), drawscredge_area_draw(), DRW_cache_bone_box_wire_get(), DRW_cache_bone_octahedral_wire_get(), DRW_cache_cursor_get(), DRW_curve_batch_cache_create_requested(), drw_debug_draw_spheres(), DRW_draw_cursor(), DRW_draw_cursor_2d(), DRW_draw_depth_object(), DRW_instance_buffer_finish(), DRW_instance_data_list_create(), DRW_shape_cache_free(), drw_shgroup_bone_custom_solid(), drw_shgroup_bone_custom_wire(), DRW_shgroup_call_buffer(), DRW_shgroup_call_buffer_instance(), DRW_shgroup_call_instances_with_attrs(), DRW_shgroup_call_procedural_lines(), DRW_shgroup_call_procedural_points(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_hair_create_sub(), DRW_temp_batch_instance_request(), DRW_temp_batch_request(), DRW_transform_none(), ED_draw_object_facemap(), ED_screen_draw_edges(), edit_text_cache_populate_cursor(), edit_text_cache_populate_select(), eevee_create_bloom_pass(), EEVEE_cryptomatte_cache_populate(), EEVEE_effects_cache_init(), EEVEE_lightbake_cache_init(), eevee_lookdev_hdri_preview_init(), EEVEE_materials_cache_populate(), EEVEE_motion_blur_cache_finish(), EEVEE_motion_blur_cache_populate(), external_cache_populate(), gpencil_dummy_buffer_get(), gpencil_sbuffer_stroke_ensure(), gpencil_stroke_cache_populate(), GPU_batch_calloc(), GPU_batch_create_ex(), gpu_batch_presets_exit(), gpu_viewport_draw_colormanaged(), icon_draw_cache_texture_flush_ex(), icon_draw_texture(), image_cache_image_add(), knifetool_draw(), mesh_batch_cache_clear(), node_draw_link_bezier(), OVERLAY_background_cache_init(), OVERLAY_edit_curve_cache_populate(), OVERLAY_edit_gpencil_cache_populate(), OVERLAY_edit_lattice_cache_populate(), overlay_edit_mesh_add_ob_to_pass(), OVERLAY_edit_mesh_cache_populate(), OVERLAY_edit_particle_cache_populate(), OVERLAY_edit_surf_cache_populate(), OVERLAY_edit_text_cache_populate(), OVERLAY_edit_uv_cache_init(), overlay_edit_uv_cache_populate(), OVERLAY_facing_cache_populate(), OVERLAY_fade_cache_populate(), OVERLAY_grid_cache_init(), OVERLAY_lattice_cache_populate(), OVERLAY_outline_cache_populate(), OVERLAY_outline_volume(), OVERLAY_paint_texture_cache_populate(), OVERLAY_paint_vertex_cache_populate(), OVERLAY_particle_cache_populate(), OVERLAY_pose_cache_populate(), OVERLAY_sculpt_cache_populate(), OVERLAY_volume_cache_populate(), OVERLAY_wireframe_cache_populate(), panel_draw_aligned_widgets(), pointcloud_batch_cache_init(), pygpu_batch__tp_new(), sculpt_draw_cb(), select_cache_populate(), stitch_draw_vbo(), ui_draw_but_UNITVEC(), ui_draw_dropshadow(), UI_draw_roundbox_4fv_ex(), UI_widgetbase_draw_cache_flush(), waveform_draw_one(), wireframe_hair_cache_populate(), wm_draw_region_blend(), wm_gizmo_geometryinfo_draw(), workbench_cache_common_populate(), workbench_cache_texpaint_populate(), and workbench_shadow_cache_populate().