From 48c3dca4ea4eff8d2a6a7160918a6117e41d3e32 Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Thu, 25 Mar 2021 12:59:17 -0700 Subject: [PATCH 1/6] move to custom branch --- Modules/@babylonjs/react-native/submodules/BabylonNative | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index 66c97f911..f71516ee8 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit 66c97f911eaf879022f10bbe22b113cee3e3f942 +Subproject commit f71516ee83c2261573520fc0ca38a2d463a6125e From c7a00f3639d36c7629eb1ee76e222eaccec00242 Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Mon, 29 Mar 2021 11:24:32 -0700 Subject: [PATCH 2/6] obtain xr context off of navigator --- .../windows/include/XrContextHelperOpenXR.h | 22 +++++++++++-------- .../react-native/submodules/BabylonNative | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h b/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h index 9e38947d3..5ca240bea 100644 --- a/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h +++ b/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h @@ -6,20 +6,24 @@ namespace BabylonReactNative { - bool TryGetXrContext(facebook::jsi::Runtime& jsiRuntime, const facebook::jsi::Value& xrSession, IXrContextOpenXR*& xrContext) + bool TryGetXrContext(facebook::jsi::Runtime& jsiRuntime, IXrContextOpenXR*& xrContext) { xrContext = nullptr; - if (!xrSession.isObject() || - !xrSession.asObject(jsiRuntime).hasProperty(jsiRuntime, "nativeXrContext") || - !xrSession.asObject(jsiRuntime).hasProperty(jsiRuntime, "nativeXrContextType") || - xrSession.asObject(jsiRuntime).getProperty(jsiRuntime, "nativeXrContextType").asString(jsiRuntime).utf8(jsiRuntime) != "OpenXR") + if (jsiRuntime.global().hasProperty(jsiRuntime, "navigator") && + jsiRuntime.global().getProperty(jsiRuntime, "navigator").asObject(jsiRuntime).hasProperty(jsiRuntime, "xr")) { - return false; + auto nativeXr = jsiRuntime.global().getProperty(jsiRuntime, "navigator").asObject(jsiRuntime).getProperty(jsiRuntime, "xr").asObject(jsiRuntime); + if (nativeXr.hasProperty(jsiRuntime, "nativeXrContext") && + nativeXr.hasProperty(jsiRuntime, "nativeXrContextType") && + nativeXr.getProperty(jsiRuntime, "nativeXrContextType").asString(jsiRuntime).utf8(jsiRuntime) == "OpenXR") + { + auto nativeExtensionPtr = static_cast(nativeXr.getProperty(jsiRuntime, "nativeXrContext").asNumber()); + xrContext = reinterpret_cast(nativeExtensionPtr); + return true; + } } - auto nativeExtensionPtr = static_cast(xrSession.asObject(jsiRuntime).getProperty(jsiRuntime, "nativeXrContext").asNumber()); - xrContext = reinterpret_cast(nativeExtensionPtr); - return true; + return false; } } #endif \ No newline at end of file diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index f71516ee8..b7c5b6edd 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit f71516ee83c2261573520fc0ca38a2d463a6125e +Subproject commit b7c5b6edd5d2d01f3311c751ddb9fc2cf38a03e9 From 9f524864465c0d3c0dc01fc58708c84e4f09a5a0 Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Mon, 29 Mar 2021 11:32:26 -0700 Subject: [PATCH 3/6] merge master into babylonnative --- Modules/@babylonjs/react-native/submodules/BabylonNative | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index b7c5b6edd..bbcc37b71 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit b7c5b6edd5d2d01f3311c751ddb9fc2cf38a03e9 +Subproject commit bbcc37b7176f55647170ddddde66c82d39deee91 From 84dec0e2693d79b59404d7e17f6d8488e87530a3 Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Mon, 29 Mar 2021 13:05:11 -0700 Subject: [PATCH 4/6] address review comments --- .../windows/include/XrContextHelperOpenXR.h | 31 ++++++++++++------- .../react-native/submodules/BabylonNative | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h b/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h index 5ca240bea..e8f73023f 100644 --- a/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h +++ b/Modules/@babylonjs/react-native-windows/windows/include/XrContextHelperOpenXR.h @@ -9,21 +9,28 @@ namespace BabylonReactNative bool TryGetXrContext(facebook::jsi::Runtime& jsiRuntime, IXrContextOpenXR*& xrContext) { xrContext = nullptr; - if (jsiRuntime.global().hasProperty(jsiRuntime, "navigator") && - jsiRuntime.global().getProperty(jsiRuntime, "navigator").asObject(jsiRuntime).hasProperty(jsiRuntime, "xr")) + if (!jsiRuntime.global().hasProperty(jsiRuntime, "navigator")) { - auto nativeXr = jsiRuntime.global().getProperty(jsiRuntime, "navigator").asObject(jsiRuntime).getProperty(jsiRuntime, "xr").asObject(jsiRuntime); - if (nativeXr.hasProperty(jsiRuntime, "nativeXrContext") && - nativeXr.hasProperty(jsiRuntime, "nativeXrContextType") && - nativeXr.getProperty(jsiRuntime, "nativeXrContextType").asString(jsiRuntime).utf8(jsiRuntime) == "OpenXR") - { - auto nativeExtensionPtr = static_cast(nativeXr.getProperty(jsiRuntime, "nativeXrContext").asNumber()); - xrContext = reinterpret_cast(nativeExtensionPtr); - return true; - } + return false; } - return false; + auto navigator{ jsiRuntime.global().getProperty(jsiRuntime, "navigator").asObject(jsiRuntime) }; + if (!navigator.hasProperty(jsiRuntime, "xr")) + { + return false; + } + + auto nativeXr{ navigator.getProperty(jsiRuntime, "xr").asObject(jsiRuntime) }; + if (!nativeXr.hasProperty(jsiRuntime, "nativeXrContext") || + !nativeXr.hasProperty(jsiRuntime, "nativeXrContextType") || + nativeXr.getProperty(jsiRuntime, "nativeXrContextType").asString(jsiRuntime).utf8(jsiRuntime) != "OpenXR") + { + return false; + } + + auto nativeExtensionPtr = static_cast(nativeXr.getProperty(jsiRuntime, "nativeXrContext").asNumber()); + xrContext = reinterpret_cast(nativeExtensionPtr); + return true; } } #endif \ No newline at end of file diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index bbcc37b71..53900a1ab 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit bbcc37b7176f55647170ddddde66c82d39deee91 +Subproject commit 53900a1ab8c4bf2e7d96f3dcf80549b4f6a5ca6a From 13b071faabda2c7577b10ed5314def00ad33e6b9 Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Mon, 29 Mar 2021 14:14:20 -0700 Subject: [PATCH 5/6] move to most recent commit --- Modules/@babylonjs/react-native/submodules/BabylonNative | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index 53900a1ab..00325aa4c 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit 53900a1ab8c4bf2e7d96f3dcf80549b4f6a5ca6a +Subproject commit 00325aa4c29cae4f0c3a4c0cc8529e8774d48508 From 6e01bc6e74f64cdfcf108e1159411ad323ae9cdb Mon Sep 17 00:00:00 2001 From: Chris Barth Date: Mon, 5 Apr 2021 11:45:18 -0700 Subject: [PATCH 6/6] move to most recent babylonnative commit --- Modules/@babylonjs/react-native/submodules/BabylonNative | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/@babylonjs/react-native/submodules/BabylonNative b/Modules/@babylonjs/react-native/submodules/BabylonNative index 00325aa4c..5cc63dcb2 160000 --- a/Modules/@babylonjs/react-native/submodules/BabylonNative +++ b/Modules/@babylonjs/react-native/submodules/BabylonNative @@ -1 +1 @@ -Subproject commit 00325aa4c29cae4f0c3a4c0cc8529e8774d48508 +Subproject commit 5cc63dcb216a42d6ce4d2283dccee760a97346f1