pub struct BatchRenderer {
pub pending_requests: VecDeque<BatchRenderRequest>,
pub completed_results: Vec<BatchRenderOutput>,
pub current_request: Option<BatchRenderRequest>,
pub current_output: Option<BatchRenderOutput>,
pub frame_count: u32,
pub state: BatchState,
pub config: BatchRenderConfig,
pub renders_processed: usize,
}Expand description
Manages a persistent Bevy app for batch rendering.
Fields§
§pending_requests: VecDeque<BatchRenderRequest>Queued render requests
completed_results: Vec<BatchRenderOutput>Completed results
current_request: Option<BatchRenderRequest>Current request being processed
current_output: Option<BatchRenderOutput>Current render output being built
frame_count: u32Frame counter for timeout management
state: BatchStateCurrent state
config: BatchRenderConfigConfiguration
renders_processed: usizeTotal renders processed
Implementations§
Source§impl BatchRenderer
impl BatchRenderer
Sourcepub fn new(config: BatchRenderConfig) -> Self
pub fn new(config: BatchRenderConfig) -> Self
Create a new batch renderer with default configuration.
Sourcepub fn queue_request(
&mut self,
request: BatchRenderRequest,
) -> Result<(), BatchRenderError>
pub fn queue_request( &mut self, request: BatchRenderRequest, ) -> Result<(), BatchRenderError>
Queue a render request for batch processing.
Sourcepub fn pending_count(&self) -> usize
pub fn pending_count(&self) -> usize
Get the number of pending requests.
Sourcepub fn completed_count(&self) -> usize
pub fn completed_count(&self) -> usize
Get the number of completed results.
Sourcepub fn take_completed(&mut self) -> Vec<BatchRenderOutput>
pub fn take_completed(&mut self) -> Vec<BatchRenderOutput>
Get all completed results and clear the internal list.
Sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
Check if all work is done (no pending requests and not currently rendering).
Auto Trait Implementations§
impl Freeze for BatchRenderer
impl RefUnwindSafe for BatchRenderer
impl Send for BatchRenderer
impl Sync for BatchRenderer
impl Unpin for BatchRenderer
impl UnwindSafe for BatchRenderer
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.§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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