Module ggez::timer [] [src]

Timing and measurement functions.

ggez does not try to do any framerate limitation by default. If you want to run at anything other than full-bore max speed all the time, calling sleep() with a duration of 0 will yield to the OS so it has a chance to breathe before continuing with your game, which will prevent it from using 100% CPU unless it really needs to. Enabling vsync by setting vsync in your Conf object is generally the best way to cap your displayed framerate.

For a more detailed tutorial in how to handle frame timings in games, see



A structure that contains our time-tracking state.



This function will return true if the time since the last update() call has been equal to or greater to the update FPS indicated by the desired_update_rate. It keeps track of fractional frames, and does not do any sleeping.


A convenience function to convert a Rust Duration type to a (less precise but more useful) f64.


A convenience function to create a Rust Duration type from a (less precise but more useful) f64.


Gets the average time of a frame, averaged over the last 200 frames.


Get the time between the start of the last frame and the current one; in other words, the length of the last frame.


Gets the FPS of the game, averaged over the last 200 frames.


Returns the time since the game was initialized.


Pauses the current thread for the target duration. Just calls std::thread::sleep() so it's as accurate as that is.


This function will attempt to sleep the current thread until the beginning of the next frame should occur, to reach the desired FPS.