react-native-webgpu 0.5.14 → 0.5.16

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 (118) hide show
  1. package/README.md +19 -6
  2. package/android/CMakeLists.txt +2 -2
  3. package/cpp/jsi/NativeObject.h +39 -0
  4. package/cpp/rnwgpu/RNWebGPUManager.cpp +8 -0
  5. package/cpp/rnwgpu/SurfaceRegistry.h +33 -1
  6. package/cpp/rnwgpu/api/Canvas.h +18 -0
  7. package/cpp/rnwgpu/api/GPU.cpp +14 -11
  8. package/cpp/rnwgpu/api/GPU.h +6 -4
  9. package/cpp/rnwgpu/api/GPUAdapter.cpp +5 -8
  10. package/cpp/rnwgpu/api/GPUAdapter.h +3 -3
  11. package/cpp/rnwgpu/api/GPUBuffer.cpp +23 -24
  12. package/cpp/rnwgpu/api/GPUBuffer.h +3 -3
  13. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +13 -16
  14. package/cpp/rnwgpu/api/GPUCanvasContext.h +3 -0
  15. package/cpp/rnwgpu/api/GPUDevice.cpp +103 -19
  16. package/cpp/rnwgpu/api/GPUDevice.h +17 -3
  17. package/cpp/rnwgpu/api/GPUQueue.h +3 -3
  18. package/cpp/rnwgpu/api/GPUShaderModule.h +3 -3
  19. package/cpp/rnwgpu/api/GPUSharedFence.cpp +77 -0
  20. package/cpp/rnwgpu/api/GPUSharedFence.h +53 -0
  21. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +60 -11
  22. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +13 -9
  23. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +58 -0
  24. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +51 -0
  25. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +55 -23
  26. package/cpp/rnwgpu/async/AsyncTaskHandle.h +8 -5
  27. package/cpp/rnwgpu/async/RuntimeContext.cpp +193 -0
  28. package/cpp/rnwgpu/async/RuntimeContext.h +122 -0
  29. package/lib/commonjs/Canvas.js.map +1 -1
  30. package/lib/commonjs/GPUDeviceProvider.js +33 -0
  31. package/lib/commonjs/GPUDeviceProvider.js.map +1 -0
  32. package/lib/commonjs/Offscreen.js +1 -1
  33. package/lib/commonjs/WebPolyfillGPUModule.js +9 -1
  34. package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -1
  35. package/lib/commonjs/constants.js +55 -0
  36. package/lib/commonjs/constants.js.map +1 -0
  37. package/lib/commonjs/hooks.js +2 -26
  38. package/lib/commonjs/hooks.js.map +1 -1
  39. package/lib/commonjs/index.js +22 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/install.js +63 -0
  42. package/lib/commonjs/install.js.map +1 -0
  43. package/lib/commonjs/main/index.js +12 -0
  44. package/lib/commonjs/main/index.js.map +1 -1
  45. package/lib/commonjs/main/index.web.js +11 -0
  46. package/lib/commonjs/main/index.web.js.map +1 -1
  47. package/lib/module/Canvas.js.map +1 -1
  48. package/lib/module/GPUDeviceProvider.js +24 -0
  49. package/lib/module/GPUDeviceProvider.js.map +1 -0
  50. package/lib/module/Offscreen.js +1 -1
  51. package/lib/module/WebPolyfillGPUModule.js +9 -1
  52. package/lib/module/WebPolyfillGPUModule.js.map +1 -1
  53. package/lib/module/constants.js +44 -0
  54. package/lib/module/constants.js.map +1 -0
  55. package/lib/module/hooks.js +1 -22
  56. package/lib/module/hooks.js.map +1 -1
  57. package/lib/module/index.js +2 -0
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/install.js +57 -0
  60. package/lib/module/install.js.map +1 -0
  61. package/lib/module/main/index.js +1 -0
  62. package/lib/module/main/index.js.map +1 -1
  63. package/lib/module/main/index.web.js +1 -0
  64. package/lib/module/main/index.web.js.map +1 -1
  65. package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts +8 -0
  66. package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts.map +1 -0
  67. package/lib/typescript/lib/commonjs/constants.d.ts +7 -0
  68. package/lib/typescript/lib/commonjs/constants.d.ts.map +1 -0
  69. package/lib/typescript/lib/commonjs/hooks.d.ts +4 -9
  70. package/lib/typescript/lib/commonjs/hooks.d.ts.map +1 -1
  71. package/lib/typescript/lib/commonjs/install.d.ts +35 -0
  72. package/lib/typescript/lib/commonjs/install.d.ts.map +1 -0
  73. package/lib/typescript/lib/module/GPUDeviceProvider.d.ts +8 -0
  74. package/lib/typescript/lib/module/GPUDeviceProvider.d.ts.map +1 -0
  75. package/lib/typescript/lib/module/constants.d.ts +6 -0
  76. package/lib/typescript/lib/module/constants.d.ts.map +1 -0
  77. package/lib/typescript/lib/module/hooks.d.ts +2 -9
  78. package/lib/typescript/lib/module/hooks.d.ts.map +1 -1
  79. package/lib/typescript/lib/module/index.d.ts +2 -0
  80. package/lib/typescript/lib/module/install.d.ts +2 -0
  81. package/lib/typescript/lib/module/install.d.ts.map +1 -0
  82. package/lib/typescript/lib/module/main/index.d.ts +1 -0
  83. package/lib/typescript/lib/module/main/index.web.d.ts +1 -0
  84. package/lib/typescript/src/Canvas.d.ts +14 -0
  85. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  86. package/lib/typescript/src/GPUDeviceProvider.d.ts +15 -0
  87. package/lib/typescript/src/GPUDeviceProvider.d.ts.map +1 -0
  88. package/lib/typescript/src/constants.d.ts +6 -0
  89. package/lib/typescript/src/constants.d.ts.map +1 -0
  90. package/lib/typescript/src/hooks.d.ts +2 -17
  91. package/lib/typescript/src/hooks.d.ts.map +1 -1
  92. package/lib/typescript/src/index.d.ts +5 -2
  93. package/lib/typescript/src/index.d.ts.map +1 -1
  94. package/lib/typescript/src/install.d.ts +34 -0
  95. package/lib/typescript/src/install.d.ts.map +1 -0
  96. package/lib/typescript/src/main/index.d.ts +1 -0
  97. package/lib/typescript/src/main/index.d.ts.map +1 -1
  98. package/lib/typescript/src/main/index.web.d.ts +1 -0
  99. package/lib/typescript/src/main/index.web.d.ts.map +1 -1
  100. package/lib/typescript/src/types.d.ts +39 -2
  101. package/lib/typescript/src/types.d.ts.map +1 -1
  102. package/package.json +12 -3
  103. package/src/Canvas.tsx +16 -0
  104. package/src/GPUDeviceProvider.tsx +39 -0
  105. package/src/Offscreen.ts +1 -1
  106. package/src/WebPolyfillGPUModule.ts +9 -3
  107. package/src/constants.ts +37 -0
  108. package/src/hooks.tsx +3 -41
  109. package/src/index.tsx +13 -2
  110. package/src/install.ts +61 -0
  111. package/src/main/index.tsx +1 -0
  112. package/src/main/index.web.tsx +1 -0
  113. package/src/types.ts +76 -3
  114. package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
  115. package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
  116. package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
  117. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
  118. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GPUTextureUsage = exports.GPUShaderStage = exports.GPUMapMode = exports.GPUColorWrite = exports.GPUBufferUsage = void 0;
7
+ /// <reference types="@webgpu/types" />
8
+
9
+ // WebGPU flag constants as importable JS values.
10
+ //
11
+ // The native module installs `GPUBufferUsage`, `GPUTextureUsage`,
12
+ // `GPUShaderStage`, `GPUColorWrite` and `GPUMapMode` as globals, but only on the
13
+ // main JS runtime. Worklet runtimes (Reanimated UI, dedicated worklet runtimes,
14
+ // Vision Camera frame processors) do not get those globals, so referencing the
15
+ // bare global inside a worklet yields `undefined`.
16
+ //
17
+ // Rather than hardcode the bit values here (which could drift from the native
18
+ // `wgpu::*Usage` enums), we re-export the globals the native module already
19
+ // installed (see `GPUBufferUsage.h` and friends, which derive their values from
20
+ // the Dawn enums with `static_assert`s). This keeps a single source of truth.
21
+ // Importing them into a worklet lets the Worklets serializer capture them by
22
+ // closure (the same way module-level shader strings are captured), making them
23
+ // available on every runtime without passing them in by hand:
24
+ //
25
+ // import { GPUBufferUsage } from "react-native-webgpu";
26
+ // const work = () => {
27
+ // "worklet";
28
+ // device.createBuffer({ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ });
29
+ // };
30
+ //
31
+ // These are read at module evaluation time. The package entry (`index.tsx`)
32
+ // re-exports `./main` before `./constants`, and `./main` installs the native
33
+ // module synchronously, so the globals always exist by the time this runs.
34
+
35
+ const {
36
+ GPUBufferUsage
37
+ } = globalThis;
38
+ exports.GPUBufferUsage = GPUBufferUsage;
39
+ const {
40
+ GPUTextureUsage
41
+ } = globalThis;
42
+ exports.GPUTextureUsage = GPUTextureUsage;
43
+ const {
44
+ GPUShaderStage
45
+ } = globalThis;
46
+ exports.GPUShaderStage = GPUShaderStage;
47
+ const {
48
+ GPUColorWrite
49
+ } = globalThis;
50
+ exports.GPUColorWrite = GPUColorWrite;
51
+ const {
52
+ GPUMapMode
53
+ } = globalThis;
54
+ exports.GPUMapMode = GPUMapMode;
55
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GPUBufferUsage","globalThis","exports","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAM;EAAEA;AAAe,CAAC,GAAGC,UAAU;AAACC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAEtC,MAAM;EAAEG;AAAgB,CAAC,GAAGF,UAAU;AAACC,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEvC,MAAM;EAAEC;AAAe,CAAC,GAAGH,UAAU;AAACC,OAAA,CAAAE,cAAA,GAAAA,cAAA;AAEtC,MAAM;EAAEC;AAAc,CAAC,GAAGJ,UAAU;AAACC,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAErC,MAAM;EAAEC;AAAW,CAAC,GAAGL,UAAU;AAACC,OAAA,CAAAI,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -3,9 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.useMainDevice = exports.useDevice = exports.useCanvasRef = exports.GPUDeviceProvider = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
6
+ exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.useDevice = exports.useCanvasRef = void 0;
7
+ var _react = require("react");
9
8
  const warnIfNotHardwareAccelerated = adapter => {
10
9
  // Check if adapter is a fallback adapter using the new GPUAdapterInfo API
11
10
  // Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
@@ -14,21 +13,6 @@ const warnIfNotHardwareAccelerated = adapter => {
14
13
  }
15
14
  };
16
15
  exports.warnIfNotHardwareAccelerated = warnIfNotHardwareAccelerated;
17
- const DeviceContext = /*#__PURE__*/(0, _react.createContext)(null);
18
- const GPUDeviceProvider = ({
19
- children,
20
- adapterOptions,
21
- deviceDescriptor
22
- }) => {
23
- const state = useDevice(adapterOptions, deviceDescriptor);
24
- if (!state.device) {
25
- return null;
26
- }
27
- return /*#__PURE__*/_react.default.createElement(DeviceContext.Provider, {
28
- value: state
29
- }, children);
30
- };
31
- exports.GPUDeviceProvider = GPUDeviceProvider;
32
16
  const useSurface = () => {
33
17
  const ref = (0, _react.useRef)(null);
34
18
  const [surface, setSurface] = (0, _react.useState)(null);
@@ -42,14 +26,6 @@ const useSurface = () => {
42
26
  };
43
27
  };
44
28
  exports.useSurface = useSurface;
45
- const useMainDevice = () => {
46
- const ctx = (0, _react.useContext)(DeviceContext);
47
- if (!ctx) {
48
- throw new Error("No DeviceContext found.");
49
- }
50
- return ctx;
51
- };
52
- exports.useMainDevice = useMainDevice;
53
29
  const useCanvasRef = () => (0, _react.useRef)(null);
54
30
  exports.useCanvasRef = useCanvasRef;
55
31
  const useDevice = (adapterOptions, deviceDescriptor) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","exports","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","useSurface","ref","useRef","surface","setSurface","useState","useLayoutEffect","sur","current","getNativeSurface","useMainDevice","ctx","useContext","Error","useCanvasRef","setState","useEffect","navigator","gpu","requestAdapter","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","exports","useSurface","ref","useRef","surface","setSurface","useState","useLayoutEffect","sur","current","getNativeSurface","useCanvasRef","useDevice","adapterOptions","deviceDescriptor","state","setState","useEffect","navigator","gpu","requestAdapter","Error","device","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAACC,OAAA,CAAAN,4BAAA,GAAAA,4BAAA;AAOK,MAAMO,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAY,IAAI,CAAC;EACnC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAsB,IAAI,CAAC;EACjE,IAAAC,sBAAe,EAAC,MAAM;IACpB,MAAMC,GAAG,GAAGN,GAAG,CAACO,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CL,UAAU,CAACG,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEN,GAAG;IAAEE;EAAQ,CAAC;AACzB,CAAC;AAACJ,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAEK,MAAMU,YAAY,GAAGA,CAAA,KAAM,IAAAR,aAAM,EAAY,IAAI,CAAC;AAACH,OAAA,CAAAW,YAAA,GAAAA,YAAA;AAEnD,MAAMC,SAAS,GAAGA,CACvBC,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAV,eAAQ,EAAqB,IAAI,CAAC;EAC5D,IAAAW,gBAAS,EAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACF,KAAK,EAAE;QACV,MAAMpB,OAAO,GAAG,MAAMuB,SAAS,CAACC,GAAG,CAACC,cAAc,CAACP,cAAc,CAAC;QAClE,IAAI,CAAClB,OAAO,EAAE;UACZ,MAAM,IAAI0B,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACA3B,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAM2B,MAAM,GAAG,MAAM3B,OAAO,CAAC4B,aAAa,CAACT,gBAAgB,CAAC;QAC5D,IAAI,CAACQ,MAAM,EAAE;UACX,MAAM,IAAID,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAL,QAAQ,CAAC;UAAErB,OAAO;UAAE2B;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACT,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEpB,OAAO,EAAEoB,KAAK,EAAEpB,OAAO,IAAI,IAAI;IAAE2B,MAAM,EAAEP,KAAK,EAAEO,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC;AAACtB,OAAA,CAAAY,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -14,4 +14,26 @@ Object.keys(_main).forEach(function (key) {
14
14
  }
15
15
  });
16
16
  });
17
+ var _constants = require("./constants");
18
+ Object.keys(_constants).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _constants[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _constants[key];
25
+ }
26
+ });
27
+ });
28
+ var _install = require("./install");
29
+ Object.keys(_install).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _install[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _install[key];
36
+ }
37
+ });
38
+ });
17
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_main","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAYA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_main","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_constants","_install"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAcA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,QAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,QAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,QAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,QAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.installWebGPU = void 0;
7
+ var _constants = require("./constants");
8
+ // Globals that this function installs on the calling runtime. These are the
9
+ // native-derived flag constants re-exported from `./constants` (a single source
10
+ // of truth, matching the native `wgpu::*Usage` enums), so they are safe to set
11
+ // on any runtime.
12
+ const constants = {
13
+ GPUBufferUsage: _constants.GPUBufferUsage,
14
+ GPUTextureUsage: _constants.GPUTextureUsage,
15
+ GPUShaderStage: _constants.GPUShaderStage,
16
+ GPUColorWrite: _constants.GPUColorWrite,
17
+ GPUMapMode: _constants.GPUMapMode
18
+ };
19
+
20
+ /**
21
+ * Install WebGPU on the runtime that calls it.
22
+ *
23
+ * The native module installs the WebGPU flag constants (`GPUBufferUsage`,
24
+ * `GPUTextureUsage`, `GPUShaderStage`, `GPUColorWrite`, `GPUMapMode`) as globals
25
+ * on the main JS runtime, but worklet runtimes (Reanimated UI, dedicated worklet
26
+ * runtimes, Vision Camera frame processors) start without them, so referencing
27
+ * the bare global inside a worklet yields `undefined`.
28
+ *
29
+ * Call `installWebGPU()` once at the top of a worklet to make those globals
30
+ * available there, instead of importing each constant by hand:
31
+ *
32
+ * ```tsx
33
+ * import { installWebGPU } from "react-native-webgpu";
34
+ *
35
+ * const work = (device: GPUDevice) => {
36
+ * "worklet";
37
+ * installWebGPU();
38
+ * device.createBuffer({
39
+ * usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
40
+ * });
41
+ * };
42
+ * ```
43
+ *
44
+ * The constants are captured into the worklet by closure (the same way a shader
45
+ * string is), so they work on every runtime. Calling it on a runtime that
46
+ * already has the globals (e.g. the main JS runtime) is a safe no-op.
47
+ *
48
+ * This is the explicit entry point for runtime setup; for now it only installs
49
+ * the flag constants, but it is the place where other per-runtime WebGPU setup
50
+ * (e.g. `navigator.gpu`) can be wired in later.
51
+ */
52
+ const installWebGPU = () => {
53
+ "worklet";
54
+
55
+ const g = globalThis;
56
+ for (const [key, value] of Object.entries(constants)) {
57
+ if (g[key] === undefined) {
58
+ g[key] = value;
59
+ }
60
+ }
61
+ };
62
+ exports.installWebGPU = installWebGPU;
63
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","constants","GPUBufferUsage","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode","installWebGPU","g","globalThis","key","value","Object","entries","undefined","exports"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQA;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;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,GAAGC,UAAgD;EAC1D,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACZ,SAAS,CAAC,EAAE;IACpD,IAAIO,CAAC,CAACE,GAAG,CAAC,KAAKI,SAAS,EAAE;MACxBN,CAAC,CAACE,GAAG,CAAC,GAAGC,KAAK;IAChB;EACF;AACF,CAAC;AAACI,OAAA,CAAAR,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -62,6 +62,18 @@ Object.keys(_hooks).forEach(function (key) {
62
62
  }
63
63
  });
64
64
  });
65
+ var _GPUDeviceProvider = require("../GPUDeviceProvider");
66
+ Object.keys(_GPUDeviceProvider).forEach(function (key) {
67
+ if (key === "default" || key === "__esModule") return;
68
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
69
+ if (key in exports && exports[key] === _GPUDeviceProvider[key]) return;
70
+ Object.defineProperty(exports, key, {
71
+ enumerable: true,
72
+ get: function () {
73
+ return _GPUDeviceProvider[key];
74
+ }
75
+ });
76
+ });
65
77
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
66
78
  const _installOk = _NativeWebGPUModule.default.install();
67
79
  (0, _external.registerWebGPUForReanimated)();
@@ -1 +1 @@
1
- {"version":3,"names":["_external","require","_NativeWebGPUModule","_interopRequireDefault","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","e","__esModule","default","_installOk","WebGPUModule","install","registerWebGPUForReanimated","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_external","require","_NativeWebGPUModule","_interopRequireDefault","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","_GPUDeviceProvider","e","__esModule","default","_installOk","WebGPUModule","install","registerWebGPUForReanimated","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -48,4 +48,15 @@ Object.keys(_hooks).forEach(function (key) {
48
48
  }
49
49
  });
50
50
  });
51
+ var _GPUDeviceProvider = require("../GPUDeviceProvider");
52
+ Object.keys(_GPUDeviceProvider).forEach(function (key) {
53
+ if (key === "default" || key === "__esModule") return;
54
+ if (key in exports && exports[key] === _GPUDeviceProvider[key]) return;
55
+ Object.defineProperty(exports, key, {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _GPUDeviceProvider[key];
59
+ }
60
+ });
61
+ });
51
62
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["require","_Canvas","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks"],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":";;;;;AAAAA,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAR,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAV,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,0BAAA,GAAAX,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAQ,0BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,0BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAZ,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["require","_Canvas","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","_GPUDeviceProvider"],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":";;;;;AAAAA,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAR,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAV,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,0BAAA,GAAAX,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAQ,0BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,0BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAZ,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,kBAAA,GAAAb,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAU,kBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,kBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,kBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","useImperativeHandle","useRef","useState","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","contextId","_","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEpE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA2BA,OAAO,MAAME,MAAM,GAAGA,CAAC;EAAEC,WAAW;EAAEC,GAAG;EAAE,GAAGC;AAAmB,CAAC,KAAK;EACrE,MAAMC,OAAO,GAAGV,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAM,CAACW,SAAS,EAAEC,CAAC,CAAC,GAAGX,QAAQ,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC;EAC1DN,mBAAmB,CAACS,GAAG,EAAE,OAAO;IAC9BK,YAAY,EAAEA,CAAA,KAAMF,SAAS;IAC7BG,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOC,QAAQ,CAACD,gBAAgB,CAACH,SAAS,CAAC;IAC7C,CAAC;IACDK,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACP,OAAO,CAACS,OAAO,EAAE;QACpB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA;MACA;MACA,MAAME,IAAI,GAAGV,OAAO,CAACS,OAAc;MACnC,MAAME,IAAI,GACR,uBAAuB,IAAID,IAAI,GAC3BA,IAAI,CAACE,qBAAqB,CAAC,CAAC,GAC5BF,IAAI,CAACG,8BAA8B,CAAC,CAAC;MAC3C,OAAOR,QAAQ,CAACS,uBAAuB,CACrCb,SAAS,EACTU,IAAI,CAACI,KAAK,EACVJ,IAAI,CAACK,MACP,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,oBACE5B,KAAA,CAAA6B,aAAA,CAACzB,IAAI,EAAA0B,QAAA;IAACC,WAAW,EAAE,KAAM;IAACrB,GAAG,EAAEE;EAAQ,GAAKD,KAAK,gBAC/CX,KAAA,CAAA6B,aAAA,CAACxB,gBAAgB;IACf2B,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBpB,SAAS,EAAEA,SAAU;IACrBJ,WAAW,EAAE,CAAC,CAACA;EAAY,CAC5B,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useImperativeHandle","useRef","useState","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","contextId","_","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEpE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA2CA,OAAO,MAAME,MAAM,GAAGA,CAAC;EAAEC,WAAW;EAAEC,GAAG;EAAE,GAAGC;AAAmB,CAAC,KAAK;EACrE,MAAMC,OAAO,GAAGV,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAM,CAACW,SAAS,EAAEC,CAAC,CAAC,GAAGX,QAAQ,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC;EAC1DN,mBAAmB,CAACS,GAAG,EAAE,OAAO;IAC9BK,YAAY,EAAEA,CAAA,KAAMF,SAAS;IAC7BG,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOC,QAAQ,CAACD,gBAAgB,CAACH,SAAS,CAAC;IAC7C,CAAC;IACDK,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACP,OAAO,CAACS,OAAO,EAAE;QACpB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA;MACA;MACA,MAAME,IAAI,GAAGV,OAAO,CAACS,OAAc;MACnC,MAAME,IAAI,GACR,uBAAuB,IAAID,IAAI,GAC3BA,IAAI,CAACE,qBAAqB,CAAC,CAAC,GAC5BF,IAAI,CAACG,8BAA8B,CAAC,CAAC;MAC3C,OAAOR,QAAQ,CAACS,uBAAuB,CACrCb,SAAS,EACTU,IAAI,CAACI,KAAK,EACVJ,IAAI,CAACK,MACP,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,oBACE5B,KAAA,CAAA6B,aAAA,CAACzB,IAAI,EAAA0B,QAAA;IAACC,WAAW,EAAE,KAAM;IAACrB,GAAG,EAAEE;EAAQ,GAAKD,KAAK,gBAC/CX,KAAA,CAAA6B,aAAA,CAACxB,gBAAgB;IACf2B,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBpB,SAAS,EAAEA,SAAU;IACrBJ,WAAW,EAAE,CAAC,CAACA;EAAY,CAC5B,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import React, { createContext, useContext } from "react";
2
+ import { useDevice } from "./hooks";
3
+ const DeviceContext = /*#__PURE__*/createContext(null);
4
+ export const GPUDeviceProvider = ({
5
+ children,
6
+ adapterOptions,
7
+ deviceDescriptor
8
+ }) => {
9
+ const state = useDevice(adapterOptions, deviceDescriptor);
10
+ if (!state.device) {
11
+ return null;
12
+ }
13
+ return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
14
+ value: state
15
+ }, children);
16
+ };
17
+ export const useMainDevice = () => {
18
+ const ctx = useContext(DeviceContext);
19
+ if (!ctx) {
20
+ throw new Error("No DeviceContext found.");
21
+ }
22
+ return ctx;
23
+ };
24
+ //# sourceMappingURL=GPUDeviceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createContext","useContext","useDevice","DeviceContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","device","createElement","Provider","value","useMainDevice","ctx","Error"],"sourceRoot":"../../src","sources":["GPUDeviceProvider.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAGxD,SAASC,SAAS,QAAQ,SAAS;AAOnC,MAAMC,aAAa,gBAAGH,aAAa,CAA4B,IAAI,CAAC;AAQpE,OAAO,MAAMI,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAGN,SAAS,CAACI,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACC,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACEV,KAAA,CAAAW,aAAA,CAACP,aAAa,CAACQ,QAAQ;IAACC,KAAK,EAAEJ;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAED,OAAO,MAAMQ,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAGb,UAAU,CAACE,aAAa,CAAC;EACrC,IAAI,CAACW,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOD,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -55,7 +55,7 @@ class GPUOffscreenCanvasContext {
55
55
  throw new Error("Method not implemented.");
56
56
  }
57
57
  present() {
58
- // Do nothing
58
+ // Offscreen contexts have nothing to present; readback is via getImageData.
59
59
  }
60
60
  getDevice() {
61
61
  if (!this.device) {
@@ -11,7 +11,13 @@ function getNativeSurface(contextId) {
11
11
  height,
12
12
  width,
13
13
  clientHeight: height,
14
- clientWidth: width
14
+ clientWidth: width,
15
+ // On web the real DOM canvas handles events; delegate to it.
16
+ addEventListener: canvas.addEventListener.bind(canvas),
17
+ removeEventListener: canvas.removeEventListener.bind(canvas),
18
+ dispatchEvent: canvas.dispatchEvent.bind(canvas),
19
+ setPointerCapture: canvas.setPointerCapture.bind(canvas),
20
+ releasePointerCapture: canvas.releasePointerCapture.bind(canvas)
15
21
  };
16
22
  }
17
23
  function makeWebGPUCanvasContext(contextId, width, height) {
@@ -24,6 +30,8 @@ function makeWebGPUCanvasContext(contextId, width, height) {
24
30
  canvas.setAttribute("height", pixelHeight);
25
31
  }
26
32
  const context = canvas.getContext("webgpu");
33
+ // On web there is no manual present; expose a no-op so RNCanvasContext's
34
+ // present() (called after queue.submit() on native) is callable here too.
27
35
  return Object.assign(context, {
28
36
  present: () => {}
29
37
  });
@@ -1 +1 @@
1
- {"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEI,MAAM;IAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACR,SAAS,CAAC;IAC1BI,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL;EACf,CAAC;AACH;AAEA,SAASM,uBAAuBA,CAC9BX,SAAiB,EACjBK,KAAa,EACbD,MAAc,EACd;EACA,MAAMH,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMY,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAACV,KAAK,GAAGO,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACb,MAAM,GAAGQ,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEf,MAAM,CAACiB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3Cd,MAAM,CAACiB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAhB,MAAM,CAACkB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCd,MAAM,CAACkB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGnB,MAAM,CAACoB,UAAU,CAAC,QAAQ,CAAE;EAC5C,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAC5BI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAClB,CAAC,CAAC;AACJ;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChB1B,gBAAgB;EAChB2B,uBAAuB,EAAEf,uBAAuB;EAChDb;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","addEventListener","bind","removeEventListener","dispatchEvent","setPointerCapture","releasePointerCapture","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEI,MAAM;IAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACR,SAAS,CAAC;IAC1BI,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL,KAAK;IAClB;IACAM,gBAAgB,EAAEV,MAAM,CAACU,gBAAgB,CAACC,IAAI,CAACX,MAAM,CAAC;IACtDY,mBAAmB,EAAEZ,MAAM,CAACY,mBAAmB,CAACD,IAAI,CAACX,MAAM,CAAC;IAC5Da,aAAa,EAAEb,MAAM,CAACa,aAAa,CAACF,IAAI,CAACX,MAAM,CAAC;IAChDc,iBAAiB,EAAEd,MAAM,CAACc,iBAAiB,CAACH,IAAI,CAACX,MAAM,CAAC;IACxDe,qBAAqB,EAAEf,MAAM,CAACe,qBAAqB,CAACJ,IAAI,CAACX,MAAM;EACjE,CAAC;AACH;AAEA,SAASgB,uBAAuBA,CAC9BjB,SAAiB,EACjBK,KAAa,EACbD,MAAc,EACd;EACA,MAAMH,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMkB,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAAChB,KAAK,GAAGa,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACnB,MAAM,GAAGc,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACErB,MAAM,CAACuB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CpB,MAAM,CAACuB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAtB,MAAM,CAACwB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCpB,MAAM,CAACwB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGzB,MAAM,CAAC0B,UAAU,CAAC,QAAQ,CAAE;EAC5C;EACA;EACA,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC;AACtD;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChBhC,gBAAgB;EAChBiC,uBAAuB,EAAEf,uBAAuB;EAChDnB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ /// <reference types="@webgpu/types" />
2
+
3
+ // WebGPU flag constants as importable JS values.
4
+ //
5
+ // The native module installs `GPUBufferUsage`, `GPUTextureUsage`,
6
+ // `GPUShaderStage`, `GPUColorWrite` and `GPUMapMode` as globals, but only on the
7
+ // main JS runtime. Worklet runtimes (Reanimated UI, dedicated worklet runtimes,
8
+ // Vision Camera frame processors) do not get those globals, so referencing the
9
+ // bare global inside a worklet yields `undefined`.
10
+ //
11
+ // Rather than hardcode the bit values here (which could drift from the native
12
+ // `wgpu::*Usage` enums), we re-export the globals the native module already
13
+ // installed (see `GPUBufferUsage.h` and friends, which derive their values from
14
+ // the Dawn enums with `static_assert`s). This keeps a single source of truth.
15
+ // Importing them into a worklet lets the Worklets serializer capture them by
16
+ // closure (the same way module-level shader strings are captured), making them
17
+ // available on every runtime without passing them in by hand:
18
+ //
19
+ // import { GPUBufferUsage } from "react-native-webgpu";
20
+ // const work = () => {
21
+ // "worklet";
22
+ // device.createBuffer({ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ });
23
+ // };
24
+ //
25
+ // These are read at module evaluation time. The package entry (`index.tsx`)
26
+ // re-exports `./main` before `./constants`, and `./main` installs the native
27
+ // module synchronously, so the globals always exist by the time this runs.
28
+
29
+ export const {
30
+ GPUBufferUsage
31
+ } = globalThis;
32
+ export const {
33
+ GPUTextureUsage
34
+ } = globalThis;
35
+ export const {
36
+ GPUShaderStage
37
+ } = globalThis;
38
+ export const {
39
+ GPUColorWrite
40
+ } = globalThis;
41
+ export const {
42
+ GPUMapMode
43
+ } = globalThis;
44
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GPUBufferUsage","globalThis","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAM;EAAEA;AAAe,CAAC,GAAGC,UAAU;AAE5C,OAAO,MAAM;EAAEC;AAAgB,CAAC,GAAGD,UAAU;AAE7C,OAAO,MAAM;EAAEE;AAAe,CAAC,GAAGF,UAAU;AAE5C,OAAO,MAAM;EAAEG;AAAc,CAAC,GAAGH,UAAU;AAE3C,OAAO,MAAM;EAAEI;AAAW,CAAC,GAAGJ,UAAU","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import React, { createContext, useContext, useEffect, useLayoutEffect, useRef, useState } from "react";
1
+ import { useEffect, useLayoutEffect, useRef, useState } from "react";
2
2
  export const warnIfNotHardwareAccelerated = adapter => {
3
3
  // Check if adapter is a fallback adapter using the new GPUAdapterInfo API
4
4
  // Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
@@ -6,20 +6,6 @@ export const warnIfNotHardwareAccelerated = adapter => {
6
6
  console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow. Some features may be unavailable.");
7
7
  }
8
8
  };
9
- const DeviceContext = /*#__PURE__*/createContext(null);
10
- export const GPUDeviceProvider = ({
11
- children,
12
- adapterOptions,
13
- deviceDescriptor
14
- }) => {
15
- const state = useDevice(adapterOptions, deviceDescriptor);
16
- if (!state.device) {
17
- return null;
18
- }
19
- return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
20
- value: state
21
- }, children);
22
- };
23
9
  export const useSurface = () => {
24
10
  const ref = useRef(null);
25
11
  const [surface, setSurface] = useState(null);
@@ -32,13 +18,6 @@ export const useSurface = () => {
32
18
  surface
33
19
  };
34
20
  };
35
- export const useMainDevice = () => {
36
- const ctx = useContext(DeviceContext);
37
- if (!ctx) {
38
- throw new Error("No DeviceContext found.");
39
- }
40
- return ctx;
41
- };
42
21
  export const useCanvasRef = () => useRef(null);
43
22
  export const useDevice = (adapterOptions, deviceDescriptor) => {
44
23
  const [state, setState] = useState(null);
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useEffect","useLayoutEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","DeviceContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","useSurface","ref","surface","setSurface","sur","current","getNativeSurface","useMainDevice","ctx","Error","useCanvasRef","setState","navigator","gpu","requestAdapter","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,MAAM,EACNC,QAAQ,QACH,OAAO;AAKd,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAOD,MAAMC,aAAa,gBAAGZ,aAAa,CAAuB,IAAI,CAAC;AAQ/D,OAAO,MAAMa,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAGC,SAAS,CAACH,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACEpB,KAAA,CAAAqB,aAAA,CAACR,aAAa,CAACS,QAAQ;IAACC,KAAK,EAAEL;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAED,OAAO,MAAMS,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAGpB,MAAM,CAAY,IAAI,CAAC;EACnC,MAAM,CAACqB,OAAO,EAAEC,UAAU,CAAC,GAAGrB,QAAQ,CAAsB,IAAI,CAAC;EACjEF,eAAe,CAAC,MAAM;IACpB,MAAMwB,GAAG,GAAGH,GAAG,CAACI,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CH,UAAU,CAACC,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEH,GAAG;IAAEC;EAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMK,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAG9B,UAAU,CAACW,aAAa,CAAC;EACrC,IAAI,CAACmB,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOD,GAAG;AACZ,CAAC;AAED,OAAO,MAAME,YAAY,GAAGA,CAAA,KAAM7B,MAAM,CAAY,IAAI,CAAC;AAEzD,OAAO,MAAMc,SAAS,GAAGA,CACvBH,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEiB,QAAQ,CAAC,GAAG7B,QAAQ,CAAuB,IAAI,CAAC;EAC9DH,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACe,KAAK,EAAE;QACV,MAAMV,OAAO,GAAG,MAAM4B,SAAS,CAACC,GAAG,CAACC,cAAc,CAACtB,cAAc,CAAC;QAClE,IAAI,CAACR,OAAO,EAAE;UACZ,MAAM,IAAIyB,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACA1B,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAMY,MAAM,GAAG,MAAMZ,OAAO,CAAC+B,aAAa,CAACtB,gBAAgB,CAAC;QAC5D,IAAI,CAACG,MAAM,EAAE;UACX,MAAM,IAAIa,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAE,QAAQ,CAAC;UAAE3B,OAAO;UAAEY;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACJ,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEV,OAAO,EAAEU,KAAK,EAAEV,OAAO,IAAI,IAAI;IAAEY,MAAM,EAAEF,KAAK,EAAEE,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useLayoutEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","useSurface","ref","surface","setSurface","sur","current","getNativeSurface","useCanvasRef","useDevice","adapterOptions","deviceDescriptor","state","setState","navigator","gpu","requestAdapter","Error","device","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAIpE,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAOD,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAGT,MAAM,CAAY,IAAI,CAAC;EACnC,MAAM,CAACU,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAsB,IAAI,CAAC;EACjEF,eAAe,CAAC,MAAM;IACpB,MAAMa,GAAG,GAAGH,GAAG,CAACI,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CH,UAAU,CAACC,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEH,GAAG;IAAEC;EAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMK,YAAY,GAAGA,CAAA,KAAMf,MAAM,CAAY,IAAI,CAAC;AAEzD,OAAO,MAAMgB,SAAS,GAAGA,CACvBC,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAqB,IAAI,CAAC;EAC5DH,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACqB,KAAK,EAAE;QACV,MAAMhB,OAAO,GAAG,MAAMkB,SAAS,CAACC,GAAG,CAACC,cAAc,CAACN,cAAc,CAAC;QAClE,IAAI,CAACd,OAAO,EAAE;UACZ,MAAM,IAAIqB,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACAtB,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAMsB,MAAM,GAAG,MAAMtB,OAAO,CAACuB,aAAa,CAACR,gBAAgB,CAAC;QAC5D,IAAI,CAACO,MAAM,EAAE;UACX,MAAM,IAAID,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAJ,QAAQ,CAAC;UAAEjB,OAAO;UAAEsB;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACR,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEhB,OAAO,EAAEgB,KAAK,EAAEhB,OAAO,IAAI,IAAI;IAAEsB,MAAM,EAAEN,KAAK,EAAEM,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC","ignoreList":[]}
@@ -1,5 +1,7 @@
1
1
  /// <reference types="@webgpu/types" />
2
2
 
3
3
  export * from "./main";
4
+ export * from "./constants";
5
+ export * from "./install";
4
6
  export {};
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;;AAYA,cAAc,QAAQ;AAAC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;;AAcA,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ import { GPUBufferUsage, GPUColorWrite, GPUMapMode, GPUShaderStage, GPUTextureUsage } from "./constants";
2
+
3
+ // Globals that this function installs on the calling runtime. These are the
4
+ // native-derived flag constants re-exported from `./constants` (a single source
5
+ // of truth, matching the native `wgpu::*Usage` enums), so they are safe to set
6
+ // on any runtime.
7
+ const constants = {
8
+ GPUBufferUsage,
9
+ GPUTextureUsage,
10
+ GPUShaderStage,
11
+ GPUColorWrite,
12
+ GPUMapMode
13
+ };
14
+
15
+ /**
16
+ * Install WebGPU on the runtime that calls it.
17
+ *
18
+ * The native module installs the WebGPU flag constants (`GPUBufferUsage`,
19
+ * `GPUTextureUsage`, `GPUShaderStage`, `GPUColorWrite`, `GPUMapMode`) as globals
20
+ * on the main JS runtime, but worklet runtimes (Reanimated UI, dedicated worklet
21
+ * runtimes, Vision Camera frame processors) start without them, so referencing
22
+ * the bare global inside a worklet yields `undefined`.
23
+ *
24
+ * Call `installWebGPU()` once at the top of a worklet to make those globals
25
+ * available there, instead of importing each constant by hand:
26
+ *
27
+ * ```tsx
28
+ * import { installWebGPU } from "react-native-webgpu";
29
+ *
30
+ * const work = (device: GPUDevice) => {
31
+ * "worklet";
32
+ * installWebGPU();
33
+ * device.createBuffer({
34
+ * usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
35
+ * });
36
+ * };
37
+ * ```
38
+ *
39
+ * The constants are captured into the worklet by closure (the same way a shader
40
+ * string is), so they work on every runtime. Calling it on a runtime that
41
+ * already has the globals (e.g. the main JS runtime) is a safe no-op.
42
+ *
43
+ * This is the explicit entry point for runtime setup; for now it only installs
44
+ * the flag constants, but it is the place where other per-runtime WebGPU setup
45
+ * (e.g. `navigator.gpu`) can be wired in later.
46
+ */
47
+ export const installWebGPU = () => {
48
+ "worklet";
49
+
50
+ const g = globalThis;
51
+ for (const [key, value] of Object.entries(constants)) {
52
+ if (g[key] === undefined) {
53
+ g[key] = value;
54
+ }
55
+ }
56
+ };
57
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GPUBufferUsage","GPUColorWrite","GPUMapMode","GPUShaderStage","GPUTextureUsage","constants","installWebGPU","g","globalThis","key","value","Object","entries","undefined"],"sourceRoot":"../../src","sources":["install.ts"],"mappings":"AAAA,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;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,MAAMI,aAAa,GAAGA,CAAA,KAAM;EACjC,SAAS;;EACT,MAAMC,CAAC,GAAGC,UAAgD;EAC1D,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACP,SAAS,CAAC,EAAE;IACpD,IAAIE,CAAC,CAACE,GAAG,CAAC,KAAKI,SAAS,EAAE;MACxBN,CAAC,CAACE,GAAG,CAAC,GAAGC,KAAK;IAChB;EACF;AACF,CAAC","ignoreList":[]}
@@ -4,6 +4,7 @@ export * from "../Canvas";
4
4
  export * from "../Offscreen";
5
5
  export * from "../WebGPUViewNativeComponent";
6
6
  export * from "../hooks";
7
+ export * from "../GPUDeviceProvider";
7
8
  export { default as WebGPUModule } from "../NativeWebGPUModule";
8
9
  const _installOk = WebGPUModule.install();
9
10
  registerWebGPUForReanimated();
@@ -1 +1 @@
1
- {"version":3,"names":["registerWebGPUForReanimated","WebGPUModule","default","_installOk","install","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,aAAa;AACzD,OAAOC,YAAY,MAAM,uBAAuB;AAEhD,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AAExB,SAASC,OAAO,IAAID,YAAY,QAAQ,uBAAuB;AAE/D,MAAME,UAAU,GAAGF,YAAY,CAACG,OAAO,CAAC,CAAC;AAEzCJ,2BAA2B,CAAC,CAAC;AAE7B,IAAI,OAAOK,QAAQ,KAAK,WAAW,EAAE;EACnC,IAAI,CAACC,SAAS,EAAE;IACd;IACAA,SAAS,GAAG;MACVC,GAAG,EAAEF,QAAQ,CAACE,GAAG;MACjBC,SAAS,EAAE;IACb,CAAC;EACH,CAAC,MAAM;IACLF,SAAS,CAACC,GAAG,GAAGF,QAAQ,CAACE,GAAG;IAC5B,IAAI,OAAOD,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;MAC3C,IAAI;QACF;QACA;QACAF,SAAS,CAACE,SAAS,GAAG,cAAc;MACtC,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;EACAC,MAAM,CAACC,iBAAiB,GACtBD,MAAM,CAACC,iBAAiB,IAAIL,QAAQ,CAACK,iBAAiB,CAACC,IAAI,CAACN,QAAQ,CAAC;AACzE,CAAC,MAAM;EACLO,OAAO,CAACC,IAAI,CACV,4CAA4CV,UAAU,uCACxD,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["registerWebGPUForReanimated","WebGPUModule","default","_installOk","install","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,aAAa;AACzD,OAAOC,YAAY,MAAM,uBAAuB;AAEhD,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AACxB,cAAc,sBAAsB;AAEpC,SAASC,OAAO,IAAID,YAAY,QAAQ,uBAAuB;AAE/D,MAAME,UAAU,GAAGF,YAAY,CAACG,OAAO,CAAC,CAAC;AAEzCJ,2BAA2B,CAAC,CAAC;AAE7B,IAAI,OAAOK,QAAQ,KAAK,WAAW,EAAE;EACnC,IAAI,CAACC,SAAS,EAAE;IACd;IACAA,SAAS,GAAG;MACVC,GAAG,EAAEF,QAAQ,CAACE,GAAG;MACjBC,SAAS,EAAE;IACb,CAAC;EACH,CAAC,MAAM;IACLF,SAAS,CAACC,GAAG,GAAGF,QAAQ,CAACE,GAAG;IAC5B,IAAI,OAAOD,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;MAC3C,IAAI;QACF;QACA;QACAF,SAAS,CAACE,SAAS,GAAG,cAAc;MACtC,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;EACAC,MAAM,CAACC,iBAAiB,GACtBD,MAAM,CAACC,iBAAiB,IAAIL,QAAQ,CAACK,iBAAiB,CAACC,IAAI,CAACN,QAAQ,CAAC;AACzE,CAAC,MAAM;EACLO,OAAO,CAACC,IAAI,CACV,4CAA4CV,UAAU,uCACxD,CAAC;AACH","ignoreList":[]}
@@ -3,6 +3,7 @@ export * from "../Canvas";
3
3
  export * from "../Offscreen";
4
4
  export * from "../WebGPUViewNativeComponent";
5
5
  export * from "../hooks";
6
+ export * from "../GPUDeviceProvider";
6
7
 
7
8
  // We don't need to set all global properties on web, webgpu is already available globally
8
9
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":"AAAA,OAAO,yBAAyB;AAEhC,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;;AAExB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":"AAAA,OAAO,yBAAyB;AAEhC,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AACxB,cAAc,sBAAsB;;AAEpC","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ export const __esModule: boolean;
2
+ export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
3
+ children: any;
4
+ adapterOptions: any;
5
+ deviceDescriptor: any;
6
+ }): any;
7
+ export function useMainDevice(): any;
8
+ //# sourceMappingURL=GPUDeviceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../commonjs/GPUDeviceProvider.js"],"names":[],"mappings":";AAUA;;;;QAYC;AAED,qCAMC"}
@@ -0,0 +1,7 @@
1
+ export const __esModule: boolean;
2
+ export const GPUBufferUsage: GPUBufferUsage;
3
+ export const GPUTextureUsage: GPUTextureUsage;
4
+ export const GPUShaderStage: GPUShaderStage;
5
+ export const GPUColorWrite: GPUColorWrite;
6
+ export const GPUMapMode: GPUMapMode;
7
+ //# sourceMappingURL=constants.d.ts.map