Skip to main content

InstrumentedPipeline

Struct InstrumentedPipeline 

Source
pub struct InstrumentedPipeline<P> { /* private fields */ }
Expand description

Times the root passes of the pipeline it wraps, recording into the PhaseMetrics the caller holds.

Wrap the standard pipeline to time the standard frame, or wrap another decorator — .max_fps(30).instrumented(metrics) stacks a rate cap under the timings, in either order.

let metrics = Rc::new(RefCell::new(PhaseMetrics::default()));
application.with_frame_pipeline({
    let metrics = metrics.clone();
    move |_window_id| Box::new(StandardImmediatePipeline.instrumented(metrics.clone()))
})

Implementations§

Source§

impl<P> InstrumentedPipeline<P>

Source

pub fn new(inner: P, metrics: Rc<RefCell<PhaseMetrics>>) -> Self

Wraps inner, recording its root passes into metrics, which the caller keeps in order to read what it measures.

Source

pub fn inner(&self) -> &P

The pipeline this one wraps.

Trait Implementations§

Source§

impl<P: FramePipeline> FramePipeline for InstrumentedPipeline<P>

Source§

fn should_render(&mut self, is_dirty: bool, metrics: &WindowMetrics) -> bool

Whether the frame the application is about to draw should be drawn. Read more
Source§

fn begin_frame(&mut self, window: &mut Window<'_>, cx: &mut App)

Opens the frame: samples the platform window, resets the scratch state the frame rebuilds, and takes ownership of the invalidations this frame owes.
Source§

fn evaluate_roots( &mut self, window: &mut Window<'_>, cx: &mut App, ) -> PreparedRoots

Gathers the roots this frame will draw. Read more
Source§

fn layout_roots( &mut self, window: &mut Window<'_>, roots: &mut PreparedRoots, cx: &mut App, )

Lays out and prepaints roots, then hit tests the pointer against what they registered. Read more
Source§

fn paint_roots( &mut self, window: &mut Window<'_>, roots: PreparedRoots, cx: &mut App, )

Paints roots, in the order they stack.
Source§

fn finish_frame(&mut self, window: &mut Window<'_>, cx: &mut App)

Closes the painted frame: records the views it touched and hands the platform the input handler the frame asked for.
Source§

fn complete_frame( &mut self, window: &mut Window<'_>, cx: &mut App, ) -> Option<FocusId>

Retires the painted frame, swaps it in, and dispatches the focus changes the swap produced. Read more
Source§

fn end_frame( &mut self, window: &mut Window<'_>, cx: &mut App, focus: Option<FocusId>, )

Closes the frame out and marks it ready to present.
Source§

fn draw_roots(&mut self, window: &mut Window<'_>, cx: &mut App)

Lays out and paints the window’s roots: the window’s own view tree, plus a prompt, drag image or tooltip if the frame has one. Read more
Source§

fn draw(&mut self, window: &mut Window<'_>, cx: &mut App) -> ArenaClearNeeded

Draws one frame by running the phases above in order. Read more

Auto Trait Implementations§

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<P> FramePipelineExt for P
where P: FramePipeline,

Source§

fn max_fps(self, max_fps: u32) -> ThrottledPipeline<Self>

Caps this pipeline at max_fps frames a second. Read more
Source§

fn instrumented( self, metrics: Rc<RefCell<PhaseMetrics>>, ) -> InstrumentedPipeline<Self>

Times this pipeline’s root passes, recording into metrics. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more