1
1
/* functions called from unity */
2
2
mergeInto ( LibraryManager . library , {
3
3
InitXRSharedArray : function ( byteOffset , length ) {
4
+ Module . XRSharedArrayOffset = byteOffset ;
5
+ Module . XRSharedArrayLength = length ;
4
6
Module . XRSharedArray = new Float32Array ( buffer , byteOffset , length ) ;
5
7
document . dispatchEvent ( new CustomEvent ( 'UnityLoaded' , { detail : 'Ready' } ) ) ;
6
8
} ,
7
9
8
10
InitControllersArray : function ( byteOffset , length ) {
11
+ Module . ControllersArrayOffset = byteOffset ;
12
+ Module . ControllersArrayLength = length ;
9
13
Module . ControllersArray = new Float32Array ( buffer , byteOffset , length ) ;
10
14
} ,
11
15
12
16
InitHandsArray : function ( byteOffset , length ) {
17
+ Module . HandsArrayOffset = byteOffset ;
18
+ Module . HandsArrayLength = length ;
13
19
Module . HandsArray = new Float32Array ( buffer , byteOffset , length ) ;
14
20
} ,
15
21
16
22
InitViewerHitTestPoseArray : function ( byteOffset , length ) {
23
+ Module . ViewerHitTestPoseArrayOffset = byteOffset ;
24
+ Module . ViewerHitTestPoseArrayLength = length ;
17
25
Module . ViewerHitTestPoseArray = new Float32Array ( buffer , byteOffset , length ) ;
18
26
} ,
19
27
@@ -30,6 +38,9 @@ mergeInto(LibraryManager.library, {
30
38
document . addEventListener ( 'XRData' , function ( evt ) {
31
39
var data = evt . detail ;
32
40
var index = 0 ;
41
+ if ( Module . XRSharedArray . byteLength == 0 ) {
42
+ Module . XRSharedArray = new Float32Array ( buffer , Module . XRSharedArrayOffset , Module . XRSharedArrayLength ) ;
43
+ }
33
44
Object . keys ( data ) . forEach ( function ( key , i ) {
34
45
var dataLength = data [ key ] . length ;
35
46
if ( dataLength ) {
@@ -42,6 +53,9 @@ mergeInto(LibraryManager.library, {
42
53
document . addEventListener ( 'XRControllersData' , function ( evt ) {
43
54
var data = evt . detail ;
44
55
var index = 0 ;
56
+ if ( Module . ControllersArray . byteLength == 0 ) {
57
+ Module . ControllersArray = new Float32Array ( buffer , Module . ControllersArrayOffset , Module . ControllersArrayLength ) ;
58
+ }
45
59
Object . keys ( data ) . forEach ( function ( key , i ) {
46
60
Module . ControllersArray [ index ++ ] = data [ key ] . frame ;
47
61
Module . ControllersArray [ index ++ ] = data [ key ] . enabled ;
@@ -68,6 +82,9 @@ mergeInto(LibraryManager.library, {
68
82
document . addEventListener ( 'XRHandsData' , function ( evt ) {
69
83
var data = evt . detail ;
70
84
var index = 0 ;
85
+ if ( Module . HandsArray . byteLength == 0 ) {
86
+ Module . HandsArray = new Float32Array ( buffer , Module . HandsArrayOffset , Module . HandsArrayLength ) ;
87
+ }
71
88
Object . keys ( data ) . forEach ( function ( key , i ) {
72
89
Module . HandsArray [ index ++ ] = data [ key ] . frame ;
73
90
Module . HandsArray [ index ++ ] = data [ key ] . enabled ;
@@ -90,6 +107,9 @@ mergeInto(LibraryManager.library, {
90
107
document . addEventListener ( 'XRViewerHitTestPose' , function ( evt ) {
91
108
var data = evt . detail ;
92
109
var index = 0 ;
110
+ if ( Module . ViewerHitTestPoseArray . byteLength == 0 ) {
111
+ Module . ViewerHitTestPoseArray = new Float32Array ( buffer , Module . ViewerHitTestPoseArrayOffset , Module . ViewerHitTestPoseArrayLength ) ;
112
+ }
93
113
Module . ViewerHitTestPoseArray [ index ++ ] = data . viewerHitTestPose . frame ;
94
114
Module . ViewerHitTestPoseArray [ index ++ ] = data . viewerHitTestPose . available ;
95
115
Module . ViewerHitTestPoseArray [ index ++ ] = data . viewerHitTestPose . position [ 0 ] ;
0 commit comments