react-native-webgpu 0.16.1 → 0.19.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 (78) hide show
  1. package/android/cpp/AndroidPlatformContext.h +8 -0
  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 +78 -76
  5. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +13 -6
  6. package/apple/ApplePlatformContext.h +2 -0
  7. package/apple/ApplePlatformContext.mm +12 -0
  8. package/apple/MetalLayerColorSpace.mm +20 -8
  9. package/cpp/jsi/NativeObject.h +42 -32
  10. package/cpp/rnwgpu/CanvasColorSpace.h +9 -0
  11. package/cpp/rnwgpu/PlatformContext.h +6 -0
  12. package/cpp/rnwgpu/RNWebGPUManager.cpp +5 -8
  13. package/cpp/rnwgpu/SurfaceRegistry.h +101 -30
  14. package/cpp/rnwgpu/WebGPURuntime.cpp +30 -11
  15. package/cpp/rnwgpu/WebGPURuntime.h +7 -2
  16. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +2 -1
  17. package/cpp/rnwgpu/api/GPUCanvasContext.h +10 -0
  18. package/cpp/rnwgpu/api/GPUFeatures.h +1 -0
  19. package/cpp/rnwgpu/api/RNWebGPU.h +63 -5
  20. package/cpp/rnwgpu/api/VideoFrame.h +2 -2
  21. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +18 -0
  22. package/cpp/rnwgpu/async/RuntimeContext.cpp +43 -27
  23. package/cpp/rnwgpu/async/RuntimeContext.h +19 -11
  24. package/lib/commonjs/Canvas.js +88 -43
  25. package/lib/commonjs/Canvas.js.map +1 -1
  26. package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -1
  27. package/lib/commonjs/WebGPUViewNativeComponent.web.js +3 -5
  28. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -1
  29. package/lib/commonjs/WebPolyfillGPUModule.js +2 -0
  30. package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -1
  31. package/lib/commonjs/importDevice.js +3 -2
  32. package/lib/commonjs/importDevice.js.map +1 -1
  33. package/lib/commonjs/mock.js +0 -1
  34. package/lib/commonjs/mock.js.map +1 -1
  35. package/lib/module/Canvas.js +88 -43
  36. package/lib/module/Canvas.js.map +1 -1
  37. package/lib/module/WebGPUViewNativeComponent.js.map +1 -1
  38. package/lib/module/WebGPUViewNativeComponent.web.js +3 -5
  39. package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -1
  40. package/lib/module/WebPolyfillGPUModule.js +2 -0
  41. package/lib/module/WebPolyfillGPUModule.js.map +1 -1
  42. package/lib/module/importDevice.js +3 -2
  43. package/lib/module/importDevice.js.map +1 -1
  44. package/lib/module/mock.js +0 -1
  45. package/lib/module/mock.js.map +1 -1
  46. package/lib/typescript/lib/commonjs/Canvas.d.ts +1 -2
  47. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
  48. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  49. package/lib/typescript/lib/commonjs/importDevice.d.ts +3 -2
  50. package/lib/typescript/lib/commonjs/importDevice.d.ts.map +1 -1
  51. package/lib/typescript/lib/commonjs/mock.d.ts +1 -2
  52. package/lib/typescript/lib/commonjs/mock.d.ts.map +1 -1
  53. package/lib/typescript/lib/module/Canvas.d.ts +1 -2
  54. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  55. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  56. package/lib/typescript/lib/module/importDevice.d.ts.map +1 -1
  57. package/lib/typescript/lib/module/mock.d.ts +1 -2
  58. package/lib/typescript/lib/module/mock.d.ts.map +1 -1
  59. package/lib/typescript/src/Canvas.d.ts +61 -29
  60. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  61. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +3 -2
  62. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
  63. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +3 -2
  64. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  65. package/lib/typescript/src/importDevice.d.ts +3 -2
  66. package/lib/typescript/src/importDevice.d.ts.map +1 -1
  67. package/lib/typescript/src/index.d.ts +2 -0
  68. package/lib/typescript/src/index.d.ts.map +1 -1
  69. package/lib/typescript/src/mock.d.ts +2 -2
  70. package/lib/typescript/src/mock.d.ts.map +1 -1
  71. package/package.json +3 -3
  72. package/src/Canvas.tsx +156 -81
  73. package/src/WebGPUViewNativeComponent.ts +6 -4
  74. package/src/WebGPUViewNativeComponent.web.ts +7 -5
  75. package/src/WebPolyfillGPUModule.ts +3 -0
  76. package/src/importDevice.ts +3 -2
  77. package/src/index.tsx +15 -4
  78. package/src/mock.ts +5 -7
@@ -2,58 +2,110 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
2
2
  import React, { useEffect, useImperativeHandle, useRef, useState } from "react";
3
3
  import { Platform, View } from "react-native";
4
4
  import WebGPUNativeView from "./WebGPUViewNativeComponent";
5
- let CONTEXT_COUNTER = 1;
6
- function generateContextId() {
7
- return CONTEXT_COUNTER++;
8
- }
5
+ // Native hands out the id: it must be unique for the life of the process,
6
+ // not of the JS runtime, as the native surface registry outlives a reload.
7
+ const generateContextId = () => RNWebGPU.allocateContextId();
8
+
9
+ /** The Android view a canvas draws into, see {@link AndroidCanvasProps}. */
10
+
11
+ /** The options of a canvas backed by a `TextureView`, the default. */
12
+
13
+ /** The options of a canvas backed by a `SurfaceView`. */
14
+
15
+ /** The options of a canvas backed by a `HardwareBufferView`. */
9
16
 
10
17
  /**
11
- * Android-only rendering options. They select the backing view, which is
12
- * chosen when the canvas mounts and kept: a later change is ignored, with a
13
- * warning in development. Remount the canvas, with a `key`, to change it.
18
+ * Android-only rendering options: the native view behind the canvas and its
19
+ * options. The view is created when the canvas mounts and kept: a change of
20
+ * `backingView` is ignored, with a warning in development; remount the canvas
21
+ * (with a `key`) to change it. `opaque` applies in place, and so do the
22
+ * z-order options on Android 11 and later. Ignored on iOS and web.
14
23
  */
15
24
 
25
+ // The union read as one bag of options; which of them apply to the view is
26
+ // decided below, as it is on the native side.
27
+
28
+ const options = android => android ?? {};
29
+
16
30
  // Anything else reaching the native component would hit the generated
17
31
  // string-enum parser, which aborts on unknown values.
18
- const resolveSurfaceType = surfaceType => surfaceType === "SurfaceView" || surfaceType === "TextureView" || surfaceType === "HardwareBufferView" ? surfaceType : "auto";
19
-
20
- // The props the Android backing view is chosen from when the canvas mounts.
32
+ const resolveBackingView = android => {
33
+ const {
34
+ backingView
35
+ } = options(android);
36
+ return backingView === "SurfaceView" || backingView === "HardwareBufferView" ? backingView : "TextureView";
37
+ };
21
38
 
22
- // The backing view the props select, see WebGPUView.resolveKind().
23
- const resolveKind = ({
24
- opaque,
25
- android
26
- }) => {
27
- const surfaceType = resolveSurfaceType(android?.surfaceType);
28
- if (surfaceType !== "auto") {
29
- return surfaceType;
39
+ // Whether the canvas composites as opaque, see BackingViewKind.resolveOpaque():
40
+ // a SurfaceView is opaque unless asked otherwise, a TextureView is translucent
41
+ // unless asked otherwise, and a HardwareBufferView always composites with
42
+ // alpha.
43
+ const resolveOpaque = android => {
44
+ const {
45
+ opaque
46
+ } = options(android);
47
+ switch (resolveBackingView(android)) {
48
+ case "SurfaceView":
49
+ return opaque !== false;
50
+ case "TextureView":
51
+ return opaque === true;
52
+ case "HardwareBufferView":
53
+ return false;
30
54
  }
31
- return opaque ? "SurfaceView" : "TextureView";
32
55
  };
33
- const warnIgnored = 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.");
34
56
 
35
- // Warns, in development on Android, about a change of these props that the
36
- // native view ignores: the backing view is chosen from them when the canvas
37
- // mounts (see WebGPUView.java, whose setters these rules mirror). The native
38
- // side only says so in logcat, which is not where a JS developer looks.
39
- const useBackingViewWarning = props => {
40
- const mount = useRef(props);
41
- const prev = useRef(props);
57
+ // The native props the `android` prop resolves to.
58
+ const androidNativeProps = android => {
59
+ const backingView = resolveBackingView(android);
60
+ const {
61
+ zOrderOnTop,
62
+ zOrderMediaOverlay
63
+ } = options(android);
64
+ const surfaceView = backingView === "SurfaceView";
65
+ return {
66
+ androidBackingView: backingView,
67
+ androidOpaque: resolveOpaque(android),
68
+ androidZOrderOnTop: surfaceView && !!zOrderOnTop,
69
+ androidZOrderMediaOverlay: surfaceView && !!zOrderMediaOverlay
70
+ };
71
+ };
72
+ 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.");
73
+
74
+ // Warns, in development on Android, about an option a mounting canvas asks
75
+ // for that the native view cannot honour, and about a change of these props
76
+ // that the native view ignores: the backing view is created from them when
77
+ // the canvas mounts (see WebGPUView.java, whose setters these rules mirror).
78
+ // The native side only says so in logcat, which is not where a JS developer
79
+ // looks.
80
+ const useBackingViewWarning = android => {
81
+ const mount = useRef(android);
82
+ const prev = useRef(android);
83
+ useEffect(() => {
84
+ if (__DEV__ && Platform.OS === "android" && resolveBackingView(mount.current) === "HardwareBufferView" && Number(Platform.Version) < 29) {
85
+ console.warn("android.backingView: HardwareBufferView needs Android 10, the " + "canvas uses a TextureView.");
86
+ }
87
+ }, []);
42
88
  useEffect(() => {
43
89
  if (__DEV__ && Platform.OS === "android") {
44
90
  const {
45
91
  current: before
46
92
  } = prev;
47
- if (resolveSurfaceType(before.android?.surfaceType) !== resolveSurfaceType(props.android?.surfaceType)) {
48
- warnIgnored("android.surfaceType");
93
+ if (resolveBackingView(before) !== resolveBackingView(android)) {
94
+ warnIgnoredChange("android.backingView");
49
95
  }
50
96
  // Only a SurfaceView has a z-order of its own, which Android 11 and
51
97
  // later changes in place.
52
- if (!!before.android?.zOrderOnTop !== !!props.android?.zOrderOnTop && resolveKind(mount.current) === "SurfaceView" && Number(Platform.Version) < 30) {
53
- warnIgnored("android.zOrderOnTop");
98
+ const zOrderAtMount = resolveBackingView(mount.current) === "SurfaceView" && Number(Platform.Version) < 30;
99
+ const was = options(before);
100
+ const is = options(android);
101
+ if (zOrderAtMount && !!was.zOrderOnTop !== !!is.zOrderOnTop) {
102
+ warnIgnoredChange("android.zOrderOnTop");
103
+ }
104
+ if (zOrderAtMount && !!was.zOrderMediaOverlay !== !!is.zOrderMediaOverlay) {
105
+ warnIgnoredChange("android.zOrderMediaOverlay");
54
106
  }
55
107
  }
56
- prev.current = props;
108
+ prev.current = android;
57
109
  });
58
110
  };
59
111
 
@@ -87,17 +139,13 @@ const measureLayout = view => {
87
139
  return size;
88
140
  };
89
141
  export const Canvas = ({
90
- opaque = true,
91
142
  android,
92
143
  ref,
93
144
  ...props
94
145
  }) => {
95
146
  const viewRef = useRef(null);
96
147
  const [contextId, _] = useState(() => generateContextId());
97
- useBackingViewWarning({
98
- opaque,
99
- android
100
- });
148
+ useBackingViewWarning(android);
101
149
  // Retire the native registry entry for this contextId on unmount. When a
102
150
  // native surface is still attached, this is a no-op and the native view's
103
151
  // own teardown retires the entry instead — which keeps StrictMode's
@@ -130,14 +178,11 @@ export const Canvas = ({
130
178
  return /*#__PURE__*/React.createElement(View, _extends({
131
179
  collapsable: false,
132
180
  ref: viewRef
133
- }, props), /*#__PURE__*/React.createElement(WebGPUNativeView, {
181
+ }, props), /*#__PURE__*/React.createElement(WebGPUNativeView, _extends({
134
182
  style: {
135
183
  flex: 1
136
184
  },
137
- contextId: contextId,
138
- opaque: opaque,
139
- androidSurfaceType: resolveSurfaceType(android?.surfaceType),
140
- androidZOrderOnTop: !!android?.zOrderOnTop
141
- }));
185
+ contextId: contextId
186
+ }, androidNativeProps(android))));
142
187
  };
143
188
  //# sourceMappingURL=Canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Platform","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","resolveSurfaceType","surfaceType","resolveKind","opaque","android","warnIgnored","prop","console","warn","useBackingViewWarning","props","mount","prev","__DEV__","OS","current","before","zOrderOnTop","Number","Version","measureLayout","view","clientWidth","clientHeight","width","height","size","_left","_top","Canvas","ref","viewRef","contextId","_","RNWebGPU","destroyContext","getContextId","getNativeSurface","getContext","contextName","Error","MakeWebGPUCanvasContext","createElement","_extends","collapsable","style","flex","androidSurfaceType","androidZOrderOnTop"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Platform","View","WebGPUNativeView","generateContextId","RNWebGPU","allocateContextId","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","_","destroyContext","getContextId","getNativeSurface","getContext","contextName","Error","MakeWebGPUCanvasContext","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAE/E,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAG7C,OAAOC,gBAAgB,MAAM,6BAA6B;AAI1D;AACA;AACA,MAAMC,iBAAiB,GAAGA,CAAA,KAAMC,QAAQ,CAACC,iBAAiB,CAAC,CAAC;;AAE5D;;AAIA;;AAeA;;AAgCA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;;AAQA,MAAMC,OAAO,GAAIC,OAA4B,IAC1CA,OAAO,IAAI,CAAC,CAAoB;;AAEnC;AACA;AACA,MAAMC,kBAAkB,GACtBD,OAA4B,IACL;EACvB,MAAM;IAAEE;EAAY,CAAC,GAAGH,OAAO,CAACC,OAAO,CAAC;EACxC,OAAOE,WAAW,KAAK,aAAa,IAAIA,WAAW,KAAK,oBAAoB,GACxEA,WAAW,GACX,aAAa;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAIH,OAA4B,IAAc;EAC/D,MAAM;IAAEI;EAAO,CAAC,GAAGL,OAAO,CAACC,OAAO,CAAC;EACnC,QAAQC,kBAAkB,CAACD,OAAO,CAAC;IACjC,KAAK,aAAa;MAChB,OAAOI,MAAM,KAAK,KAAK;IACzB,KAAK,aAAa;MAChB,OAAOA,MAAM,KAAK,IAAI;IACxB,KAAK,oBAAoB;MACvB,OAAO,KAAK;EAChB;AACF,CAAC;;AAED;AACA,MAAMC,kBAAkB,GAAIL,OAA4B,IAAK;EAC3D,MAAME,WAAW,GAAGD,kBAAkB,CAACD,OAAO,CAAC;EAC/C,MAAM;IAAEM,WAAW;IAAEC;EAAmB,CAAC,GAAGR,OAAO,CAACC,OAAO,CAAC;EAC5D,MAAMQ,WAAW,GAAGN,WAAW,KAAK,aAAa;EACjD,OAAO;IACLO,kBAAkB,EAAEP,WAAW;IAC/BQ,aAAa,EAAEP,aAAa,CAACH,OAAO,CAAC;IACrCW,kBAAkB,EAAEH,WAAW,IAAI,CAAC,CAACF,WAAW;IAChDM,yBAAyB,EAAEJ,WAAW,IAAI,CAAC,CAACD;EAC9C,CAAC;AACH,CAAC;AAED,MAAMM,iBAAiB,GAAIC,IAAY,IACrCC,OAAO,CAACC,IAAI,CACV,wBAAwBF,IAAI,4CAA4C,GACtE,wEAAwE,GACxE,eACJ,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,qBAAqB,GAAIjB,OAA4B,IAAK;EAC9D,MAAMkB,KAAK,GAAG3B,MAAM,CAACS,OAAO,CAAC;EAC7B,MAAMmB,IAAI,GAAG5B,MAAM,CAACS,OAAO,CAAC;EAC5BX,SAAS,CAAC,MAAM;IACd,IACE+B,OAAO,IACP3B,QAAQ,CAAC4B,EAAE,KAAK,SAAS,IACzBpB,kBAAkB,CAACiB,KAAK,CAACI,OAAO,CAAC,KAAK,oBAAoB,IAC1DC,MAAM,CAAC9B,QAAQ,CAAC+B,OAAO,CAAC,GAAG,EAAE,EAC7B;MACAT,OAAO,CAACC,IAAI,CACV,gEAAgE,GAC9D,4BACJ,CAAC;IACH;EACF,CAAC,EAAE,EAAE,CAAC;EACN3B,SAAS,CAAC,MAAM;IACd,IAAI+B,OAAO,IAAI3B,QAAQ,CAAC4B,EAAE,KAAK,SAAS,EAAE;MACxC,MAAM;QAAEC,OAAO,EAAEG;MAAO,CAAC,GAAGN,IAAI;MAChC,IAAIlB,kBAAkB,CAACwB,MAAM,CAAC,KAAKxB,kBAAkB,CAACD,OAAO,CAAC,EAAE;QAC9Da,iBAAiB,CAAC,qBAAqB,CAAC;MAC1C;MACA;MACA;MACA,MAAMa,aAAa,GACjBzB,kBAAkB,CAACiB,KAAK,CAACI,OAAO,CAAC,KAAK,aAAa,IACnDC,MAAM,CAAC9B,QAAQ,CAAC+B,OAAO,CAAC,GAAG,EAAE;MAC/B,MAAMG,GAAG,GAAG5B,OAAO,CAAC0B,MAAM,CAAC;MAC3B,MAAMG,EAAE,GAAG7B,OAAO,CAACC,OAAO,CAAC;MAC3B,IAAI0B,aAAa,IAAI,CAAC,CAACC,GAAG,CAACrB,WAAW,KAAK,CAAC,CAACsB,EAAE,CAACtB,WAAW,EAAE;QAC3DO,iBAAiB,CAAC,qBAAqB,CAAC;MAC1C;MACA,IACEa,aAAa,IACb,CAAC,CAACC,GAAG,CAACpB,kBAAkB,KAAK,CAAC,CAACqB,EAAE,CAACrB,kBAAkB,EACpD;QACAM,iBAAiB,CAAC,4BAA4B,CAAC;MACjD;IACF;IACAM,IAAI,CAACG,OAAO,GAAGtB,OAAO;EACxB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6B,aAAa,GAAIC,IAAU,IAAK;EACpC,IAAIrC,QAAQ,CAAC4B,EAAE,KAAK,KAAK,EAAE;IACzB,MAAM;MAAEU,WAAW;MAAEC;IAAa,CAAC,GAAGF,IAA8B;IACpE,OAAO;MAAEG,KAAK,EAAEF,WAAW;MAAEG,MAAM,EAAEF;IAAa,CAAC;EACrD;EACA,IAAIG,IAAI,GAAG;IAAEF,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC;EAClCJ,IAAI,CAACD,aAAa,CAACC,IAAI,EAAE,CAACM,KAAK,EAAEC,IAAI,EAAEJ,KAAK,EAAEC,MAAM,KAAK;IACvDC,IAAI,GAAG;MAAEF,KAAK;MAAEC;IAAO,CAAC;EAC1B,CAAC,CAAC;EACF,OAAOC,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,MAAM,GAAGA,CAAC;EAAEtC,OAAO;EAAEuC,GAAG;EAAE,GAAGC;AAAmB,CAAC,KAAK;EACjE,MAAMC,OAAO,GAAGlD,MAAM,CAAO,IAAI,CAAC;EAClC,MAAM,CAACmD,SAAS,EAAEC,CAAC,CAAC,GAAGnD,QAAQ,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC;EAC1DqB,qBAAqB,CAACjB,OAAO,CAAC;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAX,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXQ,QAAQ,CAAC+C,cAAc,CAACF,SAAS,CAAC;IACpC,CAAC;EACH,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EACfpD,mBAAmB,CACjBiD,GAAG,EACH,OAAO;IACLM,YAAY,EAAEA,CAAA,KAAMH,SAAS;IAC7BI,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOjD,QAAQ,CAACiD,gBAAgB,CAACJ,SAAS,CAAC;IAC7C,CAAC;IACDK,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACP,OAAO,CAACnB,OAAO,EAAE;QACpB,MAAM,IAAI2B,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA,MAAMd,IAAI,GAAGN,aAAa,CAACY,OAAO,CAACnB,OAAO,CAAC;MAC3C,OAAOzB,QAAQ,CAACqD,uBAAuB,CACrCR,SAAS,EACTP,IAAI,CAACF,KAAK,EACVE,IAAI,CAACD,MACP,CAAC;IACH;EACF,CAAC,CAAC,EACF,CAACQ,SAAS,CACZ,CAAC;EAED,oBACEtD,KAAA,CAAA+D,aAAA,CAACzD,IAAI,EAAA0D,QAAA;IAACC,WAAW,EAAE,KAAM;IAACd,GAAG,EAAEE;EAAQ,GAAKD,KAAK,gBAC/CpD,KAAA,CAAA+D,aAAA,CAACxD,gBAAgB,EAAAyD,QAAA;IACfE,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBb,SAAS,EAAEA;EAAU,GACjBrC,kBAAkB,CAACL,OAAO,CAAC,CAChC,CACG,CAAC;AAEX,CAAC","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":[]}
@@ -44,9 +44,11 @@ function makeWebGPUCanvasContext(contextId, width, height) {
44
44
  present: () => {}
45
45
  });
46
46
  }
47
+ let nextContextId = 1;
47
48
 
48
49
  // @ts-expect-error - polyfill for RNWebGPU native module
49
50
  window.RNWebGPU = {
51
+ allocateContextId: () => nextContextId++,
50
52
  getNativeSurface,
51
53
  // Unlike native, this can return null; Canvas.getContext() is typed
52
54
  // `RNCanvasContext | null` and passes it through.
@@ -1 +1 @@
1
- {"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","clientHeight","height","clientWidth","width","surface","BigInt","addEventListener","bind","removeEventListener","dispatchEvent","setPointerCapture","releasePointerCapture","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext","destroyContext","_contextId"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;;EAEtB;EACA;EACA,MAAM;IAAEI,YAAY,EAAEC,MAAM;IAAEC,WAAW,EAAEC;EAAM,CAAC,GAAGN,MAAM;EAE3D,OAAO;IACLO,OAAO,EAAEC,MAAM,CAACT,SAAS,CAAC;IAC1BK,MAAM;IACNE,KAAK;IACLH,YAAY,EAAEC,MAAM;IACpBC,WAAW,EAAEC,KAAK;IAClB;IACAG,gBAAgB,EAAET,MAAM,CAACS,gBAAgB,CAACC,IAAI,CAACV,MAAM,CAAC;IACtDW,mBAAmB,EAAEX,MAAM,CAACW,mBAAmB,CAACD,IAAI,CAACV,MAAM,CAAC;IAC5DY,aAAa,EAAEZ,MAAM,CAACY,aAAa,CAACF,IAAI,CAACV,MAAM,CAAC;IAChDa,iBAAiB,EAAEb,MAAM,CAACa,iBAAiB,CAACH,IAAI,CAACV,MAAM,CAAC;IACxDc,qBAAqB,EAAEd,MAAM,CAACc,qBAAqB,CAACJ,IAAI,CAACV,MAAM;EACjE,CAAC;AACH;AAEA,SAASe,uBAAuBA,CAC9BhB,SAAiB,EACjBO,KAAa,EACbF,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMiB,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAACb,KAAK,GAAGU,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACjB,MAAM,GAAGY,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEpB,MAAM,CAACsB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CnB,MAAM,CAACsB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACArB,MAAM,CAACuB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCnB,MAAM,CAACuB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGxB,MAAM,CAACyB,UAAU,CAAC,QAAQ,CAAC;EAC3C;EACA;EACA,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA;EACA;EACA,OAAOE,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC;AACtD;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChB/B,gBAAgB;EAChB;EACA;EACAgC,uBAAuB,EACrBf,uBAAkE;EACpE;EACAgB,cAAc,EAAGC,UAAkB,IAAK,CAAC,CAAC;EAC1CnC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","clientHeight","height","clientWidth","width","surface","BigInt","addEventListener","bind","removeEventListener","dispatchEvent","setPointerCapture","releasePointerCapture","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","nextContextId","RNWebGPU","allocateContextId","MakeWebGPUCanvasContext","destroyContext","_contextId"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;;EAEtB;EACA;EACA,MAAM;IAAEI,YAAY,EAAEC,MAAM;IAAEC,WAAW,EAAEC;EAAM,CAAC,GAAGN,MAAM;EAE3D,OAAO;IACLO,OAAO,EAAEC,MAAM,CAACT,SAAS,CAAC;IAC1BK,MAAM;IACNE,KAAK;IACLH,YAAY,EAAEC,MAAM;IACpBC,WAAW,EAAEC,KAAK;IAClB;IACAG,gBAAgB,EAAET,MAAM,CAACS,gBAAgB,CAACC,IAAI,CAACV,MAAM,CAAC;IACtDW,mBAAmB,EAAEX,MAAM,CAACW,mBAAmB,CAACD,IAAI,CAACV,MAAM,CAAC;IAC5DY,aAAa,EAAEZ,MAAM,CAACY,aAAa,CAACF,IAAI,CAACV,MAAM,CAAC;IAChDa,iBAAiB,EAAEb,MAAM,CAACa,iBAAiB,CAACH,IAAI,CAACV,MAAM,CAAC;IACxDc,qBAAqB,EAAEd,MAAM,CAACc,qBAAqB,CAACJ,IAAI,CAACV,MAAM;EACjE,CAAC;AACH;AAEA,SAASe,uBAAuBA,CAC9BhB,SAAiB,EACjBO,KAAa,EACbF,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMiB,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAACb,KAAK,GAAGU,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACjB,MAAM,GAAGY,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEpB,MAAM,CAACsB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CnB,MAAM,CAACsB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACArB,MAAM,CAACuB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCnB,MAAM,CAACuB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGxB,MAAM,CAACyB,UAAU,CAAC,QAAQ,CAAC;EAC3C;EACA;EACA,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EACA;EACA;EACA,OAAOE,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC;AACtD;AAEA,IAAIC,aAAa,GAAG,CAAC;;AAErB;AACAZ,MAAM,CAACa,QAAQ,GAAG;EAChBC,iBAAiB,EAAEA,CAAA,KAAMF,aAAa,EAAE;EACxC/B,gBAAgB;EAChB;EACA;EACAkC,uBAAuB,EACrBjB,uBAAkE;EACpE;EACAkB,cAAc,EAAGC,UAAkB,IAAK,CAAC,CAAC;EAC1CrC;AACF,CAAC","ignoreList":[]}
@@ -9,8 +9,9 @@
9
9
  * ```
10
10
  *
11
11
  * This is only sound when the exporting library links the same single Dawn
12
- * copy as react-native-webgpu and shares its wgpu::Instance (react-native-skia
13
- * does both).
12
+ * copy as react-native-webgpu (react-native-skia does). The device stays on
13
+ * its owner's Dawn instance and its async operations are pumped there, so the
14
+ * two libraries do not have to share an instance.
14
15
  */
15
16
  export const importDevice = pointer => {
16
17
  if (typeof RNWebGPU === "undefined") {
@@ -1 +1 @@
1
- {"version":3,"names":["importDevice","pointer","RNWebGPU","Error","adoptTexture"],"sourceRoot":"../../src","sources":["importDevice.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,OAAe,IAAgB;EAC1D,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EACA,OAAOD,QAAQ,CAACF,YAAY,CAACC,OAAO,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,YAAY,GAAIH,OAAe,IAAiB;EAC3D,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EACA,OAAOD,QAAQ,CAACE,YAAY,CAACH,OAAO,CAAC;AACvC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["importDevice","pointer","RNWebGPU","Error","adoptTexture"],"sourceRoot":"../../src","sources":["importDevice.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,OAAe,IAAgB;EAC1D,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EACA,OAAOD,QAAQ,CAACF,YAAY,CAACC,OAAO,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,YAAY,GAAIH,OAAe,IAAiB;EAC3D,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIC,KAAK,CACb,4EACF,CAAC;EACH;EACA,OAAOD,QAAQ,CAACE,YAAY,CAACH,OAAO,CAAC;AACvC,CAAC","ignoreList":[]}
@@ -71,7 +71,6 @@ export const GPUMapMode = {
71
71
  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)";
72
72
  // Strip the same props the real Canvas keeps off its outer View.
73
73
  export const Canvas = ({
74
- opaque: _opaque,
75
74
  android: _android,
76
75
  ref,
77
76
  ...props
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","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","key","value","Object","entries","undefined","NOT_AVAILABLE_UNDER_JEST","Canvas","opaque","_opaque","android","_android","ref","props","useImperativeHandle","getContextId","getContext","_contextName","getNativeSurface","Error","createElement","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","View","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","key","value","Object","entries","undefined","NOT_AVAILABLE_UNDER_JEST","Canvas","android","_android","ref","props","useImperativeHandle","getContextId","getContext","_contextName","getNativeSurface","Error","createElement","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,7 +1,6 @@
1
1
  export const __esModule: boolean;
2
- export function Canvas({ opaque, android, ref, ...props }: {
2
+ export function Canvas({ android, ref, ...props }: {
3
3
  [x: string]: any;
4
- opaque?: boolean | undefined;
5
4
  android: any;
6
5
  ref: any;
7
6
  }): any;
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../commonjs/Canvas.js"],"names":[],"mappings":";AAgGA;;;;;QAqDC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../commonjs/Canvas.js"],"names":[],"mappings":";AAoJA;;;;QA8CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../commonjs/WebGPUViewNativeComponent.web.js"],"names":[],"mappings":";;AAWA,4DAyBC"}
1
+ {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../commonjs/WebGPUViewNativeComponent.web.js"],"names":[],"mappings":";;AAWA,4DAuBC"}
@@ -10,8 +10,9 @@ export const __esModule: boolean;
10
10
  * ```
11
11
  *
12
12
  * This is only sound when the exporting library links the same single Dawn
13
- * copy as react-native-webgpu and shares its wgpu::Instance (react-native-skia
14
- * does both).
13
+ * copy as react-native-webgpu (react-native-skia does). The device stays on
14
+ * its owner's Dawn instance and its async operations are pumped there, so the
15
+ * two libraries do not have to share an instance.
15
16
  */
16
17
  export function importDevice(pointer: any): GPUDevice;
17
18
  export function adoptTexture(pointer: any): GPUTexture;
@@ -1 +1 @@
1
- {"version":3,"file":"importDevice.d.ts","sourceRoot":"","sources":["../../../commonjs/importDevice.js"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;GAaG;AACH,sDAKC;AAcD,uDAKC"}
1
+ {"version":3,"file":"importDevice.d.ts","sourceRoot":"","sources":["../../../commonjs/importDevice.js"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;;GAcG;AACH,sDAKC;AAcD,uDAKC"}
@@ -41,9 +41,8 @@ export namespace GPUMapMode {
41
41
  export namespace WebGPUModule {
42
42
  function install(): boolean;
43
43
  }
44
- export function Canvas({ opaque: _opaque, android: _android, ref, ...props }: {
44
+ export function Canvas({ android: _android, ref, ...props }: {
45
45
  [x: string]: any;
46
- opaque: any;
47
46
  android: any;
48
47
  ref: any;
49
48
  }): any;
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../commonjs/mock.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6JW,4BAAW;;AAjDtB;;;;;QAcC;AAED,oCAAsD;AAEtD;;;EAGE;AAEF,0DAAoD;AAEpD;;;EAGE;AAEF;;QAEsB;AAEtB,uCAEC;AAED,mDAEC;AAED,mDAEC;AAED,2CAAqC"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../commonjs/mock.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4JW,4BAAW;;AAhDtB;;;;QAaC;AAED,oCAAsD;AAEtD;;;EAGE;AAEF,0DAAoD;AAEpD;;;EAGE;AAEF;;QAEsB;AAEtB,uCAEC;AAED,mDAEC;AAED,mDAEC;AAED,2CAAqC"}
@@ -1,6 +1,5 @@
1
- export function Canvas({ opaque, android, ref, ...props }: {
1
+ export function Canvas({ android, ref, ...props }: {
2
2
  [x: string]: any;
3
- opaque?: boolean | undefined;
4
3
  android: any;
5
4
  ref: any;
6
5
  }): React.CElement<import("react-native").ViewProps, View>;
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAwFO;;;;;2DAqDN;qBA3I8B,cAAc;kBAD2B,OAAO"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AA4IO;;;;2DA8CN;qBAxL8B,cAAc;kBAD2B,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../module/WebGPUViewNativeComponent.web.js"],"names":[],"mappings":"AAIA,gHAyBC;kBA7BiB,OAAO"}
1
+ {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../module/WebGPUViewNativeComponent.web.js"],"names":[],"mappings":"AAIA,gHAuBC;kBA3BiB,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"importDevice.d.ts","sourceRoot":"","sources":["../../../module/importDevice.js"],"names":[],"mappings":"AAcO,sDAKN;AAaM,uDAKN"}
1
+ {"version":3,"file":"importDevice.d.ts","sourceRoot":"","sources":["../../../module/importDevice.js"],"names":[],"mappings":"AAeO,sDAKN;AAaM,uDAKN"}
@@ -38,9 +38,8 @@ export namespace GPUMapMode {
38
38
  let READ: number;
39
39
  let WRITE: number;
40
40
  }
41
- export function Canvas({ opaque: _opaque, android: _android, ref, ...props }: {
41
+ export function Canvas({ android: _android, ref, ...props }: {
42
42
  [x: string]: any;
43
- opaque: any;
44
43
  android: any;
45
44
  ref: any;
46
45
  }): React.CElement<import("react-native").ViewProps, View>;
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../module/mock.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEO;;;;;2DAcN;AACM,6DAA6C;AAC7C;;;EAGL;AACK,0DAAoD;AACpD;;;EAGL;AACK;;QAEe;AACf,uCAEN;AACM,mDAEN;AACM,mDAEN;AACM,2CAAqC;;IAEjC,4BAAW;;qBA7GD,cAAc;kBADjB,OAAO"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../module/mock.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEO;;;;2DAaN;AACM,6DAA6C;AAC7C;;;EAGL;AACK,0DAAoD;AACpD;;;EAGL;AACK;;QAEe;AACf,uCAEN;AACM,mDAEN;AACM,mDAEN;AACM,2CAAqC;;IAEjC,4BAAW;;qBA5GD,cAAc;kBADjB,OAAO"}
@@ -2,46 +2,78 @@ import React from "react";
2
2
  import type { ViewProps } from "react-native";
3
3
  import type { CanvasRef } from "./types";
4
4
  export type { CanvasRef, NativeCanvas, RNCanvasContext } from "./types";
5
- export type AndroidSurfaceType = "SurfaceView" | "TextureView" | "HardwareBufferView";
6
- /**
7
- * Android-only rendering options. They select the backing view, which is
8
- * chosen when the canvas mounts and kept: a later change is ignored, with a
9
- * warning in development. Remount the canvas, with a `key`, to change it.
10
- */
11
- export interface AndroidCanvasProps {
5
+ /** The Android view a canvas draws into, see {@link AndroidCanvasProps}. */
6
+ export type AndroidBackingView = "TextureView" | "SurfaceView" | "HardwareBufferView";
7
+ /** The options of a canvas backed by a `TextureView`, the default. */
8
+ export interface AndroidTextureViewProps {
12
9
  /**
13
- * Backing view. Defaults to `SurfaceView` when the canvas mounts opaque and
14
- * to `TextureView` otherwise; both composite correctly in React Native
15
- * stacking order without further flags. `HardwareBufferView` (Android 10+,
16
- * a plain View that draws each frame's AHardwareBuffer inline with no extra
17
- * copy) is opt-in and experimental; on older devices it uses `TextureView`.
18
- * Read once, at mount.
10
+ * A `TextureView`: a regular view, composited like any other (parent
11
+ * transforms, clipping, alpha and z-order apply), at the price of an extra
12
+ * texture copy and typically a frame of latency. The default.
19
13
  */
20
- surfaceType?: AndroidSurfaceType;
14
+ backingView?: "TextureView";
21
15
  /**
22
- * SurfaceView only: composite above every React Native view in the window,
23
- * ignoring `zIndex`. Ignored for TextureView. Defaults to false. Applied in
24
- * place on Android 11 and later; read once, at mount, before that.
16
+ * Declares that the canvas covers every pixel of its bounds, so the UI
17
+ * toolkit skips blending the view. Defaults to false. Applied in place.
25
18
  */
26
- zOrderOnTop?: boolean;
19
+ opaque?: boolean;
27
20
  }
28
- export interface CanvasProps extends ViewProps {
21
+ /** The options of a canvas backed by a `SurfaceView`. */
22
+ export interface AndroidSurfaceViewProps {
29
23
  /**
30
- * Defaults to true. Set to false to alpha-composite the canvas over the
31
- * views behind it (pair it with `alphaMode: "premultiplied"` and an alpha-0
32
- * clear color). Android and web only; on iOS `alphaMode` alone controls it.
33
- * On Android the backing view is chosen from it when the canvas mounts; a
34
- * later change updates that view in place.
24
+ * A `SurfaceView`: each frame goes to the system compositor as its own
25
+ * layer, the fastest path, with no extra copy. It is not view content:
26
+ * parent transforms, clipping, rounded corners and z-order with sibling
27
+ * views do not apply to it.
28
+ */
29
+ backingView: "SurfaceView";
30
+ /**
31
+ * Declares that the canvas covers every pixel of its bounds, so the
32
+ * compositor skips blending the layer and can show it through a hardware
33
+ * overlay. Defaults to true: a translucent `SurfaceView` blends against
34
+ * what is below the window, usually black, rather than the React Native
35
+ * views beneath it (pair it with `zOrderOnTop`). Applied in place.
35
36
  */
36
37
  opaque?: boolean;
37
38
  /**
38
- * Android-only rendering options. They select the backing view, which is
39
- * chosen when the canvas mounts and kept: a later change is ignored, with a
40
- * warning in development. Remount the canvas, with a `key`, to change it.
41
- * Ignored on iOS and web.
39
+ * Composite above every React Native view in the window, ignoring
40
+ * `zIndex`. Defaults to false. Applied in place on Android 11 and later;
41
+ * read once, at mount, before that.
42
+ */
43
+ zOrderOnTop?: boolean;
44
+ /**
45
+ * Composite above the other `SurfaceView`s below the window (video players,
46
+ * other canvases), while staying below the window itself. Defaults to
47
+ * false; `zOrderOnTop` takes precedence. Applied in place on Android 11 and
48
+ * later; read once, at mount, before that.
49
+ */
50
+ zOrderMediaOverlay?: boolean;
51
+ }
52
+ /** The options of a canvas backed by a `HardwareBufferView`. */
53
+ export interface AndroidHardwareBufferViewProps {
54
+ /**
55
+ * A plain view drawing each frame's `AHardwareBuffer` inline: composited
56
+ * like a `TextureView`, without its extra copy. Opt-in and experimental,
57
+ * on Android 10 and later; below that the canvas uses a `TextureView`,
58
+ * with a warning in development. Always composites with alpha.
59
+ */
60
+ backingView: "HardwareBufferView";
61
+ }
62
+ /**
63
+ * Android-only rendering options: the native view behind the canvas and its
64
+ * options. The view is created when the canvas mounts and kept: a change of
65
+ * `backingView` is ignored, with a warning in development; remount the canvas
66
+ * (with a `key`) to change it. `opaque` applies in place, and so do the
67
+ * z-order options on Android 11 and later. Ignored on iOS and web.
68
+ */
69
+ export type AndroidCanvasProps = AndroidTextureViewProps | AndroidSurfaceViewProps | AndroidHardwareBufferViewProps;
70
+ export interface CanvasProps extends ViewProps {
71
+ /**
72
+ * Android-only rendering options: the native view behind the canvas and its
73
+ * options, see {@link AndroidCanvasProps}. Ignored on iOS and web.
42
74
  */
43
75
  android?: AndroidCanvasProps;
44
76
  ref?: React.Ref<CanvasRef>;
45
77
  }
46
- export declare const Canvas: ({ opaque, android, ref, ...props }: CanvasProps) => React.JSX.Element;
78
+ export declare const Canvas: ({ android, ref, ...props }: CanvasProps) => React.JSX.Element;
47
79
  //# sourceMappingURL=Canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AAG1D,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAOxE,MAAM,MAAM,kBAAkB,GAC5B,aAAa,GAAG,aAAa,GAAG,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CAC5B;AAmFD,eAAO,MAAM,MAAM,GAAI,oCAKpB,WAAW,sBAqDb,CAAC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AAG1D,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAMxE,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAC5B,aAAa,GAAG,aAAa,GAAG,oBAAoB,CAAC;AAEvD,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,WAAW,EAAE,aAAa,CAAC;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,gEAAgE;AAChE,MAAM,WAAW,8BAA8B;IAC7C;;;;;OAKG;IACH,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,uBAAuB,GACvB,8BAA8B,CAAC;AAEnC,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CAC5B;AAgID,eAAO,MAAM,MAAM,GAAI,4BAA4B,WAAW,sBAmD7D,CAAC"}
@@ -2,9 +2,10 @@ import type { Int32, WithDefault } from "react-native/Libraries/Types/CodegenTyp
2
2
  import type { ViewProps } from "react-native";
3
3
  export interface NativeProps extends ViewProps {
4
4
  contextId: Int32;
5
- opaque?: WithDefault<boolean, true>;
6
- androidSurfaceType?: WithDefault<"auto" | "SurfaceView" | "TextureView" | "HardwareBufferView", "auto">;
5
+ androidBackingView?: WithDefault<"TextureView" | "SurfaceView" | "HardwareBufferView", "TextureView">;
6
+ androidOpaque?: WithDefault<boolean, false>;
7
7
  androidZOrderOnTop?: WithDefault<boolean, false>;
8
+ androidZOrderMediaOverlay?: WithDefault<boolean, false>;
8
9
  }
9
10
  declare const _default: import("react-native").HostComponent<NativeProps>;
10
11
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"WebGPUViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,WAAW,CAC9B,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,oBAAoB,EAC7D,MAAM,CACP,CAAC;IACF,kBAAkB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CAClD;;AAGD,wBAAiE"}
1
+ {"version":3,"file":"WebGPUViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,EAAE,KAAK,CAAC;IAEjB,kBAAkB,CAAC,EAAE,WAAW,CAC9B,aAAa,GAAG,aAAa,GAAG,oBAAoB,EACpD,aAAa,CACd,CAAC;IACF,aAAa,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,kBAAkB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,yBAAyB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACzD;;AAGD,wBAAiE"}
@@ -3,9 +3,10 @@ import type { Int32 } from "react-native/Libraries/Types/CodegenTypes";
3
3
  import type { ViewProps } from "react-native";
4
4
  export interface NativeProps extends ViewProps {
5
5
  contextId: Int32;
6
- opaque?: boolean;
7
- androidSurfaceType?: "auto" | "SurfaceView" | "TextureView";
6
+ androidBackingView?: "TextureView" | "SurfaceView" | "HardwareBufferView";
7
+ androidOpaque?: boolean;
8
8
  androidZOrderOnTop?: boolean;
9
+ androidZOrderMediaOverlay?: boolean;
9
10
  }
10
11
  export default function WebGPUViewNativeComponent(props: NativeProps): React.JSX.Element;
11
12
  //# sourceMappingURL=WebGPUViewNativeComponent.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,KAAK,EAAE,WAAW,GACjB,KAAK,CAAC,GAAG,CAAC,OAAO,CAuBnB"}
1
+ {"version":3,"file":"WebGPUViewNativeComponent.web.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,SAAS,EAAE,KAAK,CAAC;IAEjB,kBAAkB,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,oBAAoB,CAAC;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAGD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,KAAK,EAAE,WAAW,GACjB,KAAK,CAAC,GAAG,CAAC,OAAO,CAuBnB"}