Blender V4.3
GPU_vertex_buffer.hh File Reference
#include "BLI_span.hh"
#include "BLI_utildefines.h"
#include "GPU_vertex_format.hh"

Go to the source code of this file.

Classes

class  blender::gpu::VertBuf
 
struct  GPUVertBufRaw
 

Namespaces

namespace  blender
 
namespace  blender::gpu
 

Macros

#define GPU_vertbuf_create_with_format(format)    GPU_vertbuf_create_with_format_ex(format, GPU_USAGE_STATIC)
 
#define GPU_vertbuf_init_with_format(verts, format)    GPU_vertbuf_init_with_format_ex(verts, format, GPU_USAGE_STATIC)
 
#define GPU_VERTBUF_DISCARD_SAFE(verts)
 

Enumerations

enum  GPUVertBufStatus { GPU_VERTBUF_INVALID = 0 , GPU_VERTBUF_INIT = (1 << 0) , GPU_VERTBUF_DATA_DIRTY = (1 << 1) , GPU_VERTBUF_DATA_UPLOADED = (1 << 2) }
 
enum  GPUUsageType {
  GPU_USAGE_STREAM = 0 , GPU_USAGE_STATIC = 1 , GPU_USAGE_DYNAMIC = 2 , GPU_USAGE_DEVICE_ONLY = 3 ,
  GPU_USAGE_FLAG_BUFFER_TEXTURE_ONLY = 1 << 3
}
 

Functions

 ENUM_OPERATORS (GPUUsageType, GPU_USAGE_FLAG_BUFFER_TEXTURE_ONLY)
 
blender::gpu::VertBufGPU_vertbuf_calloc ()
 
blender::gpu::VertBufGPU_vertbuf_create_with_format_ex (const GPUVertFormat &format, GPUUsageType usage)
 
void GPU_vertbuf_read (const blender::gpu::VertBuf *verts, void *data)
 
void GPU_vertbuf_clear (blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_discard (blender::gpu::VertBuf *)
 
void GPU_vertbuf_handle_ref_add (blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_handle_ref_remove (blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_init_with_format_ex (blender::gpu::VertBuf &verts, const GPUVertFormat &format, GPUUsageType)
 
void GPU_vertbuf_init_build_on_device (blender::gpu::VertBuf &verts, const GPUVertFormat &format, uint v_len)
 
blender::gpu::VertBufGPU_vertbuf_duplicate (blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_data_alloc (blender::gpu::VertBuf &verts, uint v_len)
 
void GPU_vertbuf_data_resize (blender::gpu::VertBuf &verts, uint v_len)
 
void GPU_vertbuf_data_len_set (blender::gpu::VertBuf &verts, uint v_len)
 
void GPU_vertbuf_attr_set (blender::gpu::VertBuf *, uint a_idx, uint v_idx, const void *data)
 
void GPU_vertbuf_vert_set (blender::gpu::VertBuf *verts, uint v_idx, const void *data)
 
void GPU_vertbuf_attr_fill (blender::gpu::VertBuf *, uint a_idx, const void *data)
 
void GPU_vertbuf_attr_fill_stride (blender::gpu::VertBuf *, uint a_idx, uint stride, const void *data)
 
GPU_INLINE void * GPU_vertbuf_raw_step (GPUVertBufRaw *a)
 
GPU_INLINE uint GPU_vertbuf_raw_used (const GPUVertBufRaw *a)
 
void GPU_vertbuf_attr_get_raw_data (blender::gpu::VertBuf *, uint a_idx, GPUVertBufRaw *access)
 
const GPUVertFormatGPU_vertbuf_get_format (const blender::gpu::VertBuf *verts)
 
uint GPU_vertbuf_get_vertex_alloc (const blender::gpu::VertBuf *verts)
 
uint GPU_vertbuf_get_vertex_len (const blender::gpu::VertBuf *verts)
 
GPUVertBufStatus GPU_vertbuf_get_status (const blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_tag_dirty (blender::gpu::VertBuf *verts)
 
void GPU_vertbuf_use (blender::gpu::VertBuf *)
 
void GPU_vertbuf_bind_as_ssbo (blender::gpu::VertBuf *verts, int binding)
 
void GPU_vertbuf_bind_as_texture (blender::gpu::VertBuf *verts, int binding)
 
void GPU_vertbuf_wrap_handle (blender::gpu::VertBuf *verts, uint64_t handle)
 
void GPU_vertbuf_update_sub (blender::gpu::VertBuf *verts, uint start, uint len, const void *data)
 
uint GPU_vertbuf_get_memory_usage ()
 

Detailed Description

GPU vertex buffer

Definition in file GPU_vertex_buffer.hh.

Macro Definition Documentation

◆ GPU_vertbuf_create_with_format

#define GPU_vertbuf_create_with_format ( format)     GPU_vertbuf_create_with_format_ex(format, GPU_USAGE_STATIC)

Definition at line 164 of file GPU_vertex_buffer.hh.

Referenced by batch_screen_edges_get(), batch_sphere_wire(), blf_batch_draw_init(), blender::draw::calc_final_indices(), circle_draw_rgb(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), blender::render::hydra::DrawTexture::DrawTexture(), DRW_cache_bone_arrows_get(), DRW_cache_bone_box_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_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_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_grid_get(), DRW_cache_groundline_get(), DRW_cache_light_area_disk_lines_get(), DRW_cache_light_area_square_lines_get(), DRW_cache_light_icon_inner_lines_get(), DRW_cache_light_icon_outer_lines_get(), DRW_cache_light_icon_sun_rays_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_triangle_strips_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(), blender::draw::drw_volume_selection_surface_cb(), blender::draw::drw_volume_wireframe_cb(), blender::draw::pbvh::ensure_vbos_allocated_bmesh(), blender::draw::pbvh::ensure_vbos_allocated_grids(), blender::draw::pbvh::ensure_vbos_allocated_mesh(), 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(), blender::gpu::tests::gpu_shader_lib_test(), gpu_viewport_batch_create(), immBeginBatch(), knifetool_draw(), blender::draw::lattice_batch_cache_create_overlay_batches(), blender::draw::lattice_batch_cache_get_pos(), mpath_vbo_get(), blender::draw::particle_batch_cache_ensure_edit_inner_pos(), blender::draw::particle_batch_cache_ensure_edit_pos_and_seg(), blender::draw::particle_batch_cache_ensure_edit_tip_pos(), blender::draw::particle_batch_cache_ensure_pos(), blender::draw::particle_batch_cache_ensure_pos_and_seg(), blender::draw::particle_batch_cache_ensure_procedural_indices(), pygpu_vertbuf__tp_new(), sphere_wire_vbo(), stitch_draw(), blender::gpu::tests::test_framebuffer_multi_viewport(), blender::gpu::tests::test_framebuffer_subpass_input(), blender::gpu::tests::test_storage_buffer_copy_from_vertex_buffer(), ui_batch_roundbox_shadow_get(), ui_batch_roundbox_widget_get(), blender::gpu::tests::ShaderSpecializationConst::validate(), blender::draw::overlay::vbo_from_vector(), blender::draw::overlay::vbo_from_vector(), blender::draw::overlay::vbo_from_vector(), blender::gpu::tests::vertex_buffer_fetch_mode(), waveform_draw_one(), waveform_draw_rgb(), wm_gizmo_geometryinfo_draw(), and wm_xr_controller_model_batch_create().

◆ GPU_VERTBUF_DISCARD_SAFE

#define GPU_VERTBUF_DISCARD_SAFE ( verts)
Value:
do { \
if (verts != nullptr) { \
GPU_vertbuf_discard(verts); \
verts = nullptr; \
} \
} while (0)
static float verts[][3]

Definition at line 290 of file GPU_vertex_buffer.hh.

Referenced by animviz_calc_motionpaths(), animviz_free_motionpath_cache(), blender::draw::clear_edit_data(), blender::draw::clear_eval_data(), blender::draw::clear_final_data(), blender::draw::curve_batch_cache_clear(), blender::draw::discard_attributes(), blender::draw::draw_patch_map_free(), blender::draw::draw_subdiv_cache_free(), blender::draw::draw_subdiv_cache_free_material_data(), blender::draw::draw_subdiv_extract_pos_nor(), blender::draw::draw_subdiv_free_edit_mode_cache(), blender::draw::DRW_cache_gpencil_sbuffer_clear(), blender::draw::DRW_curve_batch_cache_dirty_tag(), blender::draw::DRW_curves_free(), DRW_hair_free(), blender::draw::DRW_mesh_batch_cache_create_requested(), blender::draw::DRW_mesh_batch_cache_dirty_tag(), blender::draw::DRW_particles_batch_cache_get_edit_strands(), blender::draw::DRW_pointcloud_free(), DRW_temp_buffer_request(), blender::draw::ensure_attributes(), blender::draw::ensure_control_point_attribute(), blender::draw::ensure_final_attribute(), blender::draw::pbvh::free_vbos(), blender::draw::gpencil_batch_cache_clear(), GPU_batch_clear(), blender::draw::grease_pencil_batch_cache_clear(), blender::draw::lattice_batch_cache_clear(), blender::draw::mesh_batch_cache_check_vertex_group(), blender::draw::mesh_batch_cache_discard_shaded_tri(), blender::draw::mesh_batch_cache_discard_uvedit(), blender::draw::mesh_batch_cache_discard_uvedit_select(), blender::draw::mesh_buffer_list_clear(), motionpaths_calc_bake_targets(), blender::draw::particle_batch_cache_clear(), blender::draw::particle_batch_cache_clear_hair(), blender::draw::particle_batch_cache_clear_point(), blender::draw::particle_batch_cache_ensure_edit_pos_and_seg(), blender::draw::particle_batch_cache_ensure_pos(), blender::draw::particle_batch_cache_ensure_pos_and_seg(), blender::draw::pointcloud_batch_cache_clear(), blender::draw::pointcloud_discard_attributes(), blender::draw::pointcloud_surface_shaded_get(), temp_buffer_handle_free(), and blender::draw::volume_batch_cache_clear().

◆ GPU_vertbuf_init_with_format

#define GPU_vertbuf_init_with_format ( verts,
format )    GPU_vertbuf_init_with_format_ex(verts, format, GPU_USAGE_STATIC)

Definition at line 190 of file GPU_vertex_buffer.hh.

Referenced by blender::draw::build_poly_other_map_vbo(), blender::draw::create_edit_points_position_and_data(), blender::draw::create_edit_points_position_vbo(), blender::draw::create_edit_points_selection(), blender::draw::curve_create_attribute(), blender::draw::curve_create_curves_pos(), blender::draw::curve_create_edit_curves_nor(), blender::draw::curve_create_edit_data_and_handles(), blender::draw::DRW_vertbuf_create_wiredata(), blender::draw::extract_attr_viewer(), blender::draw::extract_edge_factor(), blender::draw::extract_edit_data(), blender::draw::extract_edit_data_subdiv(), blender::draw::extract_edituv_data(), blender::draw::extract_edituv_data_subdiv(), blender::draw::extract_edituv_stretch_angle(), blender::draw::extract_edituv_stretch_area(), blender::draw::extract_edituv_stretch_area_subdiv(), blender::draw::extract_face_dot_normals(), blender::draw::extract_face_dots_edituv_data(), blender::draw::extract_face_dots_position(), blender::draw::extract_face_dots_uv(), blender::draw::extract_lines_loose_geom_subdiv(), blender::draw::extract_mesh_analysis(), blender::draw::extract_normals(), blender::draw::extract_orco(), blender::draw::extract_positions(), blender::draw::extract_positions_subdiv(), blender::draw::extract_sculpt_data(), blender::draw::extract_sculpt_data_subdiv(), blender::draw::extract_skin_roots(), blender::draw::extract_tangents(), blender::draw::extract_uv_maps(), blender::draw::extract_vert_normals(), blender::draw::extract_weights(), blender::draw::gpu_vertbuf_create_from_format(), blender::draw::init_vbo_data(), and blender::draw::init_vbo_for_attribute().

Enumeration Type Documentation

◆ GPUUsageType

How to create a #VertBuf: 1) verts = GPU_vertbuf_calloc() 2) GPU_vertformat_attr_add(verts->format, ...) 3) GPU_vertbuf_data_alloc(verts, vertex_len) <– finalizes/packs vertex format 4) GPU_vertbuf_attr_fill(verts, pos, application_pos_buffer)

Enumerator
GPU_USAGE_STREAM 
GPU_USAGE_STATIC 
GPU_USAGE_DYNAMIC 
GPU_USAGE_DEVICE_ONLY 
GPU_USAGE_FLAG_BUFFER_TEXTURE_ONLY 

Extended usage flags.

Definition at line 39 of file GPU_vertex_buffer.hh.

◆ GPUVertBufStatus

Enumerator
GPU_VERTBUF_INVALID 

Initial state.

GPU_VERTBUF_INIT 

Was init with a vertex format.

GPU_VERTBUF_DATA_DIRTY 

Data has been touched and need to be re-uploaded.

GPU_VERTBUF_DATA_UPLOADED 

The buffer has been created inside GPU memory.

Definition at line 18 of file GPU_vertex_buffer.hh.

Function Documentation

◆ ENUM_OPERATORS()

◆ GPU_vertbuf_attr_fill()

◆ GPU_vertbuf_attr_fill_stride()

void GPU_vertbuf_attr_fill_stride ( blender::gpu::VertBuf * verts,
uint a_idx,
uint stride,
const void * data )

◆ GPU_vertbuf_attr_get_raw_data()

◆ GPU_vertbuf_attr_set()

void GPU_vertbuf_attr_set ( blender::gpu::VertBuf * verts,
uint a_idx,
uint v_idx,
const void * data )

◆ GPU_vertbuf_bind_as_ssbo()

◆ GPU_vertbuf_bind_as_texture()

void GPU_vertbuf_bind_as_texture ( blender::gpu::VertBuf * verts,
int binding )

◆ GPU_vertbuf_calloc()

◆ GPU_vertbuf_clear()

void GPU_vertbuf_clear ( blender::gpu::VertBuf * verts)

Same as discard but does not free.

Definition at line 164 of file gpu_vertex_buffer.cc.

References verts.

◆ GPU_vertbuf_create_with_format_ex()

◆ GPU_vertbuf_data_alloc()

void GPU_vertbuf_data_alloc ( blender::gpu::VertBuf & verts,
uint v_len )

Create a new allocation, discarding any existing data.

Definition at line 187 of file gpu_vertex_buffer.cc.

References verts.

Referenced by blender::draw::alloc_final_attribute_vbo(), blender::draw::alloc_final_points_vbo(), batch_screen_edges_get(), batch_sphere_wire(), blf_batch_draw_init(), blender::draw::build_poly_other_map_vbo(), blender::draw::calc_final_indices(), circle_draw_rgb(), blender::draw::create_curve_offsets_vbos(), blender::draw::create_edit_points_position_and_data(), blender::draw::create_edit_points_position_vbo(), blender::draw::create_edit_points_selection(), blender::draw::create_points_position_time_vbo(), blender::draw::curve_create_attribute(), blender::draw::curve_create_curves_pos(), blender::draw::curve_create_edit_curves_nor(), blender::draw::curve_create_edit_data_and_handles(), draw_line_bounds(), draw_line_loop(), draw_line_pairs(), blender::draw::draw_subdiv_cache_update_extra_coarse_face_data(), blender::draw::draw_subdiv_init_origindex_buffer(), blender::draw::draw_subdiv_topology_info_cb(), blender::render::hydra::DrawTexture::DrawTexture(), DRW_cache_bone_arrows_get(), DRW_cache_bone_box_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_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_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_grid_get(), DRW_cache_groundline_get(), DRW_cache_light_area_disk_lines_get(), DRW_cache_light_area_square_lines_get(), DRW_cache_light_icon_inner_lines_get(), DRW_cache_light_icon_outer_lines_get(), DRW_cache_light_icon_sun_rays_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_triangle_strips_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(), blender::draw::drw_curves_ensure_dummy_vbo(), DRW_gpencil_dummy_buffer_get(), drw_hair_ensure_vbo(), blender::draw::DRW_pointcloud_init(), DRW_temp_buffer_request(), blender::draw::DRW_vertbuf_create_wiredata(), blender::draw::drw_volume_selection_surface_cb(), blender::draw::drw_volume_wireframe_cb(), blender::draw::ensure_control_point_attribute(), blender::draw::pbvh::ensure_vbos_allocated_bmesh(), blender::draw::pbvh::ensure_vbos_allocated_grids(), blender::draw::pbvh::ensure_vbos_allocated_mesh(), blender::draw::extract_attr_viewer(), blender::draw::extract_attributes_subdiv(), blender::draw::extract_edge_factor(), blender::draw::extract_edit_data(), blender::draw::extract_edit_data_subdiv(), blender::draw::extract_edituv_data(), blender::draw::extract_edituv_data_subdiv(), blender::draw::extract_edituv_stretch_angle(), blender::draw::extract_edituv_stretch_area(), blender::draw::extract_edituv_stretch_area_subdiv(), blender::draw::extract_face_dot_normals(), blender::draw::extract_face_dots_edituv_data(), blender::draw::extract_face_dots_position(), blender::draw::extract_face_dots_uv(), blender::draw::extract_lines_loose_geom_subdiv(), blender::draw::extract_mesh_analysis(), blender::draw::extract_normals(), blender::draw::extract_orco(), blender::draw::extract_positions(), blender::draw::extract_positions_subdiv(), blender::draw::extract_sculpt_data(), blender::draw::extract_sculpt_data_subdiv(), blender::draw::extract_skin_roots(), blender::draw::extract_tangents(), blender::draw::extract_tangents_subdiv(), blender::draw::extract_uv_maps(), blender::draw::extract_vert_normals(), blender::draw::extract_weights(), blender::gpu::MTLContext::get_dummy_texture(), 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(), blender::gpu::tests::gpu_shader_lib_test(), blender::draw::gpu_vertbuf_create_from_format(), GPU_vertbuf_init_build_on_device(), gpu_viewport_batch_create(), blender::draw::grease_pencil_edit_batch_ensure(), blender::draw::grease_pencil_geom_batch_ensure(), blender::draw::grease_pencil_weight_batch_ensure(), immBeginBatch(), blender::draw::init_vbo_data(), blender::draw::init_vbo_for_attribute(), knifetool_draw(), blender::draw::lattice_batch_cache_create_overlay_batches(), blender::draw::lattice_batch_cache_get_pos(), mpath_vbo_get(), blender::ed::space_node::nodelink_batch_init(), blender::draw::particle_batch_cache_ensure_edit_inner_pos(), blender::draw::particle_batch_cache_ensure_edit_pos_and_seg(), blender::draw::particle_batch_cache_ensure_edit_tip_pos(), blender::draw::particle_batch_cache_ensure_pos(), blender::draw::particle_batch_cache_ensure_pos_and_seg(), blender::draw::particle_batch_cache_ensure_procedural_final_points(), blender::draw::particle_batch_cache_ensure_procedural_indices(), blender::draw::particle_batch_cache_ensure_procedural_pos(), blender::draw::particle_batch_cache_ensure_procedural_strand_data(), blender::draw::pointcloud_extract_attribute(), blender::draw::pointcloud_extract_position_and_radius(), pygpu_vertbuf__tp_new(), SeqQuadsBatch::SeqQuadsBatch(), sphere_wire_vbo(), stitch_draw(), blender::gpu::tests::test_buffer_texture(), blender::gpu::tests::test_framebuffer_multi_viewport(), blender::gpu::tests::test_framebuffer_subpass_input(), blender::gpu::tests::test_shader_compute_vbo(), blender::gpu::tests::test_storage_buffer_copy_from_vertex_buffer(), ui_batch_roundbox_shadow_get(), ui_batch_roundbox_widget_get(), blender::gpu::tests::ShaderSpecializationConst::validate(), blender::draw::overlay::vbo_from_vector(), blender::draw::overlay::vbo_from_vector(), blender::draw::overlay::vbo_from_vector(), blender::draw::vertbuf_alloc(), blender::draw::vertbuf_device_alloc(), blender::gpu::tests::vertex_buffer_fetch_mode(), waveform_draw_one(), waveform_draw_rgb(), wm_gizmo_geometryinfo_draw(), and wm_xr_controller_model_batch_create().

◆ GPU_vertbuf_data_len_set()

void GPU_vertbuf_data_len_set ( blender::gpu::VertBuf & verts,
uint v_len )

Set vertex count but does not change allocation. Only this many verts will be uploaded to the GPU and rendered. This is useful for streaming data.

Definition at line 197 of file gpu_vertex_buffer.cc.

References BLI_assert, and verts.

Referenced by blf_batch_draw(), DRW_instance_buffer_finish(), and blender::ed::space_node::nodelink_batch_draw().

◆ GPU_vertbuf_data_resize()

◆ GPU_vertbuf_discard()

◆ GPU_vertbuf_duplicate()

blender::gpu::VertBuf * GPU_vertbuf_duplicate ( blender::gpu::VertBuf * verts)

Definition at line 154 of file gpu_vertex_buffer.cc.

References blender::gpu::VertBuf::duplicate(), and verts.

◆ GPU_vertbuf_get_format()

◆ GPU_vertbuf_get_memory_usage()

uint GPU_vertbuf_get_memory_usage ( )

Definition at line 305 of file gpu_vertex_buffer.cc.

References blender::gpu::VertBuf::memory_usage.

Referenced by DRW_stats_draw().

◆ GPU_vertbuf_get_status()

GPUVertBufStatus GPU_vertbuf_get_status ( const blender::gpu::VertBuf * verts)

◆ GPU_vertbuf_get_vertex_alloc()

uint GPU_vertbuf_get_vertex_alloc ( const blender::gpu::VertBuf * verts)

◆ GPU_vertbuf_get_vertex_len()

◆ GPU_vertbuf_handle_ref_add()

void GPU_vertbuf_handle_ref_add ( blender::gpu::VertBuf * verts)

Avoid blender::gpu::VertBuf data-block being free but not its data.

Definition at line 175 of file gpu_vertex_buffer.cc.

References verts.

Referenced by instancing_batch_references_add().

◆ GPU_vertbuf_handle_ref_remove()

void GPU_vertbuf_handle_ref_remove ( blender::gpu::VertBuf * verts)

Definition at line 180 of file gpu_vertex_buffer.cc.

References verts.

Referenced by instancing_batch_references_remove().

◆ GPU_vertbuf_init_build_on_device()

◆ GPU_vertbuf_init_with_format_ex()

◆ GPU_vertbuf_raw_step()

◆ GPU_vertbuf_raw_used()

GPU_INLINE uint GPU_vertbuf_raw_used ( const GPUVertBufRaw * a)

◆ GPU_vertbuf_read()

void GPU_vertbuf_read ( const blender::gpu::VertBuf * verts,
void * data )

(Download and) fill data with the data from the vertex buffer. NOTE: caller is responsible to reserve enough memory of the data parameter.

Definition at line 159 of file gpu_vertex_buffer.cc.

References blender::gpu::VertBuf::read(), and verts.

Referenced by blender::gpu::tests::test_shader_compute_vbo().

◆ GPU_vertbuf_tag_dirty()

◆ GPU_vertbuf_update_sub()

void GPU_vertbuf_update_sub ( blender::gpu::VertBuf * verts,
uint start,
uint len,
const void * data )

XXX: do not use! This is just a wrapper for the use of the Hair refine workaround. To be used with GPU_vertbuf_use().

Definition at line 330 of file gpu_vertex_buffer.cc.

References len, and verts.

Referenced by blender::draw::extract_edge_factor_subdiv(), blender::draw::extract_loose_positions_subdiv(), blender::draw::extract_normals_subdiv(), and blender::draw::vertbuf_update_data().

◆ GPU_vertbuf_use()

◆ GPU_vertbuf_vert_set()

◆ GPU_vertbuf_wrap_handle()

void GPU_vertbuf_wrap_handle ( blender::gpu::VertBuf * verts,
uint64_t handle )

Definition at line 315 of file gpu_vertex_buffer.cc.

References verts.

Referenced by blender::draw::vertbuf_wrap_device_handle().