Clock

object Clock

A simple class for timing of animations and things. Literally a delta function.

PolyUI internally uses nanoseconds as the time unit. There are a few reasons for this:

  • animations will be smoother as frames are usually shorter than 1ms, around 0.007ms. This means that the delta will be a decimal, which is not possible with longs, so some accuracy is lost with milliseconds.

  • Clock,getTime (the function we use to measure time) ignores changes to the system clock, so if the user changes their clock PolyUI won't crash or go very crazy because of a negative time.

  • 9,223,372,036,854,775,808 is max for a long, so the program can run for 2,562,047.78802 hours, or 106,751.991167 days, or 292.471 years. So we can use these.

See also

Types

Link copied to clipboard
abstract class Executor(val executeEveryNanos: Long, func: () -> Unit)

Create a new Executor.

Link copied to clipboard
class FixedTimeExecutor @JvmOverloads constructor(val executeEveryNanos: Long, val repeats: Int = 0, func: () -> Unit) : Clock.Executor

Create a new FixedTimeExecutor.

Properties

Link copied to clipboard
val delta: Long
Link copied to clipboard

Get the current time in nanoseconds.

Functions

Link copied to clipboard
@ApiStatus.Internal
fun peek(): Long

this function is rather wasteful and usage should be avoided.