17 lines
		
	
	
		
			723 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			723 B
		
	
	
	
		
			Factor
		
	
	
! 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 ( -- progress ) 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 |