pub enum PreprocessWorkItemBuffers {
Direct(RawBufferVec<PreprocessWorkItem>),
Indirect {
indexed: RawBufferVec<PreprocessWorkItem>,
non_indexed: RawBufferVec<PreprocessWorkItem>,
gpu_occlusion_culling: Option<GpuOcclusionCullingWorkItemBuffers>,
},
}
Expand description
The buffer of GPU preprocessing work items for a single view.
Variants§
Direct(RawBufferVec<PreprocessWorkItem>)
The work items we use if we aren’t using indirect drawing.
Because we don’t have to separate indexed from non-indexed meshes in direct mode, we only have a single buffer here.
Indirect
The buffer of work items we use if we are using indirect drawing.
We need to separate out indexed meshes from non-indexed meshes in this case because the indirect parameters for these two types of meshes have different sizes.
Fields
indexed: RawBufferVec<PreprocessWorkItem>
The buffer of work items corresponding to indexed meshes.
non_indexed: RawBufferVec<PreprocessWorkItem>
The buffer of work items corresponding to non-indexed meshes.
gpu_occlusion_culling: Option<GpuOcclusionCullingWorkItemBuffers>
The work item buffers we use when GPU occlusion culling is in use.
Implementations§
Source§impl PreprocessWorkItemBuffers
impl PreprocessWorkItemBuffers
Sourcepub fn push(&mut self, indexed: bool, preprocess_work_item: PreprocessWorkItem)
pub fn push(&mut self, indexed: bool, preprocess_work_item: PreprocessWorkItem)
Adds a new work item to the appropriate buffer.
indexed
specifies whether the work item corresponds to an indexed
mesh.
Auto Trait Implementations§
impl Freeze for PreprocessWorkItemBuffers
impl !RefUnwindSafe for PreprocessWorkItemBuffers
impl Send for PreprocessWorkItemBuffers
impl Sync for PreprocessWorkItemBuffers
impl Unpin for PreprocessWorkItemBuffers
impl !UnwindSafe for PreprocessWorkItemBuffers
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