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 http://gafferongames.com/game-physics/fix-your-timestep/

Structs

TimeContext

A structure that contains our time-tracking state.

Functions

check_update_time

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.

duration_to_f64

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

f64_to_duration

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

get_average_delta

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

get_delta

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

get_fps

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

get_time_since_start

Returns the time since the game was initialized.

sleep

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

sleep_until_next_frame

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