react-native-webgpu 0.16.0 → 0.17.0

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 (71) hide show
  1. package/android/build.gradle +11 -1
  2. package/android/src/main/java/com/webgpu/BackingViewKind.java +38 -0
  3. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +19 -2
  4. package/android/src/main/java/com/webgpu/WebGPUView.java +115 -63
  5. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +13 -6
  6. package/cpp/jsi/NativeObject.h +84 -34
  7. package/cpp/rnwgpu/RNWebGPUManager.cpp +51 -48
  8. package/cpp/rnwgpu/RNWebGPUManager.h +10 -0
  9. package/cpp/rnwgpu/api/GPUFeatures.h +1 -0
  10. package/cpp/rnwgpu/api/GPUNativeBufferWrapper.h +1 -0
  11. package/cpp/rnwgpu/api/VideoFrame.h +2 -2
  12. package/lib/commonjs/Canvas.js +105 -8
  13. package/lib/commonjs/Canvas.js.map +1 -1
  14. package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -1
  15. package/lib/commonjs/WebGPUViewNativeComponent.web.js +3 -5
  16. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -1
  17. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
  18. package/lib/commonjs/install.js +26 -7
  19. package/lib/commonjs/install.js.map +1 -1
  20. package/lib/commonjs/mock.js +0 -1
  21. package/lib/commonjs/mock.js.map +1 -1
  22. package/lib/module/Canvas.js +105 -8
  23. package/lib/module/Canvas.js.map +1 -1
  24. package/lib/module/WebGPUViewNativeComponent.js.map +1 -1
  25. package/lib/module/WebGPUViewNativeComponent.web.js +3 -5
  26. package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -1
  27. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
  28. package/lib/module/install.js +26 -7
  29. package/lib/module/install.js.map +1 -1
  30. package/lib/module/mock.js +0 -1
  31. package/lib/module/mock.js.map +1 -1
  32. package/lib/typescript/lib/commonjs/Canvas.d.ts +1 -2
  33. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
  34. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  35. package/lib/typescript/lib/commonjs/install.d.ts +10 -7
  36. package/lib/typescript/lib/commonjs/install.d.ts.map +1 -1
  37. package/lib/typescript/lib/commonjs/mock.d.ts +1 -2
  38. package/lib/typescript/lib/commonjs/mock.d.ts.map +1 -1
  39. package/lib/typescript/lib/module/Canvas.d.ts +1 -2
  40. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  41. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  42. package/lib/typescript/lib/module/install.d.ts.map +1 -1
  43. package/lib/typescript/lib/module/mock.d.ts +1 -2
  44. package/lib/typescript/lib/module/mock.d.ts.map +1 -1
  45. package/lib/typescript/src/Canvas.d.ts +62 -16
  46. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  47. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +3 -2
  48. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
  49. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +3 -2
  50. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  51. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts +1 -0
  52. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -1
  53. package/lib/typescript/src/install.d.ts +10 -7
  54. package/lib/typescript/src/install.d.ts.map +1 -1
  55. package/lib/typescript/src/mock.d.ts +2 -2
  56. package/lib/typescript/src/mock.d.ts.map +1 -1
  57. package/lib/typescript/src/types.d.ts +1 -1
  58. package/package.json +8 -7
  59. package/plugin/build/index.js +2 -1
  60. package/plugin/build/setMinSdkVersion.d.ts +9 -0
  61. package/plugin/build/setMinSdkVersion.js +25 -0
  62. package/plugin/build/withMinSdkVersion.d.ts +11 -0
  63. package/plugin/build/withMinSdkVersion.js +20 -0
  64. package/src/Canvas.tsx +176 -33
  65. package/src/WebGPUViewNativeComponent.ts +6 -4
  66. package/src/WebGPUViewNativeComponent.web.ts +7 -5
  67. package/src/external/reanimated/registerWebGPUForReanimated.ts +4 -0
  68. package/src/index.tsx +3 -3
  69. package/src/install.ts +26 -7
  70. package/src/mock.ts +5 -7
  71. package/src/types.ts +1 -1
@@ -35,6 +35,16 @@ public:
35
35
  */
36
36
  static void installWebGPUWorkletHelpers(jsi::Runtime &runtime);
37
37
 
38
+ /**
39
+ * Installs the constructor of every WebGPU API class on `runtime` (see
40
+ * NativeObject::installConstructor), skipping the ones already there. Runs
41
+ * on the main runtime at startup and, through
42
+ * __webgpuWorkletHelpers.installConstructors(), on every runtime that calls
43
+ * installWebGPU(). RNWebGPU itself is not part of it: that global is the
44
+ * module instance, main runtime only.
45
+ */
46
+ static void installConstructors(jsi::Runtime &runtime);
47
+
38
48
  /**
39
49
  * Applies a surface attach latched by the platform UI thread (see
40
50
  * SurfaceInfo::applyPendingAttach) from the JS thread. Surface attaches are
@@ -104,6 +104,7 @@ namespace rnwgpu {
104
104
  V(AdapterPropertiesWGPU, "adapter-properties-wgpu") \
105
105
  V(SharedBufferMemoryFromWindowsHandle, \
106
106
  "shared-buffer-memory-from-windows-handle") \
107
+ V(SharedBufferMemoryHostPointer, "shared-buffer-memory-host-pointer") \
107
108
  V(SharedTextureMemoryD3D12Resource, "shared-texture-memory-d3d12-resource") \
108
109
  V(ChromiumExperimentalSamplingResourceTable, \
109
110
  "chromium-experimental-sampling-resource-table") \
@@ -2,6 +2,7 @@
2
2
 
3
3
  #include <memory>
4
4
  #include <string>
5
+ #include <utility>
5
6
 
6
7
  #include <jsi/jsi.h>
7
8
 
@@ -21,8 +21,8 @@ namespace jsi = facebook::jsi;
21
21
  class VideoFrame : public NativeObject<VideoFrame> {
22
22
  public:
23
23
  // JS-facing brand. installConstructor() exposes this as
24
- // globalThis[CLASS_NAME] and keys the NativeObjectRegistry / worklet
25
- // serializer off it, so it must NOT be "VideoFrame": that would install our
24
+ // globalThis[CLASS_NAME], and the NativeObjectRegistry / worklet serializer
25
+ // are keyed off it, so it must NOT be "VideoFrame": that would install our
26
26
  // constructor over the WebCodecs `VideoFrame` global and shadow it at
27
27
  // runtime. "NativeVideoFrame" matches the public TypeScript type (see
28
28
  // src/types.ts) and keeps the two namespaces distinct. The C++ class stays
@@ -14,9 +14,109 @@ let CONTEXT_COUNTER = 1;
14
14
  function generateContextId() {
15
15
  return CONTEXT_COUNTER++;
16
16
  }
17
+
18
+ /** The Android view a canvas draws into, see {@link AndroidCanvasProps}. */
19
+
20
+ /** The options of a canvas backed by a `TextureView`, the default. */
21
+
22
+ /** The options of a canvas backed by a `SurfaceView`. */
23
+
24
+ /** The options of a canvas backed by a `HardwareBufferView`. */
25
+
26
+ /**
27
+ * Android-only rendering options: the native view behind the canvas and its
28
+ * options. The view is created when the canvas mounts and kept: a change of
29
+ * `backingView` is ignored, with a warning in development; remount the canvas
30
+ * (with a `key`) to change it. `opaque` applies in place, and so do the
31
+ * z-order options on Android 11 and later. Ignored on iOS and web.
32
+ */
33
+
34
+ // The union read as one bag of options; which of them apply to the view is
35
+ // decided below, as it is on the native side.
36
+
37
+ const options = android => android ?? {};
38
+
17
39
  // Anything else reaching the native component would hit the generated
18
40
  // string-enum parser, which aborts on unknown values.
19
- const resolveSurfaceType = surfaceType => surfaceType === "SurfaceView" || surfaceType === "TextureView" || surfaceType === "HardwareBufferView" ? surfaceType : "auto";
41
+ const resolveBackingView = android => {
42
+ const {
43
+ backingView
44
+ } = options(android);
45
+ return backingView === "SurfaceView" || backingView === "HardwareBufferView" ? backingView : "TextureView";
46
+ };
47
+
48
+ // Whether the canvas composites as opaque, see BackingViewKind.resolveOpaque():
49
+ // a SurfaceView is opaque unless asked otherwise, a TextureView is translucent
50
+ // unless asked otherwise, and a HardwareBufferView always composites with
51
+ // alpha.
52
+ const resolveOpaque = android => {
53
+ const {
54
+ opaque
55
+ } = options(android);
56
+ switch (resolveBackingView(android)) {
57
+ case "SurfaceView":
58
+ return opaque !== false;
59
+ case "TextureView":
60
+ return opaque === true;
61
+ case "HardwareBufferView":
62
+ return false;
63
+ }
64
+ };
65
+
66
+ // The native props the `android` prop resolves to.
67
+ const androidNativeProps = android => {
68
+ const backingView = resolveBackingView(android);
69
+ const {
70
+ zOrderOnTop,
71
+ zOrderMediaOverlay
72
+ } = options(android);
73
+ const surfaceView = backingView === "SurfaceView";
74
+ return {
75
+ androidBackingView: backingView,
76
+ androidOpaque: resolveOpaque(android),
77
+ androidZOrderOnTop: surfaceView && !!zOrderOnTop,
78
+ androidZOrderMediaOverlay: surfaceView && !!zOrderMediaOverlay
79
+ };
80
+ };
81
+ const warnIgnoredChange = prop => console.warn(`Ignoring a change of ${prop} on a mounted canvas: the backing view is ` + "chosen when the canvas mounts. Remount the canvas (give it a new key) " + "to change it.");
82
+
83
+ // Warns, in development on Android, about an option a mounting canvas asks
84
+ // for that the native view cannot honour, and about a change of these props
85
+ // that the native view ignores: the backing view is created from them when
86
+ // the canvas mounts (see WebGPUView.java, whose setters these rules mirror).
87
+ // The native side only says so in logcat, which is not where a JS developer
88
+ // looks.
89
+ const useBackingViewWarning = android => {
90
+ const mount = (0, _react.useRef)(android);
91
+ const prev = (0, _react.useRef)(android);
92
+ (0, _react.useEffect)(() => {
93
+ if (__DEV__ && _reactNative.Platform.OS === "android" && resolveBackingView(mount.current) === "HardwareBufferView" && Number(_reactNative.Platform.Version) < 29) {
94
+ console.warn("android.backingView: HardwareBufferView needs Android 10, the " + "canvas uses a TextureView.");
95
+ }
96
+ }, []);
97
+ (0, _react.useEffect)(() => {
98
+ if (__DEV__ && _reactNative.Platform.OS === "android") {
99
+ const {
100
+ current: before
101
+ } = prev;
102
+ if (resolveBackingView(before) !== resolveBackingView(android)) {
103
+ warnIgnoredChange("android.backingView");
104
+ }
105
+ // Only a SurfaceView has a z-order of its own, which Android 11 and
106
+ // later changes in place.
107
+ const zOrderAtMount = resolveBackingView(mount.current) === "SurfaceView" && Number(_reactNative.Platform.Version) < 30;
108
+ const was = options(before);
109
+ const is = options(android);
110
+ if (zOrderAtMount && !!was.zOrderOnTop !== !!is.zOrderOnTop) {
111
+ warnIgnoredChange("android.zOrderOnTop");
112
+ }
113
+ if (zOrderAtMount && !!was.zOrderMediaOverlay !== !!is.zOrderMediaOverlay) {
114
+ warnIgnoredChange("android.zOrderMediaOverlay");
115
+ }
116
+ }
117
+ prev.current = android;
118
+ });
119
+ };
20
120
 
21
121
  // A view measured relative to itself gets its layout size, without the
22
122
  // transforms getBoundingClientRect() includes; measureLayout() calls back
@@ -48,13 +148,13 @@ const measureLayout = view => {
48
148
  return size;
49
149
  };
50
150
  const Canvas = ({
51
- opaque = true,
52
151
  android,
53
152
  ref,
54
153
  ...props
55
154
  }) => {
56
155
  const viewRef = (0, _react.useRef)(null);
57
156
  const [contextId, _] = (0, _react.useState)(() => generateContextId());
157
+ useBackingViewWarning(android);
58
158
  // Retire the native registry entry for this contextId on unmount. When a
59
159
  // native surface is still attached, this is a no-op and the native view's
60
160
  // own teardown retires the entry instead — which keeps StrictMode's
@@ -87,15 +187,12 @@ const Canvas = ({
87
187
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
88
188
  collapsable: false,
89
189
  ref: viewRef
90
- }, props), /*#__PURE__*/_react.default.createElement(_WebGPUViewNativeComponent.default, {
190
+ }, props), /*#__PURE__*/_react.default.createElement(_WebGPUViewNativeComponent.default, _extends({
91
191
  style: {
92
192
  flex: 1
93
193
  },
94
- contextId: contextId,
95
- opaque: opaque,
96
- androidSurfaceType: resolveSurfaceType(android?.surfaceType),
97
- androidZOrderOnTop: !!android?.zOrderOnTop
98
- }));
194
+ contextId: contextId
195
+ }, androidNativeProps(android))));
99
196
  };
100
197
  exports.Canvas = Canvas;
101
198
  //# sourceMappingURL=Canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","CONTEXT_COUNTER","generateContextId","resolveSurfaceType","surfaceType","measureLayout","view","Platform","OS","clientWidth","clientHeight","width","height","size","_left","_top","Canvas","opaque","android","ref","props","viewRef","useRef","contextId","_","useState","useEffect","RNWebGPU","destroyContext","useImperativeHandle","getContextId","getNativeSurface","getContext","contextName","Error","current","MakeWebGPUCanvasContext","createElement","View","collapsable","style","flex","androidSurfaceType","androidZOrderOnTop","zOrderOnTop","exports"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","CONTEXT_COUNTER","generateContextId","options","android","resolveBackingView","backingView","resolveOpaque","opaque","androidNativeProps","zOrderOnTop","zOrderMediaOverlay","surfaceView","androidBackingView","androidOpaque","androidZOrderOnTop","androidZOrderMediaOverlay","warnIgnoredChange","prop","console","warn","useBackingViewWarning","mount","useRef","prev","useEffect","__DEV__","Platform","OS","current","Number","Version","before","zOrderAtMount","was","is","measureLayout","view","clientWidth","clientHeight","width","height","size","_left","_top","Canvas","ref","props","viewRef","contextId","_","useState","RNWebGPU","destroyContext","useImperativeHandle","getContextId","getNativeSurface","getContext","contextName","Error","MakeWebGPUCanvasContext","createElement","View","collapsable","style","flex","exports"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAiBA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAAC,mCAAsB,EAAc,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAmBA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAAC,mCAAsB,EAAc,YAAY,CAAC","ignoreList":[]}
@@ -13,9 +13,10 @@ function WebGPUViewNativeComponent(props) {
13
13
  const {
14
14
  contextId,
15
15
  style,
16
- opaque = true,
17
- androidSurfaceType: _androidSurfaceType,
16
+ androidBackingView: _androidBackingView,
17
+ androidOpaque: _androidOpaque,
18
18
  androidZOrderOnTop: _androidZOrderOnTop,
19
+ androidZOrderMediaOverlay: _androidZOrderMediaOverlay,
19
20
  ...rest
20
21
  } = props;
21
22
 
@@ -28,9 +29,6 @@ function WebGPUViewNativeComponent(props) {
28
29
  style: {
29
30
  ...styles.view,
30
31
  ...styles.flex1,
31
- ...(opaque ? {
32
- backgroundColor: "white"
33
- } : {}),
34
32
  ...(typeof style === "object" ? style : {})
35
33
  }
36
34
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_utils","e","__esModule","default","WebGPUViewNativeComponent","props","contextId","style","opaque","androidSurfaceType","_androidSurfaceType","androidZOrderOnTop","_androidZOrderOnTop","rest","React","createElement","id","contextIdToId","styles","view","flex1","backgroundColor","StyleSheet","create","flex","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","zIndex"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.web.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAAwC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASxC;AACe,SAASG,yBAAyBA,CAC/CC,KAAkB,EACC;EACnB,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,MAAM,GAAG,IAAI;IACbC,kBAAkB,EAAEC,mBAAmB;IACvCC,kBAAkB,EAAEC,mBAAmB;IACvC,GAAGC;EACL,CAAC,GAAGR,KAAK;;EAET;EACA;EACA;EACA,oBAAOS,cAAK,CAACC,aAAa,CAAC,QAAQ,EAAE;IACnC,GAAGF,IAAI;IACPG,EAAE,EAAE,IAAAC,oBAAa,EAACX,SAAS,CAAC;IAC5BC,KAAK,EAAE;MACL,GAAGW,MAAM,CAACC,IAAI;MACd,GAAGD,MAAM,CAACE,KAAK;MACf,IAAIZ,MAAM,GAAG;QAAEa,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/C,IAAI,OAAOd,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMW,MAAM,GAAGI,uBAAU,CAACC,MAAM,CAAC;EAC/BH,KAAK,EAAE;IACLI,IAAI,EAAE;EACR,CAAC;EACDL,IAAI,EAAE;IACJM,UAAU,EAAE,SAAS;IACrBJ,eAAe,EAAE,aAAa;IAC9B;IACA;IACAK,MAAM,EAAE,eAAe;IACvBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,MAAM;IACjBC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_utils","e","__esModule","default","WebGPUViewNativeComponent","props","contextId","style","androidBackingView","_androidBackingView","androidOpaque","_androidOpaque","androidZOrderOnTop","_androidZOrderOnTop","androidZOrderMediaOverlay","_androidZOrderMediaOverlay","rest","React","createElement","id","contextIdToId","styles","view","flex1","StyleSheet","create","flex","alignItems","backgroundColor","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","zIndex"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.web.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAAwC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAWxC;AACe,SAASG,yBAAyBA,CAC/CC,KAAkB,EACC;EACnB,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,kBAAkB,EAAEC,mBAAmB;IACvCC,aAAa,EAAEC,cAAc;IAC7BC,kBAAkB,EAAEC,mBAAmB;IACvCC,yBAAyB,EAAEC,0BAA0B;IACrD,GAAGC;EACL,CAAC,GAAGX,KAAK;;EAET;EACA;EACA;EACA,oBAAOY,cAAK,CAACC,aAAa,CAAC,QAAQ,EAAE;IACnC,GAAGF,IAAI;IACPG,EAAE,EAAE,IAAAC,oBAAa,EAACd,SAAS,CAAC;IAC5BC,KAAK,EAAE;MACL,GAAGc,MAAM,CAACC,IAAI;MACd,GAAGD,MAAM,CAACE,KAAK;MACf,IAAI,OAAOhB,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMc,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BF,KAAK,EAAE;IACLG,IAAI,EAAE;EACR,CAAC;EACDJ,IAAI,EAAE;IACJK,UAAU,EAAE,SAAS;IACrBC,eAAe,EAAE,aAAa;IAC9B;IACA;IACAC,MAAM,EAAE,eAAe;IACvBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,MAAM;IACjBC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","require","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox","exports"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAkBA,IAAIA,YAAY,GAAG,KAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAG,IAAI;EAEnB,MAAME,OAAO,GAAGC,UAAU,CAACC,sBAAsB;EACjD,IAAIF,OAAO,KAAKG,SAAS,EAAE;IACzB;IACA;EACF;EAEA,IAAI;IACF,MAAM;MAAEC;IAA2B,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAEvED,0BAA0B,CAAC;MACzBE,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOR,OAAO,CAACS,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOR,OAAO,CAACW,GAAG,CAACH,KAAK,CAAC;MAC3B,CAAC;MACDI,MAAM,EAAGC,KAAwB,IAAK;QACpC,SAAS;;QACT,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC;AAACC,OAAA,CAAAhB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","require","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox","exports"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAsBA,IAAIA,YAAY,GAAG,KAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAG,IAAI;EAEnB,MAAME,OAAO,GAAGC,UAAU,CAACC,sBAAsB;EACjD,IAAIF,OAAO,KAAKG,SAAS,EAAE;IACzB;IACA;EACF;EAEA,IAAI;IACF,MAAM;MAAEC;IAA2B,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAEvED,0BAA0B,CAAC;MACzBE,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOR,OAAO,CAACS,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOR,OAAO,CAACW,GAAG,CAACH,KAAK,CAAC;MAC3B,CAAC;MACDI,MAAM,EAAGC,KAAwB,IAAK;QACpC,SAAS;;QACT,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC;AAACC,OAAA,CAAAhB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -28,14 +28,25 @@ const constants = {
28
28
  // runtime installs the GPU prototype there.
29
29
  const gpu = typeof RNWebGPU === "undefined" ? undefined : RNWebGPU.gpu;
30
30
 
31
+ // The native half of the worklet serializer (see registerWebGPUForReanimated),
32
+ // read from the main runtime like `gpu` above and captured into the worklet
33
+ // closure: worklets hands a HostObject to every runtime by reference, so it is
34
+ // callable on the target runtime without installing anything there. Its
35
+ // installConstructors() installs the WebGPU class constructors on the runtime
36
+ // that calls it. Undefined on web and node, where the native module is not
37
+ // installed.
38
+ const helpers = globalThis.__webgpuWorkletHelpers;
39
+
31
40
  /**
32
41
  * Install WebGPU on the runtime that calls it.
33
42
  *
34
43
  * The native module sets up WebGPU on the main JS runtime, but worklet
35
44
  * runtimes (Reanimated UI, dedicated worklet runtimes, Vision Camera frame
36
- * processors) start without it: `navigator.gpu` and the flag constants
45
+ * processors) start without it: `navigator.gpu`, the flag constants
37
46
  * (`GPUBufferUsage`, `GPUTextureUsage`, `GPUShaderStage`, `GPUColorWrite`,
38
- * `GPUMapMode`) are all `undefined` there.
47
+ * `GPUMapMode`) and the class constructors (`GPUBuffer`, `GPUTexture`,
48
+ * `GPURenderBundleEncoder`, ...) are all `undefined` there. Without the
49
+ * constructors, `instanceof` against a WebGPU class throws a ReferenceError.
39
50
  *
40
51
  * Call `installWebGPU()` once at the top of a worklet to make them available:
41
52
  *
@@ -64,12 +75,13 @@ const gpu = typeof RNWebGPU === "undefined" ? undefined : RNWebGPU.gpu;
64
75
  * Observe those on a device created on the main JS thread.
65
76
  *
66
77
  * Everything is captured into the worklet by closure: the constants like a
67
- * shader string would be, and the GPU object through the Worklets custom
78
+ * shader string would be, the GPU object through the Worklets custom
68
79
  * serializer, which installs the native prototypes on the target runtime when
69
- * it crosses. Promises returned by `requestAdapter`/`requestDevice` settle on
70
- * the calling runtime (each runtime gets its own async pump). Calling it on a
71
- * runtime that already has the globals (e.g. the main JS runtime) is a safe
72
- * no-op.
80
+ * it crosses, and the native helper that installs the class constructors,
81
+ * which worklets hands to every runtime by reference. Promises returned by
82
+ * `requestAdapter`/`requestDevice` settle on the calling runtime (each
83
+ * runtime gets its own async pump). Calling it on a runtime that already has
84
+ * the globals (e.g. the main JS runtime) is a safe no-op.
73
85
  */
74
86
  const installWebGPU = () => {
75
87
  "worklet";
@@ -91,6 +103,13 @@ const installWebGPU = () => {
91
103
  nav.gpu = gpu;
92
104
  }
93
105
  }
106
+ // The class constructors, so `instanceof` works against any WebGPU class on
107
+ // this runtime (three.js checks `pass instanceof GPURenderBundleEncoder` on
108
+ // every render, for instance). Unboxing an object installs only its own
109
+ // class; this installs the rest and skips the ones already there.
110
+ if (helpers !== undefined) {
111
+ helpers.installConstructors();
112
+ }
94
113
  };
95
114
  exports.installWebGPU = installWebGPU;
96
115
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","constants","GPUBufferUsage","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode","gpu","RNWebGPU","undefined","installWebGPU","g","globalThis","key","value","Object","entries","nav","navigator","userAgent","exports"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AADA;;AASA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG;EAChBC,cAAc,EAAdA,yBAAc;EACdC,eAAe,EAAfA,0BAAe;EACfC,cAAc,EAAdA,yBAAc;EACdC,aAAa,EAAbA,wBAAa;EACbC,UAAU,EAAVA;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAoB,GACxB,OAAOC,QAAQ,KAAK,WAAW,GAAGC,SAAS,GAAGD,QAAQ,CAACD,GAAG;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,aAAa,GAAGA,CAAA,KAAM;EACjC,SAAS;;EACT,MAAMC,CAAC,GAAGC,UAAgD;EAC1D,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACf,SAAS,CAAC,EAAE;IACpD,IAAIU,CAAC,CAACE,GAAG,CAAC,KAAKJ,SAAS,EAAE;MACxBE,CAAC,CAACE,GAAG,CAAC,GAAGC,KAAK;IAChB;EACF;EACA,IAAIP,GAAG,KAAKE,SAAS,EAAE;IACrB,MAAMQ,GAAG,GAAGN,CAAC,CAACO,SAA0D;IACxE,IAAID,GAAG,KAAKR,SAAS,EAAE;MACrBE,CAAC,CAACO,SAAS,GAAG;QAAEX,GAAG;QAAEY,SAAS,EAAE;MAAe,CAAC;IAClD,CAAC,MAAM,IAAIF,GAAG,CAACV,GAAG,KAAKE,SAAS,EAAE;MAChCQ,GAAG,CAACV,GAAG,GAAGA,GAAG;IACf;EACF;AACF,CAAC;AAACa,OAAA,CAAAV,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["_constants","require","constants","GPUBufferUsage","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode","gpu","RNWebGPU","undefined","helpers","globalThis","__webgpuWorkletHelpers","installWebGPU","g","key","value","Object","entries","nav","navigator","userAgent","installConstructors","exports"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AADA;;AASA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG;EAChBC,cAAc,EAAdA,yBAAc;EACdC,eAAe,EAAfA,0BAAe;EACfC,cAAc,EAAdA,yBAAc;EACdC,aAAa,EAAbA,wBAAa;EACbC,UAAU,EAAVA;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAoB,GACxB,OAAOC,QAAQ,KAAK,WAAW,GAAGC,SAAS,GAAGD,QAAQ,CAACD,GAAG;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,GAAGC,UAAU,CAACC,sBAAsB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,SAAS;;EACT,MAAMC,CAAC,GAAGH,UAAgD;EAC1D,KAAK,MAAM,CAACI,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACjB,SAAS,CAAC,EAAE;IACpD,IAAIa,CAAC,CAACC,GAAG,CAAC,KAAKN,SAAS,EAAE;MACxBK,CAAC,CAACC,GAAG,CAAC,GAAGC,KAAK;IAChB;EACF;EACA,IAAIT,GAAG,KAAKE,SAAS,EAAE;IACrB,MAAMU,GAAG,GAAGL,CAAC,CAACM,SAA0D;IACxE,IAAID,GAAG,KAAKV,SAAS,EAAE;MACrBK,CAAC,CAACM,SAAS,GAAG;QAAEb,GAAG;QAAEc,SAAS,EAAE;MAAe,CAAC;IAClD,CAAC,MAAM,IAAIF,GAAG,CAACZ,GAAG,KAAKE,SAAS,EAAE;MAChCU,GAAG,CAACZ,GAAG,GAAGA,GAAG;IACf;EACF;EACA;EACA;EACA;EACA;EACA,IAAIG,OAAO,KAAKD,SAAS,EAAE;IACzBC,OAAO,CAACY,mBAAmB,CAAC,CAAC;EAC/B;AACF,CAAC;AAACC,OAAA,CAAAV,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -107,7 +107,6 @@ const GPUMapMode = exports.GPUMapMode = {
107
107
  const NOT_AVAILABLE_UNDER_JEST = "is not available under Jest - react-native-webgpu has no native implementation in tests (see react-native-webgpu/jestSetup.js)";
108
108
  // Strip the same props the real Canvas keeps off its outer View.
109
109
  const Canvas = ({
110
- opaque: _opaque,
111
110
  android: _android,
112
111
  ref,
113
112
  ...props
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_formats","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default","GPUBufferUsage","MAP_READ","MAP_WRITE","COPY_SRC","COPY_DST","INDEX","VERTEX","UNIFORM","STORAGE","INDIRECT","QUERY_RESOLVE","GPUTextureUsage","TEXTURE_BINDING","STORAGE_BINDING","RENDER_ATTACHMENT","TRANSIENT_ATTACHMENT","GPUShaderStage","FRAGMENT","COMPUTE","GPUColorWrite","RED","GREEN","BLUE","ALPHA","ALL","GPUMapMode","READ","WRITE","g","globalThis","value","entries","undefined","NOT_AVAILABLE_UNDER_JEST","Canvas","opaque","_opaque","android","_android","ref","props","React","useImperativeHandle","getContextId","getContext","_contextName","getNativeSurface","Error","createElement","View","useCanvasRef","useRef","useSurface","surface","warnIfNotHardwareAccelerated","useDevice","adapter","device","GPUDeviceProvider","children","useMainDevice","importDevice","_pointer","adoptTexture","installWebGPU","WebGPUModule","install"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_formats","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default","GPUBufferUsage","MAP_READ","MAP_WRITE","COPY_SRC","COPY_DST","INDEX","VERTEX","UNIFORM","STORAGE","INDIRECT","QUERY_RESOLVE","GPUTextureUsage","TEXTURE_BINDING","STORAGE_BINDING","RENDER_ATTACHMENT","TRANSIENT_ATTACHMENT","GPUShaderStage","FRAGMENT","COMPUTE","GPUColorWrite","RED","GREEN","BLUE","ALPHA","ALL","GPUMapMode","READ","WRITE","g","globalThis","value","entries","undefined","NOT_AVAILABLE_UNDER_JEST","Canvas","android","_android","ref","props","React","useImperativeHandle","getContextId","getContext","_contextName","getNativeSurface","Error","createElement","View","useCanvasRef","useRef","useSurface","surface","warnIfNotHardwareAccelerated","useDevice","adapter","device","GPUDeviceProvider","children","useMainDevice","importDevice","_pointer","adoptTexture","installWebGPU","WebGPUModule","install"],"sourceRoot":"../../src","sources":["mock.ts"],"mappings":"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","ignoreList":[]}
@@ -6,9 +6,109 @@ let CONTEXT_COUNTER = 1;
6
6
  function generateContextId() {
7
7
  return CONTEXT_COUNTER++;
8
8
  }
9
+
10
+ /** The Android view a canvas draws into, see {@link AndroidCanvasProps}. */
11
+
12
+ /** The options of a canvas backed by a `TextureView`, the default. */
13
+
14
+ /** The options of a canvas backed by a `SurfaceView`. */
15
+
16
+ /** The options of a canvas backed by a `HardwareBufferView`. */
17
+
18
+ /**
19
+ * Android-only rendering options: the native view behind the canvas and its
20
+ * options. The view is created when the canvas mounts and kept: a change of
21
+ * `backingView` is ignored, with a warning in development; remount the canvas
22
+ * (with a `key`) to change it. `opaque` applies in place, and so do the
23
+ * z-order options on Android 11 and later. Ignored on iOS and web.
24
+ */
25
+
26
+ // The union read as one bag of options; which of them apply to the view is
27
+ // decided below, as it is on the native side.
28
+
29
+ const options = android => android ?? {};
30
+
9
31
  // Anything else reaching the native component would hit the generated
10
32
  // string-enum parser, which aborts on unknown values.
11
- const resolveSurfaceType = surfaceType => surfaceType === "SurfaceView" || surfaceType === "TextureView" || surfaceType === "HardwareBufferView" ? surfaceType : "auto";
33
+ const resolveBackingView = android => {
34
+ const {
35
+ backingView
36
+ } = options(android);
37
+ return backingView === "SurfaceView" || backingView === "HardwareBufferView" ? backingView : "TextureView";
38
+ };
39
+
40
+ // Whether the canvas composites as opaque, see BackingViewKind.resolveOpaque():
41
+ // a SurfaceView is opaque unless asked otherwise, a TextureView is translucent
42
+ // unless asked otherwise, and a HardwareBufferView always composites with
43
+ // alpha.
44
+ const resolveOpaque = android => {
45
+ const {
46
+ opaque
47
+ } = options(android);
48
+ switch (resolveBackingView(android)) {
49
+ case "SurfaceView":
50
+ return opaque !== false;
51
+ case "TextureView":
52
+ return opaque === true;
53
+ case "HardwareBufferView":
54
+ return false;
55
+ }
56
+ };
57
+
58
+ // The native props the `android` prop resolves to.
59
+ const androidNativeProps = android => {
60
+ const backingView = resolveBackingView(android);
61
+ const {
62
+ zOrderOnTop,
63
+ zOrderMediaOverlay
64
+ } = options(android);
65
+ const surfaceView = backingView === "SurfaceView";
66
+ return {
67
+ androidBackingView: backingView,
68
+ androidOpaque: resolveOpaque(android),
69
+ androidZOrderOnTop: surfaceView && !!zOrderOnTop,
70
+ androidZOrderMediaOverlay: surfaceView && !!zOrderMediaOverlay
71
+ };
72
+ };
73
+ const warnIgnoredChange = prop => console.warn(`Ignoring a change of ${prop} on a mounted canvas: the backing view is ` + "chosen when the canvas mounts. Remount the canvas (give it a new key) " + "to change it.");
74
+
75
+ // Warns, in development on Android, about an option a mounting canvas asks
76
+ // for that the native view cannot honour, and about a change of these props
77
+ // that the native view ignores: the backing view is created from them when
78
+ // the canvas mounts (see WebGPUView.java, whose setters these rules mirror).
79
+ // The native side only says so in logcat, which is not where a JS developer
80
+ // looks.
81
+ const useBackingViewWarning = android => {
82
+ const mount = useRef(android);
83
+ const prev = useRef(android);
84
+ useEffect(() => {
85
+ if (__DEV__ && Platform.OS === "android" && resolveBackingView(mount.current) === "HardwareBufferView" && Number(Platform.Version) < 29) {
86
+ console.warn("android.backingView: HardwareBufferView needs Android 10, the " + "canvas uses a TextureView.");
87
+ }
88
+ }, []);
89
+ useEffect(() => {
90
+ if (__DEV__ && Platform.OS === "android") {
91
+ const {
92
+ current: before
93
+ } = prev;
94
+ if (resolveBackingView(before) !== resolveBackingView(android)) {
95
+ warnIgnoredChange("android.backingView");
96
+ }
97
+ // Only a SurfaceView has a z-order of its own, which Android 11 and
98
+ // later changes in place.
99
+ const zOrderAtMount = resolveBackingView(mount.current) === "SurfaceView" && Number(Platform.Version) < 30;
100
+ const was = options(before);
101
+ const is = options(android);
102
+ if (zOrderAtMount && !!was.zOrderOnTop !== !!is.zOrderOnTop) {
103
+ warnIgnoredChange("android.zOrderOnTop");
104
+ }
105
+ if (zOrderAtMount && !!was.zOrderMediaOverlay !== !!is.zOrderMediaOverlay) {
106
+ warnIgnoredChange("android.zOrderMediaOverlay");
107
+ }
108
+ }
109
+ prev.current = android;
110
+ });
111
+ };
12
112
 
13
113
  // A view measured relative to itself gets its layout size, without the
14
114
  // transforms getBoundingClientRect() includes; measureLayout() calls back
@@ -40,13 +140,13 @@ const measureLayout = view => {
40
140
  return size;
41
141
  };
42
142
  export const Canvas = ({
43
- opaque = true,
44
143
  android,
45
144
  ref,
46
145
  ...props
47
146
  }) => {
48
147
  const viewRef = useRef(null);
49
148
  const [contextId, _] = useState(() => generateContextId());
149
+ useBackingViewWarning(android);
50
150
  // Retire the native registry entry for this contextId on unmount. When a
51
151
  // native surface is still attached, this is a no-op and the native view's
52
152
  // own teardown retires the entry instead — which keeps StrictMode's
@@ -79,14 +179,11 @@ export const Canvas = ({
79
179
  return /*#__PURE__*/React.createElement(View, _extends({
80
180
  collapsable: false,
81
181
  ref: viewRef
82
- }, props), /*#__PURE__*/React.createElement(WebGPUNativeView, {
182
+ }, props), /*#__PURE__*/React.createElement(WebGPUNativeView, _extends({
83
183
  style: {
84
184
  flex: 1
85
185
  },
86
- contextId: contextId,
87
- opaque: opaque,
88
- androidSurfaceType: resolveSurfaceType(android?.surfaceType),
89
- androidZOrderOnTop: !!android?.zOrderOnTop
90
- }));
186
+ contextId: contextId
187
+ }, androidNativeProps(android))));
91
188
  };
92
189
  //# sourceMappingURL=Canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Platform","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","resolveSurfaceType","surfaceType","measureLayout","view","OS","clientWidth","clientHeight","width","height","size","_left","_top","Canvas","opaque","android","ref","props","viewRef","contextId","_","RNWebGPU","destroyContext","getContextId","getNativeSurface","getContext","contextName","Error","current","MakeWebGPUCanvasContext","createElement","_extends","collapsable","style","flex","androidSurfaceType","androidZOrderOnTop","zOrderOnTop"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Platform","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","options","android","resolveBackingView","backingView","resolveOpaque","opaque","androidNativeProps","zOrderOnTop","zOrderMediaOverlay","surfaceView","androidBackingView","androidOpaque","androidZOrderOnTop","androidZOrderMediaOverlay","warnIgnoredChange","prop","console","warn","useBackingViewWarning","mount","prev","__DEV__","OS","current","Number","Version","before","zOrderAtMount","was","is","measureLayout","view","clientWidth","clientHeight","width","height","size","_left","_top","Canvas","ref","props","viewRef","contextId","_","RNWebGPU","destroyContext","getContextId","getNativeSurface","getContext","contextName","Error","MakeWebGPUCanvasContext","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAiBrD;AACA,eAAeA,sBAAsB,CAAc,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAmBrD;AACA,eAAeA,sBAAsB,CAAc,YAAY,CAAC","ignoreList":[]}
@@ -6,9 +6,10 @@ export default function WebGPUViewNativeComponent(props) {
6
6
  const {
7
7
  contextId,
8
8
  style,
9
- opaque = true,
10
- androidSurfaceType: _androidSurfaceType,
9
+ androidBackingView: _androidBackingView,
10
+ androidOpaque: _androidOpaque,
11
11
  androidZOrderOnTop: _androidZOrderOnTop,
12
+ androidZOrderMediaOverlay: _androidZOrderMediaOverlay,
12
13
  ...rest
13
14
  } = props;
14
15
 
@@ -21,9 +22,6 @@ export default function WebGPUViewNativeComponent(props) {
21
22
  style: {
22
23
  ...styles.view,
23
24
  ...styles.flex1,
24
- ...(opaque ? {
25
- backgroundColor: "white"
26
- } : {}),
27
25
  ...(typeof style === "object" ? style : {})
28
26
  }
29
27
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","contextIdToId","WebGPUViewNativeComponent","props","contextId","style","opaque","androidSurfaceType","_androidSurfaceType","androidZOrderOnTop","_androidZOrderOnTop","rest","createElement","id","styles","view","flex1","backgroundColor","create","flex","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","zIndex"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.web.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAIzC,SAASC,aAAa,QAAQ,SAAS;AASvC;AACA,eAAe,SAASC,yBAAyBA,CAC/CC,KAAkB,EACC;EACnB,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,MAAM,GAAG,IAAI;IACbC,kBAAkB,EAAEC,mBAAmB;IACvCC,kBAAkB,EAAEC,mBAAmB;IACvC,GAAGC;EACL,CAAC,GAAGR,KAAK;;EAET;EACA;EACA;EACA,oBAAOJ,KAAK,CAACa,aAAa,CAAC,QAAQ,EAAE;IACnC,GAAGD,IAAI;IACPE,EAAE,EAAEZ,aAAa,CAACG,SAAS,CAAC;IAC5BC,KAAK,EAAE;MACL,GAAGS,MAAM,CAACC,IAAI;MACd,GAAGD,MAAM,CAACE,KAAK;MACf,IAAIV,MAAM,GAAG;QAAEW,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/C,IAAI,OAAOZ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMS,MAAM,GAAGd,UAAU,CAACkB,MAAM,CAAC;EAC/BF,KAAK,EAAE;IACLG,IAAI,EAAE;EACR,CAAC;EACDJ,IAAI,EAAE;IACJK,UAAU,EAAE,SAAS;IACrBH,eAAe,EAAE,aAAa;IAC9B;IACA;IACAI,MAAM,EAAE,eAAe;IACvBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,MAAM;IACjBC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","contextIdToId","WebGPUViewNativeComponent","props","contextId","style","androidBackingView","_androidBackingView","androidOpaque","_androidOpaque","androidZOrderOnTop","_androidZOrderOnTop","androidZOrderMediaOverlay","_androidZOrderMediaOverlay","rest","createElement","id","styles","view","flex1","create","flex","alignItems","backgroundColor","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","zIndex"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.web.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAIzC,SAASC,aAAa,QAAQ,SAAS;AAWvC;AACA,eAAe,SAASC,yBAAyBA,CAC/CC,KAAkB,EACC;EACnB,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,kBAAkB,EAAEC,mBAAmB;IACvCC,aAAa,EAAEC,cAAc;IAC7BC,kBAAkB,EAAEC,mBAAmB;IACvCC,yBAAyB,EAAEC,0BAA0B;IACrD,GAAGC;EACL,CAAC,GAAGX,KAAK;;EAET;EACA;EACA;EACA,oBAAOJ,KAAK,CAACgB,aAAa,CAAC,QAAQ,EAAE;IACnC,GAAGD,IAAI;IACPE,EAAE,EAAEf,aAAa,CAACG,SAAS,CAAC;IAC5BC,KAAK,EAAE;MACL,GAAGY,MAAM,CAACC,IAAI;MACd,GAAGD,MAAM,CAACE,KAAK;MACf,IAAI,OAAOd,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,CAAC,CAAC;IAC5C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMY,MAAM,GAAGjB,UAAU,CAACoB,MAAM,CAAC;EAC/BD,KAAK,EAAE;IACLE,IAAI,EAAE;EACR,CAAC;EACDH,IAAI,EAAE;IACJI,UAAU,EAAE,SAAS;IACrBC,eAAe,EAAE,aAAa;IAC9B;IACA;IACAC,MAAM,EAAE,eAAe;IACvBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,MAAM;IACjBC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","require","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAkBA,IAAIA,YAAY,GAAG,KAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAG,IAAI;EAEnB,MAAME,OAAO,GAAGC,UAAU,CAACC,sBAAsB;EACjD,IAAIF,OAAO,KAAKG,SAAS,EAAE;IACzB;IACA;EACF;EAEA,IAAI;IACF,MAAM;MAAEC;IAA2B,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAEvED,0BAA0B,CAAC;MACzBE,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOR,OAAO,CAACS,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOR,OAAO,CAACW,GAAG,CAACH,KAAK,CAAC;MAC3B,CAAC;MACDI,MAAM,EAAGC,KAAwB,IAAK;QACpC,SAAS;;QACT,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","require","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAsBA,IAAIA,YAAY,GAAG,KAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,IAAID,YAAY,EAAE;IAChB;EACF;EACAA,YAAY,GAAG,IAAI;EAEnB,MAAME,OAAO,GAAGC,UAAU,CAACC,sBAAsB;EACjD,IAAIF,OAAO,KAAKG,SAAS,EAAE;IACzB;IACA;EACF;EAEA,IAAI;IACF,MAAM;MAAEC;IAA2B,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAEvED,0BAA0B,CAAC;MACzBE,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOR,OAAO,CAACS,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOR,OAAO,CAACW,GAAG,CAACH,KAAK,CAAC;MAC3B,CAAC;MACDI,MAAM,EAAGC,KAAwB,IAAK;QACpC,SAAS;;QACT,OAAOA,KAAK,CAACC,KAAK,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC","ignoreList":[]}