pub struct GeometryBuffers {
pub vertex_buffer: Buffer,
pub index_buffer: Buffer,
pub instance_buffer: Buffer,
pub max_vertices: usize,
pub max_indices: usize,
}Expand description
Group of three GPU buffers used for geometry rendering: vertex, index, and instance. Owned by the renderer and used for every draw call.
Fields§
§vertex_buffer: BufferVertex buffer. Stores Vertex (position + normal + uv + color).
index_buffer: BufferIndex buffer. Stores u32 indices into the vertex buffer.
instance_buffer: BufferInstance buffer. Stores InstanceData for instanced rendering.
max_vertices: usizeCapacity in vertices (used to size the vertex and instance buffers).
max_indices: usizeCapacity in indices (used to size the index buffer).
Implementations§
Source§impl GeometryBuffers
impl GeometryBuffers
Sourcepub fn forge(device: &Device, max_vertices: usize, max_indices: usize) -> Self
pub fn forge(device: &Device, max_vertices: usize, max_indices: usize) -> Self
Create the three geometry buffers on the given device with the given maximum vertex and index counts.
Sourcepub fn vram_bytes(&self) -> u64
pub fn vram_bytes(&self) -> u64
Total VRAM cost of the three buffers in bytes.
Sourcepub fn grow_vertex_buffer(
&mut self,
device: &Device,
min_capacity: usize,
max_capacity: usize,
) -> bool
pub fn grow_vertex_buffer( &mut self, device: &Device, min_capacity: usize, max_capacity: usize, ) -> bool
P1-1: grow the vertex buffer to accommodate at least
min_capacity vertices. Returns true if the buffer was
actually reallocated. Caps growth at max_capacity vertices
(defaults to MAX_VERTICES * 4, matching the original behavior).
Auto Trait Implementations§
impl !RefUnwindSafe for GeometryBuffers
impl !UnwindSafe for GeometryBuffers
impl Freeze for GeometryBuffers
impl Send for GeometryBuffers
impl Sync for GeometryBuffers
impl Unpin for GeometryBuffers
impl UnsafeUnpin for GeometryBuffers
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more