@babylonjs/react-native 0.65.0-alpha.47 → 1.0.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/EngineHook.d.ts +0 -1
  2. package/EngineHook.js +0 -1
  3. package/EngineHook.js.map +1 -1
  4. package/EngineView.js +13 -37
  5. package/EngineView.js.map +1 -1
  6. package/NativeEngineHook.d.ts +4 -0
  7. package/NativeEngineHook.js +43 -0
  8. package/NativeEngineHook.js.map +1 -0
  9. package/NativeEngineView.d.ts +10 -0
  10. package/NativeEngineView.js +3 -0
  11. package/NativeEngineView.js.map +1 -0
  12. package/package.json +5 -5
  13. package/shared/BabylonNative.h +4 -4
  14. package/android/build.gradle +0 -173
  15. package/android/include/IXrContextARCore.h +0 -10
  16. package/android/src/main/AndroidManifest.xml +0 -4
  17. package/android/src/main/java/com/babylonreactnative/BabylonModule.java +0 -37
  18. package/android/src/main/java/com/babylonreactnative/BabylonNativeInterop.java +0 -125
  19. package/android/src/main/java/com/babylonreactnative/BabylonPackage.java +0 -21
  20. package/android/src/main/java/com/babylonreactnative/EngineView.java +0 -230
  21. package/android/src/main/java/com/babylonreactnative/EngineViewManager.java +0 -71
  22. package/android/src/main/java/com/babylonreactnative/SnapshotDataReturnedEvent.java +0 -28
  23. package/android/src/main/jniLibs/arm64-v8a/libBabylonNative.so +0 -0
  24. package/android/src/main/jniLibs/arm64-v8a/libturbomodulejsijni.so +0 -0
  25. package/android/src/main/jniLibs/armeabi-v7a/libBabylonNative.so +0 -0
  26. package/android/src/main/jniLibs/armeabi-v7a/libturbomodulejsijni.so +0 -0
  27. package/android/src/main/jniLibs/x86/libBabylonNative.so +0 -0
  28. package/android/src/main/jniLibs/x86/libturbomodulejsijni.so +0 -0
  29. package/ios/BabylonModule.mm +0 -35
  30. package/ios/BabylonNativeInterop.h +0 -14
  31. package/ios/BabylonNativeInterop.mm +0 -130
  32. package/ios/EngineViewManager.mm +0 -140
  33. package/ios/ReactNativeBabylon.xcodeproj/project.pbxproj +0 -14881
  34. package/ios/ReactNativeBabylon.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
  35. package/ios/include/IXrContextARKit.h +0 -10
  36. package/ios/libs/libBabylonNative.a +0 -0
  37. package/ios/libs/libCanvas.a +0 -0
  38. package/ios/libs/libGenericCodeGen.a +0 -0
  39. package/ios/libs/libGraphics.a +0 -0
  40. package/ios/libs/libJsRuntime.a +0 -0
  41. package/ios/libs/libMachineIndependent.a +0 -0
  42. package/ios/libs/libNativeCapture.a +0 -0
  43. package/ios/libs/libNativeEngine.a +0 -0
  44. package/ios/libs/libNativeInput.a +0 -0
  45. package/ios/libs/libNativeOptimizations.a +0 -0
  46. package/ios/libs/libNativeTracing.a +0 -0
  47. package/ios/libs/libNativeXr.a +0 -0
  48. package/ios/libs/libOGLCompiler.a +0 -0
  49. package/ios/libs/libOSDependent.a +0 -0
  50. package/ios/libs/libSPIRV.a +0 -0
  51. package/ios/libs/libUrlLib.a +0 -0
  52. package/ios/libs/libWindow.a +0 -0
  53. package/ios/libs/libXMLHttpRequest.a +0 -0
  54. package/ios/libs/libastc-codec.a +0 -0
  55. package/ios/libs/libastc.a +0 -0
  56. package/ios/libs/libbgfx.a +0 -0
  57. package/ios/libs/libbimg.a +0 -0
  58. package/ios/libs/libbx.a +0 -0
  59. package/ios/libs/libglslang.a +0 -0
  60. package/ios/libs/libnapi.a +0 -0
  61. package/ios/libs/libspirv-cross-core.a +0 -0
  62. package/ios/libs/libspirv-cross-glsl.a +0 -0
  63. package/ios/libs/libspirv-cross-msl.a +0 -0
  64. package/ios/libs/libtinyexr.a +0 -0
  65. package/ios/libs/libxr.a +0 -0
  66. package/react-native-babylon.podspec +0 -25
package/EngineHook.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  import { Engine } from '@babylonjs/core';
2
- import './VersionValidation';
3
2
  export declare function useEngine(): Engine | undefined;
package/EngineHook.js CHANGED
@@ -3,7 +3,6 @@ import { Platform } from 'react-native';
3
3
  import { PERMISSIONS, check, request } from 'react-native-permissions';
4
4
  import { WebXRSessionManager, WebXRExperienceHelper, Color4, Tools } from '@babylonjs/core';
5
5
  import { ReactNativeEngine } from './ReactNativeEngine';
6
- import './VersionValidation';
7
6
  import * as base64 from 'base-64';
8
7
  // These are errors that are normally thrown by WebXR's requestSession, so we should throw the same errors under similar circumstances so app code can be written the same for browser or native.
9
8
  // https://developer.mozilla.org/en-US/docs/Web/API/XRSystem/requestSession
package/EngineHook.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"EngineHook.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineHook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EngineHook.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineHook.ts"],"names":[],"mappings":"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"}
package/EngineView.js CHANGED
@@ -1,48 +1,24 @@
1
- import React, { useCallback, useEffect, useState, useRef } from 'react';
2
- import { requireNativeComponent, AppState, View, Text, findNodeHandle, UIManager } from 'react-native';
1
+ import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react';
2
+ import { View, Text, findNodeHandle, UIManager } from 'react-native';
3
3
  import { SceneInstrumentation } from '@babylonjs/core';
4
- import { ensureInitialized } from './BabylonModule';
5
- const NativeEngineView = global['EngineView'] || (global['EngineView'] = requireNativeComponent('EngineView'));
4
+ import { useModuleInitializer, useRenderLoop } from './NativeEngineHook';
5
+ import { NativeEngineView } from './NativeEngineView';
6
6
  export const EngineView = (props) => {
7
- const [initialized, setInitialized] = useState();
8
- const [appState, setAppState] = useState(AppState.currentState);
9
7
  //const [fps, setFps] = useState<number>();
10
8
  const [sceneStats, setSceneStats] = useState();
11
9
  const engineViewRef = useRef(null);
12
10
  const snapshotPromise = useRef();
13
11
  const isTransparent = props.isTransparent || false;
14
- useEffect(() => {
15
- (async () => {
16
- setInitialized(await ensureInitialized());
17
- })();
18
- }, []);
19
- useEffect(() => {
20
- const onAppStateChanged = (appState) => {
21
- setAppState(appState);
22
- };
23
- AppState.addEventListener("change", onAppStateChanged);
24
- return () => {
25
- AppState.removeEventListener("change", onAppStateChanged);
26
- };
27
- }, []);
28
- useEffect(() => {
29
- if (props.camera && appState === "active") {
30
- const engine = props.camera.getScene().getEngine();
31
- if (!engine.isDisposed) {
32
- engine.runRenderLoop(() => {
33
- for (let scene of engine.scenes) {
34
- scene.render();
35
- }
36
- });
37
- return () => {
38
- if (!engine.isDisposed) {
39
- engine.stopRenderLoop();
40
- }
41
- };
42
- }
12
+ const initialized = useModuleInitializer();
13
+ const engine = useMemo(() => {
14
+ return props.camera?.getScene().getEngine();
15
+ }, [props.camera]);
16
+ const renderLoop = useCallback(() => {
17
+ for (let scene of engine.scenes) {
18
+ scene.render();
43
19
  }
44
- return undefined;
45
- }, [props.camera, appState]);
20
+ }, [engine]);
21
+ useRenderLoop(engine, renderLoop);
46
22
  useEffect(() => {
47
23
  if (props.camera && (props.displayFrameRate ?? __DEV__)) {
48
24
  const scene = props.camera.getScene();
package/EngineView.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"EngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ReactNativeEngine } from './ReactNativeEngine';
2
+ import './VersionValidation';
3
+ export declare function useModuleInitializer(): boolean | undefined;
4
+ export declare function useRenderLoop(engine: ReactNativeEngine | undefined, renderCallback: () => void): void;
@@ -0,0 +1,43 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { AppState } from 'react-native';
3
+ import { ensureInitialized } from './BabylonModule';
4
+ import './VersionValidation';
5
+ export function useModuleInitializer() {
6
+ const [initialized, setInitialized] = useState();
7
+ useEffect(() => {
8
+ (async () => {
9
+ setInitialized(await ensureInitialized());
10
+ })();
11
+ }, []);
12
+ return initialized;
13
+ }
14
+ function useAppState() {
15
+ const [appState, setAppState] = useState(AppState.currentState);
16
+ useEffect(() => {
17
+ const onAppStateChanged = (appState) => {
18
+ setAppState(appState);
19
+ };
20
+ AppState.addEventListener("change", onAppStateChanged);
21
+ return () => {
22
+ AppState.removeEventListener("change", onAppStateChanged);
23
+ };
24
+ }, []);
25
+ return appState;
26
+ }
27
+ export function useRenderLoop(engine, renderCallback) {
28
+ const appState = useAppState();
29
+ useEffect(() => {
30
+ if (engine && appState === "active") {
31
+ if (!engine.isDisposed) {
32
+ engine.runRenderLoop(renderCallback);
33
+ return () => {
34
+ if (!engine.isDisposed) {
35
+ engine.stopRenderLoop();
36
+ }
37
+ };
38
+ }
39
+ }
40
+ return undefined;
41
+ }, [appState, engine]);
42
+ }
43
+ //# sourceMappingURL=NativeEngineHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeEngineHook.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/NativeEngineHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAkB,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,UAAU,oBAAoB;IAChC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,EAAW,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACX,CAAC,KAAK,IAAI,EAAE;YACR,cAAc,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,SAAS,WAAW;IAChB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEhE,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,iBAAiB,GAAG,CAAC,QAAwB,EAAE,EAAE;YACnD,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAEvD,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC9D,CAAC,CAAA;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAqC,EAAE,cAA0B;IAC3F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACjC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBACpB,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAErC,OAAO,GAAG,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;wBACpB,MAAM,CAAC,cAAc,EAAE,CAAC;qBAC3B;gBACL,CAAC,CAAC;aACL;SACJ;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Component, SyntheticEvent } from 'react';
2
+ import { ViewProps } from 'react-native';
3
+ export interface NativeEngineViewProps extends ViewProps {
4
+ isTransparent: boolean;
5
+ onSnapshotDataReturned?: (event: SyntheticEvent) => void;
6
+ }
7
+ export declare const NativeEngineView: {
8
+ prototype: Component<NativeEngineViewProps>;
9
+ new (props: Readonly<NativeEngineViewProps>): Component<NativeEngineViewProps>;
10
+ };
@@ -0,0 +1,3 @@
1
+ import { requireNativeComponent } from 'react-native';
2
+ export const NativeEngineView = global['EngineView'] || (global['EngineView'] = requireNativeComponent('EngineView'));
3
+ //# sourceMappingURL=NativeEngineView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeEngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/NativeEngineView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAa,MAAM,cAAc,CAAC;AASjE,MAAM,CAAC,MAAM,gBAAgB,GAGzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@babylonjs/react-native",
3
3
  "title": "React Native Babylon",
4
- "version": "0.65.0-alpha.47",
4
+ "version": "1.0.0-preview.1",
5
5
  "description": "Babylon Native integration into React Native",
6
6
  "main": "index.js",
7
7
  "scripts": {
@@ -28,15 +28,15 @@
28
28
  "semver": "^7.3.2"
29
29
  },
30
30
  "peerDependencies": {
31
- "@babylonjs/core": "^5.0.0-alpha.65",
31
+ "@babylonjs/core": "^5.0.0-rc.12",
32
32
  "react": ">=16.13.1",
33
- "react-native": ">=0.65.0",
34
- "react-native-permissions": "^2.1.4"
33
+ "react-native": ">=0.63.1",
34
+ "react-native-permissions": "^3.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@babel/core": "^7.8.4",
38
38
  "@babel/runtime": "^7.8.4",
39
- "@babylonjs/core": "5.0.0-alpha.65",
39
+ "@babylonjs/core": "5.0.0-rc.12",
40
40
  "@rnw-scripts/eslint-config": "0.1.6",
41
41
  "@rnw-scripts/ts-config": "0.1.0",
42
42
  "@types/base-64": "^0.1.3",
@@ -31,10 +31,10 @@ namespace BabylonNative
31
31
 
32
32
  void RenderView();
33
33
  void ResetView();
34
- void SetMouseButtonState(uint32_t buttonId, bool isDown, uint32_t x, uint32_t y);
35
- void SetMousePosition(uint32_t x, uint32_t y);
36
- void SetTouchButtonState(uint32_t pointerId, bool isDown, uint32_t x, uint32_t y);
37
- void SetTouchPosition(uint32_t pointerId, uint32_t x, uint32_t y);
34
+ void SetMouseButtonState(uint32_t buttonId, bool isDown, int32_t x, int32_t y);
35
+ void SetMousePosition(int32_t x, int32_t y);
36
+ void SetTouchButtonState(uint32_t pointerId, bool isDown, int32_t x, int32_t y);
37
+ void SetTouchPosition(uint32_t pointerId, int32_t x, int32_t y);
38
38
 
39
39
  bool IsXRActive();
40
40
 
@@ -1,173 +0,0 @@
1
- // android/build.gradle
2
-
3
- // based on:
4
- //
5
- // * https://github.com/facebook/react-native/blob/0.60-stable/template/android/build.gradle
6
- // original location:
7
- // - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/build.gradle
8
- //
9
- // * https://github.com/facebook/react-native/blob/0.60-stable/template/android/app/build.gradle
10
- // original location:
11
- // - https://github.com/facebook/react-native/blob/0.58-stable/local-cli/templates/HelloWorld/android/app/build.gradle
12
-
13
- def DEFAULT_COMPILE_SDK_VERSION = 28
14
- def DEFAULT_BUILD_TOOLS_VERSION = '28.0.3'
15
- def DEFAULT_MIN_SDK_VERSION = 18
16
- def DEFAULT_TARGET_SDK_VERSION = 28
17
-
18
- def safeExtGet(prop, fallback) {
19
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
20
- }
21
-
22
- def reactProperties = new Properties()
23
- file("$projectDir/../../../react-native/ReactAndroid/gradle.properties").withInputStream { reactProperties.load(it) }
24
- def REACT_VERSION = reactProperties.getProperty("VERSION_NAME").split("\\.")[1].toInteger()
25
-
26
- apply plugin: 'com.android.library'
27
- apply plugin: 'maven'
28
-
29
- buildscript {
30
- // The Android Gradle plugin is only required when opening the android folder stand-alone.
31
- // This avoids unnecessary downloads and potential conflicts when the library is included as a
32
- // module dependency in an application project.
33
- // ref: https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies
34
- if (project == rootProject) {
35
- repositories {
36
- google()
37
- jcenter()
38
- }
39
- dependencies {
40
- classpath 'com.android.tools.build:gradle:3.4.1'
41
- }
42
- }
43
- }
44
-
45
- apply plugin: 'com.android.library'
46
- apply plugin: 'maven'
47
-
48
- android {
49
- compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
50
- buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION)
51
- defaultConfig {
52
- minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
53
- targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
54
- versionCode 1
55
- versionName "1.0"
56
- }
57
- lintOptions {
58
- abortOnError false
59
- }
60
- compileOptions {
61
- sourceCompatibility JavaVersion.VERSION_1_8
62
- targetCompatibility JavaVersion.VERSION_1_8
63
- }
64
- }
65
-
66
- // The full/real version of libturbomodulejsijni.so will be built and included in apps using React Native 0.64 or newer,
67
- // so exclude Babylon React Native's minimal version of these libs in this case.
68
- if (REACT_VERSION >= 64) {
69
- android.packagingOptions.excludes += 'lib/armeabi-v7a/libturbomodulejsijni.so'
70
- android.packagingOptions.excludes += 'lib/arm64-v8a/libturbomodulejsijni.so'
71
- android.packagingOptions.excludes += 'lib/x86/libturbomodulejsijni.so'
72
- }
73
-
74
- repositories {
75
- // ref: https://www.baeldung.com/maven-local-repository
76
- mavenLocal()
77
- maven {
78
- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
79
- url "$rootDir/../node_modules/react-native/android"
80
- }
81
- maven {
82
- // Android JSC is installed from npm
83
- url "$rootDir/../node_modules/jsc-android/dist"
84
- }
85
- google()
86
- jcenter()
87
- }
88
-
89
- dependencies {
90
- //noinspection GradleDynamicVersion
91
- implementation 'com.facebook.react:react-native:+' // From node_modules
92
- implementation 'com.google.ar:core:1.22.0'
93
- }
94
-
95
- def configureReactNativePom(def pom) {
96
- def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
97
-
98
- pom.project {
99
- name packageJson.title
100
- artifactId packageJson.name
101
- version = packageJson.version
102
- group = "com.babylonreactnative"
103
- description packageJson.description
104
- url packageJson.repository.baseUrl
105
-
106
- licenses {
107
- license {
108
- name packageJson.license
109
- url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
110
- distribution 'repo'
111
- }
112
- }
113
-
114
- developers {
115
- developer {
116
- id packageJson.author.username
117
- name packageJson.author.name
118
- }
119
- }
120
- }
121
- }
122
-
123
- afterEvaluate { project ->
124
- // some Gradle build hooks ref:
125
- // https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
126
- task androidJavadoc(type: Javadoc) {
127
- source = android.sourceSets.main.java.srcDirs
128
- classpath += files(android.bootClasspath)
129
- classpath += files(project.getConfigurations().getByName('compile').asList())
130
- include '**/*.java'
131
- }
132
-
133
- task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
134
- classifier = 'javadoc'
135
- from androidJavadoc.destinationDir
136
- }
137
-
138
- task androidSourcesJar(type: Jar) {
139
- classifier = 'sources'
140
- from android.sourceSets.main.java.srcDirs
141
- include '**/*.java'
142
- }
143
-
144
- android.libraryVariants.all { variant ->
145
- def name = variant.name.capitalize()
146
- def javaCompileTask = variant.javaCompileProvider.get()
147
-
148
- task "jar${name}"(type: Jar, dependsOn: javaCompileTask) {
149
- from javaCompileTask.destinationDir
150
- }
151
- }
152
-
153
- artifacts {
154
- archives androidSourcesJar
155
- archives androidJavadocJar
156
- }
157
-
158
- task installArchives(type: Upload) {
159
- configuration = configurations.archives
160
- repositories.mavenDeployer {
161
- // Deploy to react-native-event-bridge/maven, ready to publish to npm
162
- repository url: "file://${projectDir}/../android/maven"
163
- configureReactNativePom pom
164
- }
165
- }
166
- }
167
-
168
- task validateSdk {
169
- def minSdkVersion = safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
170
- if (minSdkVersion < DEFAULT_MIN_SDK_VERSION) {
171
- throw new GradleException("minSdkVersion must be at least ${DEFAULT_MIN_SDK_VERSION} but is currently ${minSdkVersion}")
172
- }
173
- }
@@ -1,10 +0,0 @@
1
- #pragma once
2
-
3
- #include <arcore_c_api.h>
4
-
5
- typedef struct IXrContextARCore
6
- {
7
- virtual bool IsInitialized() const = 0;
8
- virtual ArSession* XrSession() const = 0;
9
- virtual ArFrame* XrFrame() const = 0;
10
- } IXrContextARCore;
@@ -1,4 +0,0 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
- package="com.babylonreactnative">
3
-
4
- </manifest>
@@ -1,37 +0,0 @@
1
- package com.babylonreactnative;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.bridge.Promise;
6
- import com.facebook.react.bridge.ReactApplicationContext;
7
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
8
- import com.facebook.react.bridge.ReactMethod;
9
-
10
- public final class BabylonModule extends ReactContextBaseJavaModule {
11
-
12
- BabylonModule(ReactApplicationContext reactContext) {
13
- super(reactContext);
14
- }
15
-
16
- @NonNull
17
- @Override
18
- public String getName() {
19
- return "BabylonModule";
20
- }
21
-
22
- @ReactMethod
23
- public void initialize(Promise promise) {
24
- this.getReactApplicationContext().runOnJSQueueThread(() -> {
25
- BabylonNativeInterop.initialize(this.getReactApplicationContext());
26
- promise.resolve(null);
27
- });
28
- }
29
-
30
- @ReactMethod
31
- public void resetView(Promise promise) {
32
- this.getReactApplicationContext().runOnUiQueueThread(() -> {
33
- BabylonNativeInterop.resetView();
34
- promise.resolve(null);
35
- });
36
- }
37
- }
@@ -1,125 +0,0 @@
1
- package com.babylonreactnative;
2
-
3
- import android.app.Activity;
4
- import android.content.Context;
5
- import android.content.Intent;
6
- import android.view.MotionEvent;
7
- import android.view.Surface;
8
-
9
- import com.facebook.react.bridge.ActivityEventListener;
10
- import com.facebook.react.bridge.LifecycleEventListener;
11
- import com.facebook.react.bridge.ReactContext;
12
- import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder;
13
-
14
- public final class BabylonNativeInterop {
15
-
16
- private static class BabylonNative {
17
- static {
18
- System.loadLibrary("BabylonNative");
19
- }
20
-
21
- public static native void initialize(Context context, long jsiRuntimeRef, CallInvokerHolder jsCallInvokerHolder);
22
- public static native void setCurrentActivity(Activity activity);
23
- public static native void pause();
24
- public static native void resume();
25
- public static native void updateView(Surface surface);
26
- public static native void renderView();
27
- public static native void resetView();
28
- public static native void updateXRView(Surface surface);
29
- public static native boolean isXRActive();
30
- public static native void setTouchButtonState(int pointerId, boolean isDown, int x, int y);
31
- public static native void setTouchPosition(int pointerId, int x, int y);
32
- }
33
-
34
- private static LifecycleEventListener lifeCycleEventListener;
35
- private static ActivityEventListener activityEventListener;
36
-
37
- public static void initialize(ReactContext reactContext) {
38
- long jsiRuntimeRef = reactContext.getJavaScriptContextHolder().get();
39
- CallInvokerHolder jsCallInvokerHolder = reactContext.getCatalystInstance().getJSCallInvokerHolder();
40
- BabylonNative.initialize(reactContext, jsiRuntimeRef, jsCallInvokerHolder);
41
-
42
- if (BabylonNativeInterop.lifeCycleEventListener != null) {
43
- reactContext.removeLifecycleEventListener(lifeCycleEventListener);
44
- }
45
-
46
- BabylonNativeInterop.lifeCycleEventListener = new LifecycleEventListener() {
47
- @Override
48
- public void onHostResume() {
49
- BabylonNative.setCurrentActivity(reactContext.getCurrentActivity());
50
- BabylonNative.resume();
51
- }
52
-
53
- @Override
54
- public void onHostPause() {
55
- BabylonNative.pause();
56
- }
57
-
58
- @Override
59
- public void onHostDestroy() {
60
- }
61
- };
62
-
63
- reactContext.addLifecycleEventListener(lifeCycleEventListener);
64
-
65
- if (BabylonNativeInterop.activityEventListener != null) {
66
- reactContext.removeActivityEventListener(BabylonNativeInterop.activityEventListener);
67
- }
68
-
69
- BabylonNativeInterop.activityEventListener = new ActivityEventListener() {
70
- @Override
71
- public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
72
- // Nothing to do here
73
- }
74
-
75
- @Override
76
- public void onNewIntent(Intent intent) {
77
- BabylonNative.setCurrentActivity(reactContext.getCurrentActivity());
78
- }
79
- };
80
-
81
- reactContext.addActivityEventListener(BabylonNativeInterop.activityEventListener);
82
- }
83
-
84
- public static void updateView(Surface surface) {
85
- BabylonNative.updateView(surface);
86
- }
87
-
88
- public static void renderView() {
89
- BabylonNative.renderView();
90
- }
91
-
92
- public static void resetView() {
93
- BabylonNative.resetView();
94
- }
95
-
96
- public static void updateXRView(Surface surface) {
97
- BabylonNative.updateXRView(surface);
98
- }
99
-
100
- public static boolean isXRActive() {
101
- return BabylonNative.isXRActive();
102
- }
103
-
104
- public static void reportMotionEvent(MotionEvent motionEvent) {
105
- int maskedAction = motionEvent.getActionMasked();
106
- boolean isPointerDown = maskedAction == MotionEvent.ACTION_DOWN || maskedAction == MotionEvent.ACTION_POINTER_DOWN;
107
- boolean isPointerUp = maskedAction == MotionEvent.ACTION_UP || maskedAction == MotionEvent.ACTION_POINTER_UP;
108
- boolean isPointerMove = maskedAction == MotionEvent.ACTION_MOVE;
109
-
110
- if (isPointerDown || isPointerUp) {
111
- int pointerIndex = motionEvent.getActionIndex();
112
- int pointerId = motionEvent.getPointerId(pointerIndex);
113
- int x = (int)motionEvent.getX(pointerIndex);
114
- int y = (int)motionEvent.getY(pointerIndex);
115
- BabylonNative.setTouchButtonState(pointerId, isPointerDown, x, y);
116
- } else if (isPointerMove) {
117
- for (int pointerIndex = 0; pointerIndex < motionEvent.getPointerCount(); pointerIndex++) {
118
- int pointerId = motionEvent.getPointerId(pointerIndex);
119
- int x = (int)motionEvent.getX(pointerIndex);
120
- int y = (int)motionEvent.getY(pointerIndex);
121
- BabylonNative.setTouchPosition(pointerId, x, y);
122
- }
123
- }
124
- }
125
- }
@@ -1,21 +0,0 @@
1
- package com.babylonreactnative;
2
-
3
- import java.util.Arrays;
4
- import java.util.List;
5
-
6
- import com.facebook.react.ReactPackage;
7
- import com.facebook.react.bridge.NativeModule;
8
- import com.facebook.react.bridge.ReactApplicationContext;
9
- import com.facebook.react.uimanager.ViewManager;
10
-
11
- public class BabylonPackage implements ReactPackage {
12
- @Override
13
- public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
14
- return Arrays.<NativeModule>asList(new BabylonModule(reactContext));
15
- }
16
-
17
- @Override
18
- public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
19
- return Arrays.<ViewManager>asList(new EngineViewManager());
20
- }
21
- }