XRWebGLLayerInit.depth

Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

When using the XRWebGLLayer() constructor to create a new WebGL rendering layer for WebXR, providing as the layerInit parameter an object whose depth property is false will request that the new layer be created without a depth buffer.

Syntax

let layerInit = {
  depth: false
};
let glLayer = new XRWebGLLayer(xrSession, gl, layerInit);

let glLayer = new XRWebGLLayer(xrSession, gl, { depth: false });

Value

A Boolean which can be set to false to specify that the new WebGL layer should not have a depth buffer. This means that the only source for depth information is the vertex coordinates, and reduces the accuracy and quality of rendering, but may potentially affect the performance of rendering as well.

The default value is true.

Usage notes

This property differs from ignoreDepthValues in that a layer created with ignoreDepthValues set to true may still have a depth buffer, but will not make use of it.

You can determine whether or not the depth buffer is being used by a given WebGL rendering layer during your XR session by checking the value returned by XRWebGLLayer.ignoreDepthValues. If this is true, then the depth buffer is either not present or is being ignored.

if (glLayer.ignoreDepthValues) {
  /* not using the depth buffer */
}

Example

In this example, a new XRWebGLLayer is created for a WebXR session, xrSession, without a depth buffer.

xrSession.updateRenderState({
  baseLayer: new XRWebGLLayer(xrSession, gl, {
     depth: false
  });
});

Specifications

Specification Status Comment
WebXR Device API
The definition of 'XRWebGLLayerInit.depth' in that specification.
Working Draft Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
depthChrome Full support 79Edge Full support 79Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android Full support 79Chrome Android Full support 79Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 11.2

Legend

Full support
Full support
No support
No support

See also