react-native-webgpu 0.19.1 → 0.20.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 (65) hide show
  1. package/Package.swift +19 -7
  2. package/android/build.gradle +7 -0
  3. package/apple/ApplePlatformContext.h +6 -1
  4. package/apple/ApplePlatformContext.mm +7 -8
  5. package/apple/MetalLayerColorSpace.mm +17 -1
  6. package/apple/WebGPUModule.mm +15 -1
  7. package/cpp/jsi/Promise.cpp +4 -0
  8. package/cpp/jsi/Promise.h +3 -0
  9. package/cpp/rnwgpu/CanvasColorSpace.h +5 -0
  10. package/cpp/rnwgpu/RNWebGPUManager.cpp +2 -4
  11. package/cpp/rnwgpu/SurfaceRegistry.h +16 -7
  12. package/cpp/rnwgpu/WebGPURuntime.cpp +2 -1
  13. package/cpp/rnwgpu/api/GPU.cpp +6 -6
  14. package/cpp/rnwgpu/api/GPU.h +1 -1
  15. package/cpp/rnwgpu/api/GPUAdapter.cpp +41 -3
  16. package/cpp/rnwgpu/api/GPUBuffer.cpp +5 -6
  17. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +2 -1
  18. package/cpp/rnwgpu/api/GPUDevice.cpp +38 -47
  19. package/cpp/rnwgpu/api/GPUDevice.h +4 -5
  20. package/cpp/rnwgpu/api/GPUQueue.cpp +4 -2
  21. package/cpp/rnwgpu/api/GPUShaderModule.cpp +2 -2
  22. package/cpp/rnwgpu/api/RNWebGPU.h +9 -9
  23. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +24 -0
  24. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +33 -45
  25. package/cpp/rnwgpu/async/AsyncTaskHandle.h +5 -6
  26. package/cpp/rnwgpu/async/RuntimeContext.cpp +321 -112
  27. package/cpp/rnwgpu/async/RuntimeContext.h +90 -82
  28. package/lib/commonjs/Canvas.js +1 -0
  29. package/lib/commonjs/Canvas.js.map +1 -1
  30. package/lib/commonjs/WebGPUViewNativeComponent.js.map +1 -1
  31. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -1
  32. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +19 -1
  33. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
  34. package/lib/commonjs/install.js +6 -5
  35. package/lib/commonjs/install.js.map +1 -1
  36. package/lib/module/Canvas.js +1 -0
  37. package/lib/module/Canvas.js.map +1 -1
  38. package/lib/module/WebGPUViewNativeComponent.js.map +1 -1
  39. package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -1
  40. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +19 -1
  41. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +1 -1
  42. package/lib/module/install.js +6 -5
  43. package/lib/module/install.js.map +1 -1
  44. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
  45. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -1
  46. package/lib/typescript/lib/commonjs/install.d.ts +6 -5
  47. package/lib/typescript/lib/commonjs/install.d.ts.map +1 -1
  48. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  49. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -1
  50. package/lib/typescript/lib/module/install.d.ts.map +1 -1
  51. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  52. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +6 -7
  53. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
  54. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +2 -3
  55. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -1
  56. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts +1 -0
  57. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -1
  58. package/lib/typescript/src/install.d.ts +6 -5
  59. package/lib/typescript/src/install.d.ts.map +1 -1
  60. package/package.json +2 -2
  61. package/src/Canvas.tsx +4 -2
  62. package/src/WebGPUViewNativeComponent.ts +6 -10
  63. package/src/WebGPUViewNativeComponent.web.ts +2 -3
  64. package/src/external/reanimated/registerWebGPUForReanimated.ts +21 -1
  65. package/src/install.ts +6 -5
@@ -2,9 +2,11 @@
2
2
 
3
3
  #include <atomic>
4
4
  #include <cstddef>
5
+ #include <exception>
5
6
  #include <functional>
6
7
  #include <memory>
7
8
  #include <mutex>
9
+ #include <optional>
8
10
  #include <vector>
9
11
 
10
12
  #include <jsi/jsi.h>
@@ -22,63 +24,66 @@ class CallInvoker;
22
24
  namespace rnwgpu::async {
23
25
 
24
26
  /**
25
- * Per-runtime, per-instance coordinator for asynchronous WebGPU operations.
27
+ * How asynchronous WebGPU operations get back to the JS runtime that
28
+ * requested them. One per (JS runtime, Dawn instance), made on first use and
29
+ * kept in the runtime's runtimeData, so that it lives exactly as long as the
30
+ * runtime. A runtime usually has one, for the shared WebGPURuntime instance;
31
+ * a device passed to importDevice() can live on another instance, which then
32
+ * gets a context of its own.
26
33
  *
27
- * Each (JS runtime, Dawn instance) pair gets its own RuntimeContext, stored in
28
- * the runtime's runtimeData. A runtime usually has a single one, for the
29
- * shared WebGPURuntime instance; a device passed to importDevice() can live on
30
- * another instance, which then gets its own context and pump. Async Dawn
31
- * operations are registered with CallbackMode::AllowProcessEvents and driven
32
- * to completion by pumping
33
- * `instance.ProcessEvents()` on the runtime's OWN thread via a self-
34
- * rescheduling tick (scheduled through that runtime's setTimeout). Because
35
- * ProcessEvents invokes the Dawn callbacks synchronously on the pumping thread,
36
- * the JS Promise is settled directly on the owning runtime, with no background
37
- * thread and no cross-thread hop.
34
+ * Waiting: Dawn operations are registered with CallbackMode::WaitAnyOnly, and
35
+ * their futures handed to awaitFuture(). One already complete runs its
36
+ * callback right there; the others go to a thread per instance that sleeps
37
+ * in Instance::WaitAny until the GPU (or Dawn's worker) is done, then runs
38
+ * the callback. Nothing polls meanwhile: neither the JS thread nor anyone
39
+ * else calls ProcessEvents.
38
40
  *
39
- * The pump only runs while at least one "pumping" task is outstanding, so it
40
- * costs nothing when idle and stops cleanly.
41
+ * Settling: a callback runs on the waiter thread (or wherever a non-Dawn
42
+ * operation finishes, see GPUQueue::drawElementImageToTexture), so it never
43
+ * touches JSI; it hands a settle action to post(), which runs it on the
44
+ * runtime's own thread. How depends on the runtime:
41
45
  *
42
- * Spontaneous events: events that may fire at any time, independent of any
43
- * request/response op (today only device.lost, whose Dawn callback is
44
- * registered AllowSpontaneous). These are NOT driven by the pump and do NOT go
45
- * through postTask: a task that may never settle must not hold the JS promise
46
- * strongly from C++, or the promise (and everything reachable from its .then
47
- * reactions) becomes a permanent GC root (issue #445). Instead GPUDevice keeps
48
- * a jsi::WeakObject to the promise and settles it on the owning runtime's JS
49
- * thread via that runtime's CallInvoker, which is wired only for the MAIN JS
50
- * runtime (callInvoker()). A device created on a worklet runtime has no
51
- * invoker, so its device.lost is best-effort and may never fire. See the
52
- * README "Threading model" section. The keepPumping=false path in postTask is
53
- * currently unused; it remains for tasks that settle without Dawn's pump.
46
+ * - The main React Native runtime: its CallInvoker (registerMainRuntime).
47
+ * - Any other runtime (the Reanimated UI runtime, createWorkletRuntime, a
48
+ * Vision Camera frame processor, a runtime without worklets'
49
+ * `__RUNTIME_KIND` marker that is not the main one): nothing posts to it
50
+ * from native, but the runtime has a setTimeout. Actions go into a
51
+ * mailbox, and a timer armed on the runtime itself when an operation
52
+ * starts (postTask runs on that thread) drains the mailbox, re-arming
53
+ * itself while an operation is outstanding. The runtime polls its mailbox
54
+ * meanwhile, which lasts only as long as the operations do, and never
55
+ * waits for the main JS thread: on the UI runtime the timer is one frame
56
+ * of worklets' requestAnimationFrame. A spontaneous event (device.lost,
57
+ * an uncaptured error) posted while nothing is outstanding is delivered
58
+ * with the next operation.
59
+ * - The Reanimated UI runtime, ahead of its timer: through the main
60
+ * runtime, where `__webgpuScheduleOnUI` (installed by
61
+ * registerWebGPUForReanimated) hands a native function to worklets'
62
+ * scheduleOnUI, which drains the mailbox on the UI runtime right away
63
+ * (wakeUI). Best effort, and what delivers a spontaneous event there
64
+ * while nothing is outstanding; a busy main JS thread only delays this
65
+ * wake, never the timer.
54
66
  *
55
- * Shared-instance safety (mailbox): multiple runtimes may share one
56
- * wgpu::Instance. ProcessEvents() drains the whole instance queue and fires
57
- * callbacks on the calling thread, which may NOT be the owning runtime's thread
58
- * for a given promise. So a settled callback never touches JSI inline; it
59
- * deposits a settle-action (a plain C++ closure, no JSI) into the OWNING
60
- * context's thread-safe mailbox via postSettle(), and each context drains its
61
- * own mailbox on its own thread during tick(). ProcessEvents() itself is
62
- * serialized across the runtimes sharing an instance by a mutex per instance,
63
- * since concurrent ProcessEvents on one instance is not guaranteed reentrant;
64
- * pumps of different instances never wait on each other.
67
+ * A runtime nothing can settle on gets no promise at all: postTask() throws,
68
+ * rather than handing out one that never settles. That is the main runtime
69
+ * without its CallInvoker (see canSettle), and any other runtime without a
70
+ * setTimeout (see armTick).
65
71
  *
66
- * Threading contract: a RuntimeContext must only be pumped from the runtime it
67
- * was created for. Request/response async entry points (mapAsync,
68
- * onSubmittedWorkDone, popErrorScope, createComputePipelineAsync,
69
- * createRenderPipelineAsync, getCompilationInfo, requestAdapter,
70
- * requestDevice) must NOT use a context captured when the object was created —
71
- * the object may have been boxed across to another runtime. They resolve the
72
- * CALLING runtime's context via getOrCreate(runtime, instance) so the promise
73
- * is settled on the thread it was created on. Spontaneous events (device.lost,
74
- * uncapturederror) remain bound to the device's own context (best-effort, main
75
- * runtime only; see the class doc above).
72
+ * The runtime owns its context; the functions handed to its setTimeout and
73
+ * to worklets only borrow it (weak_ptr), so that a wake or a tick left queued
74
+ * when the runtime goes away finds nothing to do, and a wake that worklets
75
+ * runs on a UI runtime created since (a reload) drains nothing there.
76
+ *
77
+ * Threading contract: postTask() runs on the runtime's thread (it is the
78
+ * entry point of every async method, called with the calling runtime, see
79
+ * GPUBuffer::mapAsync); awaitFuture() and post() run on any thread.
76
80
  */
77
81
  class RuntimeContext : public std::enable_shared_from_this<RuntimeContext> {
78
82
  public:
79
- using TaskCallback =
80
- std::function<void(const AsyncTaskHandle::ResolveFunction &,
81
- const AsyncTaskHandle::RejectFunction &)>;
83
+ using TaskCallback = std::function<std::optional<wgpu::Future>(
84
+ const AsyncTaskHandle::ResolveFunction &,
85
+ const AsyncTaskHandle::RejectFunction &)>;
86
+ using Job = std::function<void(jsi::Runtime &)>;
82
87
 
83
88
  RuntimeContext(jsi::Runtime &runtime, wgpu::Instance instance);
84
89
 
@@ -87,21 +92,13 @@ public:
87
92
  static std::shared_ptr<RuntimeContext>
88
93
  getOrCreate(jsi::Runtime &runtime, const wgpu::Instance &instance);
89
94
 
90
- // Register the main JS runtime and its CallInvoker. The RuntimeContext
91
- // created for this runtime gets the invoker (callInvoker() returns it); every
92
- // other runtime's context returns null. Called once from RNWebGPUManager on
93
- // install.
95
+ // Register the main JS runtime and its CallInvoker: how the main runtime
96
+ // is reached, and the way to the UI runtime. Called once from
97
+ // RNWebGPUManager on install.
94
98
  static void
95
99
  registerMainRuntime(jsi::Runtime *runtime,
96
100
  std::shared_ptr<facebook::react::CallInvoker> invoker);
97
101
 
98
- // CallInvoker for this runtime's JS thread, or null. Non-null only for the
99
- // main JS runtime; used to deliver spontaneous events (device.lost) without
100
- // the pump. See the class doc.
101
- const std::shared_ptr<facebook::react::CallInvoker> &callInvoker() const {
102
- return _callInvoker;
103
- }
104
-
105
102
  // The wgpu::Instance served by this context on its owning runtime.
106
103
  const wgpu::Instance &instance() const { return _instance; }
107
104
 
@@ -109,38 +106,49 @@ public:
109
106
  // any thread; only touch JSI through it on the runtime's own thread.
110
107
  jsi::Runtime &runtime() const { return _runtime; }
111
108
 
112
- AsyncTaskHandle postTask(const TaskCallback &callback,
113
- bool keepPumping = true);
109
+ // Starts an asynchronous operation whose promise settles on this runtime:
110
+ // `callback` gets the resolve and reject functions, starts the work, and
111
+ // returns the Dawn future to wait for, if the work is Dawn's (it is awaited
112
+ // like awaitFuture does). Called on the runtime's thread. Throws when
113
+ // nothing could settle the promise (see canSettle).
114
+ AsyncTaskHandle postTask(const TaskCallback &callback);
115
+
116
+ // Whether a job posted here reaches the runtime at all: false on the main
117
+ // runtime before its CallInvoker is registered.
118
+ bool canSettle() const;
114
119
 
115
- // Deposit a settle-action to run on THIS context's runtime thread.
116
- // Thread-safe (callable from any thread, e.g. another runtime that pumped
117
- // ProcessEvents). The job must not touch JSI until it runs (it runs during
118
- // drainMailbox on the owning thread).
119
- void postSettle(std::function<void()> job);
120
+ // Has the callback of `future` run: now, when it is complete already, else
121
+ // on the instance's waiter thread once it is. Any thread.
122
+ void awaitFuture(wgpu::Future future);
120
123
 
121
- // Invoked by a drained settle-action when its task settles. Runs on the
122
- // owning runtime's thread.
123
- void onTaskSettled(bool keepPumping);
124
+ // Runs `job` on this runtime's thread, later, with the runtime. Any thread.
125
+ void post(Job job);
126
+
127
+ // Invoked by a settle action once it has run, on the runtime's thread.
128
+ void onTaskSettled();
124
129
 
125
130
  private:
131
+ enum class Kind { Main, UI, Mailbox };
132
+
126
133
  static jsi::UUID runtimeDataUUID();
134
+ static Kind kindOf(jsi::Runtime &runtime);
127
135
 
128
- void requestTick();
129
- void tick();
130
- void drainMailbox();
136
+ // False when no tick can run on the runtime: it has no setTimeout, or
137
+ // calling it threw.
138
+ bool armTick(jsi::Runtime &runtime);
139
+ std::exception_ptr drainMailbox(jsi::Runtime &runtime);
140
+ void wakeUI();
131
141
 
132
142
  jsi::Runtime &_runtime;
133
143
  wgpu::Instance _instance;
134
- // Serializes ProcessEvents() on _instance across the runtimes that share it;
135
- // every context of that instance holds the same mutex.
136
- std::shared_ptr<std::mutex> _processEventsMutex;
137
- // Non-null only for the main JS runtime's context (see registerMainRuntime).
138
- std::shared_ptr<facebook::react::CallInvoker> _callInvoker;
139
- std::atomic<std::size_t> _pumpTasks{0};
140
- std::atomic<bool> _tickScheduled{false};
141
-
144
+ const Kind _kind;
145
+ // The mailbox and its timer (Kind::UI and Kind::Mailbox).
146
+ std::atomic<std::size_t> _outstanding{0};
147
+ std::atomic<bool> _tickArmed{false};
142
148
  std::mutex _mailboxMutex;
143
- std::vector<std::function<void()>> _mailbox;
149
+ std::vector<Job> _mailbox;
150
+ // A wake through __webgpuScheduleOnUI not run yet (Kind::UI).
151
+ std::atomic<bool> _wakePending{false};
144
152
  };
145
153
 
146
154
  } // namespace rnwgpu::async
@@ -123,6 +123,7 @@ const useBackingViewWarning = android => {
123
123
  // asynchronously, so the DOM node is read directly: clientWidth/clientHeight
124
124
  // are layout values that ignore transforms too (unlike getBoundingClientRect)
125
125
  // and are what browser WebGPU code sizes a canvas from.
126
+
126
127
  const measureLayout = view => {
127
128
  if (_reactNative.Platform.OS === "web") {
128
129
  const {
@@ -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","generateContextId","RNWebGPU","allocateContextId","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","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
+ {"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","generateContextId","RNWebGPU","allocateContextId","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","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;AAmBA;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;AAeA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAAC,mCAAsB,EAAc,YAAY,CAAC","ignoreList":[]}
@@ -1 +1 @@
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
+ {"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;AAGA,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":[]}
@@ -31,8 +31,26 @@ const registerWebGPUForReanimated = () => {
31
31
  }
32
32
  try {
33
33
  const {
34
- registerCustomSerializable
34
+ registerCustomSerializable,
35
+ scheduleOnUI
35
36
  } = require("react-native-worklets");
37
+
38
+ // A promise created on the UI runtime (requestDevice() in a worklet, a
39
+ // mapAsync() there) settles on the UI runtime through a timer the
40
+ // runtime arms on itself; this hook settles it sooner, and delivers
41
+ // device.lost and uncapturederror right away: native hands a function
42
+ // that drains the runtime's mailbox, a host function, to this hook on
43
+ // the main runtime, and worklets runs it on the UI runtime (see
44
+ // cpp/rnwgpu/async/RuntimeContext.h).
45
+ if (typeof scheduleOnUI === "function") {
46
+ globalThis.__webgpuScheduleOnUI = job => {
47
+ scheduleOnUI(() => {
48
+ "worklet";
49
+
50
+ job();
51
+ });
52
+ };
53
+ }
36
54
  registerCustomSerializable({
37
55
  name: "WebGPU",
38
56
  determine: value => {
@@ -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;;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":[]}
1
+ {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","scheduleOnUI","require","__webgpuScheduleOnUI","job","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox","exports"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAuBA,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;MACJC,0BAA0B;MAC1BC;IACF,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;;IAEpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAOD,YAAY,KAAK,UAAU,EAAE;MACtCJ,UAAU,CAACM,oBAAoB,GAAIC,GAAe,IAAK;QACrDH,YAAY,CAAC,MAAM;UACjB,SAAS;;UACTG,GAAG,CAAC,CAAC;QACP,CAAC,CAAC;MACJ,CAAC;IACH;IAEAJ,0BAA0B,CAAC;MACzBK,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOX,OAAO,CAACY,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOX,OAAO,CAACc,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,CAAAnB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -69,10 +69,11 @@ const helpers = globalThis.__webgpuWorkletHelpers;
69
69
  * not treat a bare `navigator` as a known global, so they capture the main
70
70
  * runtime's `navigator` object by closure instead of reading the one this
71
71
  * function installed.
72
- * - Spontaneous events are main-runtime only: on a device created on a
73
- * worklet runtime, `device.lost` never settles (unless the device is
74
- * already lost when read) and `uncapturederror` listeners never fire.
75
- * Observe those on a device created on the main JS thread.
72
+ * - On a worklet runtime of your own (`createWorkletRuntime`, a frame
73
+ * processor), results are delivered while an operation is awaited there:
74
+ * `device.lost` and `uncapturederror` arrive with the next awaited
75
+ * operation on that runtime, not on their own. The main JS runtime and
76
+ * the Reanimated UI runtime receive them right away.
76
77
  *
77
78
  * Everything is captured into the worklet by closure: the constants like a
78
79
  * shader string would be, the GPU object through the Worklets custom
@@ -80,7 +81,7 @@ const helpers = globalThis.__webgpuWorkletHelpers;
80
81
  * it crosses, and the native helper that installs the class constructors,
81
82
  * which worklets hands to every runtime by reference. Promises returned by
82
83
  * `requestAdapter`/`requestDevice` settle on the calling runtime (each
83
- * runtime gets its own async pump). Calling it on a runtime that already has
84
+ * runtime has its own way of being reached, see RuntimeContext). Calling it on a runtime that already has
84
85
  * the globals (e.g. the main JS runtime) is a safe no-op.
85
86
  */
86
87
  const installWebGPU = () => {
@@ -1 +1 @@
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":[]}
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;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":[]}
@@ -115,6 +115,7 @@ const useBackingViewWarning = android => {
115
115
  // asynchronously, so the DOM node is read directly: clientWidth/clientHeight
116
116
  // are layout values that ignore transforms too (unlike getBoundingClientRect)
117
117
  // and are what browser WebGPU code sizes a canvas from.
118
+
118
119
  const measureLayout = view => {
119
120
  if (Platform.OS === "web") {
120
121
  const {
@@ -1 +1 @@
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":"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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":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAmBrD;AACA,eAAeA,sBAAsB,CAAc,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.ts"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAerD;AACA,eAAeA,sBAAsB,CAAc,YAAY,CAAC","ignoreList":[]}
@@ -1 +1 @@
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
+ {"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;AAGzC,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":[]}
@@ -25,8 +25,26 @@ export const registerWebGPUForReanimated = () => {
25
25
  }
26
26
  try {
27
27
  const {
28
- registerCustomSerializable
28
+ registerCustomSerializable,
29
+ scheduleOnUI
29
30
  } = require("react-native-worklets");
31
+
32
+ // A promise created on the UI runtime (requestDevice() in a worklet, a
33
+ // mapAsync() there) settles on the UI runtime through a timer the
34
+ // runtime arms on itself; this hook settles it sooner, and delivers
35
+ // device.lost and uncapturederror right away: native hands a function
36
+ // that drains the runtime's mailbox, a host function, to this hook on
37
+ // the main runtime, and worklets runs it on the UI runtime (see
38
+ // cpp/rnwgpu/async/RuntimeContext.h).
39
+ if (typeof scheduleOnUI === "function") {
40
+ globalThis.__webgpuScheduleOnUI = job => {
41
+ scheduleOnUI(() => {
42
+ "worklet";
43
+
44
+ job();
45
+ });
46
+ };
47
+ }
30
48
  registerCustomSerializable({
31
49
  name: "WebGPU",
32
50
  determine: value => {
@@ -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;;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":[]}
1
+ {"version":3,"names":["isRegistered","registerWebGPUForReanimated","helpers","globalThis","__webgpuWorkletHelpers","undefined","registerCustomSerializable","scheduleOnUI","require","__webgpuScheduleOnUI","job","name","determine","value","isNativeObject","pack","box","unpack","boxed","unbox"],"sourceRoot":"../../../../src","sources":["external/reanimated/registerWebGPUForReanimated.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAuBA,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;MACJC,0BAA0B;MAC1BC;IACF,CAAC,GAAGC,OAAO,CAAC,uBAAuB,CAAC;;IAEpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAOD,YAAY,KAAK,UAAU,EAAE;MACtCJ,UAAU,CAACM,oBAAoB,GAAIC,GAAe,IAAK;QACrDH,YAAY,CAAC,MAAM;UACjB,SAAS;;UACTG,GAAG,CAAC,CAAC;QACP,CAAC,CAAC;MACJ,CAAC;IACH;IAEAJ,0BAA0B,CAAC;MACzBK,IAAI,EAAE,QAAQ;MACdC,SAAS,EAAGC,KAAa,IAAsB;QAC7C,SAAS;;QACT,OAAOX,OAAO,CAACY,cAAc,CAACD,KAAK,CAAC;MACtC,CAAC;MACDE,IAAI,EAAGF,KAAa,IAAK;QACvB,SAAS;;QACT,OAAOX,OAAO,CAACc,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":[]}
@@ -63,10 +63,11 @@ const helpers = globalThis.__webgpuWorkletHelpers;
63
63
  * not treat a bare `navigator` as a known global, so they capture the main
64
64
  * runtime's `navigator` object by closure instead of reading the one this
65
65
  * function installed.
66
- * - Spontaneous events are main-runtime only: on a device created on a
67
- * worklet runtime, `device.lost` never settles (unless the device is
68
- * already lost when read) and `uncapturederror` listeners never fire.
69
- * Observe those on a device created on the main JS thread.
66
+ * - On a worklet runtime of your own (`createWorkletRuntime`, a frame
67
+ * processor), results are delivered while an operation is awaited there:
68
+ * `device.lost` and `uncapturederror` arrive with the next awaited
69
+ * operation on that runtime, not on their own. The main JS runtime and
70
+ * the Reanimated UI runtime receive them right away.
70
71
  *
71
72
  * Everything is captured into the worklet by closure: the constants like a
72
73
  * shader string would be, the GPU object through the Worklets custom
@@ -74,7 +75,7 @@ const helpers = globalThis.__webgpuWorkletHelpers;
74
75
  * it crosses, and the native helper that installs the class constructors,
75
76
  * which worklets hands to every runtime by reference. Promises returned by
76
77
  * `requestAdapter`/`requestDevice` settle on the calling runtime (each
77
- * runtime gets its own async pump). Calling it on a runtime that already has
78
+ * runtime has its own way of being reached, see RuntimeContext). Calling it on a runtime that already has
78
79
  * the globals (e.g. the main JS runtime) is a safe no-op.
79
80
  */
80
81
  export const installWebGPU = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["GPUBufferUsage","GPUColorWrite","GPUMapMode","GPUShaderStage","GPUTextureUsage","constants","gpu","RNWebGPU","undefined","helpers","globalThis","__webgpuWorkletHelpers","installWebGPU","g","key","value","Object","entries","nav","navigator","userAgent","installConstructors"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":"AAAA;AACA,SACEA,cAAc,EACdC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,eAAe,QACV,aAAa;;AAEpB;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG;EAChBL,cAAc;EACdI,eAAe;EACfD,cAAc;EACdF,aAAa;EACbC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,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;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,SAAS;;EACT,MAAMC,CAAC,GAAGH,UAAgD;EAC1D,KAAK,MAAM,CAACI,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACZ,SAAS,CAAC,EAAE;IACpD,IAAIQ,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","ignoreList":[]}
1
+ {"version":3,"names":["GPUBufferUsage","GPUColorWrite","GPUMapMode","GPUShaderStage","GPUTextureUsage","constants","gpu","RNWebGPU","undefined","helpers","globalThis","__webgpuWorkletHelpers","installWebGPU","g","key","value","Object","entries","nav","navigator","userAgent","installConstructors"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":"AAAA;AACA,SACEA,cAAc,EACdC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,eAAe,QACV,aAAa;;AAEpB;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG;EAChBL,cAAc;EACdI,eAAe;EACfD,cAAc;EACdF,aAAa;EACbC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,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;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,SAAS;;EACT,MAAMC,CAAC,GAAGH,UAAgD;EAC1D,KAAK,MAAM,CAACI,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACZ,SAAS,CAAC,EAAE;IACpD,IAAIQ,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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../commonjs/Canvas.js"],"names":[],"mappings":";AAoJA;;;;QA8CC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../commonjs/Canvas.js"],"names":[],"mappings":";AAqJA;;;;QA8CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerWebGPUForReanimated.d.ts","sourceRoot":"","sources":["../../../../../commonjs/external/reanimated/registerWebGPUForReanimated.js"],"names":[],"mappings":";AAeA;;;;;GAKG;AACH,oDAmCC"}
1
+ {"version":3,"file":"registerWebGPUForReanimated.d.ts","sourceRoot":"","sources":["../../../../../commonjs/external/reanimated/registerWebGPUForReanimated.js"],"names":[],"mappings":";AAeA;;;;;GAKG;AACH,oDAqDC"}
@@ -31,10 +31,11 @@ export const __esModule: boolean;
31
31
  * not treat a bare `navigator` as a known global, so they capture the main
32
32
  * runtime's `navigator` object by closure instead of reading the one this
33
33
  * function installed.
34
- * - Spontaneous events are main-runtime only: on a device created on a
35
- * worklet runtime, `device.lost` never settles (unless the device is
36
- * already lost when read) and `uncapturederror` listeners never fire.
37
- * Observe those on a device created on the main JS thread.
34
+ * - On a worklet runtime of your own (`createWorkletRuntime`, a frame
35
+ * processor), results are delivered while an operation is awaited there:
36
+ * `device.lost` and `uncapturederror` arrive with the next awaited
37
+ * operation on that runtime, not on their own. The main JS runtime and
38
+ * the Reanimated UI runtime receive them right away.
38
39
  *
39
40
  * Everything is captured into the worklet by closure: the constants like a
40
41
  * shader string would be, the GPU object through the Worklets custom
@@ -42,7 +43,7 @@ export const __esModule: boolean;
42
43
  * it crosses, and the native helper that installs the class constructors,
43
44
  * which worklets hands to every runtime by reference. Promises returned by
44
45
  * `requestAdapter`/`requestDevice` settle on the calling runtime (each
45
- * runtime gets its own async pump). Calling it on a runtime that already has
46
+ * runtime has its own way of being reached, see RuntimeContext). Calling it on a runtime that already has
46
47
  * the globals (e.g. the main JS runtime) is a safe no-op.
47
48
  */
48
49
  export function installWebGPU(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../commonjs/install.js"],"names":[],"mappings":";AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,sCA2BC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../commonjs/install.js"],"names":[],"mappings":";AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,sCA2BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AA4IO;;;;2DA8CN;qBAxL8B,cAAc;kBAD2B,OAAO"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AA6IO;;;;2DA8CN;qBAzL8B,cAAc;kBAD2B,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerWebGPUForReanimated.d.ts","sourceRoot":"","sources":["../../../../../module/external/reanimated/registerWebGPUForReanimated.js"],"names":[],"mappings":"AAeO,oDAmCN"}
1
+ {"version":3,"file":"registerWebGPUForReanimated.d.ts","sourceRoot":"","sources":["../../../../../module/external/reanimated/registerWebGPUForReanimated.js"],"names":[],"mappings":"AAeO,oDAqDN"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../module/install.js"],"names":[],"mappings":"AA+EO,sCA2BN"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../module/install.js"],"names":[],"mappings":"AAgFO,sCA2BN"}
@@ -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;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"}
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;AAkID,eAAO,MAAM,MAAM,GAAI,4BAA4B,WAAW,sBAmD7D,CAAC"}
@@ -1,11 +1,10 @@
1
- import type { Int32, WithDefault } from "react-native/Libraries/Types/CodegenTypes";
2
- import type { ViewProps } from "react-native";
1
+ import type { CodegenTypes, ViewProps } from "react-native";
3
2
  export interface NativeProps extends ViewProps {
4
- contextId: Int32;
5
- androidBackingView?: WithDefault<"TextureView" | "SurfaceView" | "HardwareBufferView", "TextureView">;
6
- androidOpaque?: WithDefault<boolean, false>;
7
- androidZOrderOnTop?: WithDefault<boolean, false>;
8
- androidZOrderMediaOverlay?: WithDefault<boolean, false>;
3
+ contextId: CodegenTypes.Int32;
4
+ androidBackingView?: CodegenTypes.WithDefault<"TextureView" | "SurfaceView" | "HardwareBufferView", "TextureView">;
5
+ androidOpaque?: CodegenTypes.WithDefault<boolean, false>;
6
+ androidZOrderOnTop?: CodegenTypes.WithDefault<boolean, false>;
7
+ androidZOrderMediaOverlay?: CodegenTypes.WithDefault<boolean, false>;
9
8
  }
10
9
  declare const _default: import("react-native").HostComponent<NativeProps>;
11
10
  export default _default;