Blender V5.0
draw_cache.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2016 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
12#include "BLI_span.hh"
13
15
16struct GPUMaterial;
17namespace blender::gpu {
18class Texture;
19class Batch;
20class VertBuf;
21} // namespace blender::gpu
22struct ModifierData;
23struct Object;
24struct PTCacheEdit;
25struct ParticleSystem;
26struct Volume;
27struct Scene;
28
29namespace blender::draw {
30
38
39 DRW_LOD_MAX, /* Max number of level of detail */
40};
41
42/* Common Object */
43
45gpu::Batch *DRW_cache_object_edge_detection_get(Object *ob, bool *r_is_manifold);
50gpu::Batch *DRW_cache_object_face_wireframe_get(const Scene *scene, Object *ob);
51
52/* Meshes */
53
58gpu::Batch *DRW_cache_mesh_edge_detection_get(Object *ob, bool *r_is_manifold);
59gpu::Batch *DRW_cache_mesh_surface_get(Object *ob);
78
79/* Curve */
80
83
84/* edit-mode */
85
89
90/* Font */
91
93
94/* Surface */
95
97
98/* Lattice */
99
100gpu::Batch *DRW_cache_lattice_verts_get(Object *ob);
101gpu::Batch *DRW_cache_lattice_wire_get(Object *ob, bool use_weight);
103
104/* Point Cloud */
105
107
108/* Particles */
109
110gpu::Batch *DRW_cache_particles_get_hair(Object *object, ParticleSystem *psys, ModifierData *md);
111gpu::Batch *DRW_cache_particles_get_dots(Object *object, ParticleSystem *psys);
113 ParticleSystem *psys,
114 PTCacheEdit *edit,
115 bool use_weight);
117 ParticleSystem *psys,
118 PTCacheEdit *edit);
120 ParticleSystem *psys,
121 PTCacheEdit *edit);
122
123/* Volume */
124
127
128 /* Grid name. */
129 char *name;
130
131 /* 3D texture. */
133
134 /* Transform between 0..1 texture space and object space. */
137
138 /* Transform from bounds to texture space. */
141};
142
144 const bke::VolumeGridData *volume_grid);
147
148/* Grease Pencil */
149
150/* When there's no visible drawings in this grease pencil object, the returned `Batch` could be
151 * nullptr as `grease_pencil_edit_batch_ensure` won't do anything in those cases. */
152gpu::Batch *DRW_cache_grease_pencil_get(const Scene *scene, Object *ob);
153gpu::Batch *DRW_cache_grease_pencil_edit_points_get(const Scene *scene, Object *ob);
154gpu::Batch *DRW_cache_grease_pencil_edit_lines_get(const Scene *scene, Object *ob);
155gpu::Batch *DRW_cache_grease_pencil_edit_handles_get(const Scene *scene, Object *ob);
158gpu::Batch *DRW_cache_grease_pencil_weight_points_get(const Scene *scene, Object *ob);
159gpu::Batch *DRW_cache_grease_pencil_weight_lines_get(const Scene *scene, Object *ob);
160gpu::Batch *DRW_cache_grease_pencil_face_wireframe_get(const Scene *scene, Object *ob);
161
162} // namespace blender::draw
gpu::Batch * DRW_cache_particles_get_edit_inner_points(Object *object, ParticleSystem *psys, PTCacheEdit *edit)
gpu::Batch * DRW_cache_grease_pencil_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_text_edge_wire_get(Object *ob)
gpu::Batch * DRW_cache_mesh_all_verts_get(Object *ob)
gpu::Batch * DRW_cache_mesh_paint_overlay_edges_get(Object *ob)
Span< gpu::Batch * > DRW_cache_mesh_surface_texpaint_get(Object *ob)
gpu::Batch * DRW_cache_curve_edge_wire_viewer_attribute_get(Object *ob)
gpu::Batch * DRW_cache_mesh_surface_sculptcolors_get(Object *ob)
gpu::Batch * DRW_cache_object_face_wireframe_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_grease_pencil_face_wireframe_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_mesh_surface_vertpaint_get(Object *ob)
gpu::Batch * DRW_cache_grease_pencil_edit_handles_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_mesh_loose_edges_get(Object *ob)
gpu::Batch * DRW_cache_mesh_face_wireframe_get(Object *ob)
gpu::Batch * DRW_cache_object_all_edges_get(Object *ob)
Definition draw_cache.cc:91
gpu::Batch * DRW_cache_object_surface_get(Object *ob)
gpu::Batch * DRW_cache_particles_get_dots(Object *object, ParticleSystem *psys)
gpu::Batch * DRW_cache_lattice_wire_get(Object *ob, bool use_weight)
gpu::VertBuf * DRW_cache_grease_pencil_position_buffer_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_grease_pencil_edit_lines_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_mesh_paint_overlay_verts_get(Object *ob)
gpu::Batch * DRW_cache_mesh_surface_viewer_attribute_get(Object *ob)
gpu::Batch * DRW_cache_grease_pencil_weight_lines_get(const Scene *scene, Object *ob)
Span< gpu::Batch * > DRW_cache_mesh_surface_shaded_get(Object *ob, const Span< const GPUMaterial * > materials)
gpu::Batch * DRW_cache_grease_pencil_edit_points_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_curve_edge_overlay_get(Object *ob)
gpu::Batch * DRW_cache_curve_edge_wire_get(Object *ob)
gpu::Batch * DRW_cache_object_edge_detection_get(Object *ob, bool *r_is_manifold)
gpu::Batch * DRW_cache_lattice_verts_get(Object *ob)
gpu::Batch * DRW_cache_curve_edge_normal_get(Object *ob)
gpu::Batch * DRW_cache_grease_pencil_weight_points_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_mesh_edge_detection_get(Object *ob, bool *r_is_manifold)
gpu::Batch * DRW_cache_particles_get_edit_tip_points(Object *object, ParticleSystem *psys, PTCacheEdit *edit)
gpu::Batch * DRW_cache_lattice_vert_overlay_get(Object *ob)
DRWVolumeGrid * DRW_volume_batch_cache_get_grid(Volume *volume, const bke::VolumeGridData *volume_grid)
gpu::Batch * DRW_cache_pointcloud_vert_overlay_get(Object *ob)
gpu::Batch * DRW_cache_mesh_surface_weights_get(Object *ob)
gpu::Batch * DRW_cache_mesh_paint_overlay_surface_get(Object *ob)
gpu::Batch * DRW_cache_particles_get_hair(Object *object, ParticleSystem *psys, ModifierData *md)
Span< gpu::Batch * > DRW_cache_object_surface_material_get(Object *ob, const Span< const GPUMaterial * > materials)
gpu::Batch * DRW_cache_surf_edge_wire_get(Object *ob)
gpu::Batch * DRW_cache_object_loose_edges_get(Object *ob)
gpu::Batch * DRW_cache_volume_selection_surface_get(Object *ob)
gpu::Batch * DRW_cache_volume_face_wireframe_get(Object *ob)
gpu::VertBuf * DRW_cache_grease_pencil_color_buffer_get(const Scene *scene, Object *ob)
gpu::Batch * DRW_cache_curve_vert_overlay_get(Object *ob)
gpu::Batch * DRW_cache_mesh_surface_get(Object *ob)
gpu::Batch * DRW_cache_mesh_all_edges_get(Object *ob)
gpu::Batch * DRW_cache_mesh_surface_texpaint_single_get(Object *ob)
gpu::Batch * DRW_cache_particles_get_edit_strands(Object *object, ParticleSystem *psys, PTCacheEdit *edit, bool use_weight)
gpu::Batch * DRW_cache_mesh_surface_mesh_analysis_get(Object *ob)
MatBase< float, 4, 4 > float4x4