withFrameNanos
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.
This function will invoke MonotonicFrameClock.withFrameNanos
using the calling
CoroutineContext
's MonotonicFrameClock
and will throw an IllegalStateException
if one is
not present in the CoroutineContext
.