@shopify/react-native-skia 2.5.2 → 2.5.3

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 (115) hide show
  1. package/android/CMakeLists.txt +4 -0
  2. package/android/cpp/jni/JniWebGPUView.cpp +67 -0
  3. package/android/cpp/rnskia-android/SkiaPlatformContext.h +26 -0
  4. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +4 -1
  5. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +41 -0
  6. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +44 -0
  7. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +95 -0
  8. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +14 -0
  9. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +58 -0
  10. package/apple/RNSkUIKit.h +13 -0
  11. package/apple/SkiaPlatformContext.h +20 -0
  12. package/apple/SkiaPlatformContext.mm +21 -0
  13. package/apple/WebGPUMetalView.h +12 -0
  14. package/apple/WebGPUMetalView.mm +93 -0
  15. package/apple/WebGPUView.h +20 -0
  16. package/apple/WebGPUView.mm +77 -0
  17. package/cpp/jsi2/JSIConverter.h +11 -0
  18. package/cpp/rnskia/RNSkManager.cpp +11 -4
  19. package/cpp/rnwgpu/Canvas.h +45 -0
  20. package/cpp/rnwgpu/PlatformContext.h +18 -0
  21. package/cpp/rnwgpu/SurfaceRegistry.h +229 -0
  22. package/cpp/rnwgpu/api/GPUAdapter.cpp +26 -0
  23. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +64 -0
  24. package/cpp/rnwgpu/api/GPUCanvasContext.h +65 -0
  25. package/cpp/rnwgpu/api/GPUDevice.cpp +52 -0
  26. package/cpp/rnwgpu/api/GPUDevice.h +62 -1
  27. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +61 -0
  28. package/cpp/rnwgpu/api/RNWebGPU.h +62 -0
  29. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +4 -0
  30. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +76 -0
  31. package/lib/commonjs/external/reanimated/useVideo.js +1 -4
  32. package/lib/commonjs/external/reanimated/useVideo.js.map +1 -1
  33. package/lib/commonjs/mock/index.js +1 -0
  34. package/lib/commonjs/mock/index.js.map +1 -1
  35. package/lib/commonjs/skia/types/Surface/SurfaceFactory.js.map +1 -1
  36. package/lib/commonjs/sksg/Container.native.js +4 -0
  37. package/lib/commonjs/sksg/Container.native.js.map +1 -1
  38. package/lib/commonjs/sksg/Container.web.js +4 -0
  39. package/lib/commonjs/sksg/Container.web.js.map +1 -1
  40. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +8 -0
  41. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +11 -0
  42. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +1 -0
  43. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +8 -0
  44. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +101 -0
  45. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +1 -0
  46. package/lib/commonjs/specs/utils.d.ts +1 -0
  47. package/lib/commonjs/specs/utils.js +11 -0
  48. package/lib/commonjs/specs/utils.js.map +1 -0
  49. package/lib/commonjs/views/WebGPUCanvas.d.ts +32 -0
  50. package/lib/commonjs/views/WebGPUCanvas.js +66 -0
  51. package/lib/commonjs/views/WebGPUCanvas.js.map +1 -0
  52. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +23 -0
  53. package/lib/commonjs/views/WebGPUCanvas.web.js +20 -0
  54. package/lib/commonjs/views/WebGPUCanvas.web.js.map +1 -0
  55. package/lib/commonjs/views/index.d.ts +1 -0
  56. package/lib/commonjs/views/index.js +11 -0
  57. package/lib/commonjs/views/index.js.map +1 -1
  58. package/lib/module/external/reanimated/useVideo.js +1 -4
  59. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  60. package/lib/module/mock/index.js +1 -0
  61. package/lib/module/mock/index.js.map +1 -1
  62. package/lib/module/skia/types/Surface/SurfaceFactory.js.map +1 -1
  63. package/lib/module/sksg/Container.native.js +5 -0
  64. package/lib/module/sksg/Container.native.js.map +1 -1
  65. package/lib/module/sksg/Container.web.js +5 -0
  66. package/lib/module/sksg/Container.web.js.map +1 -1
  67. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +8 -0
  68. package/lib/module/specs/WebGPUViewNativeComponent.js +4 -0
  69. package/lib/module/specs/WebGPUViewNativeComponent.js.map +1 -0
  70. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +8 -0
  71. package/lib/module/specs/WebGPUViewNativeComponent.web.js +94 -0
  72. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +1 -0
  73. package/lib/module/specs/utils.d.ts +1 -0
  74. package/lib/module/specs/utils.js +5 -0
  75. package/lib/module/specs/utils.js.map +1 -0
  76. package/lib/module/views/WebGPUCanvas.d.ts +32 -0
  77. package/lib/module/views/WebGPUCanvas.js +57 -0
  78. package/lib/module/views/WebGPUCanvas.js.map +1 -0
  79. package/lib/module/views/WebGPUCanvas.web.d.ts +23 -0
  80. package/lib/module/views/WebGPUCanvas.web.js +12 -0
  81. package/lib/module/views/WebGPUCanvas.web.js.map +1 -0
  82. package/lib/module/views/index.d.ts +1 -0
  83. package/lib/module/views/index.js +1 -0
  84. package/lib/module/views/index.js.map +1 -1
  85. package/lib/typescript/lib/commonjs/mock/index.d.ts +1 -0
  86. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +3 -0
  87. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +3 -0
  88. package/lib/typescript/lib/commonjs/specs/utils.d.ts +2 -0
  89. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +6 -0
  90. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +6 -0
  91. package/lib/typescript/lib/module/mock/index.d.ts +3 -1
  92. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +2 -0
  93. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +2 -0
  94. package/lib/typescript/lib/module/specs/utils.d.ts +1 -0
  95. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +7 -0
  96. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +8 -0
  97. package/lib/typescript/lib/module/views/index.d.ts +1 -0
  98. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +8 -0
  99. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +8 -0
  100. package/lib/typescript/src/specs/utils.d.ts +1 -0
  101. package/lib/typescript/src/views/WebGPUCanvas.d.ts +32 -0
  102. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +23 -0
  103. package/lib/typescript/src/views/index.d.ts +1 -0
  104. package/package.json +3 -2
  105. package/src/external/reanimated/useVideo.ts +1 -4
  106. package/src/mock/index.ts +1 -0
  107. package/src/skia/types/Surface/SurfaceFactory.ts +5 -1
  108. package/src/sksg/Container.native.ts +3 -0
  109. package/src/sksg/Container.web.ts +3 -0
  110. package/src/specs/WebGPUViewNativeComponent.ts +11 -0
  111. package/src/specs/WebGPUViewNativeComponent.web.ts +108 -0
  112. package/src/specs/utils.ts +4 -0
  113. package/src/views/WebGPUCanvas.tsx +109 -0
  114. package/src/views/WebGPUCanvas.web.tsx +36 -0
  115. package/src/views/index.ts +1 -0
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import type { ViewProps } from "react-native";
3
+
4
+ export interface NativeCanvas {
5
+ surface: bigint;
6
+ width: number;
7
+ height: number;
8
+ clientWidth: number;
9
+ clientHeight: number;
10
+ }
11
+
12
+ export type RNCanvasContext = GPUCanvasContext & {
13
+ present: () => void;
14
+ };
15
+
16
+ export interface WebGPUCanvasRef {
17
+ getContextId: () => number;
18
+ getContext(contextName: "webgpu"): RNCanvasContext | null;
19
+ getNativeSurface: () => NativeCanvas;
20
+ }
21
+
22
+ interface WebGPUCanvasProps extends ViewProps {
23
+ transparent?: boolean;
24
+ ref?: React.Ref<WebGPUCanvasRef>;
25
+ }
26
+
27
+ // WebGPU Canvas is not supported on web
28
+ export const WebGPUCanvas = ({
29
+ transparent: _transparent,
30
+ ref: _ref,
31
+ ...props
32
+ }: WebGPUCanvasProps) => {
33
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34
+ // @ts-expect-error
35
+ return <div {...props} />;
36
+ };
@@ -1,2 +1,3 @@
1
1
  export * from "./SkiaPictureView";
2
2
  export * from "./types";
3
+ export * from "./WebGPUCanvas";