pub struct MeshClassIndirectParametersBuffers<IP>{ /* private fields */ }
Expand description
The buffers containing all the information that indirect draw commands use to draw the scene, for a single mesh class (indexed or non-indexed), for a single phase.
Implementations§
Source§impl<IP> MeshClassIndirectParametersBuffers<IP>
impl<IP> MeshClassIndirectParametersBuffers<IP>
Sourcepub fn data_buffer(&self) -> Option<&Buffer>
pub fn data_buffer(&self) -> Option<&Buffer>
Returns the GPU buffer that stores the indirect draw parameters for indexed meshes.
The indirect parameters building shader writes to this buffer, while the
multi_draw_indirect
or multi_draw_indirect_count
commands read from
it to perform the draws.
Sourcepub fn cpu_metadata_buffer(&self) -> Option<&Buffer>
pub fn cpu_metadata_buffer(&self) -> Option<&Buffer>
Returns the GPU buffer that holds the CPU-constructed data used to construct indirect draw parameters for meshes.
The CPU writes to this buffer, and the indirect parameters building shader reads this buffer to construct the indirect draw parameters.
Sourcepub fn gpu_metadata_buffer(&self) -> Option<&Buffer>
pub fn gpu_metadata_buffer(&self) -> Option<&Buffer>
Returns the GPU buffer that holds the GPU-constructed data used to construct indirect draw parameters for meshes.
The GPU mesh preprocessing shader writes to this buffer, and the indirect parameters building shader reads this buffer to construct the indirect draw parameters.
Sourcepub fn batch_sets_buffer(&self) -> Option<&Buffer>
pub fn batch_sets_buffer(&self) -> Option<&Buffer>
Returns the GPU buffer that holds the number of indirect draw commands for each phase of each view.
The indirect parameters building shader writes to this buffer, and the
multi_draw_indirect_count
command reads from it in order to know how
many indirect draw commands to process.
Sourcepub fn set(&mut self, index: u32, value: IndirectParametersCpuMetadata)
pub fn set(&mut self, index: u32, value: IndirectParametersCpuMetadata)
Sets the IndirectParametersCpuMetadata
for the mesh at the given
index.
Sourcepub fn batch_count(&self) -> usize
pub fn batch_count(&self) -> usize
Returns the number of batches corresponding to meshes that are currently allocated.
Auto Trait Implementations§
impl<IP> Freeze for MeshClassIndirectParametersBuffers<IP>
impl<IP> !RefUnwindSafe for MeshClassIndirectParametersBuffers<IP>
impl<IP> Send for MeshClassIndirectParametersBuffers<IP>where
IP: Send,
impl<IP> Sync for MeshClassIndirectParametersBuffers<IP>where
IP: Sync,
impl<IP> Unpin for MeshClassIndirectParametersBuffers<IP>where
IP: Unpin,
impl<IP> !UnwindSafe for MeshClassIndirectParametersBuffers<IP>
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>
, which can then be
downcast
into Box<dyn 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>
, which 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> DowncastSend for T
impl<T> DowncastSend 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