Browse Source

WebGLRenderer/WebVRManager: Ignore setSize() calls when when presenting.

Mr.doob 8 years ago
parent
commit
d981806124
2 changed files with 11 additions and 4 deletions
  1. 9 0
      src/renderers/WebGLRenderer.js
  2. 2 4
      src/renderers/webvr/WebVRManager.js

+ 9 - 0
src/renderers/WebGLRenderer.js

@@ -408,6 +408,15 @@ function WebGLRenderer( parameters ) {
 
 	this.setSize = function ( width, height, updateStyle ) {
 
+		var device = vr.getDevice();
+
+		if ( device && device.isPresenting ) {
+
+			console.warn( 'THREE.WebGLRenderer: Can\'t change size while VR device is presenting.' );
+			return;
+
+		}
+
 		_width = width;
 		_height = height;
 

+ 2 - 4
src/renderers/webvr/WebVRManager.js

@@ -52,13 +52,11 @@ function WebVRManager( renderer ) {
 			currentPixelRatio = renderer.getPixelRatio();
 			currentSize = renderer.getSize();
 
-			renderer.setPixelRatio( 1 );
-			renderer.setSize( renderWidth * 2, renderHeight, false );
+			renderer.setDrawingBufferSize( renderWidth * 2, renderHeight, 1 );
 
 		} else if ( scope.enabled ) {
 
-			renderer.setPixelRatio( currentPixelRatio );
-			renderer.setSize( currentSize.width, currentSize.height, true );
+			renderer.setDrawingBufferSize( currentSize.width, currentSize.height, currentPixelRatio );
 
 		}