|
Blender V4.3
|
Inherits blender::draw::pbvh::DrawCache.
Public Member Functions | |
| virtual | ~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 89 of file draw_pbvh.cc.
|
overridevirtual |
Definition at line 555 of file draw_pbvh.cc.
References blender::draw::pbvh::free_batches(), blender::draw::pbvh::free_ibos(), blender::draw::pbvh::free_vbos(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::values().
|
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 1968 of file draw_pbvh.cc.
References Object::data, DEG_get_original_object(), blender::index_mask::IndexMask::foreach_index(), GPU_batch_create, GPU_batch_vertbuf_add(), GPU_PRIM_LINES, blender::bke::pbvh::Tree::nodes_num(), 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 1999 of file draw_pbvh.cc.
References blender::draw::pbvh::calc_material_indices(), Object::data, DEG_get_original_object(), blender::bke::pbvh::Tree::nodes_num(), blender::bke::object::pbvh_get(), and blender::Array< T, InlineBufferCapacity, Allocator >::size().
|
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 1924 of file draw_pbvh.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::draw::pbvh::ViewportRequest::attributes, Object::data, DEG_get_original_object(), blender::index_mask::IndexMask::foreach_index(), GPU_batch_create, GPU_batch_vertbuf_add(), GPU_PRIM_TRIS, blender::Span< T >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::bke::pbvh::Tree::nodes_num(), 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 236 of file draw_pbvh.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items().
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 222 of file draw_pbvh.cc.
References blender::draw::pbvh::FaceSet, and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr().
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 229 of file draw_pbvh.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and blender::draw::pbvh::Mask.
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 199 of file draw_pbvh.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), 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 215 of file draw_pbvh.cc.
References tag_visibility_changed().
|
overridevirtual |
Implements blender::bke::pbvh::DrawCache.
Definition at line 209 of file draw_pbvh.cc.
References blender::index_mask::IndexMask::min_array_size(), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), blender::index_mask::IndexMask::set_bits(), and blender::bits::BitVector< InlineBufferCapacity, Allocator >::size().
Referenced by tag_topology_changed().