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.
- package/android/build.gradle +11 -1
- package/android/src/main/java/com/webgpu/BackingViewKind.java +38 -0
- package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +19 -2
- package/android/src/main/java/com/webgpu/WebGPUView.java +115 -63
- package/android/src/main/java/com/webgpu/WebGPUViewManager.java +13 -6
- package/cpp/jsi/NativeObject.h +84 -34
- package/cpp/rnwgpu/RNWebGPUManager.cpp +51 -48
- package/cpp/rnwgpu/RNWebGPUManager.h +10 -0
- package/cpp/rnwgpu/api/GPUFeatures.h +1 -0
- package/cpp/rnwgpu/api/GPUNativeBufferWrapper.h +1 -0
- package/cpp/rnwgpu/api/VideoFrame.h +2 -2
- package/lib/commonjs/Canvas.js +105 -8
- package/lib/commonjs/Canvas.js.map +1 -1
- package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -1
- package/lib/commonjs/WebGPUViewNativeComponent.web.js +3 -5
- package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -1
- package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
- package/lib/commonjs/install.js +26 -7
- package/lib/commonjs/install.js.map +1 -1
- package/lib/commonjs/mock.js +0 -1
- package/lib/commonjs/mock.js.map +1 -1
- package/lib/module/Canvas.js +105 -8
- package/lib/module/Canvas.js.map +1 -1
- package/lib/module/WebGPUViewNativeComponent.js.map +1 -1
- package/lib/module/WebGPUViewNativeComponent.web.js +3 -5
- package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -1
- package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
- package/lib/module/install.js +26 -7
- package/lib/module/install.js.map +1 -1
- package/lib/module/mock.js +0 -1
- package/lib/module/mock.js.map +1 -1
- package/lib/typescript/lib/commonjs/Canvas.d.ts +1 -2
- package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/install.d.ts +10 -7
- package/lib/typescript/lib/commonjs/install.d.ts.map +1 -1
- package/lib/typescript/lib/commonjs/mock.d.ts +1 -2
- package/lib/typescript/lib/commonjs/mock.d.ts.map +1 -1
- package/lib/typescript/lib/module/Canvas.d.ts +1 -2
- package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -1
- package/lib/typescript/lib/module/install.d.ts.map +1 -1
- package/lib/typescript/lib/module/mock.d.ts +1 -2
- package/lib/typescript/lib/module/mock.d.ts.map +1 -1
- package/lib/typescript/src/Canvas.d.ts +62 -16
- package/lib/typescript/src/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +3 -2
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +3 -2
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -1
- package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -1
- package/lib/typescript/src/install.d.ts +10 -7
- package/lib/typescript/src/install.d.ts.map +1 -1
- package/lib/typescript/src/mock.d.ts +2 -2
- package/lib/typescript/src/mock.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -1
- package/package.json +8 -7
- package/plugin/build/index.js +2 -1
- package/plugin/build/setMinSdkVersion.d.ts +9 -0
- package/plugin/build/setMinSdkVersion.js +25 -0
- package/plugin/build/withMinSdkVersion.d.ts +11 -0
- package/plugin/build/withMinSdkVersion.js +20 -0
- package/src/Canvas.tsx +176 -33
- package/src/WebGPUViewNativeComponent.ts +6 -4
- package/src/WebGPUViewNativeComponent.web.ts +7 -5
- package/src/external/reanimated/registerWebGPUForReanimated.ts +4 -0
- package/src/index.tsx +3 -3
- package/src/install.ts +26 -7
- package/src/mock.ts +5 -7
- 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") \
|
|
@@ -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
|
|
25
|
-
//
|
|
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
|
package/lib/commonjs/Canvas.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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","
|
|
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;
|
|
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
|
-
|
|
17
|
-
|
|
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","
|
|
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;;
|
|
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":[]}
|
package/lib/commonjs/install.js
CHANGED
|
@@ -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
|
|
45
|
+
* processors) start without it: `navigator.gpu`, the flag constants
|
|
37
46
|
* (`GPUBufferUsage`, `GPUTextureUsage`, `GPUShaderStage`, `GPUColorWrite`,
|
|
38
|
-
* `GPUMapMode`)
|
|
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,
|
|
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
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
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","
|
|
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":[]}
|
package/lib/commonjs/mock.js
CHANGED
|
@@ -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
|
package/lib/commonjs/mock.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/lib/module/Canvas.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
88
|
-
androidSurfaceType: resolveSurfaceType(android?.surfaceType),
|
|
89
|
-
androidZOrderOnTop: !!android?.zOrderOnTop
|
|
90
|
-
}));
|
|
186
|
+
contextId: contextId
|
|
187
|
+
}, androidNativeProps(android))));
|
|
91
188
|
};
|
|
92
189
|
//# sourceMappingURL=Canvas.js.map
|
package/lib/module/Canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useImperativeHandle","useRef","useState","Platform","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","
|
|
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;
|
|
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
|
-
|
|
10
|
-
|
|
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","
|
|
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;;
|
|
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":[]}
|