1"use strict";(self.webpackChunkwebsite_docusaurus=self.webpackChunkwebsite_docusaurus||[]).push([["36453"],{41976(e,r,n){n.r(r),n.d(r,{metadata:()=>t,default:()=>x,frontMatter:()=>c,contentTitle:()=>l,toc:()=>d,assets:()=>o});var t=JSON.parse('{"id":"api-reference/experimental/webxr/README","title":"Experimental WebXR","description":"From v9.4","source":"@site/../docs/api-reference/experimental/webxr/README.md","sourceDirName":"api-reference/experimental/webxr","slug":"/api-reference/experimental/webxr/","permalink":"/docs/api-reference/experimental/webxr/","draft":false,"unlisted":false,"editUrl":"https://github.com/visgl/luma.gl/tree/master/docs/../docs/api-reference/experimental/webxr/README.md","tags":[],"version":"current","frontMatter":{},"sidebar":"defaultSidebar","previous":{"title":"VolumetricFireSimulation","permalink":"/docs/api-reference/experimental/volumetric-fire-simulation"},"next":{"title":"WebXRCameraTexture","permalink":"/docs/api-reference/experimental/webxr/webxr-camera-texture"}}'),a=n(62540),i=n(43023),s=n(22968);let c={},l="Experimental WebXR",o={},d=[{value:"Scope",id:"scope",level:2}];function p(e){let r={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"experimental-webxr",children:"Experimental WebXR"})}),"\n",(0,a.jsxs)(s.N,{children:[(0,a.jsx)(s.C,{tone:"version",children:"From v9.4"}),(0,a.jsx)(s.C,{tone:"experimental",children:"Experimental API"})]}),"\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.code,{children:"@luma.gl/experimental"})," exposes experimental WebGPU and WebGL WebXR session helpers. They stay outside ",(0,a.jsx)(r.code,{children:"@luma.gl/engine"})," because WebXR brings its own session lifecycle, frame scheduler, per-view rendering state, raw camera access, and future input/depth APIs."]}),"\n",(0,a.jsx)(r.h2,{id:"scope",children:"Scope"}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"/docs/api-reference/experimental/webxr/webxr-manager",children:(0,a.jsx)(r.code,{children:"WebXRAnimationFrameProvider"})})," drives an engine ",(0,a.jsx)(r.code,{children:"AnimationLoop"})," from ",(0,a.jsx)(r.code,{children:"XRSession.requestAnimationFrame()"}),"."]}),"\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"/docs/api-reference/experimental/webxr/webxr-manager",children:(0,a.jsx)(r.code,{children:"WebXRManager"})})," prepares WebGPU projection layers or an ",(0,a.jsx)(r.code,{children:"XRWebGLLayer"}),", then resolves per-view framebuffer, viewport, projection, and view matrix state."]}),"\n",(0,a.jsxs)(r.li,{children:[(0,a.jsx)(r.a,{href:"/docs/api-reference/experimental/webxr/webxr-camera-texture",children:(0,a.jsx)(r.code,{children:"WebXRCameraTexture"})})," binds WebXR Raw Camera Access as a borrowed read-only WebGL texture sampled through GLSL ",(0,a.jsx)(r.code,{children:"sampler2D"}),"."]}),"\n"]}),"\n",(0,a.jsx)(r.p,{children:"The experimental 9.4 API does not provide WebGPU raw camera textures, input sources, hit testing, anchors,\ndepth sensing, or non-projection layers."})]})}function x(e={}){let{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},22968(e,r,n){n.d(r,{C:()=>i,N:()=>s});var t=n(62540);n(63696);var a=n(68017);function i(e){let{children:r,label:n,tone:i="neutral"}=e;return(0,t.jsx)("span",{className:(0,a.A)("docs-status-badge","docs-status-badge--".concat(i)),"aria-label":n,title:n,children:r})}function s(e){let{children:r}=e;return(0,t.jsx)("p",{className:"docs-status-badges",children:r})}},43023(e,r,n){n.d(r,{R:()=>s,x:()=>c});var t=n(63696);let a={},i=t.createContext(a);function s(e){let r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.