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.leftBounds
VRDisplay
.VRLayerInit.rightBounds
VRDisplay
.VRLayerInit.source
VRDisplay
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