react-native-webgpu 0.5.15 → 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 (61) hide show
  1. package/cpp/rnwgpu/api/Canvas.h +18 -0
  2. package/lib/commonjs/Canvas.js.map +1 -1
  3. package/lib/commonjs/GPUDeviceProvider.js +33 -0
  4. package/lib/commonjs/GPUDeviceProvider.js.map +1 -0
  5. package/lib/commonjs/WebPolyfillGPUModule.js +7 -1
  6. package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -1
  7. package/lib/commonjs/constants.js +20 -5
  8. package/lib/commonjs/constants.js.map +1 -1
  9. package/lib/commonjs/hooks.js +2 -26
  10. package/lib/commonjs/hooks.js.map +1 -1
  11. package/lib/commonjs/main/index.js +12 -0
  12. package/lib/commonjs/main/index.js.map +1 -1
  13. package/lib/commonjs/main/index.web.js +11 -0
  14. package/lib/commonjs/main/index.web.js.map +1 -1
  15. package/lib/module/Canvas.js.map +1 -1
  16. package/lib/module/GPUDeviceProvider.js +24 -0
  17. package/lib/module/GPUDeviceProvider.js.map +1 -0
  18. package/lib/module/WebPolyfillGPUModule.js +7 -1
  19. package/lib/module/WebPolyfillGPUModule.js.map +1 -1
  20. package/lib/module/constants.js +15 -5
  21. package/lib/module/constants.js.map +1 -1
  22. package/lib/module/hooks.js +1 -22
  23. package/lib/module/hooks.js.map +1 -1
  24. package/lib/module/main/index.js +1 -0
  25. package/lib/module/main/index.js.map +1 -1
  26. package/lib/module/main/index.web.js +1 -0
  27. package/lib/module/main/index.web.js.map +1 -1
  28. package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts +8 -0
  29. package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts.map +1 -0
  30. package/lib/typescript/lib/commonjs/constants.d.ts +5 -1
  31. package/lib/typescript/lib/commonjs/hooks.d.ts +4 -9
  32. package/lib/typescript/lib/commonjs/hooks.d.ts.map +1 -1
  33. package/lib/typescript/lib/module/GPUDeviceProvider.d.ts +8 -0
  34. package/lib/typescript/lib/module/GPUDeviceProvider.d.ts.map +1 -0
  35. package/lib/typescript/lib/module/constants.d.ts.map +1 -1
  36. package/lib/typescript/lib/module/hooks.d.ts +2 -9
  37. package/lib/typescript/lib/module/hooks.d.ts.map +1 -1
  38. package/lib/typescript/lib/module/main/index.d.ts +1 -0
  39. package/lib/typescript/lib/module/main/index.web.d.ts +1 -0
  40. package/lib/typescript/src/Canvas.d.ts +5 -0
  41. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  42. package/lib/typescript/src/GPUDeviceProvider.d.ts +15 -0
  43. package/lib/typescript/src/GPUDeviceProvider.d.ts.map +1 -0
  44. package/lib/typescript/src/constants.d.ts.map +1 -1
  45. package/lib/typescript/src/hooks.d.ts +2 -17
  46. package/lib/typescript/src/hooks.d.ts.map +1 -1
  47. package/lib/typescript/src/main/index.d.ts +1 -0
  48. package/lib/typescript/src/main/index.d.ts.map +1 -1
  49. package/lib/typescript/src/main/index.web.d.ts +1 -0
  50. package/lib/typescript/src/main/index.web.d.ts.map +1 -1
  51. package/lib/typescript/src/types.d.ts +5 -0
  52. package/lib/typescript/src/types.d.ts.map +1 -1
  53. package/package.json +12 -3
  54. package/src/Canvas.tsx +7 -0
  55. package/src/GPUDeviceProvider.tsx +39 -0
  56. package/src/WebPolyfillGPUModule.ts +6 -0
  57. package/src/constants.ts +5 -5
  58. package/src/hooks.tsx +3 -41
  59. package/src/main/index.tsx +1 -0
  60. package/src/main/index.web.tsx +1 -0
  61. package/src/types.ts +7 -0
@@ -36,6 +36,15 @@ public:
36
36
 
37
37
  void *getSurface() { return _surface; }
38
38
 
39
+ // No-op DOM-compatibility stubs so that web renderers (Three.js,
40
+ // react-three-fiber) can treat the canvas like an HTMLCanvasElement without
41
+ // needing a JS wrapper. Extra JS arguments are ignored.
42
+ void addEventListener() {}
43
+ void removeEventListener() {}
44
+ void dispatchEvent() {}
45
+ void setPointerCapture() {}
46
+ void releasePointerCapture() {}
47
+
39
48
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
40
49
  installGetter(runtime, prototype, "surface", &Canvas::getSurface);
41
50
  installGetterSetter(runtime, prototype, "width", &Canvas::getWidth,
@@ -44,6 +53,15 @@ public:
44
53
  &Canvas::setHeight);
45
54
  installGetter(runtime, prototype, "clientWidth", &Canvas::getClientWidth);
46
55
  installGetter(runtime, prototype, "clientHeight", &Canvas::getClientHeight);
56
+ installMethod(runtime, prototype, "addEventListener",
57
+ &Canvas::addEventListener);
58
+ installMethod(runtime, prototype, "removeEventListener",
59
+ &Canvas::removeEventListener);
60
+ installMethod(runtime, prototype, "dispatchEvent", &Canvas::dispatchEvent);
61
+ installMethod(runtime, prototype, "setPointerCapture",
62
+ &Canvas::setPointerCapture);
63
+ installMethod(runtime, prototype, "releasePointerCapture",
64
+ &Canvas::releasePointerCapture);
47
65
  }
48
66
 
49
67
  private:
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","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","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","View","collapsable","style","flex","exports"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useMainDevice = exports.GPUDeviceProvider = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _hooks = require("./hooks");
9
+ 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); }
10
+ const DeviceContext = /*#__PURE__*/(0, _react.createContext)(null);
11
+ const GPUDeviceProvider = ({
12
+ children,
13
+ adapterOptions,
14
+ deviceDescriptor
15
+ }) => {
16
+ const state = (0, _hooks.useDevice)(adapterOptions, deviceDescriptor);
17
+ if (!state.device) {
18
+ return null;
19
+ }
20
+ return /*#__PURE__*/_react.default.createElement(DeviceContext.Provider, {
21
+ value: state
22
+ }, children);
23
+ };
24
+ exports.GPUDeviceProvider = GPUDeviceProvider;
25
+ const useMainDevice = () => {
26
+ const ctx = (0, _react.useContext)(DeviceContext);
27
+ if (!ctx) {
28
+ throw new Error("No DeviceContext found.");
29
+ }
30
+ return ctx;
31
+ };
32
+ exports.useMainDevice = useMainDevice;
33
+ //# sourceMappingURL=GPUDeviceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","exports","useMainDevice","ctx","useContext","Error"],"sourceRoot":"../../src","sources":["GPUDeviceProvider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAAoC,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAOpC,MAAMkB,aAAa,gBAAG,IAAAC,oBAAa,EAA4B,IAAI,CAAC;AAQ7D,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAG,IAAAC,gBAAS,EAACH,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACE/B,MAAA,CAAAc,OAAA,CAAAkB,aAAA,CAACT,aAAa,CAACU,QAAQ;IAACC,KAAK,EAAEL;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAACS,OAAA,CAAAV,iBAAA,GAAAA,iBAAA;AAEK,MAAMW,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACf,aAAa,CAAC;EACrC,IAAI,CAACc,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOF,GAAG;AACZ,CAAC;AAACF,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -13,7 +13,13 @@ function getNativeSurface(contextId) {
13
13
  height,
14
14
  width,
15
15
  clientHeight: height,
16
- clientWidth: width
16
+ clientWidth: width,
17
+ // On web the real DOM canvas handles events; delegate to it.
18
+ addEventListener: canvas.addEventListener.bind(canvas),
19
+ removeEventListener: canvas.removeEventListener.bind(canvas),
20
+ dispatchEvent: canvas.dispatchEvent.bind(canvas),
21
+ setPointerCapture: canvas.setPointerCapture.bind(canvas),
22
+ releasePointerCapture: canvas.releasePointerCapture.bind(canvas)
17
23
  };
18
24
  }
19
25
  function makeWebGPUCanvasContext(contextId, width, height) {
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","fabric","getNativeSurface","contextId","canvas","document","getElementById","contextIdToId","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEK,MAAM;IAAEC;EAAM,CAAC,GAAGL,MAAM,CAACM,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACT,SAAS,CAAC;IAC1BK,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL;EACf,CAAC;AACH;AAEA,SAASM,uBAAuBA,CAC9BZ,SAAiB,EACjBM,KAAa,EACbD,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAMa,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,IACEhB,MAAM,CAACkB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3Cf,MAAM,CAACkB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAjB,MAAM,CAACmB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCf,MAAM,CAACmB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGpB,MAAM,CAACqB,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;EAChB3B,gBAAgB;EAChB4B,uBAAuB,EAAEf,uBAAuB;EAChDd;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","fabric","getNativeSurface","contextId","canvas","document","getElementById","contextIdToId","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,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEK,MAAM;IAAEC;EAAM,CAAC,GAAGL,MAAM,CAACM,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACT,SAAS,CAAC;IAC1BK,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL,KAAK;IAClB;IACAM,gBAAgB,EAAEX,MAAM,CAACW,gBAAgB,CAACC,IAAI,CAACZ,MAAM,CAAC;IACtDa,mBAAmB,EAAEb,MAAM,CAACa,mBAAmB,CAACD,IAAI,CAACZ,MAAM,CAAC;IAC5Dc,aAAa,EAAEd,MAAM,CAACc,aAAa,CAACF,IAAI,CAACZ,MAAM,CAAC;IAChDe,iBAAiB,EAAEf,MAAM,CAACe,iBAAiB,CAACH,IAAI,CAACZ,MAAM,CAAC;IACxDgB,qBAAqB,EAAEhB,MAAM,CAACgB,qBAAqB,CAACJ,IAAI,CAACZ,MAAM;EACjE,CAAC;AACH;AAEA,SAASiB,uBAAuBA,CAC9BlB,SAAiB,EACjBM,KAAa,EACbD,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAMmB,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,IACEtB,MAAM,CAACwB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CrB,MAAM,CAACwB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAvB,MAAM,CAACyB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCrB,MAAM,CAACyB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAG1B,MAAM,CAAC2B,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;EAChBjC,gBAAgB;EAChBkC,uBAAuB,EAAEf,uBAAuB;EAChDpB;AACF,CAAC","ignoreList":[]}
@@ -32,9 +32,24 @@ exports.GPUTextureUsage = exports.GPUShaderStage = exports.GPUMapMode = exports.
32
32
  // re-exports `./main` before `./constants`, and `./main` installs the native
33
33
  // module synchronously, so the globals always exist by the time this runs.
34
34
 
35
- const GPUBufferUsage = exports.GPUBufferUsage = globalThis.GPUBufferUsage;
36
- const GPUTextureUsage = exports.GPUTextureUsage = globalThis.GPUTextureUsage;
37
- const GPUShaderStage = exports.GPUShaderStage = globalThis.GPUShaderStage;
38
- const GPUColorWrite = exports.GPUColorWrite = globalThis.GPUColorWrite;
39
- const GPUMapMode = exports.GPUMapMode = globalThis.GPUMapMode;
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;
40
55
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GPUBufferUsage","exports","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;;AAEO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGE,UAAU,CAACF,cAAc;AAEhD,MAAMG,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAGD,UAAU,CAACC,eAAe;AAElD,MAAMC,cAAc,GAAAH,OAAA,CAAAG,cAAA,GAAGF,UAAU,CAACE,cAAc;AAEhD,MAAMC,aAAa,GAAAJ,OAAA,CAAAI,aAAA,GAAGH,UAAU,CAACG,aAAa;AAE9C,MAAMC,UAAU,GAAAL,OAAA,CAAAK,UAAA,GAAGJ,UAAU,CAACI,UAAU","ignoreList":[]}
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":[]}
@@ -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;AAoCA,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":[]}
@@ -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) {
@@ -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;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;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":[]}
@@ -26,9 +26,19 @@
26
26
  // re-exports `./main` before `./constants`, and `./main` installs the native
27
27
  // module synchronously, so the globals always exist by the time this runs.
28
28
 
29
- export const GPUBufferUsage = globalThis.GPUBufferUsage;
30
- export const GPUTextureUsage = globalThis.GPUTextureUsage;
31
- export const GPUShaderStage = globalThis.GPUShaderStage;
32
- export const GPUColorWrite = globalThis.GPUColorWrite;
33
- export const GPUMapMode = globalThis.GPUMapMode;
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;
34
44
  //# sourceMappingURL=constants.js.map
@@ -1 +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,MAAMA,cAAc,GAAGC,UAAU,CAACD,cAAc;AAEvD,OAAO,MAAME,eAAe,GAAGD,UAAU,CAACC,eAAe;AAEzD,OAAO,MAAMC,cAAc,GAAGF,UAAU,CAACE,cAAc;AAEvD,OAAO,MAAMC,aAAa,GAAGH,UAAU,CAACG,aAAa;AAErD,OAAO,MAAMC,UAAU,GAAGJ,UAAU,CAACI,UAAU","ignoreList":[]}
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":[]}
@@ -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"}
@@ -1,3 +1,7 @@
1
1
  export const __esModule: boolean;
2
- export { GPUBufferUsage, GPUTextureUsage, GPUShaderStage, GPUColorWrite, GPUMapMode };
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;
3
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1,18 +1,13 @@
1
1
  export const __esModule: boolean;
2
2
  export function warnIfNotHardwareAccelerated(adapter: any): void;
3
- export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
4
- children: any;
5
- adapterOptions: any;
6
- deviceDescriptor: any;
7
- }): any;
8
3
  export function useSurface(): {
9
- ref: any;
10
- surface: any;
4
+ ref: _react.MutableRefObject<null>;
5
+ surface: null;
11
6
  };
12
- export function useMainDevice(): any;
13
- export function useCanvasRef(): any;
7
+ export function useCanvasRef(): _react.MutableRefObject<null>;
14
8
  export function useDevice(adapterOptions: any, deviceDescriptor: any): {
15
9
  adapter: any;
16
10
  device: any;
17
11
  };
12
+ import _react = require("react");
18
13
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAQA,iEAMC;AAGD;;;;QAYC;AAED;;;EAWC;AAED,qCAMC;AAED,oCAAmD;AAEnD;;;EA0BC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAOA,iEAMC;AAED;;;EAWC;AAED,8DAAmD;AAEnD;;;EA0BC"}
@@ -0,0 +1,8 @@
1
+ export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
2
+ children: any;
3
+ adapterOptions: any;
4
+ deviceDescriptor: any;
5
+ }): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
6
+ export function useMainDevice(): never;
7
+ import React from "react";
8
+ //# sourceMappingURL=GPUDeviceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../module/GPUDeviceProvider.js"],"names":[],"mappings":"AAGO;;;;yGAYN;AACM,uCAMN;kBAtBgD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../module/constants.js"],"names":[],"mappings":"AA4BA,4CAAwD;AACxD,8CAA0D;AAC1D,4CAAwD;AACxD,0CAAsD;AACtD,oCAAgD"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../module/constants.js"],"names":[],"mappings":""}
@@ -1,18 +1,11 @@
1
1
  export function warnIfNotHardwareAccelerated(adapter: any): void;
2
- export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
3
- children: any;
4
- adapterOptions: any;
5
- deviceDescriptor: any;
6
- }): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
7
2
  export function useSurface(): {
8
- ref: React.MutableRefObject<null>;
3
+ ref: import("react").MutableRefObject<null>;
9
4
  surface: null;
10
5
  };
11
- export function useMainDevice(): never;
12
- export function useCanvasRef(): React.MutableRefObject<null>;
6
+ export function useCanvasRef(): import("react").MutableRefObject<null>;
13
7
  export function useDevice(adapterOptions: any, deviceDescriptor: any): {
14
8
  adapter: any;
15
9
  device: any;
16
10
  };
17
- import React from "react";
18
11
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO,iEAMN;AAEM;;;;yGAYN;AACM;;;EAWN;AACM,uCAMN;AACM,6DAAuC;AACvC;;;EA0BN;kBApE8F,OAAO"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO,iEAMN;AACM;;;EAWN;AACM,uEAAuC;AACvC;;;EA0BN"}
@@ -2,5 +2,6 @@ export * from "../Canvas";
2
2
  export * from "../Offscreen";
3
3
  export * from "../WebGPUViewNativeComponent";
4
4
  export * from "../hooks";
5
+ export * from "../GPUDeviceProvider";
5
6
  export { default as WebGPUModule } from "../NativeWebGPUModule";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,5 @@ export * from "../Canvas";
2
2
  export * from "../Offscreen";
3
3
  export * from "../WebGPUViewNativeComponent";
4
4
  export * from "../hooks";
5
+ export * from "../GPUDeviceProvider";
5
6
  //# sourceMappingURL=index.web.d.ts.map
@@ -7,6 +7,11 @@ export interface NativeCanvas {
7
7
  height: number;
8
8
  clientWidth: number;
9
9
  clientHeight: number;
10
+ addEventListener(type: string, listener: EventListener): void;
11
+ removeEventListener(type: string, listener: EventListener): void;
12
+ dispatchEvent(event: Event): void;
13
+ setPointerCapture(pointerId: number): void;
14
+ releasePointerCapture(pointerId: number): void;
10
15
  }
11
16
  export type RNCanvasContext = GPUCanvasContext & {
12
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU9C,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAED,UAAU,WAAY,SAAQ,SAAS;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,GAAI,gCAAgC,WAAW,sBAuCjE,CAAC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU9C,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAGrB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAED,UAAU,WAAY,SAAQ,SAAS;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,GAAI,gCAAgC,WAAW,sBAuCjE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import type { ReactNode } from "react";
3
+ interface DeviceContextValue {
4
+ device: GPUDevice | null;
5
+ adapter: GPUAdapter | null;
6
+ }
7
+ interface DeviceProviderProps {
8
+ children?: ReactNode | ReactNode[];
9
+ adapterOptions?: GPURequestAdapterOptions;
10
+ deviceDescriptor?: GPUDeviceDescriptor;
11
+ }
12
+ export declare const GPUDeviceProvider: ({ children, adapterOptions, deviceDescriptor, }: DeviceProviderProps) => React.JSX.Element | null;
13
+ export declare const useMainDevice: () => DeviceContextValue;
14
+ export {};
15
+ //# sourceMappingURL=GPUDeviceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../src/GPUDeviceProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAID,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACxC;AAED,eAAO,MAAM,iBAAiB,GAAI,iDAI/B,mBAAmB,6BAQrB,CAAC;AAEF,eAAO,MAAM,aAAa,0BAMzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,cAAc,gBAA4B,CAAC;AAExD,eAAO,MAAM,eAAe,iBAA6B,CAAC;AAE1D,eAAO,MAAM,cAAc,gBAA4B,CAAC;AAExD,eAAO,MAAM,aAAa,eAA2B,CAAC;AAEtD,eAAO,MAAM,UAAU,YAAwB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAQ,cAAc,gBAAe,CAAC;AAE7C,eAAO,MAAQ,eAAe,iBAAe,CAAC;AAE9C,eAAO,MAAQ,cAAc,gBAAe,CAAC;AAE7C,eAAO,MAAQ,aAAa,eAAe,CAAC;AAE5C,eAAO,MAAQ,UAAU,YAAe,CAAC"}
@@ -1,27 +1,12 @@
1
- import React from "react";
2
- import type { ReactNode } from "react";
3
1
  import type { CanvasRef, NativeCanvas } from "./Canvas";
4
2
  export declare const warnIfNotHardwareAccelerated: (adapter: GPUAdapter) => void;
5
- interface DeviceContext {
6
- device: GPUDevice | null;
7
- adapter: GPUAdapter | null;
8
- }
9
- declare const DeviceContext: React.Context<DeviceContext | null>;
10
- interface DeviceProviderProps {
11
- children?: ReactNode | ReactNode[];
12
- adapterOptions?: GPURequestAdapterOptions;
13
- deviceDescriptor?: GPUDeviceDescriptor;
14
- }
15
- export declare const GPUDeviceProvider: ({ children, adapterOptions, deviceDescriptor, }: DeviceProviderProps) => React.JSX.Element | null;
16
3
  export declare const useSurface: () => {
17
- ref: React.RefObject<CanvasRef>;
4
+ ref: import("react").RefObject<CanvasRef>;
18
5
  surface: NativeCanvas | null;
19
6
  };
20
- export declare const useMainDevice: () => DeviceContext;
21
- export declare const useCanvasRef: () => React.RefObject<CanvasRef>;
7
+ export declare const useCanvasRef: () => import("react").RefObject<CanvasRef>;
22
8
  export declare const useDevice: (adapterOptions?: GPURequestAdapterOptions, deviceDescriptor?: GPUDeviceDescriptor) => {
23
9
  adapter: GPUAdapter | null;
24
10
  device: GPUDevice | null;
25
11
  };
26
- export {};
27
12
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,4BAA4B,GAAI,SAAS,UAAU,SAQ/D,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAED,QAAA,MAAM,aAAa,qCAA4C,CAAC;AAEhE,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACxC;AAED,eAAO,MAAM,iBAAiB,GAAI,iDAI/B,mBAAmB,6BAQrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAQtB,CAAC;AAEF,eAAO,MAAM,aAAa,qBAMzB,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAgC,CAAC;AAE1D,eAAO,MAAM,SAAS,GACpB,iBAAiB,wBAAwB,EACzC,mBAAmB,mBAAmB;;;CAqBvC,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,4BAA4B,GAAI,SAAS,UAAU,SAQ/D,CAAC;AAOF,eAAO,MAAM,UAAU;;;CAQtB,CAAC;AAEF,eAAO,MAAM,YAAY,4CAAgC,CAAC;AAE1D,eAAO,MAAM,SAAS,GACpB,iBAAiB,wBAAwB,EACzC,mBAAmB,mBAAmB;;;CAqBvC,CAAC"}
@@ -2,5 +2,6 @@ export * from "../Canvas";
2
2
  export * from "../Offscreen";
3
3
  export * from "../WebGPUViewNativeComponent";
4
4
  export * from "../hooks";
5
+ export * from "../GPUDeviceProvider";
5
6
  export { default as WebGPUModule } from "../NativeWebGPUModule";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/index.tsx"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/index.tsx"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -3,4 +3,5 @@ export * from "../Canvas";
3
3
  export * from "../Offscreen";
4
4
  export * from "../WebGPUViewNativeComponent";
5
5
  export * from "../hooks";
6
+ export * from "../GPUDeviceProvider";
6
7
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/main/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/main/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC"}
@@ -5,6 +5,11 @@ export interface NativeCanvas {
5
5
  height: number;
6
6
  clientWidth: number;
7
7
  clientHeight: number;
8
+ addEventListener(type: string, listener: EventListener): void;
9
+ removeEventListener(type: string, listener: EventListener): void;
10
+ dispatchEvent(event: Event): void;
11
+ setPointerCapture(pointerId: number): void;
12
+ releasePointerCapture(pointerId: number): void;
8
13
  }
9
14
  export type RNCanvasContext = GPUCanvasContext & {
10
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAKD,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,MAAM,CAAC;AAkBtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;CACjB;AAKD,MAAM,WAAW,WAAW;IAC1B,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC3C,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IAKvC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,MAAM,WAAW,gCAAgC;IAM/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,SAAS,GACT,wBAAwB,CAAC;AAE7B,MAAM,WAAW,wBAAwB;IAGvC,IAAI,EAAE,kBAAkB,CAAC;IAGzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,kBAAkB,CAAC;IAIzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,IAAI,wBAAwB,CAAC;CACpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAQD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAMD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,UAAU,CAAC,EAAE,oBAAoB,GAAG,UAAU,CAAC;IAM7D,WAAW,CACT,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAC7B,IAAI,CAAC;IAGR,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,oCAAoC,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-webgpu",
3
- "version": "0.5.15",
3
+ "version": "0.5.16",
4
4
  "description": "React Native WebGPU",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -27,6 +27,7 @@
27
27
  "lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache --fix",
28
28
  "tsc": "tsc --noEmit",
29
29
  "build": "bob build",
30
+ "release": "semantic-release",
30
31
  "build-dawn": "tsx scripts/build/dawn.ts",
31
32
  "clean-dawn": "rimraf ./libs && rimraf ../../externals/dawn/out",
32
33
  "clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common",
@@ -51,11 +52,17 @@
51
52
  "bugs": {
52
53
  "url": "https://github.com/wcandillon/react-native-webgpu/issues"
53
54
  },
54
- "homepage": "https://github.com/wcandillon/react-native-webgpu#readme",
55
+ "homepage": "https://wcandillon.github.io/react-native-webgpu/",
55
56
  "publishConfig": {
56
- "registry": "https://registry.npmjs.org/"
57
+ "registry": "https://registry.npmjs.org/",
58
+ "access": "public",
59
+ "provenance": true
57
60
  },
58
61
  "devDependencies": {
62
+ "@semantic-release/commit-analyzer": "^13.0.0",
63
+ "@semantic-release/exec": "^7.0.3",
64
+ "@semantic-release/github": "^10.3.3",
65
+ "@semantic-release/release-notes-generator": "^14.0.1",
59
66
  "@types/jest": "^29.5.12",
60
67
  "@types/lodash": "^4.17.5",
61
68
  "@types/node": "^20.14.7",
@@ -87,6 +94,8 @@
87
94
  "react-native-worklets": "0.8.3",
88
95
  "rimraf": "^5.0.7",
89
96
  "seedrandom": "^3.0.5",
97
+ "semantic-release": "^24.1.0",
98
+ "semantic-release-yarn": "^3.0.2",
90
99
  "teapot": "^1.0.0",
91
100
  "ts-morph": "^22.0.0",
92
101
  "tsx": "^4.20.5",
package/src/Canvas.tsx CHANGED
@@ -17,6 +17,13 @@ export interface NativeCanvas {
17
17
  height: number;
18
18
  clientWidth: number;
19
19
  clientHeight: number;
20
+ // No-op DOM-compatibility stubs so web renderers (Three.js,
21
+ // react-three-fiber) can treat the canvas like an HTMLCanvasElement.
22
+ addEventListener(type: string, listener: EventListener): void;
23
+ removeEventListener(type: string, listener: EventListener): void;
24
+ dispatchEvent(event: Event): void;
25
+ setPointerCapture(pointerId: number): void;
26
+ releasePointerCapture(pointerId: number): void;
20
27
  }
21
28
 
22
29
  export type RNCanvasContext = GPUCanvasContext & {
@@ -0,0 +1,39 @@
1
+ import React, { createContext, useContext } from "react";
2
+ import type { ReactNode } from "react";
3
+
4
+ import { useDevice } from "./hooks";
5
+
6
+ interface DeviceContextValue {
7
+ device: GPUDevice | null;
8
+ adapter: GPUAdapter | null;
9
+ }
10
+
11
+ const DeviceContext = createContext<DeviceContextValue | null>(null);
12
+
13
+ interface DeviceProviderProps {
14
+ children?: ReactNode | ReactNode[];
15
+ adapterOptions?: GPURequestAdapterOptions;
16
+ deviceDescriptor?: GPUDeviceDescriptor;
17
+ }
18
+
19
+ export const GPUDeviceProvider = ({
20
+ children,
21
+ adapterOptions,
22
+ deviceDescriptor,
23
+ }: DeviceProviderProps) => {
24
+ const state = useDevice(adapterOptions, deviceDescriptor);
25
+ if (!state.device) {
26
+ return null;
27
+ }
28
+ return (
29
+ <DeviceContext.Provider value={state}>{children}</DeviceContext.Provider>
30
+ );
31
+ };
32
+
33
+ export const useMainDevice = () => {
34
+ const ctx = useContext(DeviceContext);
35
+ if (!ctx) {
36
+ throw new Error("No DeviceContext found.");
37
+ }
38
+ return ctx;
39
+ };
@@ -15,6 +15,12 @@ function getNativeSurface(contextId: number) {
15
15
  width,
16
16
  clientHeight: height,
17
17
  clientWidth: width,
18
+ // On web the real DOM canvas handles events; delegate to it.
19
+ addEventListener: canvas.addEventListener.bind(canvas),
20
+ removeEventListener: canvas.removeEventListener.bind(canvas),
21
+ dispatchEvent: canvas.dispatchEvent.bind(canvas),
22
+ setPointerCapture: canvas.setPointerCapture.bind(canvas),
23
+ releasePointerCapture: canvas.releasePointerCapture.bind(canvas),
18
24
  };
19
25
  }
20
26
 
package/src/constants.ts CHANGED
@@ -26,12 +26,12 @@
26
26
  // re-exports `./main` before `./constants`, and `./main` installs the native
27
27
  // module synchronously, so the globals always exist by the time this runs.
28
28
 
29
- export const GPUBufferUsage = globalThis.GPUBufferUsage;
29
+ export const { GPUBufferUsage } = globalThis;
30
30
 
31
- export const GPUTextureUsage = globalThis.GPUTextureUsage;
31
+ export const { GPUTextureUsage } = globalThis;
32
32
 
33
- export const GPUShaderStage = globalThis.GPUShaderStage;
33
+ export const { GPUShaderStage } = globalThis;
34
34
 
35
- export const GPUColorWrite = globalThis.GPUColorWrite;
35
+ export const { GPUColorWrite } = globalThis;
36
36
 
37
- export const GPUMapMode = globalThis.GPUMapMode;
37
+ export const { GPUMapMode } = globalThis;
package/src/hooks.tsx CHANGED
@@ -1,12 +1,4 @@
1
- import React, {
2
- createContext,
3
- useContext,
4
- useEffect,
5
- useLayoutEffect,
6
- useRef,
7
- useState,
8
- } from "react";
9
- import type { ReactNode } from "react";
1
+ import { useEffect, useLayoutEffect, useRef, useState } from "react";
10
2
 
11
3
  import type { CanvasRef, NativeCanvas } from "./Canvas";
12
4
 
@@ -20,33 +12,11 @@ export const warnIfNotHardwareAccelerated = (adapter: GPUAdapter) => {
20
12
  }
21
13
  };
22
14
 
23
- interface DeviceContext {
15
+ interface DeviceState {
24
16
  device: GPUDevice | null;
25
17
  adapter: GPUAdapter | null;
26
18
  }
27
19
 
28
- const DeviceContext = createContext<DeviceContext | null>(null);
29
-
30
- interface DeviceProviderProps {
31
- children?: ReactNode | ReactNode[];
32
- adapterOptions?: GPURequestAdapterOptions;
33
- deviceDescriptor?: GPUDeviceDescriptor;
34
- }
35
-
36
- export const GPUDeviceProvider = ({
37
- children,
38
- adapterOptions,
39
- deviceDescriptor,
40
- }: DeviceProviderProps) => {
41
- const state = useDevice(adapterOptions, deviceDescriptor);
42
- if (!state.device) {
43
- return null;
44
- }
45
- return (
46
- <DeviceContext.Provider value={state}>{children}</DeviceContext.Provider>
47
- );
48
- };
49
-
50
20
  export const useSurface = () => {
51
21
  const ref = useRef<CanvasRef>(null);
52
22
  const [surface, setSurface] = useState<NativeCanvas | null>(null);
@@ -57,21 +27,13 @@ export const useSurface = () => {
57
27
  return { ref, surface };
58
28
  };
59
29
 
60
- export const useMainDevice = () => {
61
- const ctx = useContext(DeviceContext);
62
- if (!ctx) {
63
- throw new Error("No DeviceContext found.");
64
- }
65
- return ctx;
66
- };
67
-
68
30
  export const useCanvasRef = () => useRef<CanvasRef>(null);
69
31
 
70
32
  export const useDevice = (
71
33
  adapterOptions?: GPURequestAdapterOptions,
72
34
  deviceDescriptor?: GPUDeviceDescriptor,
73
35
  ) => {
74
- const [state, setState] = useState<DeviceContext | null>(null);
36
+ const [state, setState] = useState<DeviceState | null>(null);
75
37
  useEffect(() => {
76
38
  (async () => {
77
39
  if (!state) {
@@ -5,6 +5,7 @@ export * from "../Canvas";
5
5
  export * from "../Offscreen";
6
6
  export * from "../WebGPUViewNativeComponent";
7
7
  export * from "../hooks";
8
+ export * from "../GPUDeviceProvider";
8
9
 
9
10
  export { default as WebGPUModule } from "../NativeWebGPUModule";
10
11
 
@@ -4,5 +4,6 @@ export * from "../Canvas";
4
4
  export * from "../Offscreen";
5
5
  export * from "../WebGPUViewNativeComponent";
6
6
  export * from "../hooks";
7
+ export * from "../GPUDeviceProvider";
7
8
 
8
9
  // We don't need to set all global properties on web, webgpu is already available globally
package/src/types.ts CHANGED
@@ -6,6 +6,13 @@ export interface NativeCanvas {
6
6
  height: number;
7
7
  clientWidth: number;
8
8
  clientHeight: number;
9
+ // No-op DOM-compatibility stubs so web renderers (Three.js,
10
+ // react-three-fiber) can treat the canvas like an HTMLCanvasElement.
11
+ addEventListener(type: string, listener: EventListener): void;
12
+ removeEventListener(type: string, listener: EventListener): void;
13
+ dispatchEvent(event: Event): void;
14
+ setPointerCapture(pointerId: number): void;
15
+ releasePointerCapture(pointerId: number): void;
9
16
  }
10
17
 
11
18
  export type RNCanvasContext = GPUCanvasContext & {