|
@@ -19893,6 +19893,8 @@ function WebVRManager( renderer ) {
|
|
|
cameraR.layers.enable( 2 );
|
|
|
|
|
|
var cameraVR = new ArrayCamera( [ cameraL, cameraR ] );
|
|
|
+ cameraVR.layers.enable( 1 );
|
|
|
+ cameraVR.layers.enable( 2 );
|
|
|
|
|
|
//
|
|
|
|
|
@@ -19909,13 +19911,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 );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -20665,6 +20665,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;
|
|
|
|
|
@@ -20682,6 +20691,20 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
};
|
|
|
|
|
|
+ this.setDrawingBufferSize = function ( width, height, pixelRatio ) {
|
|
|
+
|
|
|
+ _width = width;
|
|
|
+ _height = height;
|
|
|
+
|
|
|
+ _pixelRatio = pixelRatio;
|
|
|
+
|
|
|
+ _canvas.width = width * pixelRatio;
|
|
|
+ _canvas.height = height * pixelRatio;
|
|
|
+
|
|
|
+ this.setViewport( 0, 0, width, height );
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
this.setViewport = function ( x, y, width, height ) {
|
|
|
|
|
|
_viewport.set( x, _height - y - height, width, height );
|
|
@@ -21630,18 +21653,23 @@ function WebGLRenderer( parameters ) {
|
|
|
for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
|
|
|
|
|
|
var camera2 = cameras[ j ];
|
|
|
- var bounds = camera2.bounds;
|
|
|
|
|
|
- var x = bounds.x * _width;
|
|
|
- var y = bounds.y * _height;
|
|
|
- var width = bounds.z * _width;
|
|
|
- var height = bounds.w * _height;
|
|
|
+ if ( object.layers.test( camera2.layers ) ) {
|
|
|
+
|
|
|
+ var bounds = camera2.bounds;
|
|
|
+
|
|
|
+ var x = bounds.x * _width;
|
|
|
+ var y = bounds.y * _height;
|
|
|
+ var width = bounds.z * _width;
|
|
|
+ var height = bounds.w * _height;
|
|
|
|
|
|
- _this.setViewport( x, y, width, height );
|
|
|
- _this.setScissor( x, y, width, height );
|
|
|
- _this.setScissorTest( true );
|
|
|
+ _this.setViewport( x, y, width, height );
|
|
|
+ _this.setScissor( x, y, width, height );
|
|
|
+ _this.setScissorTest( true );
|
|
|
|
|
|
- renderObject( object, scene, camera2, geometry, material, group );
|
|
|
+ renderObject( object, scene, camera2, geometry, material, group );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|