57 lines
		
	
	
		
			761 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			761 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * @author mrdoob / http://mrdoob.com/
 | 
						|
 */
 | 
						|
 | 
						|
function WebGLAnimation() {
 | 
						|
 | 
						|
	var context = null;
 | 
						|
	var isAnimating = false;
 | 
						|
	var animationLoop = null;
 | 
						|
 | 
						|
	function onAnimationFrame( time, frame ) {
 | 
						|
 | 
						|
		if ( isAnimating === false ) return;
 | 
						|
 | 
						|
		animationLoop( time, frame );
 | 
						|
 | 
						|
		context.requestAnimationFrame( onAnimationFrame );
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	return {
 | 
						|
 | 
						|
		start: function () {
 | 
						|
 | 
						|
			if ( isAnimating === true ) return;
 | 
						|
			if ( animationLoop === null ) return;
 | 
						|
 | 
						|
			context.requestAnimationFrame( onAnimationFrame );
 | 
						|
 | 
						|
			isAnimating = true;
 | 
						|
 | 
						|
		},
 | 
						|
 | 
						|
		stop: function () {
 | 
						|
 | 
						|
			isAnimating = false;
 | 
						|
 | 
						|
		},
 | 
						|
 | 
						|
		setAnimationLoop: function ( callback ) {
 | 
						|
 | 
						|
			animationLoop = callback;
 | 
						|
 | 
						|
		},
 | 
						|
 | 
						|
		setContext: function ( value ) {
 | 
						|
 | 
						|
			context = value;
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
	};
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
export { WebGLAnimation };
 |