#[non_exhaustive]pub enum RetryWake {
Now,
After(Duration),
OnEvent,
}Expand description
When the caller should try Gpu::try_acquire_frame again after a
FrameAcquire::Skip.
The caller owns the event loop, so it turns this into its own wake-up —
e.g. Window::request_redraw for RetryWake::Now, a
ControlFlow::WaitUntil deadline for RetryWake::After, nothing for
RetryWake::OnEvent. None of them should keep a reactive loop polling.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Now
Retry on the next frame (a Timeout, a surface that is still stale
right after a reconfigure, or the immediate first retry of a failed
configure).
After(Duration)
A failed configure is backing off: retry no sooner than this.
OnEvent
Do not self-schedule a retry: wait for the next window event. The
window is Occluded (a redraw request when it becomes visible again
brings the frame back) or the acquire hit a validation error that a
redraw loop would only repeat.
Trait Implementations§
impl Copy for RetryWake
impl Eq for RetryWake
impl StructuralPartialEq for RetryWake
Auto Trait Implementations§
impl Freeze for RetryWake
impl RefUnwindSafe for RetryWake
impl Send for RetryWake
impl Sync for RetryWake
impl Unpin for RetryWake
impl UnsafeUnpin for RetryWake
impl UnwindSafe for RetryWake
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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