This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.
The exitPresent()
method of the VRDisplay
interface stops the VRDisplay
presenting a scene.
Syntax
vrDisplayInstance.exitPresent().then(function() {
// Do something after the presentation has ended
});
Parameters
None.
Return value
A promise that resolves once the presentation has ended. ' If the VRDisplay
is not presenting when exitPresent()
is called, the promise will reject.
Examples
if(navigator.getVRDisplays) {
console.log('WebVR 1.1 supported');
// Then get the displays attached to the computer
navigator.getVRDisplays().then(function(displays) {
// If a display is available, use it to present the scene
if(displays.length > 0) {
vrDisplay = displays[0];
console.log('Display found');
// Starting the presentation when the button is clicked: It can only be called in response to a user gesture
btn.addEventListener('click', function() {
if(btn.textContent === 'Start VR display') {
vrDisplay.requestPresent([{ source: canvas }]).then(function() {
console.log('Presenting to WebVR display');
// Set the canvas size to the size of the vrDisplay viewport
var leftEye = vrDisplay.getEyeParameters('left');
var rightEye = vrDisplay.getEyeParameters('right');
canvas.width = Math.max(leftEye.renderWidth, rightEye.renderWidth) * 2;
canvas.height = Math.max(leftEye.renderHeight, rightEye.renderHeight);
// stop the normal presentation, and start the vr presentation
window.cancelAnimationFrame(normalSceneFrame);
drawVRScene();
btn.textContent = 'Exit VR display';
});
} else {
vrDisplay.exitPresent();
console.log('Stopped presenting to WebVR display');
btn.textContent = 'Start VR display';
// Stop the VR presentation, and start the normal presentation
vrDisplay.cancelAnimationFrame(vrSceneFrame);
drawScene();
}
});
}
});
}
Note: You can see this complete code at raw-webgl-example.
Specifications
Specification | Status | Comment |
WebVR 1.1The definition of 'exitPresent()' in that specification. | Draft | Initial definition |
Browser compatibility
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
No support No |
Edge
No support 15 — 79 |
Firefox Full support 55 Full support 55 Notes' Windows support was enabled in Firefox 55. Full support 64 Notes' macOS support was enabled in Firefox 64. |
IE
No support No |
Opera
? |
Safari
No support No |
WebView Android
No support No |
Chrome Android No support 56 — 80 No support 56 — 80 Notes' Only works in an experimental version of Chrome. (Other builds won't return any devices when |
Firefox Android
Full support 55 |
Opera Android
? |
Safari iOS
? |
Samsung Internet Android Full support 6.0 Full support 6.0 Notes' Google Cardboard supported in Samsung Internet 7.0. |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
- Deprecated. Not for use in new websites.'
- Deprecated. Not for use in new websites.
- See implementation notes.'
- See implementation notes.
- User must explicitly enable this feature.'
- User must explicitly enable this feature.
See also
- WebVR API homepage
- MozVr.com — demos, downloads, and other resources from the Mozilla VR team.
VRDisplay.exitPresent() by Mozilla Contributors is licensed under CC-BY-SA 2.5.