Skip to content

Commit 455ee2f

Browse files
authored
Merge pull request #64 from De-Panther/refactor_all
Refactors
2 parents fd98d97 + 8e7bdd3 commit 455ee2f

File tree

13 files changed

+94
-109
lines changed

13 files changed

+94
-109
lines changed

Assets/WebGLTemplates/WebXR/index.html

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@
1414
if (!UnityLoader.SystemInfo.hasWebGL) {
1515
unityInstance.popup('Your browser does not support WebGL',
1616
[{text: 'OK', callback: onerror}]);
17-
} else if (['Edge', 'Firefox', 'Chrome', 'Safari'].indexOf(UnityLoader.SystemInfo.browser) == -1 && UnityLoader.SystemInfo.os != 'iOS') {
18-
unityInstance.popup([
19-
UnityLoader.SystemInfo.os,
20-
UnityLoader.SystemInfo.browser,
21-
'No support for Unity WebGL content'
22-
].join(' '), [{text: 'OK', callback: onsuccess}]);
2317
} else {
2418
onsuccess();
2519
}

Assets/WebGLTemplates/WebXR/webxr.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,10 @@
133133
this.didNotifyUnity = false;
134134
this.isARSupported = false;
135135
this.isVRSupported = false;
136-
this.rAFCB = null;
137136
this.onInputEvent = null;
138137
this.waitingHandheldARHack = false;
138+
this.BrowserObject = null;
139+
this.JSEventsObject = null;
139140
this.init();
140141
}
141142

@@ -317,19 +318,19 @@
317318
}
318319
switch (xrInputSourceEvent.type) {
319320
case "select": // mousemove 5
320-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
321+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
321322
new XRMouseEvent("mousemove", this.canvas, xPercentage, yPercentage, 0));
322323
break;
323324
case "selectstart": // mousedown 4
324325
this.xrData.handHeldMove = true;
325-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
326+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
326327
new XRMouseEvent("mousemove", this.canvas, xPercentage, yPercentage, 0));
327-
unityInstance.Module.InternalJSEvents.eventHandlers[4].eventListenerFunc(
328+
this.JSEventsObject.eventHandlers[4].eventListenerFunc(
328329
new XRMouseEvent("mousedown", this.canvas, xPercentage, yPercentage, 0));
329330
break;
330331
case "selectend": // mouseup 3
331332
this.xrData.handHeldMove = false;
332-
unityInstance.Module.InternalJSEvents.eventHandlers[3].eventListenerFunc(
333+
this.JSEventsObject.eventHandlers[3].eventListenerFunc(
333334
new XRMouseEvent("mouseup", this.canvas, xPercentage, yPercentage, 0));
334335
break;
335336
}
@@ -405,11 +406,9 @@
405406
this.ctx = this.gameInstance.Module.ctx;
406407

407408
var thisXRMananger = this;
408-
this.gameInstance.Module.InternalBrowser.requestAnimationFrame = function (func) {
409-
if (!thisXRMananger.rAFCB)
410-
{
411-
thisXRMananger.rAFCB=func;
412-
}
409+
this.JSEventsObject = this.gameInstance.Module.WebXR.GetJSEventsObject();
410+
this.BrowserObject = this.gameInstance.Module.WebXR.GetBrowserObject();
411+
this.BrowserObject.requestAnimationFrame = function (func) {
413412
if (thisXRMananger.xrSession && thisXRMananger.xrSession.isInSession) {
414413
return thisXRMananger.xrSession.requestAnimationFrame((time, xrFrame) =>
415414
{
@@ -603,7 +602,7 @@
603602
} else if (xrData.handHeldMove && inputSource.gamepad && inputSource.gamepad.axes) {
604603
if (xrData.handHeldMove)
605604
{
606-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
605+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
607606
new XRMouseEvent("mousemove", this.canvas,
608607
(inputSource.gamepad.axes[0] + 1.0) * 0.5,
609608
(inputSource.gamepad.axes[1] + 1.0) * 0.5, 0));
@@ -674,7 +673,7 @@
674673
if (session.isImmersive)
675674
{
676675
// Inform the session that we're ready to begin drawing.
677-
this.gameInstance.Module.InternalBrowser.requestAnimationFrame(this.rAFCB);
676+
this.BrowserObject.requestAnimationFrame(this.BrowserObject.mainLoop.runner);
678677
}
679678
});
680679
}

Assets/WebGLTemplates/WebXRFullView/index.html

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@
1515
if (!UnityLoader.SystemInfo.hasWebGL) {
1616
unityInstance.popup('Your browser does not support WebGL',
1717
[{text: 'OK', callback: onerror}]);
18-
} else if (['Edge', 'Firefox', 'Chrome', 'Safari'].indexOf(UnityLoader.SystemInfo.browser) == -1 && UnityLoader.SystemInfo.os != 'iOS') {
19-
unityInstance.popup([
20-
UnityLoader.SystemInfo.os,
21-
UnityLoader.SystemInfo.browser,
22-
'No support for Unity WebGL content'
23-
].join(' '), [{text: 'OK', callback: onsuccess}]);
2418
} else {
2519
onsuccess();
2620
}

Assets/WebGLTemplates/WebXRFullView/webxr.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,10 @@
133133
this.didNotifyUnity = false;
134134
this.isARSupported = false;
135135
this.isVRSupported = false;
136-
this.rAFCB = null;
137136
this.onInputEvent = null;
138137
this.waitingHandheldARHack = false;
138+
this.BrowserObject = null;
139+
this.JSEventsObject = null;
139140
this.init();
140141
}
141142

@@ -317,19 +318,19 @@
317318
}
318319
switch (xrInputSourceEvent.type) {
319320
case "select": // mousemove 5
320-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
321+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
321322
new XRMouseEvent("mousemove", this.canvas, xPercentage, yPercentage, 0));
322323
break;
323324
case "selectstart": // mousedown 4
324325
this.xrData.handHeldMove = true;
325-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
326+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
326327
new XRMouseEvent("mousemove", this.canvas, xPercentage, yPercentage, 0));
327-
unityInstance.Module.InternalJSEvents.eventHandlers[4].eventListenerFunc(
328+
this.JSEventsObject.eventHandlers[4].eventListenerFunc(
328329
new XRMouseEvent("mousedown", this.canvas, xPercentage, yPercentage, 0));
329330
break;
330331
case "selectend": // mouseup 3
331332
this.xrData.handHeldMove = false;
332-
unityInstance.Module.InternalJSEvents.eventHandlers[3].eventListenerFunc(
333+
this.JSEventsObject.eventHandlers[3].eventListenerFunc(
333334
new XRMouseEvent("mouseup", this.canvas, xPercentage, yPercentage, 0));
334335
break;
335336
}
@@ -405,11 +406,9 @@
405406
this.ctx = this.gameInstance.Module.ctx;
406407

407408
var thisXRMananger = this;
408-
this.gameInstance.Module.InternalBrowser.requestAnimationFrame = function (func) {
409-
if (!thisXRMananger.rAFCB)
410-
{
411-
thisXRMananger.rAFCB=func;
412-
}
409+
this.JSEventsObject = this.gameInstance.Module.WebXR.GetJSEventsObject();
410+
this.BrowserObject = this.gameInstance.Module.WebXR.GetBrowserObject();
411+
this.BrowserObject.requestAnimationFrame = function (func) {
413412
if (thisXRMananger.xrSession && thisXRMananger.xrSession.isInSession) {
414413
return thisXRMananger.xrSession.requestAnimationFrame((time, xrFrame) =>
415414
{
@@ -603,7 +602,7 @@
603602
} else if (xrData.handHeldMove && inputSource.gamepad && inputSource.gamepad.axes) {
604603
if (xrData.handHeldMove)
605604
{
606-
unityInstance.Module.InternalJSEvents.eventHandlers[5].eventListenerFunc(
605+
this.JSEventsObject.eventHandlers[5].eventListenerFunc(
607606
new XRMouseEvent("mousemove", this.canvas,
608607
(inputSource.gamepad.axes[0] + 1.0) * 0.5,
609608
(inputSource.gamepad.axes[1] + 1.0) * 0.5, 0));
@@ -674,7 +673,7 @@
674673
if (session.isImmersive)
675674
{
676675
// Inform the session that we're ready to begin drawing.
677-
this.gameInstance.Module.InternalBrowser.requestAnimationFrame(this.rAFCB);
676+
this.BrowserObject.requestAnimationFrame(this.BrowserObject.mainLoop.runner);
678677
}
679678
});
680679
}

Assets/WebXR/Plugins/WebGL/webxr.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
#include "emscripten.h"
33

44
typedef void (*webxr_void)();
5-
typedef void (*webxr_void_int)();
5+
typedef void (*webxr_void_int)(int32_t);
66
typedef void (*webxr_void_int_float4_float4)(int32_t, float, float, float, float, float, float, float, float);
7-
typedef void (*webxr_void_string)();
7+
typedef void (*webxr_void_string)(const char *ptr);
88

99
webxr_void_int_float4_float4 on_start_ar_ref;
1010
webxr_void_int on_start_vr_ref;
Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
/* functions called from unity */
22
mergeInto(LibraryManager.library, {
33
InitXRSharedArray: function(byteOffset, length) {
4-
XRSharedArray = new Float32Array(buffer, byteOffset, length);
4+
Module.XRSharedArray = new Float32Array(buffer, byteOffset, length);
55
document.dispatchEvent(new CustomEvent('UnityLoaded', {detail: 'Ready'}));
66
},
77

88
InitControllersArray: function(byteOffset, length) {
9-
ControllersArray = new Float32Array(buffer, byteOffset, length);
9+
Module.ControllersArray = new Float32Array(buffer, byteOffset, length);
1010
},
1111

1212
InitHandsArray: function(byteOffset, length) {
13-
HandsArray = new Float32Array(buffer, byteOffset, length);
13+
Module.HandsArray = new Float32Array(buffer, byteOffset, length);
1414
},
1515

1616
InitViewerHitTestPoseArray: function(byteOffset, length) {
17-
ViewerHitTestPoseArray = new Float32Array(buffer, byteOffset, length);
17+
Module.ViewerHitTestPoseArray = new Float32Array(buffer, byteOffset, length);
1818
},
1919

2020
ToggleViewerHitTest: function() {
@@ -34,7 +34,7 @@ mergeInto(LibraryManager.library, {
3434
var dataLength = data[key].length;
3535
if (dataLength) {
3636
for (var x = 0; x < dataLength; x++) {
37-
XRSharedArray[index++] = data[key][x];
37+
Module.XRSharedArray[index++] = data[key][x];
3838
}
3939
}
4040
});
@@ -43,62 +43,62 @@ mergeInto(LibraryManager.library, {
4343
var data = evt.detail;
4444
var index = 0;
4545
Object.keys(data).forEach(function (key, i) {
46-
ControllersArray[index++] = data[key].frame;
47-
ControllersArray[index++] = data[key].enabled;
48-
ControllersArray[index++] = data[key].hand;
49-
ControllersArray[index++] = data[key].positionX;
50-
ControllersArray[index++] = data[key].positionY;
51-
ControllersArray[index++] = data[key].positionZ;
52-
ControllersArray[index++] = data[key].rotationX;
53-
ControllersArray[index++] = data[key].rotationY;
54-
ControllersArray[index++] = data[key].rotationZ;
55-
ControllersArray[index++] = data[key].rotationW;
56-
ControllersArray[index++] = data[key].trigger;
57-
ControllersArray[index++] = data[key].squeeze;
58-
ControllersArray[index++] = data[key].thumbstick;
59-
ControllersArray[index++] = data[key].thumbstickX;
60-
ControllersArray[index++] = data[key].thumbstickY;
61-
ControllersArray[index++] = data[key].touchpad;
62-
ControllersArray[index++] = data[key].touchpadX;
63-
ControllersArray[index++] = data[key].touchpadY;
64-
ControllersArray[index++] = data[key].buttonA;
65-
ControllersArray[index++] = data[key].buttonB;
46+
Module.ControllersArray[index++] = data[key].frame;
47+
Module.ControllersArray[index++] = data[key].enabled;
48+
Module.ControllersArray[index++] = data[key].hand;
49+
Module.ControllersArray[index++] = data[key].positionX;
50+
Module.ControllersArray[index++] = data[key].positionY;
51+
Module.ControllersArray[index++] = data[key].positionZ;
52+
Module.ControllersArray[index++] = data[key].rotationX;
53+
Module.ControllersArray[index++] = data[key].rotationY;
54+
Module.ControllersArray[index++] = data[key].rotationZ;
55+
Module.ControllersArray[index++] = data[key].rotationW;
56+
Module.ControllersArray[index++] = data[key].trigger;
57+
Module.ControllersArray[index++] = data[key].squeeze;
58+
Module.ControllersArray[index++] = data[key].thumbstick;
59+
Module.ControllersArray[index++] = data[key].thumbstickX;
60+
Module.ControllersArray[index++] = data[key].thumbstickY;
61+
Module.ControllersArray[index++] = data[key].touchpad;
62+
Module.ControllersArray[index++] = data[key].touchpadX;
63+
Module.ControllersArray[index++] = data[key].touchpadY;
64+
Module.ControllersArray[index++] = data[key].buttonA;
65+
Module.ControllersArray[index++] = data[key].buttonB;
6666
});
6767
});
6868
document.addEventListener('XRHandsData', function(evt) {
6969
var data = evt.detail;
7070
var index = 0;
7171
Object.keys(data).forEach(function (key, i) {
72-
HandsArray[index++] = data[key].frame;
73-
HandsArray[index++] = data[key].enabled;
74-
HandsArray[index++] = data[key].hand;
75-
HandsArray[index++] = data[key].trigger;
76-
HandsArray[index++] = data[key].squeeze;
72+
Module.HandsArray[index++] = data[key].frame;
73+
Module.HandsArray[index++] = data[key].enabled;
74+
Module.HandsArray[index++] = data[key].hand;
75+
Module.HandsArray[index++] = data[key].trigger;
76+
Module.HandsArray[index++] = data[key].squeeze;
7777
for (var j = 0; j < 25; j++) {
78-
HandsArray[index++] = data[key].joints[j].enabled;
79-
HandsArray[index++] = data[key].joints[j].position[0];
80-
HandsArray[index++] = data[key].joints[j].position[1];
81-
HandsArray[index++] = data[key].joints[j].position[2];
82-
HandsArray[index++] = data[key].joints[j].rotation[0];
83-
HandsArray[index++] = data[key].joints[j].rotation[1];
84-
HandsArray[index++] = data[key].joints[j].rotation[2];
85-
HandsArray[index++] = data[key].joints[j].rotation[3];
86-
HandsArray[index++] = data[key].joints[j].radius;
78+
Module.HandsArray[index++] = data[key].joints[j].enabled;
79+
Module.HandsArray[index++] = data[key].joints[j].position[0];
80+
Module.HandsArray[index++] = data[key].joints[j].position[1];
81+
Module.HandsArray[index++] = data[key].joints[j].position[2];
82+
Module.HandsArray[index++] = data[key].joints[j].rotation[0];
83+
Module.HandsArray[index++] = data[key].joints[j].rotation[1];
84+
Module.HandsArray[index++] = data[key].joints[j].rotation[2];
85+
Module.HandsArray[index++] = data[key].joints[j].rotation[3];
86+
Module.HandsArray[index++] = data[key].joints[j].radius;
8787
}
8888
});
8989
});
9090
document.addEventListener('XRViewerHitTestPose', function(evt) {
9191
var data = evt.detail;
9292
var index = 0;
93-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.frame;
94-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.available;
95-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[0];
96-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[1];
97-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[2];
98-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[0];
99-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[1];
100-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[2];
101-
ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[3];
93+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.frame;
94+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.available;
95+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[0];
96+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[1];
97+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.position[2];
98+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[0];
99+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[1];
100+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[2];
101+
Module.ViewerHitTestPoseArray[index++] = data.viewerHitTestPose.rotation[3];
102102
});
103103
}
104104
});

Assets/WebXR/Plugins/WebGL/webxr.jspre

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
setTimeout(function () {
2-
Module['InternalBrowser'] = Browser || {};
3-
Module["InternalJSEvents"] = JSEvents || {};
42
if (GL && GL.createContext)
53
{
64
GL.createContextOld = GL.createContext;
@@ -23,6 +21,14 @@ setTimeout(function () {
2321

2422
Module['WebXR'] = Module['WebXR'] || {};
2523

24+
Module['WebXR'].GetBrowserObject = function () {
25+
return Browser;
26+
}
27+
28+
Module['WebXR'].GetJSEventsObject = function () {
29+
return JSEvents;
30+
}
31+
2632
Module['WebXR'].OnStartAR = function (views_count, left_rect, right_rect) {
2733
this.OnStartARInternal = this.OnStartARInternal || Module.cwrap("on_start_ar", null, ["number",
2834
"number", "number", "number", "number",

Assets/WebXR/Samples/Desert/Prefabs/WebXRCameraSet.prefab

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1889,7 +1889,7 @@ Camera:
18891889
m_GameObject: {fileID: 3250837035476248814}
18901890
m_Enabled: 1
18911891
serializedVersion: 2
1892-
m_ClearFlags: 3
1892+
m_ClearFlags: 4
18931893
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
18941894
m_projectionMatrixMode: 1
18951895
m_GateFitMode: 2
@@ -1963,7 +1963,7 @@ Camera:
19631963
m_GameObject: {fileID: 6032564905858711458}
19641964
m_Enabled: 1
19651965
serializedVersion: 2
1966-
m_ClearFlags: 3
1966+
m_ClearFlags: 4
19671967
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
19681968
m_projectionMatrixMode: 1
19691969
m_GateFitMode: 2

Build/Build/Build.data.unityweb

0 Bytes
Binary file not shown.

Build/Build/Build.wasm

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)