2
0
Эх сурвалжийг харах

VREffect: actually exit VR for deprecated API (originally from #8570) (#8796)

chris van wiemeersch 9 жил өмнө
parent
commit
fdca37f4a5

+ 10 - 6
examples/js/effects/VREffect.js

@@ -99,12 +99,13 @@ THREE.VREffect = function ( renderer, onError ) {
 
 
 	var canvas = renderer.domElement;
 	var canvas = renderer.domElement;
 	var requestFullscreen;
 	var requestFullscreen;
+	var exitFullscreen;
 	var fullscreenElement;
 	var fullscreenElement;
 
 
-	function onFullscreenChange() {
+	function onFullscreenChange () {
 
 
 		var wasPresenting = isPresenting;
 		var wasPresenting = isPresenting;
-		isPresenting = vrHMD !== undefined && ( vrHMD.isPresenting || ( isDeprecatedAPI && document[fullscreenElement] instanceof window.HTMLElement ) );
+		isPresenting = vrHMD !== undefined && ( vrHMD.isPresenting || ( isDeprecatedAPI && document[ fullscreenElement ] instanceof window.HTMLElement ) );
 
 
 		if ( wasPresenting === isPresenting ) {
 		if ( wasPresenting === isPresenting ) {
 
 
@@ -148,22 +149,25 @@ THREE.VREffect = function ( renderer, onError ) {
 
 
 		requestFullscreen = 'requestFullscreen';
 		requestFullscreen = 'requestFullscreen';
 		fullscreenElement = 'fullscreenElement';
 		fullscreenElement = 'fullscreenElement';
+		exitFullscreen = 'exitFullscreen';
+		document.addEventListener( 'fullscreenchange', onFullscreenChange, false );
 
 
 	} else if ( canvas.mozRequestFullScreen ) {
 	} else if ( canvas.mozRequestFullScreen ) {
 
 
 		requestFullscreen = 'mozRequestFullScreen';
 		requestFullscreen = 'mozRequestFullScreen';
-		fullscreenElement = 'mozFullScreenElement'
+		fullscreenElement = 'mozFullScreenElement';
+		exitFullscreen = 'mozCancelFullScreen';
 		document.addEventListener( 'mozfullscreenchange', onFullscreenChange, false );
 		document.addEventListener( 'mozfullscreenchange', onFullscreenChange, false );
 
 
 	} else {
 	} else {
 
 
 		requestFullscreen = 'webkitRequestFullscreen';
 		requestFullscreen = 'webkitRequestFullscreen';
 		fullscreenElement = 'webkitFullscreenElement';
 		fullscreenElement = 'webkitFullscreenElement';
+		exitFullscreen = 'webkitExitFullscreen';
 		document.addEventListener( 'webkitfullscreenchange', onFullscreenChange, false );
 		document.addEventListener( 'webkitfullscreenchange', onFullscreenChange, false );
 
 
 	}
 	}
 
 
-	document.addEventListener( 'fullscreenchange', onFullscreenChange, false );
 	window.addEventListener( 'vrdisplaypresentchange', onFullscreenChange, false );
 	window.addEventListener( 'vrdisplaypresentchange', onFullscreenChange, false );
 
 
 	this.setFullScreen = function ( boolean ) {
 	this.setFullScreen = function ( boolean ) {
@@ -197,9 +201,9 @@ THREE.VREffect = function ( renderer, onError ) {
 
 
 			} else {
 			} else {
 
 
-				if ( canvas[requestFullscreen] ) {
+				if ( canvas[ requestFullscreen ] ) {
 
 
-					canvas[requestFullscreen]( { vrDisplay: vrHMD } );
+					canvas[ boolean ? requestFullscreen : exitFullscreen ]( { vrDisplay: vrHMD } );
 					resolve();
 					resolve();
 
 
 				} else {
 				} else {