12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * @author mr.doob / http://mrdoob.com/
- */
- var THREE = THREE || { REVISION: '50dev' };
- if ( ! self.Int32Array ) {
- self.Int32Array = Array;
- self.Float32Array = Array;
- }
- // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
- // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
- // requestAnimationFrame polyfill by Erik Möller
- // fixes from Paul Irish and Tino Zijdel
- ( function () {
- var lastTime = 0;
- var vendors = [ 'ms', 'moz', 'webkit', 'o' ];
- for ( var x = 0; x < vendors.length && !window.requestAnimationFrame; ++ x ) {
- window.requestAnimationFrame = window[ vendors[ x ] + 'RequestAnimationFrame' ];
- window.cancelAnimationFrame = window[ vendors[ x ] + 'CancelAnimationFrame' ] || window[ vendors[ x ] + 'CancelRequestAnimationFrame' ];
- }
- if ( !window.requestAnimationFrame ) {
- window.requestAnimationFrame = function ( callback, element ) {
- var currTime = Date.now(), timeToCall = Math.max( 0, 16 - ( currTime - lastTime ) );
- var id = window.setTimeout( function() { callback( currTime + timeToCall ); }, timeToCall );
- lastTime = currTime + timeToCall;
- return id;
- };
- }
- if ( !window.cancelAnimationFrame ) {
- window.cancelAnimationFrame = function ( id ) { clearTimeout( id ); };
- }
- }() );
|