react-native-wgpu 0.1.7 → 0.1.9

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 (93) hide show
  1. package/android/cpp/cpp-adapter.cpp +13 -35
  2. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -37
  3. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -1
  4. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +1 -1
  5. package/cpp/rnwgpu/RNWebGPUManager.h +2 -2
  6. package/cpp/rnwgpu/SurfaceRegistry.h +148 -13
  7. package/cpp/rnwgpu/api/Canvas.h +15 -15
  8. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +81 -23
  9. package/cpp/rnwgpu/api/GPUCanvasContext.h +16 -7
  10. package/cpp/rnwgpu/api/GPUDevice.cpp +6 -3
  11. package/cpp/rnwgpu/api/OffscreenSurface.h +49 -0
  12. package/cpp/rnwgpu/api/RNWebGPU.h +21 -10
  13. package/ios/MetalView.mm +11 -0
  14. package/ios/SurfaceUtils.h +2 -0
  15. package/ios/SurfaceUtils.mm +16 -4
  16. package/ios/WebGPUModule.mm +8 -25
  17. package/ios/WebGPUView.mm +9 -6
  18. package/lib/commonjs/Canvas.js +79 -18
  19. package/lib/commonjs/Canvas.js.map +1 -1
  20. package/lib/commonjs/Offscreen.js +124 -0
  21. package/lib/commonjs/Offscreen.js.map +1 -0
  22. package/lib/commonjs/index.js +12 -0
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/commonjs/utils.js +26 -15
  25. package/lib/commonjs/utils.js.map +1 -1
  26. package/lib/module/Canvas.js +80 -19
  27. package/lib/module/Canvas.js.map +1 -1
  28. package/lib/module/Offscreen.js +117 -0
  29. package/lib/module/Offscreen.js.map +1 -0
  30. package/lib/module/index.js +1 -0
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/utils.js +25 -15
  33. package/lib/module/utils.js.map +1 -1
  34. package/lib/typescript/lib/commonjs/Offscreen.d.ts +32 -0
  35. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +1 -0
  36. package/lib/typescript/lib/commonjs/utils.d.ts +5 -1
  37. package/lib/typescript/lib/commonjs/utils.d.ts.map +1 -1
  38. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  39. package/lib/typescript/lib/module/Offscreen.d.ts +31 -0
  40. package/lib/typescript/lib/module/Offscreen.d.ts.map +1 -0
  41. package/lib/typescript/lib/module/index.d.ts +1 -0
  42. package/lib/typescript/lib/module/utils.d.ts +5 -1
  43. package/lib/typescript/lib/module/utils.d.ts.map +1 -1
  44. package/lib/typescript/src/Canvas.d.ts +6 -4
  45. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  46. package/lib/typescript/src/Offscreen.d.ts +41 -0
  47. package/lib/typescript/src/Offscreen.d.ts.map +1 -0
  48. package/lib/typescript/src/__tests__/setup.d.ts +5 -4
  49. package/lib/typescript/src/__tests__/setup.d.ts.map +1 -1
  50. package/lib/typescript/src/index.d.ts +1 -0
  51. package/lib/typescript/src/index.d.ts.map +1 -1
  52. package/lib/typescript/src/utils.d.ts +6 -3
  53. package/lib/typescript/src/utils.d.ts.map +1 -1
  54. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  55. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  56. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  57. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  58. package/libs/apple/arm64_iphoneos/libwebgpu_dawn.a +0 -0
  59. package/libs/apple/arm64_iphonesimulator/libwebgpu_dawn.a +0 -0
  60. package/libs/apple/arm64_xros/libwebgpu_dawn.a +0 -0
  61. package/libs/apple/arm64_xrsimulator/libwebgpu_dawn.a +0 -0
  62. package/libs/apple/{libwebgpu_dawn.a → iphonesimulator/libwebgpu_dawn.a} +0 -0
  63. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +45 -0
  64. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  65. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  66. package/libs/apple/{libwebgpu_dawn_macosx.xcframework → libwebgpu_dawn.xcframework}/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  67. package/libs/apple/{libwebgpu_dawn_visionos.xcframework → libwebgpu_dawn.xcframework}/xros-arm64/libwebgpu_dawn.a +0 -0
  68. package/libs/apple/{x86_64_xrsimulator → libwebgpu_dawn.xcframework/xros-arm64-simulator}/libwebgpu_dawn.a +0 -0
  69. package/libs/apple/universal_macosx/libwebgpu_dawn.a +0 -0
  70. package/libs/apple/x86_64_iphonesimulator/libwebgpu_dawn.a +0 -0
  71. package/package.json +1 -1
  72. package/react-native-wgpu.podspec +2 -8
  73. package/src/Canvas.tsx +101 -37
  74. package/src/Offscreen.ts +164 -0
  75. package/src/__tests__/ExternalTexture.spec.ts +4 -4
  76. package/src/__tests__/Texture.spec.ts +8 -2
  77. package/src/__tests__/demos/ABuffer.spec.ts +17 -12
  78. package/src/__tests__/demos/Blur.spec.ts +2 -1
  79. package/src/__tests__/demos/Cube.spec.ts +16 -12
  80. package/src/__tests__/demos/FractalCube.spec.ts +6 -5
  81. package/src/__tests__/demos/OcclusionQuery.spec.ts +3 -3
  82. package/src/__tests__/demos/RenderBundles.spec.ts +4 -3
  83. package/src/__tests__/demos/Triangle.spec.ts +27 -9
  84. package/src/__tests__/setup.ts +25 -10
  85. package/src/index.tsx +1 -0
  86. package/src/utils.ts +28 -18
  87. package/lib/typescript/src/__tests__/components/DrawingContext.d.ts +0 -12
  88. package/lib/typescript/src/__tests__/components/DrawingContext.d.ts.map +0 -1
  89. package/libs/apple/libwebgpu_dawn_macosx.xcframework/Info.plist +0 -28
  90. package/libs/apple/libwebgpu_dawn_visionos.a +0 -0
  91. package/libs/apple/libwebgpu_dawn_visionos.xcframework/Info.plist +0 -44
  92. package/libs/apple/libwebgpu_dawn_visionos.xcframework/xros-arm64_x86_64-simulator/libwebgpu_dawn_visionos.a +0 -0
  93. package/src/__tests__/components/DrawingContext.ts +0 -11
@@ -3,6 +3,7 @@
3
3
  #include <memory>
4
4
  #include <string>
5
5
 
6
+ #include "Canvas.h"
6
7
  #include "GPU.h"
7
8
  #include "GPUCanvasContext.h"
8
9
  #include "ImageBitmap.h"
@@ -29,17 +30,18 @@ public:
29
30
 
30
31
  std::shared_ptr<GPU> getGPU() { return _gpu; }
31
32
 
33
+ bool getFabric() {
34
+ #ifdef RCT_NEW_ARCH_ENABLED
35
+ return true;
36
+ #else
37
+ return false;
38
+ #endif
39
+ }
40
+
32
41
  std::shared_ptr<GPUCanvasContext>
33
- MakeWebGPUCanvasContext(std::shared_ptr<Canvas> canvas) {
34
- auto nativeSurface = canvas->getSurface();
35
- auto width = canvas->getWidth();
36
- auto height = canvas->getHeight();
37
- auto surface = _platformContext->makeSurface(
38
- _gpu->get(), reinterpret_cast<void *>(nativeSurface), width, height);
39
- if (surface == nullptr) {
40
- throw std::runtime_error("null surface");
41
- }
42
- auto ctx = std::make_shared<GPUCanvasContext>(surface, canvas);
42
+ MakeWebGPUCanvasContext(int contextId, float width, float height) {
43
+ auto ctx =
44
+ std::make_shared<GPUCanvasContext>(_gpu, contextId, width, height);
43
45
  return ctx;
44
46
  }
45
47
 
@@ -50,10 +52,19 @@ public:
50
52
  return imageBitmap;
51
53
  }
52
54
 
55
+ std::shared_ptr<Canvas> getNativeSurface(int contextId) {
56
+ auto &registry = rnwgpu::SurfaceRegistry::getInstance();
57
+ auto info = registry.getSurface(contextId);
58
+ return std::make_shared<Canvas>(info.nativeSurface, info.width,
59
+ info.height);
60
+ }
61
+
53
62
  void loadHybridMethods() override {
63
+ registerHybridGetter("fabric", &RNWebGPU::getFabric, this);
54
64
  registerHybridGetter("gpu", &RNWebGPU::getGPU, this);
55
65
  registerHybridMethod("createImageBitmap", &RNWebGPU::createImageBitmap,
56
66
  this);
67
+ registerHybridMethod("getNativeSurface", &RNWebGPU::getNativeSurface, this);
57
68
  registerHybridMethod("MakeWebGPUCanvasContext",
58
69
  &RNWebGPU::MakeWebGPUCanvasContext, this);
59
70
  }
package/ios/MetalView.mm CHANGED
@@ -24,4 +24,15 @@
24
24
  }
25
25
  }
26
26
 
27
+ - (void)willMoveToSuperview:(UIView *)newSuperview {
28
+ [super willMoveToSuperview:newSuperview];
29
+
30
+ if (newSuperview == nil) {
31
+ // The view is being removed from its superview
32
+ // Add your cleanup code here
33
+ [SurfaceUtils cleanupSurface:[_contextId intValue]];
34
+ _isConfigured = NO;
35
+ }
36
+ }
37
+
27
38
  @end
@@ -10,4 +10,6 @@
10
10
 
11
11
  + (void)updateSurface:(int)contextId size:(CGSize)size;
12
12
 
13
+ + (void)cleanupSurface:(int)contextId;
14
+
13
15
  @end
@@ -11,13 +11,25 @@
11
11
  contextId:(int)contextId {
12
12
  std::shared_ptr<rnwgpu::RNWebGPUManager> manager = [WebGPUModule getManager];
13
13
  void *nativeSurface = (__bridge void *)layer;
14
- manager->surfacesRegistry.addSurface(contextId, nativeSurface, size.width,
15
- size.height);
14
+ auto &registry = rnwgpu::SurfaceRegistry::getInstance();
15
+ registry.createSurface(contextId, nativeSurface, size.width, size.height,
16
+ manager->_platformContext);
16
17
  }
17
18
 
18
19
  + (void)updateSurface:(int)contextId size:(CGSize)size {
19
- std::shared_ptr<rnwgpu::RNWebGPUManager> manager = [WebGPUModule getManager];
20
- manager->surfacesRegistry.updateSurface(contextId, size.width, size.height);
20
+ // std::shared_ptr<rnwgpu::RNWebGPUManager> manager = [WebGPUModule
21
+ // getManager];
22
+ auto &registry = rnwgpu::SurfaceRegistry::getInstance();
23
+ auto info = registry.getSurface(contextId);
24
+ info.width = size.width;
25
+ info.height = size.height;
26
+ registry.setSize(contextId, size.width, size.height);
27
+ }
28
+
29
+ + (void)cleanupSurface:(int)contextId {
30
+ auto &registry = rnwgpu::SurfaceRegistry::getInstance();
31
+ // Remove the surface info from the registry
32
+ registry.removeSurface(contextId);
21
33
  }
22
34
 
23
35
  @end
@@ -74,31 +74,14 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) {
74
74
  return @true;
75
75
  }
76
76
 
77
- RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(createSurfaceContext
78
- : (double)contextId) {
79
- int contextIdInt = contextId;
80
- RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge;
81
- auto runtime = (jsi::Runtime *)cxxBridge.runtime;
82
- auto webGPUContextRegistry = runtime->global().getPropertyAsObject(
83
- *runtime, "__WebGPUContextRegistry");
84
- auto canvas = webgpuManager->surfacesRegistry.getSurface(contextIdInt);
85
- if (webGPUContextRegistry.hasProperty(*runtime,
86
- std::to_string(contextIdInt).c_str())) {
87
- // Context already exists, just update width/height
88
- auto prop =
89
- webGPUContextRegistry
90
- .getPropertyAsObject(*runtime, std::to_string(contextIdInt).c_str())
91
- .asHostObject<rnwgpu::Canvas>(*runtime);
92
- prop->setWidth(canvas->getWidth());
93
- prop->setHeight(canvas->getHeight());
94
- return @true;
95
- }
96
- webGPUContextRegistry.setProperty(
97
- *runtime, std::to_string(contextIdInt).c_str(),
98
- facebook::jsi::Object::createFromHostObject(*runtime, canvas));
99
-
100
- return @true;
101
- }
77
+ // RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(createSurfaceContext
78
+ // : (double)contextId) {
79
+ // int contextIdInt = contextId;
80
+ // RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge;
81
+ // auto runtime = (jsi::Runtime *)cxxBridge.runtime;
82
+
83
+ // return @true;
84
+ // }
102
85
 
103
86
  #ifdef RCT_NEW_ARCH_ENABLED
104
87
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
package/ios/WebGPUView.mm CHANGED
@@ -50,18 +50,21 @@ static NSMutableDictionary<NSNumber *, MetalView *> *metalViewRegistry =
50
50
  [super prepareForRecycle];
51
51
  self.contentView = nil;
52
52
  if ([metalViewRegistry objectForKey:_contextId] != nil) {
53
- [metalViewRegistry removeObjectForKey:_contextId];
53
+ [metalViewRegistry removeObjectForKey:_contextId];
54
54
  }
55
55
  }
56
56
 
57
- - (void)updateProps:(const facebook::react::Props::Shared &)props oldProps:(const facebook::react::Props::Shared &)oldProps {
58
- const auto &oldViewProps = *std::static_pointer_cast<const WebGPUViewProps>(_props);
59
- const auto &newViewProps = *std::static_pointer_cast<const WebGPUViewProps>(props);
60
-
57
+ - (void)updateProps:(const facebook::react::Props::Shared &)props
58
+ oldProps:(const facebook::react::Props::Shared &)oldProps {
59
+ const auto &oldViewProps =
60
+ *std::static_pointer_cast<const WebGPUViewProps>(_props);
61
+ const auto &newViewProps =
62
+ *std::static_pointer_cast<const WebGPUViewProps>(props);
63
+
61
64
  if (newViewProps.contextId != oldViewProps.contextId) {
62
65
  _contextId = [[NSNumber alloc] initWithInt:newViewProps.contextId];
63
66
  }
64
-
67
+
65
68
  [super updateProps:props oldProps:oldProps];
66
69
  }
67
70
 
@@ -4,43 +4,104 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Canvas = void 0;
7
+ var _reactNative = require("react-native");
7
8
  var _react = require("react");
8
9
  var _WebGPUViewNativeComponent = _interopRequireDefault(require("./WebGPUViewNativeComponent"));
9
- var _NativeWebGPUModule = _interopRequireDefault(require("./NativeWebGPUModule"));
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
12
12
  let CONTEXT_COUNTER = 1;
13
13
  function generateContextId() {
14
14
  return CONTEXT_COUNTER++;
15
15
  }
16
- global.__WebGPUContextRegistry = {};
17
- const WebGPUContextRegistry = global.__WebGPUContextRegistry;
18
- const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
16
+ const useSizeFabric = ref => {
17
+ const [size, setSize] = (0, _react.useState)(null);
18
+ (0, _react.useLayoutEffect)(() => {
19
+ if (!ref.current) {
20
+ throw new Error("Canvas ref is null");
21
+ }
22
+ ref.current.measureInWindow((_x, _y, width, height) => {
23
+ setSize({
24
+ width,
25
+ height
26
+ });
27
+ });
28
+ }, [ref]);
29
+ return {
30
+ size,
31
+ onLayout: undefined
32
+ };
33
+ };
34
+ const useSizePaper = _ref => {
35
+ const [size, setSize] = (0, _react.useState)(null);
36
+ const onLayout = (0, _react.useCallback)(({
37
+ nativeEvent: {
38
+ layout: {
39
+ width,
40
+ height
41
+ }
42
+ }
43
+ }) => {
44
+ if (size === null) {
45
+ setSize({
46
+ width,
47
+ height
48
+ });
49
+ }
50
+ }, [size]);
51
+ return {
52
+ size,
53
+ onLayout
54
+ };
55
+ };
56
+ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
57
+ onLayout: _onLayout,
58
+ ...props
59
+ }, ref) => {
60
+ const viewRef = (0, _react.useRef)(null);
61
+ const FABRIC = RNWebGPU.fabric;
62
+ const useSize = FABRIC ? useSizeFabric : useSizePaper;
19
63
  const [contextId, _] = (0, _react.useState)(() => generateContextId());
64
+ const cb = (0, _react.useRef)();
65
+ const {
66
+ size,
67
+ onLayout
68
+ } = useSize(viewRef);
69
+ (0, _react.useEffect)(() => {
70
+ if (size && cb.current) {
71
+ cb.current();
72
+ }
73
+ }, [size]);
20
74
  (0, _react.useImperativeHandle)(ref, () => ({
21
75
  getNativeSurface: () => {
22
- _NativeWebGPUModule.default.createSurfaceContext(contextId);
23
- return WebGPUContextRegistry[contextId];
76
+ if (size === null) {
77
+ throw new Error("[WebGPU] Canvas size is not available yet");
78
+ }
79
+ return RNWebGPU.getNativeSurface(contextId);
80
+ },
81
+ whenReady(callback) {
82
+ if (size === null) {
83
+ cb.current = callback;
84
+ } else {
85
+ callback();
86
+ }
24
87
  },
25
88
  getContext(contextName) {
26
89
  if (contextName !== "webgpu") {
27
90
  throw new Error(`[WebGPU] Unsupported context: ${contextName}`);
28
91
  }
29
- _NativeWebGPUModule.default.createSurfaceContext(contextId);
30
- const nativeSurface = WebGPUContextRegistry[contextId];
31
- if (!nativeSurface) {
32
- return null;
92
+ if (size === null) {
93
+ throw new Error("[WebGPU] Canvas size is not available yet");
33
94
  }
34
- const ctx = RNWebGPU.MakeWebGPUCanvasContext(nativeSurface);
35
- return ctx;
95
+ return RNWebGPU.MakeWebGPUCanvasContext(contextId, size.width, size.height);
36
96
  }
37
97
  }));
38
- (0, _react.useEffect)(() => {
39
- return () => {
40
- delete WebGPUContextRegistry[contextId];
41
- };
42
- }, [contextId]);
43
- return /*#__PURE__*/React.createElement(_WebGPUViewNativeComponent.default, _extends({}, props, {
98
+ return /*#__PURE__*/React.createElement(_reactNative.View, _extends({
99
+ ref: viewRef,
100
+ onLayout: onLayout
101
+ }, props), /*#__PURE__*/React.createElement(_WebGPUViewNativeComponent.default, {
102
+ style: {
103
+ flex: 1
104
+ },
44
105
  contextId: contextId
45
106
  }));
46
107
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_WebGPUViewNativeComponent","_interopRequireDefault","_NativeWebGPUModule","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","global","__WebGPUContextRegistry","WebGPUContextRegistry","Canvas","exports","forwardRef","props","ref","contextId","_","useState","useImperativeHandle","getNativeSurface","WebGPUNativeModule","createSurfaceContext","getContext","contextName","Error","nativeSurface","ctx","RNWebGPU","MakeWebGPUCanvasContext","useEffect","React","createElement"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,0BAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAsD,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAEtD,IAAIO,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AAwBAE,MAAM,CAACC,uBAAuB,GAAG,CAAC,CAAC;AACnC,MAAMC,qBAAqB,GAAGF,MAAM,CAACC,uBAAuB;AAWrD,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,iBAAU,EAAuB,CAACC,KAAK,EAAEC,GAAG,KAAK;EACrE,MAAM,CAACC,SAAS,EAAEC,CAAC,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMX,iBAAiB,CAAC,CAAC,CAAC;EAE1D,IAAAY,0BAAmB,EAACJ,GAAG,EAAE,OAAO;IAC9BK,gBAAgB,EAAEA,CAAA,KAAM;MACtBC,2BAAkB,CAACC,oBAAoB,CAACN,SAAS,CAAC;MAClD,OAAON,qBAAqB,CAACM,SAAS,CAAC;IACzC,CAAC;IACDO,UAAUA,CAACC,WAAqB,EAAwB;MACtD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACAH,2BAAkB,CAACC,oBAAoB,CAACN,SAAS,CAAC;MAClD,MAAMU,aAAa,GAAGhB,qBAAqB,CAACM,SAAS,CAAC;MACtD,IAAI,CAACU,aAAa,EAAE;QAClB,OAAO,IAAI;MACb;MACA,MAAMC,GAAG,GAAGC,QAAQ,CAACC,uBAAuB,CAACH,aAAa,CAAC;MAC3D,OAAOC,GAAG;IACZ;EACF,CAAC,CAAC,CAAC;EAEH,IAAAG,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,OAAOpB,qBAAqB,CAACM,SAAS,CAAC;IACzC,CAAC;EACH,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,oBAAOe,KAAA,CAAAC,aAAA,CAAC5C,0BAAA,CAAAK,OAAgB,EAAAC,QAAA,KAAKoB,KAAK;IAAEE,SAAS,EAAEA;EAAU,EAAE,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_react","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","useState","useLayoutEffect","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","useCallback","nativeEvent","layout","Canvas","exports","forwardRef","_onLayout","props","viewRef","useRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","useEffect","useImperativeHandle","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","View","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GPUOffscreenCanvas = void 0;
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ class GPUOffscreenCanvas {
9
+ oncontextlost = null;
10
+ oncontextrestored = null;
11
+ constructor(width, height) {
12
+ this.width = width;
13
+ this.height = height;
14
+ this.context = new GPUOffscreenCanvasContext(this);
15
+ }
16
+ convertToBlob(_options) {
17
+ // Implementation for converting the canvas content to a Blob
18
+ throw new Error("Method not implemented.");
19
+ }
20
+
21
+ // Overloaded method signatures
22
+
23
+ getContext(contextId, _options) {
24
+ if (contextId === "webgpu") {
25
+ return this.context;
26
+ }
27
+ // Implement other context types if necessary
28
+ return null;
29
+ }
30
+ transferToImageBitmap() {
31
+ // Implementation for transferring the canvas content to an ImageBitmap
32
+ throw new Error("Method not implemented.");
33
+ }
34
+ addEventListener(_type, _listener, _options) {
35
+ // Event listener implementation
36
+ throw new Error("Method not implemented.");
37
+ }
38
+ removeEventListener(_type, _listener, _options) {
39
+ // Remove event listener implementation
40
+ throw new Error("Method not implemented.");
41
+ }
42
+ dispatchEvent(_event) {
43
+ // Event dispatch implementation
44
+ throw new Error("Method not implemented.");
45
+ }
46
+ getImageData() {
47
+ const device = this.context.getDevice();
48
+ const texture = this.context.getTexture();
49
+ const commandEncoder = device.createCommandEncoder();
50
+ const bytesPerRow = this.width * 4;
51
+ const buffer = device.createBuffer({
52
+ size: bytesPerRow * this.height,
53
+ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ
54
+ });
55
+ commandEncoder.copyTextureToBuffer({
56
+ texture: texture
57
+ }, {
58
+ buffer: buffer,
59
+ bytesPerRow
60
+ }, [this.width, this.height]);
61
+ device.queue.submit([commandEncoder.finish()]);
62
+ return buffer.mapAsync(GPUMapMode.READ).then(() => {
63
+ const arrayBuffer = buffer.getMappedRange();
64
+ const uint8Array = new Uint8Array(arrayBuffer);
65
+ const data = Array.from(uint8Array);
66
+ buffer.unmap();
67
+ return {
68
+ data,
69
+ width: this.width,
70
+ height: this.height,
71
+ format: navigator.gpu.getPreferredCanvasFormat()
72
+ };
73
+ });
74
+ }
75
+ }
76
+ exports.GPUOffscreenCanvas = GPUOffscreenCanvas;
77
+ class GPUOffscreenCanvasContext {
78
+ __brand = "GPUCanvasContext";
79
+ texture = null;
80
+ device = null;
81
+ constructor(canvas) {
82
+ this.canvas = canvas;
83
+ this.textureFormat = navigator.gpu.getPreferredCanvasFormat();
84
+ }
85
+ present() {
86
+ // Do nothing
87
+ }
88
+ getDevice() {
89
+ if (!this.device) {
90
+ throw new Error("Device is not configured.");
91
+ }
92
+ return this.device;
93
+ }
94
+ getTexture() {
95
+ if (!this.texture) {
96
+ throw new Error("Texture is not configured");
97
+ }
98
+ return this.texture;
99
+ }
100
+ configure(config) {
101
+ // Configure the canvas context with the device and format
102
+ this.device = config.device;
103
+ this.texture = config.device.createTexture({
104
+ size: [this.canvas.width, this.canvas.height],
105
+ format: this.textureFormat,
106
+ usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC | GPUTextureUsage.TEXTURE_BINDING
107
+ });
108
+ return undefined;
109
+ }
110
+ unconfigure() {
111
+ // Unconfigure the canvas context
112
+ if (this.texture) {
113
+ this.texture.destroy();
114
+ }
115
+ return undefined;
116
+ }
117
+ getCurrentTexture() {
118
+ if (!this.texture) {
119
+ throw new Error("Texture is not configured");
120
+ }
121
+ return this.texture;
122
+ }
123
+ }
124
+ //# sourceMappingURL=Offscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GPUOffscreenCanvas","oncontextlost","oncontextrestored","constructor","width","height","context","GPUOffscreenCanvasContext","convertToBlob","_options","Error","getContext","contextId","transferToImageBitmap","addEventListener","_type","_listener","removeEventListener","dispatchEvent","_event","getImageData","device","getDevice","texture","getTexture","commandEncoder","createCommandEncoder","bytesPerRow","buffer","createBuffer","size","usage","GPUBufferUsage","COPY_DST","MAP_READ","copyTextureToBuffer","queue","submit","finish","mapAsync","GPUMapMode","READ","then","arrayBuffer","getMappedRange","uint8Array","Uint8Array","data","Array","from","unmap","format","navigator","gpu","getPreferredCanvasFormat","exports","__brand","canvas","textureFormat","present","configure","config","createTexture","GPUTextureUsage","RENDER_ATTACHMENT","COPY_SRC","TEXTURE_BINDING","undefined","unconfigure","destroy","getCurrentTexture"],"sourceRoot":"../../src","sources":["Offscreen.ts"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,18 @@ Object.keys(_Canvas).forEach(function (key) {
25
25
  }
26
26
  });
27
27
  });
28
+ var _Offscreen = require("./Offscreen");
29
+ Object.keys(_Offscreen).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
32
+ if (key in exports && exports[key] === _Offscreen[key]) return;
33
+ Object.defineProperty(exports, key, {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _Offscreen[key];
37
+ }
38
+ });
39
+ });
28
40
  var _WebGPUViewNativeComponent = require("./WebGPUViewNativeComponent");
29
41
  Object.keys(_WebGPUViewNativeComponent).forEach(function (key) {
30
42
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_NativeWebGPUModule","_interopRequireDefault","require","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_WebGPUViewNativeComponent","_utils","e","__esModule","default","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","WebGPUNativeModule","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_NativeWebGPUModule","_interopRequireDefault","require","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_utils","e","__esModule","default","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","WebGPUNativeModule","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.warnIfNotHardwareAccelerated = exports.useCanvasEffect = void 0;
6
+ exports.warnIfNotHardwareAccelerated = exports.useGPUContext = exports.useCanvasEffect = void 0;
7
7
  var _react = require("react");
8
8
  const warnIfNotHardwareAccelerated = adapter => {
9
9
  if (adapter.info.architecture === "swiftshader") {
@@ -11,28 +11,39 @@ const warnIfNotHardwareAccelerated = adapter => {
11
11
  }
12
12
  };
13
13
  exports.warnIfNotHardwareAccelerated = warnIfNotHardwareAccelerated;
14
- const useCanvasEffect = (effect, deps = []) => {
14
+ const useGPUContext = () => {
15
+ const [context, setContext] = (0, _react.useState)(null);
16
+ const ref = useCanvasEffect(() => {
17
+ const ctx = ref.current.getContext("webgpu");
18
+ setContext(ctx);
19
+ });
20
+ return {
21
+ ref,
22
+ context
23
+ };
24
+ };
25
+ exports.useGPUContext = useGPUContext;
26
+ const useCanvasEffect = effect => {
27
+ const unsub = (0, _react.useRef)(null);
15
28
  const ref = (0, _react.useRef)(null);
16
- const unsubscribe = (0, _react.useRef)();
17
29
  (0, _react.useEffect)(() => {
18
- requestAnimationFrame(async () => {
19
- // const adapter = await navigator.gpu.requestAdapter();
20
- // if (!adapter) {
21
- // return;
22
- // }
23
- // const device = await adapter.requestDevice();
24
- const unsub = await effect();
25
- if (unsub) {
26
- unsubscribe.current = unsub;
30
+ ref.current.whenReady(async () => {
31
+ const sub = effect();
32
+ if (sub) {
33
+ unsub.current = sub;
27
34
  }
28
35
  });
29
36
  return () => {
30
- if (unsubscribe.current) {
31
- unsubscribe.current();
37
+ if (unsub.current) {
38
+ if (unsub.current instanceof Promise) {
39
+ unsub.current.then(sub => sub && sub());
40
+ } else {
41
+ unsub.current();
42
+ }
32
43
  }
33
44
  };
34
45
  // eslint-disable-next-line react-hooks/exhaustive-deps
35
- }, deps);
46
+ }, []);
36
47
  return ref;
37
48
  };
38
49
  exports.useCanvasEffect = useCanvasEffect;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","exports","useCanvasEffect","effect","deps","ref","useRef","unsubscribe","useEffect","requestAnimationFrame","unsub","current"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE,IAAIA,OAAO,CAACC,IAAI,CAACC,YAAY,KAAK,aAAa,EAAE;IAC/CC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACH;AACF,CAAC;AAACC,OAAA,CAAAN,4BAAA,GAAAA,4BAAA;AAEK,MAAMO,eAAe,GAAGA,CAC7BC,MAA8D,EAC9DC,IAAoB,GAAG,EAAE,KACtB;EACH,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAY,IAAI,CAAC;EACnC,MAAMC,WAAW,GAAG,IAAAD,aAAM,EAAc,CAAC;EACzC,IAAAE,gBAAS,EAAC,MAAM;IACdC,qBAAqB,CAAC,YAAY;MAChC;MACA;MACA;MACA;MACA;MACA,MAAMC,KAAK,GAAG,MAAMP,MAAM,CAAC,CAAC;MAC5B,IAAIO,KAAK,EAAE;QACTH,WAAW,CAACI,OAAO,GAAGD,KAAK;MAC7B;IACF,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAIH,WAAW,CAACI,OAAO,EAAE;QACvBJ,WAAW,CAACI,OAAO,CAAC,CAAC;MACvB;IACF,CAAC;IACD;EACF,CAAC,EAAEP,IAAI,CAAC;EACR,OAAOC,GAAG;AACZ,CAAC;AAACJ,OAAA,CAAAC,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","exports","useGPUContext","context","setContext","useState","ref","useCanvasEffect","ctx","current","getContext","effect","unsub","useRef","useEffect","whenReady","sub","Promise","then"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE,IAAIA,OAAO,CAACC,IAAI,CAACC,YAAY,KAAK,aAAa,EAAE;IAC/CC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACH;AACF,CAAC;AAACC,OAAA,CAAAN,4BAAA,GAAAA,4BAAA;AAEK,MAAMO,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAyB,IAAI,CAAC;EACpE,MAAMC,GAAG,GAAGC,eAAe,CAAC,MAAM;IAChC,MAAMC,GAAG,GAAGF,GAAG,CAACG,OAAO,CAAEC,UAAU,CAAC,QAAQ,CAAE;IAC9CN,UAAU,CAACI,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,OAAO;IAAEF,GAAG;IAAEH;EAAQ,CAAC;AACzB,CAAC;AAACF,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEK,MAAMK,eAAe,GAC1BI,MAIiB,IACd;EACH,MAAMC,KAAK,GAAG,IAAAC,aAAM,EAAmD,IAAI,CAAC;EAC5E,MAAMP,GAAG,GAAG,IAAAO,aAAM,EAAY,IAAI,CAAC;EACnC,IAAAC,gBAAS,EAAC,MAAM;IACdR,GAAG,CAACG,OAAO,CAAEM,SAAS,CAAC,YAAY;MACjC,MAAMC,GAAG,GAAGL,MAAM,CAAC,CAAC;MACpB,IAAIK,GAAG,EAAE;QACPJ,KAAK,CAACH,OAAO,GAAGO,GAAG;MACrB;IACF,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAIJ,KAAK,CAACH,OAAO,EAAE;QACjB,IAAIG,KAAK,CAACH,OAAO,YAAYQ,OAAO,EAAE;UACpCL,KAAK,CAACH,OAAO,CAACS,IAAI,CAAEF,GAAG,IAAKA,GAAG,IAAIA,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,MAAM;UACLJ,KAAK,CAACH,OAAO,CAAC,CAAC;QACjB;MACF;IACF,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EACN,OAAOH,GAAG;AACZ,CAAC;AAACL,OAAA,CAAAM,eAAA,GAAAA,eAAA","ignoreList":[]}