Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions Modules/@babylonjs/react-native/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Use the React version required by your React Native application. React Native 0.

To load formats such as glTF, also install `@babylonjs/loaders` at the same version as `@babylonjs/core` and import it in your application.

**2.0.8 is the next preview target, not a published stable release.** It includes the NativeXr EndFrame lifecycle fix described below. Preview publishing assigns the exact prerelease version; use that published version when testing rather than assuming the `preview` npm tag already contains 2.0.8.

### Dependencies

The package declares `@babylonjs/core` (>=9.0.0), `react`, `react-native`, and `react-native-permissions` (>=3.0.0) as **peer dependencies**. Add them to your application and resolve any peer dependency errors or warnings during installation.
Expand All @@ -28,21 +30,23 @@ The native camera and XR plugins can be [disabled at build time](#plugins-select

### Supported Versions

These are the resolved React Native versions in the committed Playground lockfiles at each release tag, not the lower bounds of manifest ranges. The permissive `react` and `react-native` peer dependency ranges do **not** guarantee that every newer React Native version is compatible.
These are the resolved React Native versions in the committed Playground lockfiles at each release tag (or the preview branch for the unreleased 2.0.8 target), not the lower bounds of manifest ranges. The permissive `react` and `react-native` peer dependency ranges do **not** guarantee that every newer React Native version is compatible.

| Babylon React Native version | React Native (iOS / Android) | React Native Windows |
| ---------------------------- | --------------------------- | -------------------- |
| 2.0.8 (preview target) | 0.81.6 | 0.81.35 |
| 2.0.7 / master | 0.81.6 | 0.81.35 |
| 2.0.6 | 0.81.6 | 0.81.35 |
| 2.0.5 | 0.81.6 | 0.81.21 |
| 2.0.0 - 2.0.4 | 0.79.4 | 0.79.1 |

For 2.0.6 and 2.0.7, the Windows Playground locks React Native 0.81.6 with **React Native Windows pinned to 0.81.35** to match the published NuGet packages; 0.81.4 is only the lower bound of the manifest's `^0.81.4` React Native range. Windows project generation uses the legacy renderer and Hermes.
For 2.0.6, 2.0.7, and the 2.0.8 preview target, the Windows Playground locks React Native 0.81.6 with **React Native Windows pinned to 0.81.35** to match the published NuGet packages; 0.81.4 is only the lower bound of the manifest's `^0.81.4` React Native range. Windows project generation uses the legacy renderer and Hermes.

The Babylon.js column below records the package's `@babylonjs/core` peer dependency. The Babylon Native commits are the source pins in `Package/gulpfile.js` at the corresponding release tags.
The Babylon.js column below records the package's `@babylonjs/core` peer dependency. The Babylon Native commits are the source pins in `Package/gulpfile.js` at the corresponding release tags (or the preview branch for the unreleased 2.0.8 target).

| Babylon React Native version | Babylon.js peer dependency | Babylon Native commit |
| ---------------------------- | -------------------------- | --------------------- |
| 2.0.8 (preview target) | >=9.0.0 | [37d30f54649543290ad25c6c3626c247c1372773](https://github.com/BabylonJS/BabylonNative/commit/37d30f54649543290ad25c6c3626c247c1372773) |
| 2.0.7 / master | >=9.0.0 | [f4d9efbeeabcfec24105373b99e54fe147669fc1](https://github.com/BabylonJS/BabylonNative/commit/f4d9efbeeabcfec24105373b99e54fe147669fc1) |
| 2.0.6 | >=9.0.0 | [feb0227be8890ec5dcd28c6bfc18275a98bf8d45](https://github.com/BabylonJS/BabylonNative/commit/feb0227be8890ec5dcd28c6bfc18275a98bf8d45) |
| 2.0.5 | >=9.0.0 | [ce2edf0851e0c8483559832a4f8eb9d39c6b2f53](https://github.com/BabylonJS/BabylonNative/commit/ce2edf0851e0c8483559832a4f8eb9d39c6b2f53) |
Expand All @@ -52,6 +56,8 @@ The Babylon.js column below records the package's `@babylonjs/core` peer depende
| 2.0.1 | >=5.53.1 | [3ccba7a6f741705ce611819aefacbbb8062393e7](https://github.com/BabylonJS/BabylonNative/commit/3ccba7a6f741705ce611819aefacbbb8062393e7) |
| 2.0.0 | >=5.53.1 | [9a50d722d493524e1b315dd48fed6b0ed6d062c8](https://github.com/BabylonJS/BabylonNative/commit/9a50d722d493524e1b315dd48fed6b0ed6d062c8) |

The 2.0.8 preview target updates Babylon Native to include the [NativeXr EndFrame lifecycle fix](https://github.com/BabylonJS/BabylonNative/pull/1957). It queues EndFrame during FrameStart, preventing a late EndFrame call from consuming the next frame and causing a null-frame assertion. The Babylon.js and React Native baselines are unchanged from 2.0.7.

2.0.7 updates Babylon Native and its JsRuntimeHost dependency, and removes obsolete `minz` library links from the iOS podspec and Windows project. The Babylon.js and React Native baselines are unchanged from 2.0.6.

See the [release notes](https://github.com/BabylonJS/BabylonReactNative/releases) for changes and the [repository README](https://github.com/BabylonJS/BabylonReactNative#contributing) for local development and packaging instructions.
Expand Down Expand Up @@ -138,7 +144,7 @@ Keep the variables set when running `pod install` and native builds. Disabling p

### Windows Configuration

Windows support is experimental. The 2.0.6 and 2.0.7 integrations use React Native Windows **0.81.35** and its matching NuGet packages. Keep the React Native Windows npm version aligned with its published NuGet version rather than allowing npm to select a newer release independently.
Windows support is experimental. The 2.0.6, 2.0.7, and 2.0.8 preview integrations use React Native Windows **0.81.35** and its matching NuGet packages. Keep the React Native Windows npm version aligned with its published NuGet version rather than allowing npm to select a newer release independently.

The module's MSBuild project builds the embedded Babylon Native sources using CMake and the React Native Windows project's generated C++/WinRT projections. See the [repository's Windows instructions](https://github.com/BabylonJS/BabylonReactNative#universal-windows-platform-uwp) and [packaged-consumer build workflow](https://github.com/BabylonJS/BabylonReactNative/blob/master/.github/workflows/test_windows.yml) for the current UWP, legacy-renderer, NuGet, and C++20 configuration.

Expand Down
2 changes: 1 addition & 1 deletion Package/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ const createPackage = async () => {
exec('npm pack', 'Assembled');
};

const COMMIT_ID = 'f4d9efbeeabcfec24105373b99e54fe147669fc1';
const COMMIT_ID = '37d30f54649543290ad25c6c3626c247c1372773';
const ZIP_URL = `https://github.com/BabylonJS/BabylonNative/archive/${COMMIT_ID}.zip`;
const TARGET_DIR = path.resolve(__dirname, '../Modules/@babylonjs/react-native/shared/BabylonNative');
const ZIP_PATH = path.join(TARGET_DIR, `${COMMIT_ID}.zip`);
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,17 @@ Babylon React Native uses JSI for direct synchronous communication between nativ

The latest stable npm release is **[@babylonjs/react-native 2.0.7](https://www.npmjs.com/package/@babylonjs/react-native/v/2.0.7)**. Since 2.0.0, a single package contains the sources for Android, iOS, and Windows; separate platform packages are no longer needed.

**2.0.8 is the next preview target, not a published stable release.** It updates Babylon Native to [37d30f54649543290ad25c6c3626c247c1372773](https://github.com/BabylonJS/BabylonNative/commit/37d30f54649543290ad25c6c3626c247c1372773), including the [NativeXr EndFrame lifecycle fix](https://github.com/BabylonJS/BabylonNative/pull/1957) that prevents EndFrame from being queued a frame late and hitting a null-frame assertion. The Babylon.js and React Native baselines are unchanged from 2.0.7.

2.0.7 updates Babylon Native to [f4d9efbeeabcfec24105373b99e54fe147669fc1](https://github.com/BabylonJS/BabylonNative/commit/f4d9efbeeabcfec24105373b99e54fe147669fc1), including its JsRuntimeHost dependency update, and removes obsolete `minz` library links from the iOS and Windows builds. The Babylon.js and React Native baselines are unchanged from 2.0.6.

| Package version | Babylon.js peer dependency | React Native (Android / iOS) | React Native Windows |
| --------------- | -------------------------- | ---------------------------- | -------------------- |
| 2.0.8 (preview target) | >=9.0.0 | 0.81.6 | 0.81.35 |
| 2.0.7 / master | >=9.0.0 | 0.81.6 | 0.81.35 |
| 2.0.6 | >=9.0.0 | 0.81.6 | 0.81.35 |

The React Native versions above are the resolved Playground lockfile baselines, not a guarantee of compatibility with every newer release. For 2.0.6 and 2.0.7, the Windows Playground locks React Native 0.81.6 with React Native Windows 0.81.35; 0.81.4 is only the lower bound of the manifest's `^0.81.4` React Native range. Windows support remains experimental; its npm version is pinned to match the published React Native Windows NuGet packages.
The React Native versions above are the resolved Playground lockfile baselines, not a guarantee of compatibility with every newer release. For 2.0.6, 2.0.7, and the 2.0.8 preview target, the Windows Playground locks React Native 0.81.6 with React Native Windows 0.81.35; 0.81.4 is only the lower bound of the manifest's `^0.81.4` React Native range. Windows support remains experimental; its npm version is pinned to match the published React Native Windows NuGet packages.

See the [package README](Modules/@babylonjs/react-native/README.md#supported-versions) for earlier releases and the Babylon Native commit used by each release, and the [release notes](https://github.com/BabylonJS/BabylonReactNative/releases) for changes.

Expand Down
Loading