pub struct GeomSig { /* private fields */ }Expand description
Identifies the geometry a draw-object BLAS traces, on the shared
vertex/index buffers. Two draw objects with the same signature trace
identical geometry, so a topology refresh can reuse the existing BLAS instead
of building a new one. A streamed mesh is placed wherever the sub-allocator
has room, so a slot that streams out and back in generally returns on a
different slice; the signature moves with it and the BLAS is rebuilt rather
than wrongly reused. base_vertex + index_offset + index_count are
exactly the inputs the per-backend geometry descriptor uses; vertex_offset
is carried too so a static draw (whose base_vertex is 0) still
distinguishes distinct vertex regions.
The slice location alone is not enough: an asset hot-reload rewrites a slot’s
bytes in place at unchanged offsets, which leaves every field above equal.
generation (the draw object’s geometry_generation) moves on each such
rewrite so the stale BLAS is rebuilt instead of reused.
Implementations§
Trait Implementations§
impl Copy for GeomSig
impl Eq for GeomSig
impl StructuralPartialEq for GeomSig
Auto Trait Implementations§
impl Freeze for GeomSig
impl RefUnwindSafe for GeomSig
impl Send for GeomSig
impl Sync for GeomSig
impl Unpin for GeomSig
impl UnsafeUnpin for GeomSig
impl UnwindSafe for GeomSig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.