@@ -56,27 +56,26 @@ const DefaultUpperVerticalAngle = (30 / 180) * Math.PI
56
56
export function createXRLayer (
57
57
src : XRLayerSrc ,
58
58
state : XRState < any > ,
59
+ originReferenceSpace : XRReferenceSpace ,
59
60
xrManager : WebXRManager ,
60
61
relativeTo : Object3D ,
61
62
options : XRLayerOptions ,
62
63
properties : XRLayerProperties ,
63
64
) {
64
65
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 )
67
68
}
68
69
69
70
function createXRVideoLayer (
70
71
src : HTMLVideoElement ,
71
72
state : XRState < any > ,
73
+ originReferenceSpace : XRReferenceSpace ,
72
74
relativeTo : Object3D ,
73
75
{ invertStereo, layout, shape = 'quad' } : XRLayerOptions ,
74
76
properties : XRLayerProperties = { } ,
75
77
) {
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 )
80
79
const transform = matrixToRigidTransform ( matrixHelper , scaleHelper )
81
80
const init : XRMediaCylinderLayerInit &
82
81
XRMediaEquirectLayerInit &
@@ -90,24 +89,22 @@ function createXRVideoLayer(
90
89
const fnName = `create${ capitalize ( shape ) } Layer` as const
91
90
const layer = state . mediaBinding ?. [ fnName ] ( src , init )
92
91
if ( layer == null ) {
93
- return
92
+ return undefined
94
93
}
95
94
updateXRLayerProperties ( layer , properties )
96
95
return layer
97
96
}
98
97
99
98
function createXRNormalLayer (
100
99
src : Exclude < TexImageSource , VideoFrame | HTMLVideoElement > | WebGLRenderTarget ,
101
- state : XRState < any > ,
100
+ origin : Object3D | undefined ,
101
+ originReferenceSpace : XRReferenceSpace ,
102
102
xrManager : WebXRManager ,
103
103
relativeTo : Object3D ,
104
104
{ shape = 'quad' , ...options } : XRLayerOptions ,
105
105
properties : XRLayerProperties = { } ,
106
106
) {
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 )
111
108
const transform = matrixToRigidTransform ( matrixHelper , scaleHelper )
112
109
const init : XRCylinderLayerInit & XREquirectLayerInit & XRQuadLayerInit & { transform : XRRigidTransform } = {
113
110
...options ,
@@ -122,7 +119,7 @@ function createXRNormalLayer(
122
119
const fnName = `create${ capitalize ( shape ) } Layer` as const
123
120
const layer = xrManager . getBinding ( ) ?. [ fnName ] ( init )
124
121
if ( layer == null ) {
125
- return
122
+ return undefined
126
123
}
127
124
updateXRLayerProperties ( layer , properties )
128
125
return layer
0 commit comments