@@ -56,27 +56,26 @@ const DefaultUpperVerticalAngle = (30 / 180) * Math.PI
5656export function createXRLayer (
5757 src : XRLayerSrc ,
5858 state : XRState < any > ,
59+ originReferenceSpace : XRReferenceSpace ,
5960 xrManager : WebXRManager ,
6061 relativeTo : Object3D ,
6162 options : XRLayerOptions ,
6263 properties : XRLayerProperties ,
6364) {
6465 return src instanceof HTMLVideoElement
65- ? createXRVideoLayer ( src , state , relativeTo , options , properties )
66- : createXRNormalLayer ( src , state , xrManager , relativeTo , options , properties )
66+ ? createXRVideoLayer ( src , state , originReferenceSpace , relativeTo , options , properties )
67+ : createXRNormalLayer ( src , state . origin , originReferenceSpace , xrManager , relativeTo , options , properties )
6768}
6869
6970function createXRVideoLayer (
7071 src : HTMLVideoElement ,
7172 state : XRState < any > ,
73+ originReferenceSpace : XRReferenceSpace ,
7274 relativeTo : Object3D ,
7375 { invertStereo, layout, shape = 'quad' } : XRLayerOptions ,
7476 properties : XRLayerProperties = { } ,
7577) {
76- const space = getSpaceFromAncestors ( relativeTo , state . origin , state . originReferenceSpace , matrixHelper )
77- if ( space == null ) {
78- return undefined
79- }
78+ const space = getSpaceFromAncestors ( relativeTo , state . origin , originReferenceSpace , matrixHelper )
8079 const transform = matrixToRigidTransform ( matrixHelper , scaleHelper )
8180 const init : XRMediaCylinderLayerInit &
8281 XRMediaEquirectLayerInit &
@@ -90,24 +89,22 @@ function createXRVideoLayer(
9089 const fnName = `create${ capitalize ( shape ) } Layer` as const
9190 const layer = state . mediaBinding ?. [ fnName ] ( src , init )
9291 if ( layer == null ) {
93- return
92+ return undefined
9493 }
9594 updateXRLayerProperties ( layer , properties )
9695 return layer
9796}
9897
9998function createXRNormalLayer (
10099 src : Exclude < TexImageSource , VideoFrame | HTMLVideoElement > | WebGLRenderTarget ,
101- state : XRState < any > ,
100+ origin : Object3D | undefined ,
101+ originReferenceSpace : XRReferenceSpace ,
102102 xrManager : WebXRManager ,
103103 relativeTo : Object3D ,
104104 { shape = 'quad' , ...options } : XRLayerOptions ,
105105 properties : XRLayerProperties = { } ,
106106) {
107- const space = getSpaceFromAncestors ( relativeTo , state . origin , state . originReferenceSpace , matrixHelper )
108- if ( space == null ) {
109- return undefined
110- }
107+ const space = getSpaceFromAncestors ( relativeTo , origin , originReferenceSpace , matrixHelper )
111108 const transform = matrixToRigidTransform ( matrixHelper , scaleHelper )
112109 const init : XRCylinderLayerInit & XREquirectLayerInit & XRQuadLayerInit & { transform : XRRigidTransform } = {
113110 ...options ,
@@ -122,7 +119,7 @@ function createXRNormalLayer(
122119 const fnName = `create${ capitalize ( shape ) } Layer` as const
123120 const layer = xrManager . getBinding ( ) ?. [ fnName ] ( init )
124121 if ( layer == null ) {
125- return
122+ return undefined
126123 }
127124 updateXRLayerProperties ( layer , properties )
128125 return layer
0 commit comments