module Time:sig..end
Time in msec.
typet =int
val now : unit -> tTime elapsed from the initialization of SDL (roughly, since the start of your program).
val adaptive_fps : ?vsync:bool -> int -> (unit -> unit) * (unit -> unit)Create helper functions to help controlling the frame rate of the graphics
loop. This is only useful if you have your own graphics loop, and do not
use Main.run.
adaptive_fps 60 returns two functions start,fps. The statement
start () will start the timing.
At each iteration of your loop, you should call
fps (), which will try to sleep long enough to achieve the desired 60FPS
rate. It works on average: if some frames take longer, it will shorten the
next frame to keep up. However, it tries to be nice to the CPU: even if one
is really too slow, it will guarantee a 5ms sleep to the CPU and not
try to keep up.
vsync is false by default, when true it sets GL swap
interval to 1 to wait for next vsync, and if it can't keep up
with that during animation it will set swap interval to -1 if
supported by platform to use adaptive vsync. (Which should
avoid forcing the animation rate to an integer ratio of monitor
refresh rate.)
See also Main.get_monitor_refresh_rate