|
@@ -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();
|
|
@@ -172,6 +176,9 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
//
|
|
//
|
|
|
|
|
|
|
|
+ renderer.setPixelRatio( currentPixelRatio );
|
|
|
|
+ renderer.setSize( currentSize.width, currentSize.height, false );
|
|
|
|
+
|
|
animation.stop();
|
|
animation.stop();
|
|
|
|
|
|
scope.isPresenting = false;
|
|
scope.isPresenting = false;
|
|
@@ -228,6 +235,12 @@ class WebXRManager extends EventDispatcher {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ this._getRenderTarget = function () {
|
|
|
|
+
|
|
|
|
+ return newRenderTarget;
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+
|
|
this.getFrame = function () {
|
|
this.getFrame = function () {
|
|
|
|
|
|
return xrFrame;
|
|
return xrFrame;
|
|
@@ -277,6 +290,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 +330,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,
|
|
@@ -338,6 +357,9 @@ class WebXRManager extends EventDispatcher {
|
|
customReferenceSpace = null;
|
|
customReferenceSpace = null;
|
|
referenceSpace = await session.requestReferenceSpace( referenceSpaceType );
|
|
referenceSpace = await session.requestReferenceSpace( referenceSpaceType );
|
|
|
|
|
|
|
|
+ currentPixelRatio = renderer.getPixelRatio();
|
|
|
|
+ renderer.getSize( currentSize );
|
|
|
|
+
|
|
animation.setContext( session );
|
|
animation.setContext( session );
|
|
animation.start();
|
|
animation.start();
|
|
|
|
|