XRWebGLBinding.createProjectionLayer()
The createProjectionLayer() method of the XRWebGLBinding interface returns an XRProjectionLayer object which is a layer that fills the entire view of the observer and is refreshed close to the device's native frame rate.
Syntax
createProjectionLayer(options)
Parameters
options-
An object to configure the
XRProjectionLayer.-
textureTypeOptional: An string defining the type of texture the layer will have. Possible values:-
texture: The textures ofXRWebGLSubImagewill be of typegl.TEXTURE_2D. -
texture-array: the textures ofXRWebGLSubImagewill be of typegl.TEXTURE_2D_ARRAY(WebGL 2 contexts only).
texture. -
-
colorFormatOptional: AGLenumdefining the data type of the color texture data. Possible values:gl.RGBgl.RGBA
EXT_sRGBextension enabled:ext.SRGB_EXText.SRGB_ALPHA_EXT
WebGL2RenderingContextcontexts:gl.RGBA8gl.RGB8gl.SRGB8gl.RGB8_ALPHA8
gl.RGBA. -
depthFormatOptional: AGLenumdefining the data type of the depth texture data or0indicating that the layer should not provide a depth texture. (In that caseXRProjectionLayer.ignoreDepthValueswill betrue.) Possible values withinWebGLRenderingContextcontexts with theWEBGL_depth_textureextension enabled, or withinWebGL2RenderingContextcontexts (no extension required):gl.DEPTH_COMPONENTgl.DEPTH_STENCIL
WebGL2RenderingContextcontexts:gl.DEPTH_COMPONENT24gl.DEPTH24_STENCIL24
gl.DEPTH_COMPONENT.-
scaleFactorOptional: A floating-point value which is used to scale the layer during compositing. A value of1.0represents the default pixel size for the frame buffer. (See alsoXRWebGLLayer.getNativeFramebufferScaleFactor().) Unlike other layers, theXRProjectionLayercan't be created with an explicit pixel width and height, because the size is inferred by the hardware. (Projection layers fill the observer's entire view.)
-
Return value
An XRProjectionLayer object.
Examples
Creating an XRProjectionLayer in a WebGL 2 context
The textureType option allows allocating a texture array instead, in which every XRView will be rendered into a separate level of the array. This allows for some rendering optimizations, such as the use of the OVR_multiview2 extension available in WebGL 2 contexts.
function onXRSessionStarted(xrSession) { const glCanvas = document.createElement("canvas"); const gl = glCanvas.getContext("webgl2", { xrCompatible: true }); const xrGlBinding = new XRWebGLBinding(xrSession, gl); const projectionLayer = xrGlBinding.createProjectionLayer({ textureType: "texture-array" }); xrSession.updateRenderState({ layers: [projectionLayer] }); }
Specifications
No specification data found for api.XRWebGLBinding.createProjectionLayer.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
Browser compatibility
No compatibility data found for api.XRWebGLBinding.createProjectionLayer.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLBinding/createProjectionLayer