Skip to main content

Round

Struct Round 

Source
pub struct Round {
    pub target: RoundTarget,
    pub ops: Vec<RoundOp>,
    pub released: Vec<PageParity>,
    pub filter: Option<FilterPass>,
}
Expand description

One render pass over one target.

A target is not a round: the surface, and a layer’s page, can each take several, and the rounds of one target run in the order they are listed with every one after the first loading what the one before it left.

Fields§

§target: RoundTarget

What this pass renders into.

§ops: Vec<RoundOp>

The pass’s work, in execution order. Empty on a filter round, which issues no draw and composites nothing.

§released: Vec<PageParity>

Pages whose contents this round consumed; they return to the pool once it completes.

§filter: Option<FilterPass>

The filter pass this round runs, on a filter round.

A field rather than a RoundOp variant, and it stays one now that the renderer executes filter rounds: a filter round is only a filter pass — it draws nothing and composites nothing, and it is drawn through a different pipeline, off a different instance buffer, with no viewport uniform and no strip bind groups. Naming it here is what lets the frame path branch on the round before it starts issuing a list, and keeps RoundOp exactly the set of things one strip pass can interleave.

Implementations§

Source§

impl Round

Source

pub fn page(&self) -> Option<&PageTarget>

The page this round renders into, or None for the surface.

Source

pub fn filter_pass(&self) -> Option<&FilterPass>

The filter pass this round runs, or None on an ordinary round.

Source

pub fn is_root(&self) -> bool

Whether this round renders into the frame’s own surface.

Source

pub fn composites(&self) -> impl Iterator<Item = &Composite>

The composites this round performs, in execution order.

Source

pub fn draw_count(&self) -> u32

How many recorded draws this round issues.

Trait Implementations§

Source§

impl Clone for Round

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Round

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Round

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Round

Auto Trait Implementations§

§

impl Freeze for Round

§

impl RefUnwindSafe for Round

§

impl Send for Round

§

impl Sync for Round

§

impl Unpin for Round

§

impl UnsafeUnpin for Round

§

impl UnwindSafe for Round

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,