|
@@ -530,6 +530,8 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
vr.dispose();
|
|
vr.dispose();
|
|
|
|
|
|
|
|
+ stopAnimation();
|
|
|
|
+
|
|
};
|
|
};
|
|
|
|
|
|
// Events
|
|
// Events
|
|
@@ -1044,48 +1046,52 @@ function WebGLRenderer( parameters ) {
|
|
var isAnimating = false;
|
|
var isAnimating = false;
|
|
var onAnimationFrame = null;
|
|
var onAnimationFrame = null;
|
|
|
|
|
|
- function start() {
|
|
|
|
|
|
+ function startAnimation() {
|
|
|
|
|
|
if ( isAnimating ) return;
|
|
if ( isAnimating ) return;
|
|
|
|
|
|
- var device = vr.getDevice();
|
|
|
|
|
|
+ requestAnimationLoopFrame();
|
|
|
|
|
|
- if ( device && device.isPresenting ) {
|
|
|
|
-
|
|
|
|
- device.requestAnimationFrame( loop );
|
|
|
|
|
|
+ isAnimating = true;
|
|
|
|
|
|
- } else {
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- window.requestAnimationFrame( loop );
|
|
|
|
|
|
+ function stopAnimation() {
|
|
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- isAnimating = true;
|
|
|
|
|
|
+ isAnimating = false;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- function loop( time ) {
|
|
|
|
-
|
|
|
|
- if ( onAnimationFrame !== null ) onAnimationFrame( time );
|
|
|
|
|
|
+ function requestAnimationLoopFrame() {
|
|
|
|
|
|
var device = vr.getDevice();
|
|
var device = vr.getDevice();
|
|
|
|
|
|
if ( device && device.isPresenting ) {
|
|
if ( device && device.isPresenting ) {
|
|
|
|
|
|
- device.requestAnimationFrame( loop );
|
|
|
|
|
|
+ device.requestAnimationFrame( animationLoop );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- window.requestAnimationFrame( loop );
|
|
|
|
|
|
+ window.requestAnimationFrame( animationLoop );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ function animationLoop( time ) {
|
|
|
|
+
|
|
|
|
+ if ( isAnimating === false ) return;
|
|
|
|
+
|
|
|
|
+ onAnimationFrame( time );
|
|
|
|
+
|
|
|
|
+ requestAnimationLoopFrame();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
this.animate = function ( callback ) {
|
|
this.animate = function ( callback ) {
|
|
|
|
|
|
onAnimationFrame = callback;
|
|
onAnimationFrame = callback;
|
|
- start();
|
|
|
|
|
|
+ onAnimationFrame !== null ? startAnimation() : stopAnimation();
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|