Skip to content

Commit fa40ddb

Browse files
WebXRManager: synchronize sizing with renderer (#26905)
* WebXRManager: synchronize sizing with renderer * Update WebXRManager.js * Update WebXRManager.js
1 parent 5642032 commit fa40ddb

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/renderers/webxr/WebXRManager.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { ArrayCamera } from '../../cameras/ArrayCamera.js';
22
import { EventDispatcher } from '../../core/EventDispatcher.js';
33
import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js';
4+
import { Vector2 } from '../../math/Vector2.js';
45
import { Vector3 } from '../../math/Vector3.js';
56
import { Vector4 } from '../../math/Vector4.js';
67
import { RAD2DEG } from '../../math/MathUtils.js';
@@ -40,6 +41,9 @@ class WebXRManager extends EventDispatcher {
4041
const controllers = [];
4142
const controllerInputSources = [];
4243

44+
const currentSize = new Vector2();
45+
let currentPixelRatio = null;
46+
4347
//
4448

4549
const cameraL = new PerspectiveCamera();
@@ -176,6 +180,9 @@ class WebXRManager extends EventDispatcher {
176180

177181
scope.isPresenting = false;
178182

183+
renderer.setPixelRatio( currentPixelRatio );
184+
renderer.setSize( currentSize.width, currentSize.height, false );
185+
179186
scope.dispatchEvent( { type: 'sessionend' } );
180187

181188
}
@@ -263,6 +270,9 @@ class WebXRManager extends EventDispatcher {
263270

264271
}
265272

273+
currentPixelRatio = renderer.getPixelRatio();
274+
renderer.getSize( currentSize );
275+
266276
if ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {
267277

268278
const layerInit = {
@@ -277,6 +287,9 @@ class WebXRManager extends EventDispatcher {
277287

278288
session.updateRenderState( { baseLayer: glBaseLayer } );
279289

290+
renderer.setPixelRatio( 1 );
291+
renderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );
292+
280293
newRenderTarget = new WebGLRenderTarget(
281294
glBaseLayer.framebufferWidth,
282295
glBaseLayer.framebufferHeight,
@@ -314,6 +327,9 @@ class WebXRManager extends EventDispatcher {
314327

315328
session.updateRenderState( { layers: [ glProjLayer ] } );
316329

330+
renderer.setPixelRatio( 1 );
331+
renderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );
332+
317333
newRenderTarget = new WebGLRenderTarget(
318334
glProjLayer.textureWidth,
319335
glProjLayer.textureHeight,

0 commit comments

Comments
 (0)