Skip to content

Commit a03d112

Browse files
committed
Address review comments
1 parent e173bb9 commit a03d112

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/core/scene/a-scene.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class AScene extends AEntity {
5656
self.systems = {};
5757
self.systemNames = [];
5858
self.time = self.delta = 0;
59+
self.usedOfferSession = false;
5960

6061
self.behaviors = {tick: [], tock: []};
6162
self.hasLoaded = false;
@@ -270,14 +271,15 @@ class AScene extends AEntity {
270271
* @param {bool?} useAR - if true, try immersive-ar mode
271272
* @returns {Promise}
272273
*/
273-
enterVR (useAR, useOfferSession = false) {
274+
enterVR (useAR, useOfferSession) {
274275
var self = this;
275276
var vrDisplay;
276277
var vrManager = self.renderer.xr;
277278
var xrInit;
278279

279280
// Don't enter VR if already in VR.
280-
if (navigator.xr.offerSession === undefined) { return Promise.resolve('OfferSession is not supported.'); }
281+
if (useOfferSession && navigator.xr.offerSession === undefined) { return Promise.resolve('OfferSession is not supported.'); }
282+
if (self.usedOfferSession) { return Promise.resolve('OfferSession was already called.'); }
281283
if (this.is('vr-mode')) { return Promise.resolve('Already in VR.'); }
282284

283285
// Has VR.
@@ -296,9 +298,11 @@ class AScene extends AEntity {
296298
xrInit = this.sceneEl.systems.webxr.sessionConfiguration;
297299
return new Promise(function (resolve, reject) {
298300
var requestFunction = useOfferSession ? navigator.xr.offerSession.bind(navigator.xr) : navigator.xr.requestSession.bind(navigator.xr);
301+
self.usedOfferSession |= useOfferSession;
299302
requestFunction(xrMode, xrInit).then(
300303
function requestSuccess (xrSession) {
301304
self.xrSession = xrSession;
305+
self.usedOfferSession = false;
302306

303307
vrManager.layersEnabled = xrInit.requiredFeatures.indexOf('layers') !== -1;
304308
vrManager.setSession(xrSession).then(function () {

0 commit comments

Comments
 (0)