pub enum UpdateMode {
Continuous,
Reactive {
wait: Duration,
react_to_device_events: bool,
react_to_user_events: bool,
react_to_window_events: bool,
},
}
Expand description
Determines how frequently an App
should update.
Note: This setting is independent of VSync. VSync is controlled by a window’s
PresentMode
setting. If an app can update faster than the refresh
rate, but VSync is enabled, the update rate will be indirectly limited by the renderer.
Variants§
Continuous
Reactive
The App
will update in response to the following, until an
AppExit
event appears:
wait
time has elapsed since the previous update- a redraw has been requested by
RequestRedraw
- new window, raw input, or custom events have appeared
- a redraw has been requested with the
EventLoopProxy
Fields
wait: Duration
The approximate time from the start of one update to the next.
Note: This has no upper limit.
The App
will wait indefinitely if you set this to Duration::MAX
.
react_to_device_events: bool
Reacts to device events, that will wake up the loop if it’s in a wait state
Implementations§
Source§impl UpdateMode
impl UpdateMode
Sourcepub fn reactive(wait: Duration) -> UpdateMode
pub fn reactive(wait: Duration) -> UpdateMode
Reactive mode, will update the app for any kind of event
Sourcepub fn reactive_low_power(wait: Duration) -> UpdateMode
pub fn reactive_low_power(wait: Duration) -> UpdateMode
Low power mode
Unlike Reactive
, this will ignore events that
don’t come from interacting with a window, like MouseMotion
.
Use this if, for example, you only want your app to update when the mouse cursor is
moving over a window, not just moving in general. This can greatly reduce power consumption.
Trait Implementations§
Source§impl Clone for UpdateMode
impl Clone for UpdateMode
Source§fn clone(&self) -> UpdateMode
fn clone(&self) -> UpdateMode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for UpdateMode
impl Debug for UpdateMode
Source§impl PartialEq for UpdateMode
impl PartialEq for UpdateMode
impl Copy for UpdateMode
impl StructuralPartialEq for UpdateMode
Auto Trait Implementations§
impl Freeze for UpdateMode
impl RefUnwindSafe for UpdateMode
impl Send for UpdateMode
impl Sync for UpdateMode
impl Unpin for UpdateMode
impl UnwindSafe for UpdateMode
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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