This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The XRWebGLBinding() constructor creates and returns a new XRWebGLBinding object.
new XRWebGLBinding(session, context)
sessionAn XRSession object specifying the WebXR session which will be rendered using the WebGL context.
contextA WebGLRenderingContext or WebGL2RenderingContext identifying the WebGL drawing context to use for rendering the scene for the specified WebXR session.
A new XRWebGLBinding.
InvalidStateError DOMException
Thrown if the new XRWebGLBinding could not be created due to one of the following situations:
XRSession specified by session has already been stopped.context, has been lost for any reason, such as a GPU switch or reset.session is immersive but the context is not WebXR compatible.const canvasElement = document.querySelector(".output-canvas");
const gl = canvasElement.getContext("webgl");
const xrSession = await navigator.xr.requestSession("immersive-vr");
await gl.makeXRCompatible();
const glBinding = new XRWebGLBinding(xrSession, gl);
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
XRWebGLBinding |
89 | 89 | No | 75 | No | 89 | No | 63 | No | 15.0 | 89 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLBinding/XRWebGLBinding