void TimeKeeper::idleSleep(float seconds) { float dtime= idleTime - TimeKeeper::getCurrent(); if ((dtime < -1)||(dtime > 1)) { idleTime= TimeKeeper::getCurrent(); idleTime.seconds -= 0.5; // allow for some extra frames to catch up return; } if (dtime > 0) { TimeKeeper::sleep(dtime); } idleTime.seconds += seconds; }