]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/animations/animations.factor
tools.test: Make the flag public. Finish porting tester changes to fuzzer.
[factor.git] / unmaintained / animations / animations.factor
1 ! Small library for cross-platform continuous functions of real time
2
3 USING: kernel shuffle system locals
4 prettyprint math io namespaces threads calendar ;
5 IN: animations
6
7 SYMBOL: last-loop
8 SYMBOL: sleep-period
9
10 : reset-progress ( -- ) millis last-loop set ;
11 ! : my-progress ( -- progress ) millis 
12 : progress ( -- time ) millis last-loop get - reset-progress ;
13 : progress-peek ( -- progress ) millis last-loop get - ;
14 : set-end ( duration -- end-time ) duration>milliseconds millis + ;
15 : loop ( quot end -- ) dup millis > [ [ dup call ] dip loop ] [ 2drop ] if ; inline
16 : animate ( quot duration -- ) reset-progress set-end loop ; inline
17 : sample ( revs quot -- avg ) reset-progress dupd times progress swap / ; inline