/unmaintained/animations/animations.factor

http://github.com/abeaumont/factor · Factor · 17 lines · 12 code · 3 blank · 2 comment · 4 complexity · c7ad7945860e9115cebb8a6a224bb314 MD5 · raw file

  1. ! Small library for cross-platform continuous functions of real time
  2. USING: kernel shuffle system locals
  3. prettyprint math io namespaces threads calendar ;
  4. IN: animations
  5. SYMBOL: last-loop
  6. SYMBOL: sleep-period
  7. : reset-progress ( -- ) millis last-loop set ;
  8. ! : my-progress ( -- progress ) millis
  9. : progress ( -- time ) millis last-loop get - reset-progress ;
  10. : progress-peek ( -- progress ) millis last-loop get - ;
  11. : set-end ( duration -- end-time ) duration>milliseconds millis + ;
  12. : loop ( quot end -- ) dup millis > [ [ dup call ] dip loop ] [ 2drop ] if ; inline
  13. : animate ( quot duration -- ) reset-progress set-end loop ; inline
  14. : sample ( revs quot -- avg ) reset-progress dupd times progress swap / ; inline