web api instance property
XRWebGLSubImage: colorTexture property
Limited availability
The read-only colorTexture property of the XRWebGLSubImage interface represents the color WebGLTexture object for the XRCompositionLayer to render.
Value
An opaque WebGLTexture. See WebXR opaque textures for details.
Examples
Using colorTexture
The colorTexture property can be passed to framebufferTextureLayer() to attach the color texture to a framebuffer.
const xrGlBinding = new XRWebGLBinding(xrSession, gl);
const layer = xrGlBinding.createProjectionLayer({
textureType: "texture-array",
});
const framebuffer = gl.createFramebuffer();
xrSession.updateRenderState({ layers: [layer] });
xrSession.requestAnimationFrame(onXRFrame);
function onXRFrame(time, xrFrame) {
xrSession.requestAnimationFrame(onXRFrame);
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
const viewport = xrGlBinding.getSubImage(layer, xrFrame).viewport;
gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
for (const view in xrViewerPose.views) {
const subImage = xrGlBinding.getViewSubImage(layer, view);
gl.framebufferTextureLayer(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
subImage.colorTexture,
0,
subImage.imageIndex,
);
gl.framebufferTextureLayer(
gl.FRAMEBUFFER,
gl.DEPTH_ATTACHMENT,
subImage.depthStencilTexture,
0,
subImage.imageIndex,
);
// Render from the viewpoint of xrView
}
}
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.