diff --git a/src/core/scene/a-scene.js b/src/core/scene/a-scene.js index d41dd484882..e2a3d0a95b4 100644 --- a/src/core/scene/a-scene.js +++ b/src/core/scene/a-scene.js @@ -138,22 +138,24 @@ module.exports.AScene = registerElement('a-scene', { this.pointerRestrictedBound = function () { self.pointerRestricted(); }; this.pointerUnrestrictedBound = function () { self.pointerUnrestricted(); }; - // Enter VR on `vrdisplayactivate` (e.g. putting on Rift headset). - window.addEventListener('vrdisplayactivate', this.enterVRBound); + if (!isWebXRAvailable) { + // Enter VR on `vrdisplayactivate` (e.g. putting on Rift headset). + window.addEventListener('vrdisplayactivate', this.enterVRBound); - // Exit VR on `vrdisplaydeactivate` (e.g. taking off Rift headset). - window.addEventListener('vrdisplaydeactivate', this.exitVRBound); + // Exit VR on `vrdisplaydeactivate` (e.g. taking off Rift headset). + window.addEventListener('vrdisplaydeactivate', this.exitVRBound); - // Exit VR on `vrdisplaydisconnect` (e.g. unplugging Rift headset). - window.addEventListener('vrdisplaydisconnect', this.exitVRTrueBound); + // Exit VR on `vrdisplaydisconnect` (e.g. unplugging Rift headset). + window.addEventListener('vrdisplaydisconnect', this.exitVRTrueBound); - // Register for mouse restricted events while in VR - // (e.g. mouse no longer available on desktop 2D view) - window.addEventListener('vrdisplaypointerrestricted', this.pointerRestrictedBound); + // Register for mouse restricted events while in VR + // (e.g. mouse no longer available on desktop 2D view) + window.addEventListener('vrdisplaypointerrestricted', this.pointerRestrictedBound); - // Register for mouse unrestricted events while in VR - // (e.g. mouse once again available on desktop 2D view) - window.addEventListener('vrdisplaypointerunrestricted', this.pointerUnrestrictedBound); + // Register for mouse unrestricted events while in VR + // (e.g. mouse once again available on desktop 2D view) + window.addEventListener('vrdisplaypointerunrestricted', this.pointerUnrestrictedBound); + } }, writable: window.debug }, diff --git a/src/core/scene/loadingScreen.js b/src/core/scene/loadingScreen.js index 82a34e0cdcb..f214aa4e4c3 100644 --- a/src/core/scene/loadingScreen.js +++ b/src/core/scene/loadingScreen.js @@ -12,8 +12,12 @@ var LOADER_TITLE_CLASS = 'a-loader-title'; // It catches vrdisplayactivate early to ensure we can enter VR mode after the scene loads. window.addEventListener('vrdisplayactivate', function () { var vrManager = sceneEl.renderer.vr; - var vrDisplay = utils.device.getVRDisplay(); + var vrDisplay; + // WebXR takes priority if available. + if (navigator.xr) { return; } + + vrDisplay = utils.device.getVRDisplay(); vrManager.setDevice(vrDisplay); vrManager.enabled = true; if (!vrDisplay.isPresenting) {