Browse Source

VREffect: More robust fullscreenchange handling.

Mr.doob 9 years ago
parent
commit
63fb23cef8
1 changed files with 14 additions and 15 deletions
  1. 14 15
      examples/js/effects/VREffect.js

+ 14 - 15
examples/js/effects/VREffect.js

@@ -62,7 +62,9 @@ THREE.VREffect = function ( renderer, onError ) {
 	this.scale = 1;
 
 	var isPresenting = false;
-	var rendererSize, rendererPixelRatio;
+
+	var rendererSize = renderer.getSize();
+	var rendererPixelRatio = renderer.getPixelRatio();
 
 	this.setSize = function ( width, height ) {
 
@@ -86,6 +88,7 @@ THREE.VREffect = function ( renderer, onError ) {
 
 		} else {
 
+			renderer.setPixelRatio( rendererPixelRatio );
 			renderer.setSize( width, height );
 
 		}
@@ -99,25 +102,21 @@ THREE.VREffect = function ( renderer, onError ) {
 
 	document.addEventListener( fullscreenchange, function () {
 
-		if ( vrHMD && isDeprecatedAPI ) {
-
-			isPresenting = document.mozFullScreenElement || document.webkitFullscreenElement;
-
-			if ( isPresenting ) {
+		isPresenting = isDeprecatedAPI && vrHMD && ( document.mozFullScreenElement || document.webkitFullscreenElement ) !== undefined;
 
-				rendererPixelRatio = renderer.getPixelRatio();
-				rendererSize = renderer.getSize();
+		if ( isPresenting ) {
 
-				var eyeParamsL = vrHMD.getEyeParameters( 'left' );
-				renderer.setPixelRatio( 1 );
-				renderer.setSize( eyeParamsL.renderRect.width * 2, eyeParamsL.renderRect.height, false );
+			rendererPixelRatio = renderer.getPixelRatio();
+			rendererSize = renderer.getSize();
 
-			} else {
+			var eyeParamsL = vrHMD.getEyeParameters( 'left' );
+			renderer.setPixelRatio( 1 );
+			renderer.setSize( eyeParamsL.renderRect.width * 2, eyeParamsL.renderRect.height, false );
 
-				renderer.setPixelRatio( rendererPixelRatio );
-				renderer.setSize( rendererSize.width, rendererSize.height );
+		} else {
 
-			}
+			renderer.setPixelRatio( rendererPixelRatio );
+			renderer.setSize( rendererSize.width, rendererSize.height );
 
 		}