|
Blender V5.0
|
Inherits blender::draw::pbvh::DrawCache.
Public Member Functions | |
| ~DrawCacheImpl () override | |
| void | tag_positions_changed (const IndexMask &node_mask) override |
| void | tag_visibility_changed (const IndexMask &node_mask) override |
| void | tag_topology_changed (const IndexMask &node_mask) override |
| void | tag_face_sets_changed (const IndexMask &node_mask) override |
| void | tag_masks_changed (const IndexMask &node_mask) override |
| void | tag_attribute_changed (const IndexMask &node_mask, StringRef attribute_name) override |
| Span< gpu::Batch * > | ensure_tris_batches (const Object &object, const ViewportRequest &request, const IndexMask &nodes_to_update) override |
| Span< gpu::Batch * > | ensure_lines_batches (const Object &object, const ViewportRequest &request, const IndexMask &nodes_to_update) override |
| Span< int > | ensure_material_indices (const Object &object) override |
| Public Member Functions inherited from blender::draw::pbvh::DrawCache | |
| virtual | ~DrawCache ()=default |
Stores the data necessary to draw the PBVH geometry. A separate *Impl class is used to hide implementation details from the public header.
Definition at line 92 of file draw_pbvh.cc.
|
override |
Definition at line 476 of file draw_pbvh.cc.
References blender::draw::pbvh::free_batches().
|
overridevirtual |
Recalculate and copy data as necessary to prepare batches for drawing wireframe geometry for a specific combination of attributes.
Implements blender::draw::pbvh::DrawCache.
Definition at line 1874 of file draw_pbvh.cc.
References Object::data, DEG_get_original(), blender::index_mask::IndexMask::foreach_index(), GPU_batch_create, GPU_batch_vertbuf_add(), GPU_PRIM_LINES, i, blender::bke::object::pbvh_get(), blender::draw::pbvh::Position, blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), and blender::draw::pbvh::ViewportRequest::use_coarse_grids.
|
overridevirtual |
Return the material index for each node (all faces in a node should have the same material index, as ensured by the BVH building process).
Implements blender::draw::pbvh::DrawCache.
Definition at line 1905 of file draw_pbvh.cc.
References blender::draw::pbvh::calc_material_indices(), Object::data, DEG_get_original(), and blender::bke::object::pbvh_get().
|
overridevirtual |
Recalculate and copy data as necessary to prepare batches for drawing triangles for a specific combination of attributes.
Implements blender::draw::pbvh::DrawCache.
Definition at line 1830 of file draw_pbvh.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::draw::pbvh::ViewportRequest::attributes, Object::data, DEG_get_original(), blender::index_mask::IndexMask::foreach_index(), GPU_batch_create, GPU_batch_vertbuf_add(), GPU_PRIM_TRIS, i, blender::Span< T >::is_empty(), blender::bke::object::pbvh_get(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), and blender::draw::pbvh::ViewportRequest::use_coarse_grids.
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 239 of file draw_pbvh.cc.
References data.
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 225 of file draw_pbvh.cc.
References data, and blender::draw::pbvh::FaceSet.
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 232 of file draw_pbvh.cc.
References data, and blender::draw::pbvh::Mask.
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 202 of file draw_pbvh.cc.
References data, blender::draw::pbvh::Normal, and blender::draw::pbvh::Position.
|
overridevirtual |
Currently the only times where topology changes are for BMesh dynamic topology, where tagging a visibility update deletes all the GPU data anyway.
Implements blender::bke::pbvh::DrawCache.
Definition at line 218 of file draw_pbvh.cc.
References tag_visibility_changed().
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 212 of file draw_pbvh.cc.
References blender::index_mask::IndexMask::min_array_size(), and blender::index_mask::IndexMask::set_bits().
Referenced by tag_topology_changed().