Blender V5.0
draw_cache_impl.hh File Reference
#include <cstdint>
#include "BLI_math_matrix_types.hh"
#include "BLI_span.hh"
#include "BLI_string_ref.hh"
#include "GPU_vertex_buffer.hh"

Go to the source code of this file.

Namespaces

namespace  blender
namespace  blender::gpu
namespace  blender::draw

Enumerations

For Direct Data Access
enum  {
  blender::draw::VFLAG_VERT_ACTIVE = 1 << 0 , blender::draw::VFLAG_VERT_SELECTED = 1 << 1 , blender::draw::VFLAG_VERT_SELECTED_BEZT_HANDLE = 1 << 2 , blender::draw::VFLAG_EDGE_ACTIVE = 1 << 3 ,
  blender::draw::VFLAG_EDGE_SELECTED = 1 << 4 , blender::draw::VFLAG_EDGE_SEAM = 1 << 5 , blender::draw::VFLAG_EDGE_SHARP = 1 << 6 , blender::draw::VFLAG_EDGE_FREESTYLE = 1 << 7 ,
  blender::draw::VFLAG_VERT_GPENCIL_BEZT_HANDLE = 1 << 30
}
enum  {
  blender::draw::VFLAG_FACE_ACTIVE = 1 << 0 , blender::draw::VFLAG_FACE_SELECTED = 1 << 1 , blender::draw::VFLAG_FACE_FREESTYLE = 1 << 2 , blender::draw::VFLAG_VERT_UV_SELECT = 1 << 3 ,
  blender::draw::VFLAG_VERT_UV_PINNED = 1 << 4 , blender::draw::VFLAG_EDGE_UV_SELECT = 1 << 5 , blender::draw::VFLAG_FACE_UV_ACTIVE = 1 << 6 , blender::draw::VFLAG_FACE_UV_SELECT = 1 << 7
}

Functions

Expose via BKE callbacks
void blender::draw::DRW_curve_batch_cache_dirty_tag (Curve *cu, int mode)
void blender::draw::DRW_curve_batch_cache_validate (Curve *cu)
void blender::draw::DRW_curve_batch_cache_free (Curve *cu)
void blender::draw::DRW_mesh_batch_cache_dirty_tag (Mesh *mesh, eMeshBatchDirtyMode mode)
void blender::draw::DRW_mesh_batch_cache_validate (Mesh &mesh)
void blender::draw::DRW_mesh_batch_cache_free (void *batch_cache)
void blender::draw::DRW_lattice_batch_cache_dirty_tag (Lattice *lt, int mode)
void blender::draw::DRW_lattice_batch_cache_validate (Lattice *lt)
void blender::draw::DRW_lattice_batch_cache_free (Lattice *lt)
void blender::draw::DRW_particle_batch_cache_dirty_tag (ParticleSystem *psys, int mode)
void blender::draw::DRW_particle_batch_cache_free (ParticleSystem *psys)
void blender::draw::DRW_curves_batch_cache_dirty_tag (Curves *curves, int mode)
void blender::draw::DRW_curves_batch_cache_validate (Curves *curves)
void blender::draw::DRW_curves_batch_cache_free (Curves *curves)
void blender::draw::DRW_pointcloud_batch_cache_dirty_tag (PointCloud *pointcloud, int mode)
void blender::draw::DRW_pointcloud_batch_cache_validate (PointCloud *pointcloud)
void blender::draw::DRW_pointcloud_batch_cache_free (PointCloud *pointcloud)
void blender::draw::DRW_volume_batch_cache_dirty_tag (Volume *volume, int mode)
void blender::draw::DRW_volume_batch_cache_validate (Volume *volume)
void blender::draw::DRW_volume_batch_cache_free (Volume *volume)
void blender::draw::DRW_grease_pencil_batch_cache_dirty_tag (GreasePencil *grease_pencil, int mode)
void blender::draw::DRW_grease_pencil_batch_cache_validate (GreasePencil *grease_pencil)
void blender::draw::DRW_grease_pencil_batch_cache_free (GreasePencil *grease_pencil)
Batch Cache Implementation (common)
void blender::draw::DRW_batch_cache_free_old (Object *ob, int ctime)
Garbage Collection
void blender::draw::DRW_mesh_batch_cache_free_old (Mesh *mesh, int ctime)
void blender::draw::DRW_curves_batch_cache_free_old (Curves *curves, int ctime)
void blender::draw::DRW_pointcloud_batch_cache_free_old (PointCloud *pointcloud, int ctime)
Generic
void blender::draw::DRW_vertbuf_create_wiredata (gpu::VertBuf *vbo, const int vert_len)
Curve
void blender::draw::DRW_curve_batch_cache_create_requested (Object *ob, const Scene *scene)
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_wire_edge (Curve *cu)
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_wire_edge_viewer_attribute (Curve *cu)
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_normal_edge (Curve *cu)
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_edit_edges (Curve *cu)
blender::gpu::Batch * blender::draw::DRW_curve_batch_cache_get_edit_verts (Curve *cu)
Lattice
blender::gpu::Batch * blender::draw::DRW_lattice_batch_cache_get_all_edges (Lattice *lt, bool use_weight, int actdef)
blender::gpu::Batch * blender::draw::DRW_lattice_batch_cache_get_all_verts (Lattice *lt)
blender::gpu::Batch * blender::draw::DRW_lattice_batch_cache_get_edit_verts (Lattice *lt)
Curves
blender::gpu::VertBufPtrblender::draw::DRW_curves_texture_for_evaluated_attribute (Curves *curves, StringRef name, bool &r_is_point_domain, bool &r_valid_attribute)
blender::gpu::Batch * blender::draw::DRW_curves_batch_cache_get_edit_points (Curves *curves)
blender::gpu::Batch * blender::draw::DRW_curves_batch_cache_get_sculpt_curves_cage (Curves *curves)
blender::gpu::Batch * blender::draw::DRW_curves_batch_cache_get_edit_curves_handles (Curves *curves)
blender::gpu::Batch * blender::draw::DRW_curves_batch_cache_get_edit_curves_lines (Curves *curves)
void blender::draw::DRW_curves_batch_cache_create_requested (Object *ob)
PointCloud
gpu::VertBufblender::draw::DRW_pointcloud_position_and_radius_buffer_get (Object *ob)
gpu::VertBuf ** blender::draw::DRW_pointcloud_evaluated_attribute (PointCloud *pointcloud, StringRef name)
blender::gpu::Batch * blender::draw::DRW_pointcloud_batch_cache_get_dots (Object *ob)
blender::gpu::Batch * blender::draw::DRW_pointcloud_batch_cache_get_edit_dots (PointCloud *pointcloud)
void blender::draw::DRW_pointcloud_batch_cache_create_requested (Object *ob)
Volume
blender::gpu::Batch * blender::draw::DRW_volume_batch_cache_get_wireframes_face (Volume *volume)
blender::gpu::Batch * blender::draw::DRW_volume_batch_cache_get_selection_surface (Volume *volume)
Mesh
void blender::draw::DRW_mesh_batch_cache_create_requested (TaskGraph &task_graph, Object &ob, Mesh &mesh, const Scene &scene, bool is_paint_mode, bool use_hide)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_all_verts (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_paint_overlay_verts (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_all_edges (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_loose_edges (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edge_detection (Mesh &mesh, bool *r_is_manifold)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_paint_overlay_surface (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_paint_overlay_edges (Mesh &mesh)
Span< gpu::Batch * > blender::draw::DRW_mesh_batch_cache_get_surface_shaded (Object &object, Mesh &mesh, Span< const GPUMaterial * > materials)
Span< gpu::Batch * > blender::draw::DRW_mesh_batch_cache_get_surface_texpaint (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface_texpaint_single (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface_vertpaint (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface_sculpt (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface_weights (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_sculpt_overlays (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_surface_viewer_attribute (Mesh &mesh)
Edit-Mesh Drawing
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_triangles (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_vertices (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_edges (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_vert_normals (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_loop_normals (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_facedots (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_skin_roots (Mesh &mesh)
Edit-mesh Selection
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_triangles_with_select_id (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_facedots_with_select_id (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edges_with_select_id (Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_verts_with_select_id (Mesh &mesh)
Object Mode Wireframe Overlays
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_wireframes_face (Mesh &mesh)
Edit-mesh UV Editor
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_faces_stretch_area (Object &object, Mesh &mesh, float **tot_area, float **tot_uv_area)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_faces_stretch_angle (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_faces (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_wireframe (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_edges (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_verts (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edituv_facedots (Object &object, Mesh &mesh)
For Image UV Editor
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_uv_faces (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_all_uv_wireframe (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_uv_wireframe (Object &object, Mesh &mesh)
blender::gpu::Batch * blender::draw::DRW_mesh_batch_cache_get_edit_mesh_analysis (Mesh &mesh)
Particles
blender::gpu::Batch * blender::draw::DRW_particles_batch_cache_get_hair (Object *object, ParticleSystem *psys, ModifierData *md)
blender::gpu::Batch * blender::draw::DRW_particles_batch_cache_get_dots (Object *object, ParticleSystem *psys)
blender::gpu::Batch * blender::draw::DRW_particles_batch_cache_get_edit_strands (Object *object, ParticleSystem *psys, PTCacheEdit *edit, bool use_weight)
blender::gpu::Batch * blender::draw::DRW_particles_batch_cache_get_edit_inner_points (Object *object, ParticleSystem *psys, PTCacheEdit *edit)
blender::gpu::Batch * blender::draw::DRW_particles_batch_cache_get_edit_tip_points (Object *object, ParticleSystem *psys, PTCacheEdit *edit)