This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The VRLayerInit interface (dictionary) of the WebVR API represents a content layer (an HTMLCanvasElement or OffscreenCanvas) that you want to present in a VR display.
You can retrieve VRLayerInit objects using VRDisplay.getLayers(), and present them using the VRDisplay.requestPresent() method.
VRLayerInit.leftBoundsVRDisplay.VRLayerInit.rightBoundsVRDisplay.VRLayerInit.sourceVRDisplay when VRDisplay.submitFrame() is called.// currently returns an empty array
var layers = vrDisplay.getLayers();
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() {
vrDisplay.requestPresent([{ source: canvas }]).then(function() {
console.log('Presenting to WebVR display');
// Here it returns an array of VRLayerInit objects
var layers = vrDisplay.getLayers();
...
});
});
}
});
} VRLayerInit objects look something like this:
{
leftBounds : [ ... ],
rightBounds: [ ... ],
source: canvasReference
} Note: The canvasReference refers to the <canvas> element itself, not the WebGL context associated with the canvas. The other two members are arrays
| Specification | Status | Comment |
|---|---|---|
| WebVR 1.1 The definition of 'VRLayerInit' in that specification. | Draft | Initial definition |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | No | Yes | 55
|
No | ? | ? |
leftBounds
|
No | Yes | 55
|
No | ? | ? |
rightBounds
|
No | Yes | 55
|
No | ? | ? |
source
|
No | Yes | 55
|
No | ? | ? |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | No | 56
|
? | ? | ? | ? | 6.0 |
leftBounds
|
No | 56
|
? | ? | ? | ? | 6.0 |
rightBounds
|
No | 56
|
? | ? | ? | ? | 6.0 |
source
|
No | 56
|
? | ? | ? | ? | 6.0 |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VRLayerInit