pub struct Schedule;Expand description
Turns a recording into the rounds that render it.
Implementations§
Source§impl Schedule
impl Schedule
Sourcepub fn build(
recorder: &CommandRecorder<EngineDraw>,
caps: &TierCaps,
config: &PageConfig,
) -> Result<Vec<Round>, EngineError>
pub fn build( recorder: &CommandRecorder<EngineDraw>, caps: &TierCaps, config: &PageConfig, ) -> Result<Vec<Round>, EngineError>
The rounds recorder renders as: every layer’s rounds before the round
that composites it, and the surface’s last round last.
Always at least one round: a recording with no layers, and one whose layers all inline or drop away, both schedule to the single root round that clears and paints the surface.
§Errors
EngineError::SchedulerEscalation for a layer shape outside what this
scheduler serves (see the module header), with a reason naming what was
found, and EngineError::IntermediateTextureTooLarge for a layer
larger than a page can be sized to. Neither is a panic, and neither
routes the frame anywhere: both hand the caller a frame it is expected
to skip.
A Gaussian-blur or shadow-only drop-shadow filter layer is planned
here: its contents’ round, then one round per pass of its filter’s
sequence, then the composite of whichever page the last pass wrote.
Every other filter is refused by name (see
crate::filters::served_filter), and so are the two shapes a served
filter layer still cannot take — one recorded inside another layer, and
one that cannot be handed the second page group its passes ping-pong
into.
One entry point, not two. While the renderer had no filter pipeline,
this call refused every filter and a second one planned them, so the
frame path could not reach a round nothing could execute; the renderer
runs them now (crate::renderer::FilterResources), and the split went
with the reason for it.
Trait Implementations§
impl Copy for Schedule
impl Eq for Schedule
impl StructuralPartialEq for Schedule
Auto Trait Implementations§
impl Freeze for Schedule
impl RefUnwindSafe for Schedule
impl Send for Schedule
impl Sync for Schedule
impl Unpin for Schedule
impl UnsafeUnpin for Schedule
impl UnwindSafe for Schedule
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.