@babylonjs/react-native 1.2.1-preview → 1.3.1-preview
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.
- package/EngineView.d.ts +2 -0
- package/EngineView.js +4 -2
- package/EngineView.js.map +1 -1
- package/NativeEngineView.d.ts +2 -0
- package/NativeEngineView.js.map +1 -1
- package/README.md +15 -0
- package/package.json +1 -1
- package/shared/BabylonNative.h +2 -0
package/EngineView.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export interface EngineViewProps extends ViewProps {
|
|
|
5
5
|
camera?: Camera;
|
|
6
6
|
displayFrameRate?: boolean;
|
|
7
7
|
isTransparent?: boolean;
|
|
8
|
+
isTopMost?: boolean;
|
|
9
|
+
antiAliasing?: 0 | 1 | 2 | 4 | 8 | 16;
|
|
8
10
|
onInitialized?: (view: EngineViewCallbacks) => void;
|
|
9
11
|
}
|
|
10
12
|
export interface EngineViewCallbacks {
|
package/EngineView.js
CHANGED
|
@@ -8,7 +8,9 @@ export const EngineView = (props) => {
|
|
|
8
8
|
const [sceneStats, setSceneStats] = useState();
|
|
9
9
|
const engineViewRef = useRef(null);
|
|
10
10
|
const snapshotPromise = useRef();
|
|
11
|
-
const isTransparent = props.isTransparent
|
|
11
|
+
const isTransparent = props.isTransparent ?? false;
|
|
12
|
+
const antiAliasing = props.antiAliasing ?? 0;
|
|
13
|
+
const isTopMost = props.isTopMost ?? false;
|
|
12
14
|
const initialized = useModuleInitializer();
|
|
13
15
|
const engine = useMemo(() => {
|
|
14
16
|
return props.camera?.getScene().getEngine();
|
|
@@ -74,7 +76,7 @@ export const EngineView = (props) => {
|
|
|
74
76
|
}, []);
|
|
75
77
|
if (initialized !== false) {
|
|
76
78
|
return (React.createElement(View, { style: [{ flex: 1 }, props.style, { overflow: "hidden" }] },
|
|
77
|
-
initialized && React.createElement(NativeEngineView, { ref: engineViewRef, style: { flex: 1 }, onSnapshotDataReturned: snapshotDataReturnedHandler, isTransparent: isTransparent }),
|
|
79
|
+
initialized && React.createElement(NativeEngineView, { ref: engineViewRef, style: { flex: 1 }, onSnapshotDataReturned: snapshotDataReturnedHandler, isTransparent: isTransparent, antiAliasing: antiAliasing, isTopMost: isTopMost }),
|
|
78
80
|
sceneStats !== undefined &&
|
|
79
81
|
React.createElement(View, { style: { backgroundColor: '#00000040', opacity: 1, position: 'absolute', right: 0, left: 0, top: 0, flexDirection: 'row-reverse' } },
|
|
80
82
|
React.createElement(Text, { style: { color: 'yellow', alignSelf: 'flex-end', margin: 3, fontVariant: ['tabular-nums'] } },
|
package/EngineView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgD,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/H,OAAO,EAAa,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAU,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAyB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"EngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/EngineView.tsx"],"names":[],"mappings":"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"}
|
package/NativeEngineView.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { Component, SyntheticEvent } from 'react';
|
|
|
2
2
|
import { ViewProps } from 'react-native';
|
|
3
3
|
export interface NativeEngineViewProps extends ViewProps {
|
|
4
4
|
isTransparent: boolean;
|
|
5
|
+
antiAliasing: number;
|
|
6
|
+
isTopMost: boolean;
|
|
5
7
|
onSnapshotDataReturned?: (event: SyntheticEvent) => void;
|
|
6
8
|
}
|
|
7
9
|
export declare const NativeEngineView: {
|
package/NativeEngineView.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"NativeEngineView.js","sourceRoot":"","sources":["../../Modules/@babylonjs/react-native/NativeEngineView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAa,MAAM,cAAc,CAAC;AAWjE,MAAM,CAAC,MAAM,gBAAgB,GAGzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC"}
|
package/README.md
CHANGED
|
@@ -89,5 +89,20 @@ e.g.
|
|
|
89
89
|
```tsx
|
|
90
90
|
<EngineView style={{flex: 1}} camera={camera} isTransparent={true} />
|
|
91
91
|
```
|
|
92
|
+
`isTopMost` is a flag that allows to place the view on top of any other view. When enabled, this allows a huge performance improvement on Android with Transparency on.
|
|
93
|
+
|
|
94
|
+
e.g.
|
|
95
|
+
|
|
96
|
+
```tsx
|
|
97
|
+
<EngineView style={{flex: 1}} camera={camera} isTopMost={true} />
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
To configure anti-aliasing, a property called `antiAliasing` can be changed to a value of 0 or 1 (disable anti-aliasing, default), 2, 4, 8 or 16 (anti-aliasing samples).
|
|
101
|
+
|
|
102
|
+
e.g.
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
<EngineView style={{flex: 1}} camera={camera} MSAA={4} />
|
|
106
|
+
```
|
|
92
107
|
|
|
93
108
|
Note: Currently only one `EngineView` can be active at any given time. Multi-view will be supported in a future release.
|
package/package.json
CHANGED
package/shared/BabylonNative.h
CHANGED