Enum bevy_winit::UpdateMode
source · 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§
Auto Trait Implementations§
impl RefUnwindSafe for UpdateMode
impl Send for UpdateMode
impl Sync for UpdateMode
impl Unpin for UpdateMode
impl UnwindSafe for UpdateMode
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.