pub struct IndirectParametersBuffer(pub BufferVec<IndirectParameters>);
Expand description
The buffer containing the list of IndirectParameters
, for draw commands.
Tuple Fields§
§0: BufferVec<IndirectParameters>
Implementations§
Source§impl IndirectParametersBuffer
impl IndirectParametersBuffer
Sourcepub fn new() -> IndirectParametersBuffer
pub fn new() -> IndirectParametersBuffer
Creates the indirect parameters buffer.
Methods from Deref<Target = BufferVec<IndirectParameters>>§
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.
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 Self::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 size_of::<T>() * capacity
, unless 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 BufferVec
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.
Trait Implementations§
Source§impl Default for IndirectParametersBuffer
impl Default for IndirectParametersBuffer
Source§impl Deref for IndirectParametersBuffer
impl Deref for IndirectParametersBuffer
Source§impl DerefMut for IndirectParametersBuffer
impl DerefMut for IndirectParametersBuffer
impl Resource for IndirectParametersBuffer
Auto Trait Implementations§
impl Freeze for IndirectParametersBuffer
impl !RefUnwindSafe for IndirectParametersBuffer
impl Send for IndirectParametersBuffer
impl Sync for IndirectParametersBuffer
impl Unpin for IndirectParametersBuffer
impl !UnwindSafe for IndirectParametersBuffer
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<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
Creates Self
using default()
.
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