- if mfps <= 0 then return
- var dt = clock.lapse
- var target_dt = 1000000000 / mfps
- var sec = dt.sec
- var nanosec = dt.nanosec
- if sec == 0 and nanosec < target_dt then
- var sleep_t = target_dt - nanosec
- sys.nanosleep(0, sleep_t)
- dt = clock.lapse
+ if mfps <= 0.0 then return
+ var lapse = clock.lapse
+ var dt = lapse.to_f
+ var target_dt = 1.0 / mfps
+ if dt < target_dt then
+ var sleep_t = target_dt - dt
+ sleep_t.sleep
+ clock.lapse