Enum nannou::app::LoopMode

source ·
pub enum LoopMode {
    RefreshSync,
    Rate {
        update_interval: Duration,
    },
    Wait,
    NTimes {
        number_of_updates: usize,
    },
}
Expand description

The mode in which the App is currently running the event loop and emitting Update events.

Variants§

§

RefreshSync

Synchronises Update events with requests for a new frame for the surface.

The result of using this loop mode is similar to using vsync in traditional applications. E.g. if you have one window running on a monitor with a 60hz refresh rate, your update will get called at a fairly consistent interval that is close to 60 times per second.

§

Rate

Fields

§update_interval: Duration

The minimum interval between emitted updates.

Specifies that the application is continuously looping at a consistent rate.

NOTE: This currently behaves the same as RefreshSync. Need to upate this to handled a fix step properly in the future. See #456.

§

Wait

Waits for user input, window, device and wake-up events to occur before producing Update events.

This is particularly useful for low-energy GUIs that only need to update when some sort of input has occurred. The benefit of using this mode is that you don’t waste CPU cycles looping or updating when you know nothing is changing in your model or view.

§

NTimes

Fields

§number_of_updates: usize

The number of updates that must be emited regardless of non-update events

Loops for the given number of updates and then finishes.

This is similar to the Wait loop mode, except that windowing, application and input events will not cause the loop to update or view again after the initial number_of_updates have already been applied.

This is useful for sketches where you only want to draw one frame, or if you know exactly how many updates you require for an animation, etc.

Implementations§

source§

impl LoopMode

source

pub const DEFAULT_RATE_FPS: f64 = 60f64

source

pub const UPDATES_PER_WAIT_EVENT: u32 = 3u32

The minimum number of updates that will be emitted after an event is triggered in Wait mode.

source

pub fn refresh_sync() -> Self

A simplified constructor for the default RefreshSync loop mode.

Assumes a display refresh rate of ~60hz and in turn specifies a minimum_update_latency of ~8.33ms. The windows field is set to None.

source

pub fn rate_fps(fps: f64) -> Self

Specify the Rate mode with the given frames-per-second.

source

pub fn wait() -> Self

Specify the Wait mode.

source

pub fn loop_ntimes(number_of_updates: usize) -> Self

Specify the Ntimes mode with one update

Waits long enough to ensure loop iteration never occurs faster than the given max_fps.

source

pub fn loop_once() -> Self

Specify the Ntimes mode with one update

Trait Implementations§

source§

impl Clone for LoopMode

source§

fn clone(&self) -> LoopMode

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for LoopMode

source§

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

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

impl Default for LoopMode

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq for LoopMode

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for LoopMode

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Component + Float, Swp: WhitePoint, Dwp: WhitePoint, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
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<T, U> ConvertInto<U> for T
where U: ConvertFrom<T>,

source§

fn convert_into(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

fn convert_unclamped_into(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

fn try_convert_into(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

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

§

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>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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

§

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