|
@@ -1,6 +1,7 @@
|
|
|
/**
|
|
|
* @author mrdoob / http://mrdoob.com/
|
|
|
* @author Larry Battle / http://bateru.com/news
|
|
|
+ * @author bhouston / http://exocortex.com
|
|
|
*/
|
|
|
|
|
|
var THREE = THREE || { REVISION: '59dev' };
|
|
@@ -64,25 +65,25 @@ THREE.extend = function ( obj, source ) {
|
|
|
|
|
|
// requestAnimationFrame polyfill by Erik Möller
|
|
|
// fixes from Paul Irish and Tino Zijdel
|
|
|
-
|
|
|
+// using 'self' instead of 'window' for compatibility with both NodeJS and IE10.
|
|
|
( function () {
|
|
|
|
|
|
var lastTime = 0;
|
|
|
var vendors = [ 'ms', 'moz', 'webkit', 'o' ];
|
|
|
|
|
|
- for ( var x = 0; x < vendors.length && !window.requestAnimationFrame; ++ x ) {
|
|
|
+ for ( var x = 0; x < vendors.length && !self.requestAnimationFrame; ++ x ) {
|
|
|
|
|
|
- window.requestAnimationFrame = window[ vendors[ x ] + 'RequestAnimationFrame' ];
|
|
|
- window.cancelAnimationFrame = window[ vendors[ x ] + 'CancelAnimationFrame' ] || window[ vendors[ x ] + 'CancelRequestAnimationFrame' ];
|
|
|
+ self.requestAnimationFrame = self[ vendors[ x ] + 'RequestAnimationFrame' ];
|
|
|
+ self.cancelAnimationFrame = self[ vendors[ x ] + 'CancelAnimationFrame' ] || self[ vendors[ x ] + 'CancelRequestAnimationFrame' ];
|
|
|
|
|
|
}
|
|
|
|
|
|
- if ( window.requestAnimationFrame === undefined ) {
|
|
|
+ if ( self.requestAnimationFrame === undefined && self['setTimeout'] !== undefined ) {
|
|
|
|
|
|
- window.requestAnimationFrame = function ( callback ) {
|
|
|
+ self.requestAnimationFrame = function ( callback ) {
|
|
|
|
|
|
var currTime = Date.now(), timeToCall = Math.max( 0, 16 - ( currTime - lastTime ) );
|
|
|
- var id = window.setTimeout( function() { callback( currTime + timeToCall ); }, timeToCall );
|
|
|
+ var id = self.setTimeout( function() { callback( currTime + timeToCall ); }, timeToCall );
|
|
|
lastTime = currTime + timeToCall;
|
|
|
return id;
|
|
|
|
|
@@ -90,7 +91,11 @@ THREE.extend = function ( obj, source ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- window.cancelAnimationFrame = window.cancelAnimationFrame || function ( id ) { window.clearTimeout( id ) };
|
|
|
+ if( self.cancelAnimationFrame === undefined && self['clearTimeout'] !== undefined ) {
|
|
|
+
|
|
|
+ self.cancelAnimationFrame = function ( id ) { self.clearTimeout( id ) };
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}() );
|
|
|
|