Struct bevy_pbr::LightProbesBuffer
source · pub struct LightProbesBuffer(/* private fields */);
Expand description
A GPU buffer that stores information about all light probes.
Methods from Deref<Target = DynamicUniformBuffer<LightProbesUniform>>§
pub fn buffer(&self) -> Option<&Buffer>
pub fn binding(&self) -> Option<BindingResource<'_>>
pub fn is_empty(&self) -> bool
sourcepub fn push(&mut self, value: &T) -> u32
pub fn push(&mut self, value: &T) -> u32
Push data into the DynamicUniformBuffer
’s internal vector (residing on system RAM).
pub fn set_label(&mut self, label: Option<&str>)
pub fn get_label(&self) -> Option<&str>
sourcepub fn add_usages(&mut self, usage: BufferUsages)
pub fn add_usages(&mut self, usage: BufferUsages)
Add more BufferUsages
to the buffer.
This method only allows addition of flags to the default usage flags.
The default values for buffer usage are BufferUsages::COPY_DST
and BufferUsages::UNIFORM
.
sourcepub fn get_writer<'a>(
&'a mut self,
max_count: usize,
device: &RenderDevice,
queue: &'a RenderQueue
) -> Option<DynamicUniformBufferWriter<'a, T>>
pub fn get_writer<'a>( &'a mut self, max_count: usize, device: &RenderDevice, queue: &'a RenderQueue ) -> Option<DynamicUniformBufferWriter<'a, T>>
Creates a writer that can be used to directly write elements into the target buffer.
This method uses less memory and performs fewer memory copies using over push
and write_buffer
.
max_count
must be greater than or equal to the number of elements that are to be written to the buffer, or
the writer will panic while writing. Dropping the writer will schedule the buffer write into the provided
RenderQueue
.
If there is no GPU-side buffer allocated to hold the data currently stored, or if a GPU-side buffer previously
allocated does not have enough capacity to hold max_count
elements, a new GPU-side buffer is created.
Returns None
if there is no allocated GPU-side buffer, and max_count
is 0.
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
.
If there is no GPU-side buffer allocated to hold the data currently stored, or if a GPU-side buffer previously allocated does not have enough capacity, a new GPU-side buffer is created.
pub fn clear(&mut self)
Trait Implementations§
source§impl Default for LightProbesBuffer
impl Default for LightProbesBuffer
source§fn default() -> LightProbesBuffer
fn default() -> LightProbesBuffer
source§impl Deref for LightProbesBuffer
impl Deref for LightProbesBuffer
§type Target = DynamicUniformBuffer<LightProbesUniform>
type Target = DynamicUniformBuffer<LightProbesUniform>
source§impl DerefMut for LightProbesBuffer
impl DerefMut for LightProbesBuffer
impl Resource for LightProbesBuffer
Auto Trait Implementations§
impl RefUnwindSafe for LightProbesBuffer
impl Send for LightProbesBuffer
impl Sync for LightProbesBuffer
impl Unpin for LightProbesBuffer
impl UnwindSafe for LightProbesBuffer
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<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> 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<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
.