/unmaintained/animations/animations.factor
http://github.com/abeaumont/factor · Factor · 17 lines · 12 code · 3 blank · 2 comment · 4 complexity · c7ad7945860e9115cebb8a6a224bb314 MD5 · raw file
- ! Small library for cross-platform continuous functions of real time
- USING: kernel shuffle system locals
- prettyprint math io namespaces threads calendar ;
- IN: animations
- SYMBOL: last-loop
- SYMBOL: sleep-period
- : reset-progress ( -- ) millis last-loop set ;
- ! : my-progress ( -- progress ) millis
- : progress ( -- time ) millis last-loop get - reset-progress ;
- : progress-peek ( -- progress ) millis last-loop get - ;
- : set-end ( duration -- end-time ) duration>milliseconds millis + ;
- : loop ( quot end -- ) dup millis > [ [ dup call ] dip loop ] [ 2drop ] if ; inline
- : animate ( quot duration -- ) reset-progress set-end loop ; inline
- : sample ( revs quot -- avg ) reset-progress dupd times progress swap / ; inline