class EaseEngine::Frame

Public Class Methods

fps() click to toggle source
# File lib/ease_engine/frame.rb, line 13
def self.fps
  @@fps
end
fps=( fps ) click to toggle source
# File lib/ease_engine/frame.rb, line 9
def self.fps=( fps )
  @@fps = fps
end
update( &block ) click to toggle source
# File lib/ease_engine/frame.rb, line 17
def self.update( &block )
  if 0 == @@fps
    block.call( 0, 0.0 )
  else
    @@measure.check
    sleep_time_usec = 1000000 / @@fps - @@measure.update_usec + @@offset_usec
    sleep_time_usec = 0 if sleep_time_usec < 0
    
    @@measure.start
    @@offset_usec = sleep_time_usec
    begin
      measure = EaseEngine::Measure.new
      sleep_time_f = sleep_time_usec.to_f / 1000000
      block.call( sleep_time_usec, sleep_time_f )
      sleep_time_usec -= measure.check
    end while 0 < sleep_time_usec
    @@offset_usec -= @@measure.check
    @@measure.start
  end
end