MonotonicFrameClock
@JvmDefaultWithCompatibility
public interface MonotonicFrameClock : CoroutineContext.Element
Provides a time source for display frames and the ability to perform an action on the next frame. This may be used for matching timing with the refresh rate of a display or otherwise synchronizing work with a desired frame rate.
Properties
override val key: CoroutineContext.Key<*>
Functions
public suspend fun <R> withFrameNanos(onFrame: (frameTimeNanos: Long) -> R): R
Suspends until a new frame is requested, immediately invokes onFrame with the frame time in
nanoseconds in the calling context of frame dispatch, then resumes with the result from
onFrame.
frameTimeNanos should be used when calculating animation time deltas from frame to frame as
it may be normalized to the target time for the frame, not necessarily a direct, "now" value.
The time base of the value provided by withFrameNanos is implementation defined. Time
values provided are strictly monotonically increasing; after a call to withFrameNanos
completes it must not provide the same value again for a subsequent call.
