logo
pub enum UpdateMode {
    Continuous,
    Reactive {
        max_wait: Duration,
    },
    ReactiveLowPower {
        max_wait: Duration,
    },
}
Expand description

Configure how the winit event loop should update.

Variants

Continuous

The event loop will update continuously, running as fast as possible.

Reactive

Fields

max_wait: Duration

The maximum time to wait before the event loop runs again.

Note that Bevy will wait indefinitely if the duration is too high (such as Duration::MAX).

The event loop will only update if there is a winit event, a redraw is requested, or the maximum wait time has elapsed.

Note

Once the app has executed all bevy systems and reaches the end of the event loop, there is no way to force the app to wake and update again, unless a winit event (such as user input, or the window being resized) is received or the time limit is reached.

ReactiveLowPower

Fields

max_wait: Duration

The maximum time to wait before the event loop runs again.

Note that Bevy will wait indefinitely if the duration is too high (such as Duration::MAX).

The event loop will only update if there is a winit event from direct interaction with the window (e.g. mouseover), a redraw is requested, or the maximum wait time has elapsed.

Note

Once the app has executed all bevy systems and reaches the end of the event loop, there is no way to force the app to wake and update again, unless a winit event (such as user input, or the window being resized) is received or the time limit is reached.

Differences from UpdateMode::Reactive

Unlike UpdateMode::Reactive, this mode will ignore winit events that aren’t directly caused by interaction with the window. For example, you might want to use this mode when the window is not focused, to only re-draw your bevy app when the cursor is over the window, but not when the mouse moves somewhere else on the screen. This helps to significantly reduce power consumption by only updated the app when absolutely necessary.

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

Returns the argument unchanged.

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

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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

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