react-native-skia 3.0.1 → 3.0.2

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 (260) hide show
  1. package/Package.swift +14 -13
  2. package/android/CMakeLists.txt +13 -42
  3. package/android/build.gradle +54 -63
  4. package/android/cpp/jni/JniLoad.cpp +2 -4
  5. package/android/cpp/jni/include/JniSkiaView.h +123 -0
  6. package/android/cpp/rnskia-android/{RNSkOpenGLCanvasProvider.cpp → RNSkAndroidCanvasProvider.cpp} +45 -100
  7. package/android/cpp/rnskia-android/{RNSkOpenGLCanvasProvider.h → RNSkAndroidCanvasProvider.h} +24 -22
  8. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +0 -83
  9. package/android/cpp/rnskia-android/RNSkAndroidVideo.cpp +0 -8
  10. package/android/src/main/java/com/reactnative/skia/RNSkiaPackage.java +1 -2
  11. package/android/src/main/java/com/reactnative/skia/SkiaSurfaceView.java +1 -3
  12. package/android/src/main/java/com/reactnative/skia/SkiaTextureView.java +1 -17
  13. package/android/src/main/java/com/reactnative/skia/{SkiaBaseView.java → SkiaView.java} +78 -16
  14. package/android/src/main/java/com/reactnative/skia/SkiaViewManager.java +85 -0
  15. package/apple/MetalLayerColorSpace.mm +0 -4
  16. package/apple/RNSkApplePlatformContext.h +0 -14
  17. package/apple/RNSkApplePlatformContext.mm +2 -112
  18. package/apple/RNSkMetalCanvasProvider.h +14 -19
  19. package/apple/RNSkMetalCanvasProvider.mm +35 -68
  20. package/apple/SkiaView.h +20 -0
  21. package/apple/SkiaView.mm +210 -0
  22. package/cpp/api/JsiSkApi.h +2 -13
  23. package/cpp/api/JsiSkCanvas.h +4 -18
  24. package/cpp/api/JsiSkGraphiteContext.h +1 -5
  25. package/cpp/api/JsiSkGraphiteRecording.h +1 -5
  26. package/cpp/api/JsiSkImage.h +7 -41
  27. package/cpp/api/JsiSkImageFactory.h +0 -14
  28. package/cpp/api/JsiSkSurface.h +2 -16
  29. package/cpp/api/JsiSkSurfaceFactory.h +0 -8
  30. package/cpp/rnskia/RNDawnInterop.cpp +0 -4
  31. package/cpp/rnskia/RNDawnUtils.h +0 -1
  32. package/cpp/rnskia/RNDawnWindowContext.cpp +10 -0
  33. package/cpp/rnskia/RNDawnWindowContext.h +4 -0
  34. package/cpp/rnskia/RNSkCanvasProvider.h +221 -0
  35. package/cpp/rnskia/RNSkGraphiteProducer.cpp +36 -14
  36. package/cpp/rnskia/RNSkGraphiteProducer.h +23 -8
  37. package/cpp/rnskia/RNSkGraphiteTarget.h +383 -0
  38. package/cpp/rnskia/RNSkJsiViewApi.h +9 -18
  39. package/cpp/rnskia/RNSkPlatformContext.h +9 -15
  40. package/cpp/rnskia/RNSkView.h +340 -245
  41. package/jestSetup.js +1 -3
  42. package/lib/commonjs/Platform/Platform.web.js +1 -1
  43. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  44. package/lib/commonjs/index.d.ts +1 -3
  45. package/lib/commonjs/index.js +3 -12
  46. package/lib/commonjs/index.js.map +1 -1
  47. package/lib/commonjs/mock/index.js +0 -1
  48. package/lib/commonjs/mock/index.js.map +1 -1
  49. package/lib/commonjs/renderer/Canvas.d.ts +15 -12
  50. package/lib/commonjs/renderer/Canvas.js +24 -20
  51. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  52. package/lib/commonjs/skia/types/Graphite.d.ts +3 -3
  53. package/lib/commonjs/skia/types/Graphite.js.map +1 -1
  54. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +2 -2
  55. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  56. package/lib/commonjs/skia/types/Skia.d.ts +1 -2
  57. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  58. package/lib/commonjs/skia/types/Surface/SurfaceFactory.d.ts +1 -1
  59. package/lib/commonjs/skia/types/Surface/SurfaceFactory.js.map +1 -1
  60. package/lib/commonjs/specs/NativeSkiaModule.web.d.ts +5 -4
  61. package/lib/commonjs/specs/NativeSkiaModule.web.js +5 -9
  62. package/lib/commonjs/specs/NativeSkiaModule.web.js.map +1 -1
  63. package/lib/{typescript/src/specs/SkiaPictureViewNativeComponent.d.ts → commonjs/specs/SkiaViewNativeComponent.d.ts} +0 -3
  64. package/lib/commonjs/specs/{SkiaPictureViewNativeComponent.js → SkiaViewNativeComponent.js} +2 -2
  65. package/lib/commonjs/specs/SkiaViewNativeComponent.js.map +1 -0
  66. package/lib/commonjs/specs/SkiaViewNativeComponent.web.d.ts +10 -0
  67. package/lib/commonjs/specs/SkiaViewNativeComponent.web.js +27 -0
  68. package/lib/commonjs/specs/SkiaViewNativeComponent.web.js.map +1 -0
  69. package/lib/commonjs/views/SkiaGraphiteView.d.ts +3 -4
  70. package/lib/commonjs/views/SkiaGraphiteView.js +23 -12
  71. package/lib/commonjs/views/SkiaGraphiteView.js.map +1 -1
  72. package/lib/commonjs/views/SkiaPictureView.d.ts +4 -1
  73. package/lib/commonjs/views/SkiaPictureView.js +12 -10
  74. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  75. package/lib/commonjs/views/SkiaView.web.d.ts +12 -0
  76. package/lib/commonjs/views/{SkiaGraphiteView.web.js → SkiaView.web.js} +82 -38
  77. package/lib/commonjs/views/SkiaView.web.js.map +1 -0
  78. package/lib/commonjs/views/SkiaWebRenderer.js +1 -1
  79. package/lib/commonjs/views/SkiaWebRenderer.js.map +1 -1
  80. package/lib/commonjs/views/android.d.ts +6 -0
  81. package/lib/commonjs/views/android.js +17 -0
  82. package/lib/commonjs/views/android.js.map +1 -0
  83. package/lib/commonjs/views/types.d.ts +3 -12
  84. package/lib/commonjs/views/types.js.map +1 -1
  85. package/lib/module/Platform/Platform.web.js +1 -1
  86. package/lib/module/Platform/Platform.web.js.map +1 -1
  87. package/lib/module/index.d.ts +1 -3
  88. package/lib/module/index.js +1 -3
  89. package/lib/module/index.js.map +1 -1
  90. package/lib/module/mock/index.js +0 -1
  91. package/lib/module/mock/index.js.map +1 -1
  92. package/lib/module/renderer/Canvas.d.ts +15 -12
  93. package/lib/module/renderer/Canvas.js +24 -19
  94. package/lib/module/renderer/Canvas.js.map +1 -1
  95. package/lib/module/skia/types/Graphite.d.ts +3 -3
  96. package/lib/module/skia/types/Graphite.js.map +1 -1
  97. package/lib/module/skia/types/Image/ImageFactory.d.ts +2 -2
  98. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  99. package/lib/module/skia/types/Skia.d.ts +1 -2
  100. package/lib/module/skia/types/Skia.js.map +1 -1
  101. package/lib/module/skia/types/Surface/SurfaceFactory.d.ts +1 -1
  102. package/lib/module/skia/types/Surface/SurfaceFactory.js.map +1 -1
  103. package/lib/module/specs/NativeSkiaModule.web.d.ts +5 -4
  104. package/lib/module/specs/NativeSkiaModule.web.js +5 -9
  105. package/lib/module/specs/NativeSkiaModule.web.js.map +1 -1
  106. package/lib/{commonjs/specs/SkiaPictureViewNativeComponent.d.ts → module/specs/SkiaViewNativeComponent.d.ts} +0 -3
  107. package/lib/module/specs/{SkiaPictureViewNativeComponent.js → SkiaViewNativeComponent.js} +2 -2
  108. package/lib/module/specs/SkiaViewNativeComponent.js.map +1 -0
  109. package/lib/module/specs/SkiaViewNativeComponent.web.d.ts +10 -0
  110. package/lib/module/specs/SkiaViewNativeComponent.web.js +21 -0
  111. package/lib/module/specs/SkiaViewNativeComponent.web.js.map +1 -0
  112. package/lib/module/views/SkiaGraphiteView.d.ts +3 -4
  113. package/lib/module/views/SkiaGraphiteView.js +23 -12
  114. package/lib/module/views/SkiaGraphiteView.js.map +1 -1
  115. package/lib/module/views/SkiaPictureView.d.ts +4 -1
  116. package/lib/module/views/SkiaPictureView.js +12 -10
  117. package/lib/module/views/SkiaPictureView.js.map +1 -1
  118. package/lib/module/views/SkiaView.web.d.ts +12 -0
  119. package/lib/module/views/{SkiaGraphiteView.web.js → SkiaView.web.js} +80 -36
  120. package/lib/module/views/SkiaView.web.js.map +1 -0
  121. package/lib/module/views/SkiaWebRenderer.js +1 -1
  122. package/lib/module/views/SkiaWebRenderer.js.map +1 -1
  123. package/lib/module/views/android.d.ts +6 -0
  124. package/lib/module/views/android.js +10 -0
  125. package/lib/module/views/android.js.map +1 -0
  126. package/lib/module/views/types.d.ts +3 -12
  127. package/lib/module/views/types.js.map +1 -1
  128. package/lib/typescript/src/index.d.ts +1 -3
  129. package/lib/typescript/src/renderer/Canvas.d.ts +15 -12
  130. package/lib/typescript/src/skia/types/Graphite.d.ts +3 -3
  131. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +2 -2
  132. package/lib/typescript/src/skia/types/Skia.d.ts +1 -2
  133. package/lib/typescript/src/skia/types/Surface/SurfaceFactory.d.ts +1 -1
  134. package/lib/typescript/src/specs/NativeSkiaModule.web.d.ts +5 -4
  135. package/lib/{module/specs/SkiaPictureViewNativeComponent.d.ts → typescript/src/specs/SkiaViewNativeComponent.d.ts} +0 -3
  136. package/lib/typescript/src/specs/SkiaViewNativeComponent.web.d.ts +10 -0
  137. package/lib/typescript/src/views/SkiaGraphiteView.d.ts +3 -4
  138. package/lib/typescript/src/views/SkiaPictureView.d.ts +4 -1
  139. package/lib/typescript/src/views/SkiaView.web.d.ts +12 -0
  140. package/lib/typescript/src/views/android.d.ts +6 -0
  141. package/lib/typescript/src/views/types.d.ts +3 -12
  142. package/package.json +5 -13
  143. package/react-native-skia.podspec +34 -58
  144. package/src/Platform/Platform.web.tsx +1 -1
  145. package/src/index.ts +1 -3
  146. package/src/mock/index.ts +0 -1
  147. package/src/renderer/Canvas.tsx +23 -27
  148. package/src/skia/types/Graphite.ts +3 -3
  149. package/src/skia/types/Image/ImageFactory.ts +2 -2
  150. package/src/skia/types/Skia.ts +1 -2
  151. package/src/skia/types/Surface/SurfaceFactory.ts +1 -1
  152. package/src/specs/NativeSkiaModule.web.ts +9 -21
  153. package/src/specs/{SkiaPictureViewNativeComponent.ts → SkiaViewNativeComponent.ts} +1 -4
  154. package/src/specs/{SkiaPictureViewNativeComponent.web.ts → SkiaViewNativeComponent.web.ts} +8 -10
  155. package/src/views/SkiaGraphiteView.tsx +27 -16
  156. package/src/views/SkiaPictureView.tsx +11 -10
  157. package/src/views/{SkiaGraphiteView.web.tsx → SkiaView.web.tsx} +100 -53
  158. package/src/views/SkiaWebRenderer.ts +1 -1
  159. package/src/views/android.ts +16 -0
  160. package/src/views/types.ts +3 -14
  161. package/android/cpp/jni/include/JniSkiaBaseView.h +0 -92
  162. package/android/cpp/jni/include/JniSkiaGraphiteView.h +0 -176
  163. package/android/cpp/jni/include/JniSkiaPictureView.h +0 -172
  164. package/android/cpp/rnskia-android/GrAHardwareBufferUtils.cpp +0 -245
  165. package/android/cpp/rnskia-android/GrAHardwareBufferUtils.h +0 -33
  166. package/android/cpp/rnskia-android/OpenGLContext.h +0 -248
  167. package/android/cpp/rnskia-android/OpenGLWindowContext.cpp +0 -67
  168. package/android/cpp/rnskia-android/OpenGLWindowContext.h +0 -75
  169. package/android/cpp/rnskia-android/RNSkAndroidView.h +0 -67
  170. package/android/cpp/rnskia-android/gl/Context.h +0 -80
  171. package/android/cpp/rnskia-android/gl/Display.h +0 -123
  172. package/android/cpp/rnskia-android/gl/Error.cpp +0 -45
  173. package/android/cpp/rnskia-android/gl/Error.h +0 -8
  174. package/android/cpp/rnskia-android/gl/Surface.h +0 -43
  175. package/android/src/main/java/com/reactnative/skia/SkiaBaseViewManager.java +0 -65
  176. package/android/src/main/java/com/reactnative/skia/SkiaGraphiteView.java +0 -78
  177. package/android/src/main/java/com/reactnative/skia/SkiaGraphiteViewManager.java +0 -32
  178. package/android/src/main/java/com/reactnative/skia/SkiaPictureView.java +0 -105
  179. package/android/src/main/java/com/reactnative/skia/SkiaPictureViewManager.java +0 -44
  180. package/apple/MetalContext.h +0 -116
  181. package/apple/MetalContext.mm +0 -38
  182. package/apple/MetalWindowContext.h +0 -42
  183. package/apple/MetalWindowContext.mm +0 -95
  184. package/apple/RNSkAppleView.h +0 -49
  185. package/apple/RNSkAppleView.mm +0 -35
  186. package/apple/SkiaCVPixelBufferUtils.h +0 -122
  187. package/apple/SkiaCVPixelBufferUtils.mm +0 -535
  188. package/apple/SkiaGraphiteView.h +0 -26
  189. package/apple/SkiaGraphiteView.mm +0 -180
  190. package/apple/SkiaPictureView.h +0 -7
  191. package/apple/SkiaPictureView.mm +0 -70
  192. package/apple/SkiaUIView.h +0 -31
  193. package/apple/SkiaUIView.mm +0 -164
  194. package/cpp/rnskia/RNSkGraphiteView.h +0 -708
  195. package/cpp/rnskia/RNSkPictureView.cpp +0 -69
  196. package/cpp/rnskia/RNSkPictureView.h +0 -211
  197. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +0 -1162
  198. package/lib/commonjs/renderer/DefaultCanvas.d.ts +0 -8
  199. package/lib/commonjs/renderer/DefaultCanvas.js +0 -42
  200. package/lib/commonjs/renderer/DefaultCanvas.js.map +0 -1
  201. package/lib/commonjs/renderer/GraphiteCanvas.d.ts +0 -22
  202. package/lib/commonjs/renderer/GraphiteCanvas.js +0 -64
  203. package/lib/commonjs/renderer/GraphiteCanvas.js.map +0 -1
  204. package/lib/commonjs/renderer/GraphiteCanvas.web.d.ts +0 -1
  205. package/lib/commonjs/renderer/GraphiteCanvas.web.js +0 -13
  206. package/lib/commonjs/renderer/GraphiteCanvas.web.js.map +0 -1
  207. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.d.ts +0 -10
  208. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.js +0 -12
  209. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.js.map +0 -1
  210. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.web.d.ts +0 -9
  211. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.web.js +0 -28
  212. package/lib/commonjs/specs/SkiaGraphiteViewNativeComponent.web.js.map +0 -1
  213. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +0 -1
  214. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +0 -10
  215. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js +0 -29
  216. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js.map +0 -1
  217. package/lib/commonjs/views/SkiaGraphiteView.web.d.ts +0 -14
  218. package/lib/commonjs/views/SkiaGraphiteView.web.js.map +0 -1
  219. package/lib/commonjs/views/SkiaPictureView.web.d.ts +0 -11
  220. package/lib/commonjs/views/SkiaPictureView.web.js +0 -165
  221. package/lib/commonjs/views/SkiaPictureView.web.js.map +0 -1
  222. package/lib/module/renderer/DefaultCanvas.d.ts +0 -8
  223. package/lib/module/renderer/DefaultCanvas.js +0 -34
  224. package/lib/module/renderer/DefaultCanvas.js.map +0 -1
  225. package/lib/module/renderer/GraphiteCanvas.d.ts +0 -22
  226. package/lib/module/renderer/GraphiteCanvas.js +0 -57
  227. package/lib/module/renderer/GraphiteCanvas.js.map +0 -1
  228. package/lib/module/renderer/GraphiteCanvas.web.d.ts +0 -1
  229. package/lib/module/renderer/GraphiteCanvas.web.js +0 -4
  230. package/lib/module/renderer/GraphiteCanvas.web.js.map +0 -1
  231. package/lib/module/specs/SkiaGraphiteViewNativeComponent.d.ts +0 -10
  232. package/lib/module/specs/SkiaGraphiteViewNativeComponent.js +0 -8
  233. package/lib/module/specs/SkiaGraphiteViewNativeComponent.js.map +0 -1
  234. package/lib/module/specs/SkiaGraphiteViewNativeComponent.web.d.ts +0 -9
  235. package/lib/module/specs/SkiaGraphiteViewNativeComponent.web.js +0 -22
  236. package/lib/module/specs/SkiaGraphiteViewNativeComponent.web.js.map +0 -1
  237. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +0 -1
  238. package/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +0 -10
  239. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js +0 -23
  240. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js.map +0 -1
  241. package/lib/module/views/SkiaGraphiteView.web.d.ts +0 -14
  242. package/lib/module/views/SkiaGraphiteView.web.js.map +0 -1
  243. package/lib/module/views/SkiaPictureView.web.d.ts +0 -11
  244. package/lib/module/views/SkiaPictureView.web.js +0 -156
  245. package/lib/module/views/SkiaPictureView.web.js.map +0 -1
  246. package/lib/typescript/src/renderer/DefaultCanvas.d.ts +0 -8
  247. package/lib/typescript/src/renderer/GraphiteCanvas.d.ts +0 -22
  248. package/lib/typescript/src/renderer/GraphiteCanvas.web.d.ts +0 -1
  249. package/lib/typescript/src/specs/SkiaGraphiteViewNativeComponent.d.ts +0 -10
  250. package/lib/typescript/src/specs/SkiaGraphiteViewNativeComponent.web.d.ts +0 -9
  251. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.web.d.ts +0 -10
  252. package/lib/typescript/src/views/SkiaGraphiteView.web.d.ts +0 -14
  253. package/lib/typescript/src/views/SkiaPictureView.web.d.ts +0 -11
  254. package/libs/.graphite +0 -1
  255. package/src/renderer/DefaultCanvas.tsx +0 -41
  256. package/src/renderer/GraphiteCanvas.tsx +0 -61
  257. package/src/renderer/GraphiteCanvas.web.tsx +0 -3
  258. package/src/specs/SkiaGraphiteViewNativeComponent.ts +0 -17
  259. package/src/specs/SkiaGraphiteViewNativeComponent.web.ts +0 -31
  260. package/src/views/SkiaPictureView.web.tsx +0 -224
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import type { CanvasProps } from "./Canvas";
3
- /**
4
- * `<Canvas>` renders {@link GraphiteCanvas} when React Native Skia is
5
- * configured with the Graphite backend (install-skia-graphite), and the
6
- * picture view based canvas otherwise. Both take the same props and ref.
7
- */
8
- export declare const Canvas: (props: CanvasProps) => React.JSX.Element;
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Canvas = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _skia = require("../skia");
9
- var _Platform = require("../Platform");
10
- var _Canvas = require("./Canvas");
11
- var _GraphiteCanvas = require("./GraphiteCanvas");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- let useGraphite = null;
14
-
15
- // Whether this build runs the Graphite backend. Resolved on the first render
16
- // (the native API is installed by then) and cached: getNativeDevice() throws
17
- // on Ganesh builds. On the web, GraphiteCanvas is the regular canvas anyway.
18
- const hasGraphite = () => {
19
- if (useGraphite === null) {
20
- if (_Platform.Platform.OS === "web") {
21
- useGraphite = false;
22
- } else {
23
- try {
24
- useGraphite = typeof _skia.Skia.getNativeDevice() === "bigint";
25
- } catch {
26
- useGraphite = false;
27
- }
28
- }
29
- }
30
- return useGraphite;
31
- };
32
-
33
- /**
34
- * `<Canvas>` renders {@link GraphiteCanvas} when React Native Skia is
35
- * configured with the Graphite backend (install-skia-graphite), and the
36
- * picture view based canvas otherwise. Both take the same props and ref.
37
- */
38
- const Canvas = props => {
39
- return hasGraphite() ? /*#__PURE__*/_react.default.createElement(_GraphiteCanvas.GraphiteCanvas, props) : /*#__PURE__*/_react.default.createElement(_Canvas.Canvas, props);
40
- };
41
- exports.Canvas = Canvas;
42
- //# sourceMappingURL=DefaultCanvas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_skia","_Platform","_Canvas","_GraphiteCanvas","e","__esModule","default","useGraphite","hasGraphite","Platform","OS","Skia","getNativeDevice","Canvas","props","createElement","GraphiteCanvas","exports"],"sources":["DefaultCanvas.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Skia } from \"../skia\";\nimport { Platform } from \"../Platform\";\n\nimport type { CanvasProps } from \"./Canvas\";\nimport { Canvas as PictureCanvas } from \"./Canvas\";\nimport { GraphiteCanvas } from \"./GraphiteCanvas\";\n\nlet useGraphite: boolean | null = null;\n\n// Whether this build runs the Graphite backend. Resolved on the first render\n// (the native API is installed by then) and cached: getNativeDevice() throws\n// on Ganesh builds. On the web, GraphiteCanvas is the regular canvas anyway.\nconst hasGraphite = () => {\n if (useGraphite === null) {\n if (Platform.OS === \"web\") {\n useGraphite = false;\n } else {\n try {\n useGraphite = typeof Skia.getNativeDevice() === \"bigint\";\n } catch {\n useGraphite = false;\n }\n }\n }\n return useGraphite;\n};\n\n/**\n * `<Canvas>` renders {@link GraphiteCanvas} when React Native Skia is\n * configured with the Graphite backend (install-skia-graphite), and the\n * picture view based canvas otherwise. Both take the same props and ref.\n */\nexport const Canvas = (props: CanvasProps) => {\n return hasGraphite() ? (\n <GraphiteCanvas {...props} />\n ) : (\n <PictureCanvas {...props} />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAAkD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElD,IAAIG,WAA2B,GAAG,IAAI;;AAEtC;AACA;AACA;AACA,MAAMC,WAAW,GAAGA,CAAA,KAAM;EACxB,IAAID,WAAW,KAAK,IAAI,EAAE;IACxB,IAAIE,kBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBH,WAAW,GAAG,KAAK;IACrB,CAAC,MAAM;MACL,IAAI;QACFA,WAAW,GAAG,OAAOI,UAAI,CAACC,eAAe,CAAC,CAAC,KAAK,QAAQ;MAC1D,CAAC,CAAC,MAAM;QACNL,WAAW,GAAG,KAAK;MACrB;IACF;EACF;EACA,OAAOA,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMM,MAAM,GAAIC,KAAkB,IAAK;EAC5C,OAAON,WAAW,CAAC,CAAC,gBAClBX,MAAA,CAAAS,OAAA,CAAAS,aAAA,CAACZ,eAAA,CAAAa,cAAc,EAAKF,KAAQ,CAAC,gBAE7BjB,MAAA,CAAAS,OAAA,CAAAS,aAAA,CAACb,OAAA,CAAAW,MAAa,EAAKC,KAAQ,CAC5B;AACH,CAAC;AAACG,OAAA,CAAAJ,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -1,22 +0,0 @@
1
- import React from "react";
2
- import type { CanvasProps } from "./Canvas";
3
- /**
4
- * The declarative canvas on the Graphite view. It takes the same props and
5
- * exposes the same ref as {@link Canvas}, and draws the same children, but
6
- * the frames are produced differently:
7
- *
8
- * - the JS thread records the scene graph into a native recorder once per
9
- * React commit and hands it to the view;
10
- * - the Reanimated UI runtime only reads the shared values into it (the one
11
- * step that needs a JS runtime), it never replays anything;
12
- * - a dedicated native thread pool replays the recorder into a Graphite
13
- * recording whenever the content changed, at most once per presented frame;
14
- * - the view presents the recording on the next vsync.
15
- *
16
- * Neither the JS thread nor the UI thread pays for drawing. It requires the
17
- * Graphite backend (install-skia-graphite); with the default backend the view
18
- * renders nothing. `colorSpace`, `android` and `androidWarmup` are accepted
19
- * for API compatibility and ignored: the Graphite view renders in sRGB and
20
- * uses its own backing view.
21
- */
22
- export declare const GraphiteCanvas: ({ debug, opaque, children, onSize, colorSpace, highBitDepth, androidWarmup, android, ref, onLayout, ...viewProps }: CanvasProps) => React.JSX.Element;
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.GraphiteCanvas = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _SkiaGraphiteViewNativeComponent = _interopRequireDefault(require("../specs/SkiaGraphiteViewNativeComponent"));
9
- var _Canvas = require("./Canvas");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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
- /**
13
- * The declarative canvas on the Graphite view. It takes the same props and
14
- * exposes the same ref as {@link Canvas}, and draws the same children, but
15
- * the frames are produced differently:
16
- *
17
- * - the JS thread records the scene graph into a native recorder once per
18
- * React commit and hands it to the view;
19
- * - the Reanimated UI runtime only reads the shared values into it (the one
20
- * step that needs a JS runtime), it never replays anything;
21
- * - a dedicated native thread pool replays the recorder into a Graphite
22
- * recording whenever the content changed, at most once per presented frame;
23
- * - the view presents the recording on the next vsync.
24
- *
25
- * Neither the JS thread nor the UI thread pays for drawing. It requires the
26
- * Graphite backend (install-skia-graphite); with the default backend the view
27
- * renders nothing. `colorSpace`, `android` and `androidWarmup` are accepted
28
- * for API compatibility and ignored: the Graphite view renders in sRGB and
29
- * uses its own backing view.
30
- */
31
- const GraphiteCanvas = ({
32
- debug,
33
- opaque,
34
- children,
35
- onSize,
36
- colorSpace,
37
- highBitDepth = false,
38
- androidWarmup,
39
- android,
40
- ref,
41
- onLayout,
42
- ...viewProps
43
- }) => {
44
- const {
45
- nativeId,
46
- viewRef
47
- } = (0, _Canvas.useCanvasRoot)({
48
- children,
49
- onSize,
50
- ref,
51
- onLayout
52
- });
53
- return /*#__PURE__*/_react.default.createElement(_SkiaGraphiteViewNativeComponent.default, _extends({
54
- ref: viewRef,
55
- collapsable: false,
56
- nativeID: `${nativeId}`,
57
- debug: debug,
58
- opaque: opaque,
59
- highBitDepth: highBitDepth,
60
- onLayout: onLayout
61
- }, viewProps));
62
- };
63
- exports.GraphiteCanvas = GraphiteCanvas;
64
- //# sourceMappingURL=GraphiteCanvas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_SkiaGraphiteViewNativeComponent","_Canvas","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","GraphiteCanvas","debug","opaque","children","onSize","colorSpace","highBitDepth","androidWarmup","android","ref","onLayout","viewProps","nativeId","viewRef","useCanvasRoot","createElement","collapsable","nativeID","exports"],"sources":["GraphiteCanvas.tsx"],"sourcesContent":["import React from \"react\";\n\nimport SkiaGraphiteViewNativeComponent from \"../specs/SkiaGraphiteViewNativeComponent\";\n\nimport type { CanvasProps } from \"./Canvas\";\nimport { useCanvasRoot } from \"./Canvas\";\n\n/**\n * The declarative canvas on the Graphite view. It takes the same props and\n * exposes the same ref as {@link Canvas}, and draws the same children, but\n * the frames are produced differently:\n *\n * - the JS thread records the scene graph into a native recorder once per\n * React commit and hands it to the view;\n * - the Reanimated UI runtime only reads the shared values into it (the one\n * step that needs a JS runtime), it never replays anything;\n * - a dedicated native thread pool replays the recorder into a Graphite\n * recording whenever the content changed, at most once per presented frame;\n * - the view presents the recording on the next vsync.\n *\n * Neither the JS thread nor the UI thread pays for drawing. It requires the\n * Graphite backend (install-skia-graphite); with the default backend the view\n * renders nothing. `colorSpace`, `android` and `androidWarmup` are accepted\n * for API compatibility and ignored: the Graphite view renders in sRGB and\n * uses its own backing view.\n */\nexport const GraphiteCanvas = ({\n debug,\n opaque,\n children,\n onSize,\n\n colorSpace,\n highBitDepth = false,\n\n androidWarmup,\n\n android,\n ref,\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n const { nativeId, viewRef } = useCanvasRoot({\n children,\n onSize,\n ref,\n onLayout,\n });\n return (\n <SkiaGraphiteViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n highBitDepth={highBitDepth}\n onLayout={onLayout}\n {...viewProps}\n />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,gCAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AAAyC,SAAAD,uBAAAI,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;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,cAAc,GAAGA,CAAC;EAC7BC,KAAK;EACLC,MAAM;EACNC,QAAQ;EACRC,MAAM;EAENC,UAAU;EACVC,YAAY,GAAG,KAAK;EAEpBC,aAAa;EAEbC,OAAO;EACPC,GAAG;EACHC,QAAQ;EACR,GAAGC;AACQ,CAAC,KAAK;EACjB,MAAM;IAAEC,QAAQ;IAAEC;EAAQ,CAAC,GAAG,IAAAC,qBAAa,EAAC;IAC1CX,QAAQ;IACRC,MAAM;IACNK,GAAG;IACHC;EACF,CAAC,CAAC;EACF,oBACE9B,MAAA,CAAAO,OAAA,CAAA4B,aAAA,CAAChC,gCAAA,CAAAI,OAA+B,EAAAC,QAAA;IAC9BqB,GAAG,EAAEI,OAAQ;IACbG,WAAW,EAAE,KAAM;IACnBC,QAAQ,EAAE,GAAGL,QAAQ,EAAG;IACxBX,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfI,YAAY,EAAEA,YAAa;IAC3BI,QAAQ,EAAEA;EAAS,GACfC,SAAS,CACd,CAAC;AAEN,CAAC;AAACO,OAAA,CAAAlB,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- export { Canvas as GraphiteCanvas } from "./Canvas";
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "GraphiteCanvas", {
7
- enumerable: true,
8
- get: function () {
9
- return _Canvas.Canvas;
10
- }
11
- });
12
- var _Canvas = require("./Canvas");
13
- //# sourceMappingURL=GraphiteCanvas.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_Canvas","require"],"sources":["GraphiteCanvas.web.tsx"],"sourcesContent":["// The Graphite view is native only: on the web, GraphiteCanvas is the regular\n// Canvas.\nexport { Canvas as GraphiteCanvas } from \"./Canvas\";\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import { type ViewProps } from "react-native";
2
- import type { WithDefault } from "react-native/Libraries/Types/CodegenTypes";
3
- export interface NativeProps extends ViewProps {
4
- debug?: boolean;
5
- opaque?: boolean;
6
- highBitDepth?: boolean;
7
- pointerEvents?: WithDefault<"auto" | "none" | "box-none" | "box-only", "auto">;
8
- }
9
- declare const _default: import("react-native").HostComponent<NativeProps>;
10
- export default _default;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _reactNative = require("react-native");
8
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
9
- // @ts-ignore - pointerEvents needs to be redeclared for codegen to generate native bindings
10
- // eslint-disable-next-line import/no-default-export
11
- var _default = exports.default = (0, _reactNative.codegenNativeComponent)("SkiaGraphiteView");
12
- //# sourceMappingURL=SkiaGraphiteViewNativeComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","codegenNativeComponent"],"sources":["SkiaGraphiteViewNativeComponent.ts"],"sourcesContent":["import { codegenNativeComponent, type ViewProps } from \"react-native\";\nimport type { WithDefault } from \"react-native/Libraries/Types/CodegenTypes\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore - pointerEvents needs to be redeclared for codegen to generate native bindings\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n highBitDepth?: boolean;\n pointerEvents?: WithDefault<\n \"auto\" | \"none\" | \"box-none\" | \"box-only\",\n \"auto\"\n >;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaGraphiteView\");\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AAWA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAAC,mCAAsB,EAAc,kBAAkB,CAAC","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- export interface NativeProps extends ViewProps {
3
- debug?: boolean;
4
- opaque?: boolean;
5
- highBitDepth?: boolean;
6
- nativeID: string;
7
- }
8
- declare const SkiaGraphiteViewNativeComponent: ({ nativeID, debug, opaque, highBitDepth, onLayout, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("../views/SkiaGraphiteView.web").SkiaGraphiteViewProps>;
9
- export default SkiaGraphiteViewNativeComponent;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _SkiaGraphiteView = require("../views/SkiaGraphiteView.web");
9
- const SkiaGraphiteViewNativeComponent = ({
10
- nativeID,
11
- debug,
12
- opaque,
13
- highBitDepth,
14
- onLayout,
15
- ...viewProps
16
- }) => {
17
- return /*#__PURE__*/(0, _react.createElement)(_SkiaGraphiteView.SkiaGraphiteView, {
18
- nativeID,
19
- debug,
20
- opaque,
21
- highBitDepth,
22
- onLayout,
23
- ...viewProps
24
- });
25
- };
26
- // eslint-disable-next-line import/no-default-export
27
- var _default = exports.default = SkiaGraphiteViewNativeComponent;
28
- //# sourceMappingURL=SkiaGraphiteViewNativeComponent.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_SkiaGraphiteView","SkiaGraphiteViewNativeComponent","nativeID","debug","opaque","highBitDepth","onLayout","viewProps","createElement","SkiaGraphiteView","_default","exports","default"],"sources":["SkiaGraphiteViewNativeComponent.web.ts"],"sourcesContent":["import type { ViewProps } from \"react-native\";\nimport { createElement } from \"react\";\n\nimport { SkiaGraphiteView } from \"../views/SkiaGraphiteView.web\";\n\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n highBitDepth?: boolean;\n nativeID: string;\n}\n\nconst SkiaGraphiteViewNativeComponent = ({\n nativeID,\n debug,\n opaque,\n highBitDepth,\n onLayout,\n ...viewProps\n}: NativeProps) => {\n return createElement(SkiaGraphiteView, {\n nativeID,\n debug,\n opaque,\n highBitDepth,\n onLayout,\n ...viewProps,\n });\n};\n// eslint-disable-next-line import/no-default-export\nexport default SkiaGraphiteViewNativeComponent;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AASA,MAAME,+BAA+B,GAAGA,CAAC;EACvCC,QAAQ;EACRC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACR,GAAGC;AACQ,CAAC,KAAK;EACjB,oBAAO,IAAAC,oBAAa,EAACC,kCAAgB,EAAE;IACrCP,QAAQ;IACRC,KAAK;IACLC,MAAM;IACNC,YAAY;IACZC,QAAQ;IACR,GAAGC;EACL,CAAC,CAAC;AACJ,CAAC;AACD;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACeX,+BAA+B","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","codegenNativeComponent"],"sources":["SkiaPictureViewNativeComponent.ts"],"sourcesContent":["import { codegenNativeComponent, type ViewProps } from \"react-native\";\nimport type { WithDefault } from \"react-native/Libraries/Types/CodegenTypes\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore - pointerEvents needs to be redeclared for codegen to generate native bindings\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n colorSpace?: string;\n highBitDepth?: boolean;\n androidWarmup?: boolean;\n androidSurfaceType?: WithDefault<\n \"auto\" | \"SurfaceView\" | \"TextureView\",\n \"auto\"\n >;\n androidZOrderOnTop?: WithDefault<boolean, false>;\n pointerEvents?: WithDefault<\n \"auto\" | \"none\" | \"box-none\" | \"box-only\",\n \"auto\"\n >;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaPictureView\");\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AAkBA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAAC,mCAAsB,EAAc,iBAAiB,CAAC","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- export interface NativeProps extends ViewProps {
3
- debug?: boolean;
4
- opaque?: boolean;
5
- nativeID: string;
6
- androidSurfaceType?: "auto" | "SurfaceView" | "TextureView";
7
- androidZOrderOnTop?: boolean;
8
- }
9
- declare const SkiaPictureViewNativeComponent: ({ nativeID, debug, opaque, onLayout, androidSurfaceType: _androidSurfaceType, androidZOrderOnTop: _androidZOrderOnTop, ...viewProps }: NativeProps) => import("react").FunctionComponentElement<import("../views/SkiaPictureView.web").SkiaPictureViewProps>;
10
- export default SkiaPictureViewNativeComponent;
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _SkiaPictureView = require("../views/SkiaPictureView.web");
9
- const SkiaPictureViewNativeComponent = ({
10
- nativeID,
11
- debug,
12
- opaque,
13
- onLayout,
14
- // Android-only, never reaches the DOM
15
- androidSurfaceType: _androidSurfaceType,
16
- androidZOrderOnTop: _androidZOrderOnTop,
17
- ...viewProps
18
- }) => {
19
- return /*#__PURE__*/(0, _react.createElement)(_SkiaPictureView.SkiaPictureView, {
20
- nativeID,
21
- debug,
22
- opaque,
23
- onLayout,
24
- ...viewProps
25
- });
26
- };
27
- // eslint-disable-next-line import/no-default-export
28
- var _default = exports.default = SkiaPictureViewNativeComponent;
29
- //# sourceMappingURL=SkiaPictureViewNativeComponent.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_SkiaPictureView","SkiaPictureViewNativeComponent","nativeID","debug","opaque","onLayout","androidSurfaceType","_androidSurfaceType","androidZOrderOnTop","_androidZOrderOnTop","viewProps","createElement","SkiaPictureView","_default","exports","default"],"sources":["SkiaPictureViewNativeComponent.web.ts"],"sourcesContent":["import type { ViewProps } from \"react-native\";\nimport { createElement } from \"react\";\n\nimport { SkiaPictureView } from \"../views/SkiaPictureView.web\";\n\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n nativeID: string;\n androidSurfaceType?: \"auto\" | \"SurfaceView\" | \"TextureView\";\n androidZOrderOnTop?: boolean;\n}\n\nconst SkiaPictureViewNativeComponent = ({\n nativeID,\n debug,\n opaque,\n onLayout,\n // Android-only, never reaches the DOM\n androidSurfaceType: _androidSurfaceType,\n androidZOrderOnTop: _androidZOrderOnTop,\n ...viewProps\n}: NativeProps) => {\n return createElement(SkiaPictureView, {\n nativeID,\n debug,\n opaque,\n onLayout,\n ...viewProps,\n });\n};\n// eslint-disable-next-line import/no-default-export\nexport default SkiaPictureViewNativeComponent;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAUA,MAAME,8BAA8B,GAAGA,CAAC;EACtCC,QAAQ;EACRC,KAAK;EACLC,MAAM;EACNC,QAAQ;EACR;EACAC,kBAAkB,EAAEC,mBAAmB;EACvCC,kBAAkB,EAAEC,mBAAmB;EACvC,GAAGC;AACQ,CAAC,KAAK;EACjB,oBAAO,IAAAC,oBAAa,EAACC,gCAAe,EAAE;IACpCV,QAAQ;IACRC,KAAK;IACLC,MAAM;IACNC,QAAQ;IACR,GAAGK;EACL,CAAC,CAAC;AACJ,CAAC;AACD;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACed,8BAA8B","ignoreList":[]}
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import type { SkGraphiteContext } from "../skia/types";
3
- import type { SkiaGraphiteViewNativeProps } from "./types";
4
- export interface SkiaGraphiteViewRef {
5
- /**
6
- * The recording side of the view. Call it once the view is mounted.
7
- */
8
- getContext(): SkGraphiteContext;
9
- getNativeId(): number;
10
- }
11
- export interface SkiaGraphiteViewProps extends SkiaGraphiteViewNativeProps {
12
- ref?: React.Ref<SkiaGraphiteViewRef>;
13
- }
14
- export declare const SkiaGraphiteView: (props: SkiaGraphiteViewProps) => React.JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkPictureRecorder","_Platform","_SkiaViewNativeId","_SkiaWebRenderer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","WebGraphiteRecording","constructor","picture","retain","holds","release","disposed","dispose","WebGraphiteContext","target","width","getSize","height","beginRecording","recorder","Error","JsiSkPictureRecorder","CanvasKit","PictureRecorder","x","y","finishRecording","finishRecordingAsPicture","submit","recording","SkiaGraphiteView","props","ref","onLayout","canvasRef","useRef","queueRef","shownRef","flushScheduledRef","nativeId","useMemo","nativeID","undefined","SkiaViewNativeId","current","isStatic","__destroyWebGLContextAfterRender","present","useCallback","renderer","frame","draw","map","previous","forEach","paint","rendererRef","useSkiaWebRenderer","flush","push","queueMicrotask","_canvasRef$current","_canvasRef$current2","clientWidth","clientHeight","getContext","redraw","makeImageSnapshot","rect","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","window","scrollX","scrollY","measureInWindow","useImperativeHandle","getNativeId","useEffect","api","global","SkiaViewApi","registerView","unregisterView","debug","_debug","opaque","_opaque","highBitDepth","_highBitDepth","_ref","_onLayout","_nativeID","_isStatic","viewProps","createElement","Platform","View","key","style","display","exports"],"sources":["SkiaGraphiteView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\n\nimport type {\n SkCanvas,\n SkGraphiteContext,\n SkGraphiteRecording,\n SkImage,\n SkPicture,\n SkRect,\n} from \"../skia/types\";\nimport { JsiSkPictureRecorder } from \"../skia/web/JsiSkPictureRecorder\";\nimport { Platform } from \"../Platform\";\nimport type {\n ISkiaViewApiWeb,\n SkiaGraphiteViewHandle,\n} from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaGraphiteViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\nimport { useSkiaWebRenderer } from \"./SkiaWebRenderer\";\nimport type { Renderer } from \"./SkiaWebRenderer\";\n\n// The web has no Graphite: a recording is an SkPicture, replayed onto the\n// view's WebGL surface by the same renderer as SkiaPictureView (with its\n// context-loss handling and the destroy-context-after-render mode). Frames\n// keep their native semantics, presented in submission order and never\n// dropped, with one difference: the surface starts cleared on every frame,\n// so a recording draws the whole frame rather than a delta.\n\nexport interface SkiaGraphiteViewRef {\n /**\n * The recording side of the view. Call it once the view is mounted.\n */\n getContext(): SkGraphiteContext;\n getNativeId(): number;\n}\n\nexport interface SkiaGraphiteViewProps extends SkiaGraphiteViewNativeProps {\n ref?: React.Ref<SkiaGraphiteViewRef>;\n}\n\n/**\n * A frame recorded on the web. The view holds it while it is queued or on\n * screen: disposing it then only marks it, the picture is deleted once the\n * view lets go of it.\n */\nclass WebGraphiteRecording implements SkGraphiteRecording {\n readonly __typename__ = \"GraphiteRecording\" as const;\n private holds = 0;\n private disposed = false;\n\n constructor(readonly picture: SkPicture) {}\n\n retain() {\n this.holds++;\n }\n\n release() {\n this.holds--;\n if (this.disposed && this.holds === 0) {\n this.picture.dispose();\n }\n }\n\n dispose() {\n if (this.disposed) {\n return;\n }\n this.disposed = true;\n if (this.holds === 0) {\n this.picture.dispose();\n }\n }\n\n [Symbol.dispose]() {\n this.dispose();\n }\n}\n\ninterface RecordingTarget {\n getSize(): { width: number; height: number };\n submit(recording: WebGraphiteRecording): void;\n}\n\nclass WebGraphiteContext implements SkGraphiteContext {\n readonly __typename__ = \"GraphiteContext\" as const;\n private recorder: JsiSkPictureRecorder | null = null;\n\n constructor(private readonly target: RecordingTarget) {}\n\n get width() {\n return this.target.getSize().width;\n }\n\n get height() {\n return this.target.getSize().height;\n }\n\n beginRecording(): SkCanvas {\n if (this.recorder) {\n throw new Error(\n \"SkiaGraphiteView: a recording is already open, call finishRecording() first.\"\n );\n }\n const { width, height } = this.target.getSize();\n if (width <= 0 || height <= 0) {\n throw new Error(\"SkiaGraphiteView: the view has no size yet.\");\n }\n this.recorder = new JsiSkPictureRecorder(\n CanvasKit,\n new CanvasKit.PictureRecorder()\n );\n return this.recorder.beginRecording({ x: 0, y: 0, width, height });\n }\n\n finishRecording(): SkGraphiteRecording {\n if (!this.recorder) {\n throw new Error(\n \"SkiaGraphiteView: no recording is open, call beginRecording() first.\"\n );\n }\n const picture = this.recorder.finishRecordingAsPicture();\n this.recorder.dispose();\n this.recorder = null;\n return new WebGraphiteRecording(picture);\n }\n\n submit(recording: SkGraphiteRecording) {\n if (!(recording instanceof WebGraphiteRecording)) {\n throw new Error(\n \"SkiaGraphiteView: submit() expects a recording from finishRecording().\"\n );\n }\n this.target.submit(recording);\n }\n\n dispose() {}\n\n [Symbol.dispose]() {}\n}\n\nexport const SkiaGraphiteView = (props: SkiaGraphiteViewProps) => {\n const { ref, onLayout } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n // Recordings submitted since the last frame, in order, and the frame on\n // screen, replayed when the surface is recreated.\n const queueRef = useRef<WebGraphiteRecording[]>([]);\n const shownRef = useRef<WebGraphiteRecording[]>([]);\n const flushScheduledRef = useRef(false);\n const nativeId = useMemo(\n () =>\n props.nativeID !== undefined\n ? Number(props.nativeID)\n : SkiaViewNativeId.current++,\n [props.nativeID]\n );\n\n const isStatic = props.__destroyWebGLContextAfterRender === true;\n\n // Presents what was submitted since the last frame. A frame that cannot be\n // painted yet (unmeasured canvas, lost context) stays queued for the next\n // opportunity.\n const present = useCallback((renderer: Renderer) => {\n const frame = queueRef.current;\n if (frame.length === 0) {\n return;\n }\n queueRef.current = [];\n if (!renderer.draw(frame.map((recording) => recording.picture))) {\n queueRef.current = frame;\n return;\n }\n const previous = shownRef.current;\n shownRef.current = frame;\n previous.forEach((recording) => recording.release());\n }, []);\n\n const paint = useCallback(\n (renderer: Renderer) => {\n if (queueRef.current.length > 0) {\n present(renderer);\n } else if (shownRef.current.length > 0) {\n renderer.draw(shownRef.current.map((recording) => recording.picture));\n }\n },\n [present]\n );\n const rendererRef = useSkiaWebRenderer(canvasRef, isStatic, {\n paint,\n onLayout,\n });\n\n const flush = useCallback(() => {\n flushScheduledRef.current = false;\n if (rendererRef.current) {\n present(rendererRef.current);\n }\n }, [present, rendererRef]);\n\n // Frames are presented from a microtask rather than an animation frame:\n // the browser composites once per frame either way, and painting right\n // away keeps a frame recorded inside an animation callback from slipping\n // to the next one (see SkiaPictureView.web).\n const submit = useCallback(\n (recording: WebGraphiteRecording) => {\n recording.retain();\n queueRef.current.push(recording);\n if (!flushScheduledRef.current) {\n flushScheduledRef.current = true;\n queueMicrotask(flush);\n }\n },\n [flush]\n );\n\n const getSize = useCallback(\n () => ({\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n }),\n []\n );\n\n const getContext = useCallback(\n (): SkGraphiteContext => new WebGraphiteContext({ getSize, submit }),\n [getSize, submit]\n );\n\n const redraw = useCallback(() => {\n if (rendererRef.current) {\n paint(rendererRef.current);\n }\n }, [paint, rendererRef]);\n\n const makeImageSnapshot = useCallback(\n (rect?: SkRect): SkImage | null => {\n const frame =\n queueRef.current.length > 0 ? queueRef.current : shownRef.current;\n if (!rendererRef.current || frame.length === 0) {\n return null;\n }\n return rendererRef.current.makeImageSnapshot(\n frame.map((recording) => recording.picture),\n rect\n );\n },\n [rendererRef]\n );\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n callback(\n rect.left - parentRect.left,\n rect.top - parentRect.top,\n rect.width,\n rect.height,\n rect.left + window.scrollX,\n rect.top + window.scrollY\n );\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n callback(rect.left, rect.top, rect.width, rect.height);\n }\n },\n []\n );\n\n useImperativeHandle(\n ref,\n () => ({\n getContext,\n getNativeId: () => nativeId,\n }),\n [getContext, nativeId]\n );\n\n useEffect(() => {\n const api = global.SkiaViewApi as ISkiaViewApiWeb;\n api.registerView(`${nativeId}`, {\n getContext,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaGraphiteViewHandle);\n return () => {\n api.unregisterView(`${nativeId}`);\n };\n }, [\n getContext,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n nativeId,\n ]);\n\n // Let go of the recordings the view holds.\n useEffect(\n () => () => {\n queueRef.current.forEach((recording) => recording.release());\n queueRef.current = [];\n shownRef.current.forEach((recording) => recording.release());\n shownRef.current = [];\n },\n []\n );\n\n const {\n debug: _debug,\n opaque: _opaque,\n highBitDepth: _highBitDepth,\n ref: _ref,\n onLayout: _onLayout,\n nativeID: _nativeID,\n __destroyWebGLContextAfterRender: _isStatic,\n ...viewProps\n } = props;\n return (\n <Platform.View nativeID={`${nativeId}`} {...viewProps}>\n <canvas\n // A canvas element is bound to one context kind for life (WebGL for\n // the live renderer, 2D for the static one), so switching renderers\n // needs a fresh element.\n key={isStatic ? \"static\" : \"webgl\"}\n ref={canvasRef}\n style={{ display: \"block\", width: \"100%\", height: \"100%\" }}\n />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import type { SkPicture } from "../skia/types";
3
- import type { SkiaWebViewHandle } from "../specs/NativeSkiaModule.web";
4
- import type { SkiaPictureViewNativeProps } from "./types";
5
- export interface SkiaPictureViewHandle extends SkiaWebViewHandle {
6
- setPicture(picture: SkPicture): void;
7
- }
8
- export interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {
9
- ref?: React.Ref<SkiaPictureViewHandle>;
10
- }
11
- export declare const SkiaPictureView: (props: SkiaPictureViewProps) => React.JSX.Element;
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SkiaPictureView = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _Platform = require("../Platform");
9
- var _SkiaViewNativeId = require("./SkiaViewNativeId");
10
- var _SkiaWebRenderer = require("./SkiaWebRenderer");
11
- 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); }
12
- /* global HTMLCanvasElement */
13
-
14
- const SkiaPictureView = props => {
15
- const {
16
- ref,
17
- picture,
18
- onLayout
19
- } = props;
20
- const canvasRef = (0, _react.useRef)(null);
21
- const pictureRef = (0, _react.useRef)(null);
22
- // Redraw requests coalesce into a single microtask. A microtask (not an
23
- // animation frame) so that a picture produced inside a rAF callback (the
24
- // Reanimated mapper) is drawn before the current frame paints: deferring
25
- // to the next rAF alternates between "flush pending in this frame" and
26
- // "flush scheduled for the next frame", drawing on every other frame
27
- // only and halving the effective frame rate. A picture dispatched before
28
- // the canvas has a size stays in pictureRef (drawing while unmeasured is
29
- // a no-op) and is painted by the resize path once the canvas becomes
30
- // measurable, so it is never lost.
31
- const redrawPendingRef = (0, _react.useRef)(false);
32
- const flushScheduledRef = (0, _react.useRef)(false);
33
- const isStatic = props.__destroyWebGLContextAfterRender === true;
34
- const paint = (0, _react.useCallback)(renderer => {
35
- if (pictureRef.current) {
36
- redrawPendingRef.current = false;
37
- renderer.draw([pictureRef.current]);
38
- }
39
- }, []);
40
- const rendererRef = (0, _SkiaWebRenderer.useSkiaWebRenderer)(canvasRef, isStatic, {
41
- paint,
42
- onLayout
43
- });
44
- const flushRedraw = (0, _react.useCallback)(() => {
45
- flushScheduledRef.current = false;
46
- if (redrawPendingRef.current && rendererRef.current && pictureRef.current) {
47
- redrawPendingRef.current = false;
48
- rendererRef.current.draw([pictureRef.current]);
49
- }
50
- // If the renderer or picture isn't available yet, the request stays
51
- // pending and is flushed by whichever arrives last.
52
- }, [rendererRef]);
53
- const redraw = (0, _react.useCallback)(() => {
54
- redrawPendingRef.current = true;
55
- if (!flushScheduledRef.current) {
56
- flushScheduledRef.current = true;
57
- queueMicrotask(flushRedraw);
58
- }
59
- }, [flushRedraw]);
60
- const getSize = (0, _react.useCallback)(() => {
61
- var _canvasRef$current, _canvasRef$current2;
62
- return {
63
- width: ((_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.clientWidth) || 0,
64
- height: ((_canvasRef$current2 = canvasRef.current) === null || _canvasRef$current2 === void 0 ? void 0 : _canvasRef$current2.clientHeight) || 0
65
- };
66
- }, []);
67
- const setPicture = (0, _react.useCallback)(newPicture => {
68
- pictureRef.current = newPicture;
69
- redraw();
70
- }, [redraw]);
71
- const makeImageSnapshot = (0, _react.useCallback)(rect => {
72
- if (rendererRef.current && pictureRef.current) {
73
- return rendererRef.current.makeImageSnapshot([pictureRef.current], rect);
74
- }
75
- return null;
76
- }, [rendererRef]);
77
- const measure = (0, _react.useCallback)(callback => {
78
- if (canvasRef.current) {
79
- const rect = canvasRef.current.getBoundingClientRect();
80
- const parentElement = canvasRef.current.offsetParent;
81
- const parentRect = (parentElement === null || parentElement === void 0 ? void 0 : parentElement.getBoundingClientRect()) || {
82
- left: 0,
83
- top: 0
84
- };
85
-
86
- // x, y are relative to the parent
87
- const x = rect.left - parentRect.left;
88
- const y = rect.top - parentRect.top;
89
-
90
- // pageX, pageY are absolute screen coordinates
91
- const pageX = rect.left + window.scrollX;
92
- const pageY = rect.top + window.scrollY;
93
- callback(x, y, rect.width, rect.height, pageX, pageY);
94
- }
95
- }, []);
96
- const measureInWindow = (0, _react.useCallback)(callback => {
97
- if (canvasRef.current) {
98
- const rect = canvasRef.current.getBoundingClientRect();
99
-
100
- // x, y are the absolute coordinates in the window
101
- const x = rect.left;
102
- const y = rect.top;
103
- callback(x, y, rect.width, rect.height);
104
- }
105
- }, []);
106
-
107
- // No flush cancellation is needed on unmount: a microtask queued before
108
- // unmount runs within the same task, and flushRedraw no-ops once the
109
- // layout-effect cleanup has nulled rendererRef.
110
-
111
- (0, _react.useImperativeHandle)(ref, () => ({
112
- setPicture,
113
- getSize,
114
- redraw,
115
- makeImageSnapshot,
116
- measure,
117
- measureInWindow,
118
- get canvasRef() {
119
- return () => canvasRef.current;
120
- }
121
- }), [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]);
122
- (0, _react.useEffect)(() => {
123
- var _props$nativeID;
124
- const nativeID = (_props$nativeID = props.nativeID) !== null && _props$nativeID !== void 0 ? _props$nativeID : `${_SkiaViewNativeId.SkiaViewNativeId.current++}`;
125
- const api = global.SkiaViewApi;
126
- api.registerView(nativeID, {
127
- setPicture,
128
- getSize,
129
- redraw,
130
- makeImageSnapshot,
131
- measure,
132
- measureInWindow
133
- });
134
- return () => {
135
- api.unregisterView(nativeID);
136
- };
137
- }, [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow, props.nativeID]);
138
- (0, _react.useEffect)(() => {
139
- if (picture) {
140
- setPicture(picture);
141
- }
142
- }, [setPicture, picture]);
143
- const {
144
- debug: _debug,
145
- ref: _ref,
146
- onLayout: _onLayout,
147
- picture: _picture,
148
- __destroyWebGLContextAfterRender: _isStatic,
149
- ...viewProps
150
- } = props;
151
- return /*#__PURE__*/_react.default.createElement(_Platform.Platform.View, viewProps, /*#__PURE__*/_react.default.createElement("canvas", {
152
- // A canvas element is bound to one context kind for life (WebGL for
153
- // the live renderer, 2D for the static one), so switching renderers
154
- // needs a fresh element.
155
- key: isStatic ? "static" : "webgl",
156
- ref: canvasRef,
157
- style: {
158
- display: "block",
159
- width: "100%",
160
- height: "100%"
161
- }
162
- }));
163
- };
164
- exports.SkiaPictureView = SkiaPictureView;
165
- //# sourceMappingURL=SkiaPictureView.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_Platform","_SkiaViewNativeId","_SkiaWebRenderer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SkiaPictureView","props","ref","picture","onLayout","canvasRef","useRef","pictureRef","redrawPendingRef","flushScheduledRef","isStatic","__destroyWebGLContextAfterRender","paint","useCallback","renderer","current","draw","rendererRef","useSkiaWebRenderer","flushRedraw","redraw","queueMicrotask","getSize","_canvasRef$current","_canvasRef$current2","width","clientWidth","height","clientHeight","setPicture","newPicture","makeImageSnapshot","rect","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","x","y","pageX","window","scrollX","pageY","scrollY","measureInWindow","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","api","global","SkiaViewApi","registerView","unregisterView","debug","_debug","_ref","_onLayout","_picture","_isStatic","viewProps","createElement","Platform","View","key","style","display","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { Platform } from \"../Platform\";\nimport type {\n ISkiaViewApiWeb,\n SkiaWebViewHandle,\n} from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\nimport { useSkiaWebRenderer } from \"./SkiaWebRenderer\";\nimport type { Renderer } from \"./SkiaWebRenderer\";\n\nexport interface SkiaPictureViewHandle extends SkiaWebViewHandle {\n setPicture(picture: SkPicture): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref, picture, onLayout } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const pictureRef = useRef<SkPicture | null>(null);\n // Redraw requests coalesce into a single microtask. A microtask (not an\n // animation frame) so that a picture produced inside a rAF callback (the\n // Reanimated mapper) is drawn before the current frame paints: deferring\n // to the next rAF alternates between \"flush pending in this frame\" and\n // \"flush scheduled for the next frame\", drawing on every other frame\n // only and halving the effective frame rate. A picture dispatched before\n // the canvas has a size stays in pictureRef (drawing while unmeasured is\n // a no-op) and is painted by the resize path once the canvas becomes\n // measurable, so it is never lost.\n const redrawPendingRef = useRef(false);\n const flushScheduledRef = useRef(false);\n\n const isStatic = props.__destroyWebGLContextAfterRender === true;\n\n const paint = useCallback((renderer: Renderer) => {\n if (pictureRef.current) {\n redrawPendingRef.current = false;\n renderer.draw([pictureRef.current]);\n }\n }, []);\n const rendererRef = useSkiaWebRenderer(canvasRef, isStatic, {\n paint,\n onLayout,\n });\n\n const flushRedraw = useCallback(() => {\n flushScheduledRef.current = false;\n if (redrawPendingRef.current && rendererRef.current && pictureRef.current) {\n redrawPendingRef.current = false;\n rendererRef.current.draw([pictureRef.current]);\n }\n // If the renderer or picture isn't available yet, the request stays\n // pending and is flushed by whichever arrives last.\n }, [rendererRef]);\n\n const redraw = useCallback(() => {\n redrawPendingRef.current = true;\n if (!flushScheduledRef.current) {\n flushScheduledRef.current = true;\n queueMicrotask(flushRedraw);\n }\n }, [flushRedraw]);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback(\n (rect?: SkRect): SkImage | null => {\n if (rendererRef.current && pictureRef.current) {\n return rendererRef.current.makeImageSnapshot(\n [pictureRef.current],\n rect\n );\n }\n return null;\n },\n [rendererRef]\n );\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n // No flush cancellation is needed on unmount: a microtask queued before\n // unmount runs within the same task, and flushRedraw no-ops once the\n // layout-effect cleanup has nulled rendererRef.\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n const api = global.SkiaViewApi as ISkiaViewApiWeb;\n api.registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n return () => {\n api.unregisterView(nativeID);\n };\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (picture) {\n setPicture(picture);\n }\n }, [setPicture, picture]);\n\n const {\n debug: _debug,\n ref: _ref,\n onLayout: _onLayout,\n picture: _picture,\n __destroyWebGLContextAfterRender: _isStatic,\n ...viewProps\n } = props;\n return (\n <Platform.View {...viewProps}>\n <canvas\n // A canvas element is bound to one context kind for life (WebGL for\n // the live renderer, 2D for the static one), so switching renderers\n // needs a fresh element.\n key={isStatic ? \"static\" : \"webgl\"}\n ref={canvasRef}\n style={{ display: \"block\", width: \"100%\", height: \"100%\" }}\n />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import type { CanvasProps } from "./Canvas";
3
- /**
4
- * `<Canvas>` renders {@link GraphiteCanvas} when React Native Skia is
5
- * configured with the Graphite backend (install-skia-graphite), and the
6
- * picture view based canvas otherwise. Both take the same props and ref.
7
- */
8
- export declare const Canvas: (props: CanvasProps) => React.JSX.Element;