Struct bevy::pbr::MeshCullingDataBuffer
source · pub struct MeshCullingDataBuffer(/* private fields */);
Expand description
A GPU buffer that holds the information needed to cull meshes on GPU.
At the moment, this simply holds each mesh’s AABB.
To avoid wasting CPU time in the CPU culling case, this buffer will be empty if GPU culling isn’t in use.
Methods from Deref<Target = RawBufferVec<MeshCullingData>>§
sourcepub fn buffer(&self) -> Option<&Buffer>
pub fn buffer(&self) -> Option<&Buffer>
Returns a handle to the buffer, if the data has been uploaded.
sourcepub fn binding(&self) -> Option<BindingResource<'_>>
pub fn binding(&self) -> Option<BindingResource<'_>>
Returns the binding for the buffer if the data has been uploaded.
sourcepub fn capacity(&self) -> usize
pub fn capacity(&self) -> usize
Returns the amount of space that the GPU will use before reallocating.
pub fn append(&mut self, other: &mut RawBufferVec<T>)
sourcepub fn set_label(&mut self, label: Option<&str>)
pub fn set_label(&mut self, label: Option<&str>)
Changes the debugging label of the buffer.
The next time the buffer is updated (via [reserve
]), Bevy will inform
the driver of the new label.
sourcepub fn reserve(&mut self, capacity: usize, device: &RenderDevice)
pub fn reserve(&mut self, capacity: usize, device: &RenderDevice)
Creates a Buffer
on the RenderDevice
with size
at least std::mem::size_of::<T>() * capacity
, unless a such a buffer already exists.
If a Buffer
exists, but is too small, references to it will be discarded,
and a new Buffer
will be created. Any previously created Buffer
s
that are no longer referenced will be deleted by the RenderDevice
once it is done using them (typically 1-2 frames).
In addition to any BufferUsages
provided when
the RawBufferVec
was created, the buffer on the RenderDevice
is marked as BufferUsages::COPY_DST
.
sourcepub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue)
pub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue)
Queues writing of data from system RAM to VRAM using the RenderDevice
and the provided RenderQueue
.
Before queuing the write, a reserve
operation
is executed.
pub fn values(&self) -> &Vec<T>
pub fn values_mut(&mut self) -> &mut Vec<T>
Trait Implementations§
source§impl Default for MeshCullingDataBuffer
impl Default for MeshCullingDataBuffer
source§fn default() -> MeshCullingDataBuffer
fn default() -> MeshCullingDataBuffer
source§impl Deref for MeshCullingDataBuffer
impl Deref for MeshCullingDataBuffer
§type Target = RawBufferVec<MeshCullingData>
type Target = RawBufferVec<MeshCullingData>
source§impl DerefMut for MeshCullingDataBuffer
impl DerefMut for MeshCullingDataBuffer
impl Resource for MeshCullingDataBuffer
Auto Trait Implementations§
impl Freeze for MeshCullingDataBuffer
impl RefUnwindSafe for MeshCullingDataBuffer
impl Send for MeshCullingDataBuffer
impl Sync for MeshCullingDataBuffer
impl Unpin for MeshCullingDataBuffer
impl UnwindSafe for MeshCullingDataBuffer
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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> 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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.