Skip to content

Commit 6a4ea77

Browse files
authored
Merge pull request #4022 from dmarcos/fixExokit
Consider case when both WebVR and WebXR are available
2 parents e1c2826 + 0d4885c commit 6a4ea77

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

‎src/core/scene/a-scene.js‎

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,22 +138,24 @@ module.exports.AScene = registerElement('a-scene', {
138138
this.pointerRestrictedBound = function () { self.pointerRestricted(); };
139139
this.pointerUnrestrictedBound = function () { self.pointerUnrestricted(); };
140140

141-
// Enter VR on `vrdisplayactivate` (e.g. putting on Rift headset).
142-
window.addEventListener('vrdisplayactivate', this.enterVRBound);
141+
if (!isWebXRAvailable) {
142+
// Enter VR on `vrdisplayactivate` (e.g. putting on Rift headset).
143+
window.addEventListener('vrdisplayactivate', this.enterVRBound);
143144

144-
// Exit VR on `vrdisplaydeactivate` (e.g. taking off Rift headset).
145-
window.addEventListener('vrdisplaydeactivate', this.exitVRBound);
145+
// Exit VR on `vrdisplaydeactivate` (e.g. taking off Rift headset).
146+
window.addEventListener('vrdisplaydeactivate', this.exitVRBound);
146147

147-
// Exit VR on `vrdisplaydisconnect` (e.g. unplugging Rift headset).
148-
window.addEventListener('vrdisplaydisconnect', this.exitVRTrueBound);
148+
// Exit VR on `vrdisplaydisconnect` (e.g. unplugging Rift headset).
149+
window.addEventListener('vrdisplaydisconnect', this.exitVRTrueBound);
149150

150-
// Register for mouse restricted events while in VR
151-
// (e.g. mouse no longer available on desktop 2D view)
152-
window.addEventListener('vrdisplaypointerrestricted', this.pointerRestrictedBound);
151+
// Register for mouse restricted events while in VR
152+
// (e.g. mouse no longer available on desktop 2D view)
153+
window.addEventListener('vrdisplaypointerrestricted', this.pointerRestrictedBound);
153154

154-
// Register for mouse unrestricted events while in VR
155-
// (e.g. mouse once again available on desktop 2D view)
156-
window.addEventListener('vrdisplaypointerunrestricted', this.pointerUnrestrictedBound);
155+
// Register for mouse unrestricted events while in VR
156+
// (e.g. mouse once again available on desktop 2D view)
157+
window.addEventListener('vrdisplaypointerunrestricted', this.pointerUnrestrictedBound);
158+
}
157159
},
158160
writable: window.debug
159161
},

‎src/core/scene/loadingScreen.js‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ var LOADER_TITLE_CLASS = 'a-loader-title';
1212
// It catches vrdisplayactivate early to ensure we can enter VR mode after the scene loads.
1313
window.addEventListener('vrdisplayactivate', function () {
1414
var vrManager = sceneEl.renderer.vr;
15-
var vrDisplay = utils.device.getVRDisplay();
15+
var vrDisplay;
1616

17+
// WebXR takes priority if available.
18+
if (navigator.xr) { return; }
19+
20+
vrDisplay = utils.device.getVRDisplay();
1721
vrManager.setDevice(vrDisplay);
1822
vrManager.enabled = true;
1923
if (!vrDisplay.isPresenting) {

0 commit comments

Comments
 (0)