pub struct RenderAssetBytesPerFrameLimiter {
pub max_bytes: Option<usize>,
pub bytes_written: AtomicUsize,
}
Expand description
A render-world resource that facilitates limiting the data transferred from CPU to GPU each frame, preventing choppy frames at the cost of waiting longer for GPU assets to become available.
Fields§
§max_bytes: Option<usize>
Populated by RenderAssetBytesPerFrame
during extraction.
bytes_written: AtomicUsize
Bytes written this frame.
Implementations§
Source§impl RenderAssetBytesPerFrameLimiter
impl RenderAssetBytesPerFrameLimiter
Sourcepub fn reset(&mut self)
pub fn reset(&mut self)
Reset the available bytes. Called once per frame during extraction by crate::RenderPlugin
.
Sourcepub fn available_bytes(&self, required_bytes: usize) -> usize
pub fn available_bytes(&self, required_bytes: usize) -> usize
Check how many bytes are available for writing.
Trait Implementations§
Source§impl Default for RenderAssetBytesPerFrameLimiter
impl Default for RenderAssetBytesPerFrameLimiter
Source§fn default() -> RenderAssetBytesPerFrameLimiter
fn default() -> RenderAssetBytesPerFrameLimiter
Returns the “default value” for a type. Read more
impl Resource for RenderAssetBytesPerFrameLimiter
Auto Trait Implementations§
impl !Freeze for RenderAssetBytesPerFrameLimiter
impl RefUnwindSafe for RenderAssetBytesPerFrameLimiter
impl Send for RenderAssetBytesPerFrameLimiter
impl Sync for RenderAssetBytesPerFrameLimiter
impl Unpin for RenderAssetBytesPerFrameLimiter
impl UnwindSafe for RenderAssetBytesPerFrameLimiter
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
Return the
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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> 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>
Converts
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>
Converts
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