Skip to content

Commit 72b029d

Browse files
committed
Actions to delegates in WebXRSubsystem
1 parent de8a840 commit 72b029d

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

Packages/webxr/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
### Changed
9+
- Actions to delegates in WebXRSubsystem.
810

911
## [0.12.1] - 2021-06-26
1012
### Changed

Packages/webxr/Runtime/XRPlugin/WebXRSubsystem.cs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,12 @@ private static class Native
205205
public static extern void ControllerPulse(int controller, float intensity, float duration);
206206

207207
[DllImport("__Internal")]
208-
public static extern void SetWebXREvents(Action<int, float, float, float, float, float, float, float, float> on_start_ar,
209-
Action<int, float, float, float, float, float, float, float, float> on_start_vr,
210-
Action<int> on_visibility_change,
211-
Action on_end_xr,
212-
Action<bool, bool> on_xr_capabilities,
213-
Action<string> on_input_profiles);
208+
public static extern void SetWebXREvents(StartXREvent on_start_ar,
209+
StartXREvent on_start_vr,
210+
VisibilityChangeEvent on_visibility_change,
211+
EndXREvent on_end_xr,
212+
XRCapabilitiesEvent on_xr_capabilities,
213+
InputProfilesEvent on_input_profiles);
214214
}
215215
#endif
216216

@@ -256,6 +256,18 @@ public delegate void HeadsetUpdate(
256256

257257
internal static event HitTestUpdate OnViewerHitTestUpdate;
258258

259+
internal delegate void StartXREvent(int viewsCount,
260+
float left_x, float left_y, float left_w, float left_h,
261+
float right_x, float right_y, float right_w, float right_h);
262+
263+
internal delegate void VisibilityChangeEvent(int visibilityState);
264+
265+
internal delegate void EndXREvent();
266+
267+
internal delegate void XRCapabilitiesEvent(bool isARSupported, bool isVRSupported);
268+
269+
internal delegate void InputProfilesEvent(string json);
270+
259271
// Cameras calculations helpers
260272
private Matrix4x4 leftProjectionMatrix = new Matrix4x4();
261273
private Matrix4x4 rightProjectionMatrix = new Matrix4x4();
@@ -292,15 +304,15 @@ public delegate void HeadsetUpdate(
292304
internal WebXRDisplayCapabilities capabilities = new WebXRDisplayCapabilities();
293305

294306
// Handles WebXR capabilities from browser
295-
[MonoPInvokeCallback(typeof(Action<bool, bool>))]
307+
[MonoPInvokeCallback(typeof(XRCapabilitiesEvent))]
296308
public static void OnXRCapabilities(bool isARSupported, bool isVRSupported)
297309
{
298310
Instance.capabilities.canPresentAR = isARSupported;
299311
Instance.capabilities.canPresentVR = isVRSupported;
300312
Instance.OnXRCapabilities(Instance.capabilities);
301313
}
302314

303-
[MonoPInvokeCallback(typeof(Action<string>))]
315+
[MonoPInvokeCallback(typeof(InputProfilesEvent))]
304316
public static void OnInputProfiles(string json)
305317
{
306318
WebXRControllersProfiles controllersProfiles = JsonUtility.FromJson<WebXRControllersProfiles>(json);
@@ -335,7 +347,7 @@ public void setXrState(WebXRState state, int viewsCount, Rect leftRect, Rect rig
335347
}
336348

337349
// received start AR from WebXR browser
338-
[MonoPInvokeCallback(typeof(Action<int, float, float, float, float, float, float, float, float>))]
350+
[MonoPInvokeCallback(typeof(StartXREvent))]
339351
public static void OnStartAR(int viewsCount,
340352
float left_x, float left_y, float left_w, float left_h,
341353
float right_x, float right_y, float right_w, float right_h)
@@ -346,7 +358,7 @@ public static void OnStartAR(int viewsCount,
346358
}
347359

348360
// received start VR from WebXR browser
349-
[MonoPInvokeCallback(typeof(Action<int, float, float, float, float, float, float, float, float>))]
361+
[MonoPInvokeCallback(typeof(StartXREvent))]
350362
public static void OnStartVR(int viewsCount,
351363
float left_x, float left_y, float left_w, float left_h,
352364
float right_x, float right_y, float right_w, float right_h)
@@ -356,7 +368,7 @@ public static void OnStartVR(int viewsCount,
356368
new Rect(right_x, right_y, right_w, right_h));
357369
}
358370

359-
[MonoPInvokeCallback(typeof(Action<int>))]
371+
[MonoPInvokeCallback(typeof(VisibilityChangeEvent))]
360372
public static void UpdateVisibilityState(int visibilityState)
361373
{
362374
if (Instance.visibilityState != (WebXRVisibilityState)visibilityState)
@@ -367,7 +379,7 @@ public static void UpdateVisibilityState(int visibilityState)
367379
}
368380

369381
// receive end VR from WebVR browser
370-
[MonoPInvokeCallback(typeof(Action))]
382+
[MonoPInvokeCallback(typeof(EndXREvent))]
371383
public static void OnEndXR()
372384
{
373385
Instance.updatedControllersOnEnd = false;

0 commit comments

Comments
 (0)