|
@@ -1,6 +1,7 @@
|
|
import { ArrayCamera } from '../../cameras/ArrayCamera.js';
|
|
import { ArrayCamera } from '../../cameras/ArrayCamera.js';
|
|
import { EventDispatcher } from '../../core/EventDispatcher.js';
|
|
import { EventDispatcher } from '../../core/EventDispatcher.js';
|
|
import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js';
|
|
import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js';
|
|
|
|
+import { Vector2 } from '../../math/Vector2.js';
|
|
import { Vector3 } from '../../math/Vector3.js';
|
|
import { Vector3 } from '../../math/Vector3.js';
|
|
import { Vector4 } from '../../math/Vector4.js';
|
|
import { Vector4 } from '../../math/Vector4.js';
|
|
import { RAD2DEG } from '../../math/MathUtils.js';
|
|
import { RAD2DEG } from '../../math/MathUtils.js';
|
|
@@ -40,6 +41,9 @@ class WebXRManager extends EventDispatcher {
|
|
const controllers = [];
|
|
const controllers = [];
|
|
const controllerInputSources = [];
|
|
const controllerInputSources = [];
|
|
|
|
|
|
|
|
+ const currentSize = new Vector2();
|
|
|
|
+ let currentPixelRatio = null;
|
|
|
|
+
|
|
//
|
|
//
|
|
|
|
|
|
const cameraL = new PerspectiveCamera();
|
|
const cameraL = new PerspectiveCamera();
|
|
@@ -176,6 +180,9 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
scope.isPresenting = false;
|
|
scope.isPresenting = false;
|
|
|
|
|
|
|
|
+ renderer.setPixelRatio( currentPixelRatio );
|
|
|
|
+ renderer.setSize( currentSize.width, currentSize.height, false );
|
|
|
|
+
|
|
scope.dispatchEvent( { type: 'sessionend' } );
|
|
scope.dispatchEvent( { type: 'sessionend' } );
|
|
|
|
|
|
}
|
|
}
|
|
@@ -263,6 +270,9 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ currentPixelRatio = renderer.getPixelRatio();
|
|
|
|
+ renderer.getSize( currentSize );
|
|
|
|
+
|
|
if ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {
|
|
if ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {
|
|
|
|
|
|
const layerInit = {
|
|
const layerInit = {
|
|
@@ -277,6 +287,9 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
session.updateRenderState( { baseLayer: glBaseLayer } );
|
|
session.updateRenderState( { baseLayer: glBaseLayer } );
|
|
|
|
|
|
|
|
+ renderer.setPixelRatio( 1 );
|
|
|
|
+ renderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );
|
|
|
|
+
|
|
newRenderTarget = new WebGLRenderTarget(
|
|
newRenderTarget = new WebGLRenderTarget(
|
|
glBaseLayer.framebufferWidth,
|
|
glBaseLayer.framebufferWidth,
|
|
glBaseLayer.framebufferHeight,
|
|
glBaseLayer.framebufferHeight,
|
|
@@ -314,6 +327,9 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
session.updateRenderState( { layers: [ glProjLayer ] } );
|
|
session.updateRenderState( { layers: [ glProjLayer ] } );
|
|
|
|
|
|
|
|
+ renderer.setPixelRatio( 1 );
|
|
|
|
+ renderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );
|
|
|
|
+
|
|
newRenderTarget = new WebGLRenderTarget(
|
|
newRenderTarget = new WebGLRenderTarget(
|
|
glProjLayer.textureWidth,
|
|
glProjLayer.textureWidth,
|
|
glProjLayer.textureHeight,
|
|
glProjLayer.textureHeight,
|