@shopify/react-native-skia 2.2.18 → 2.2.20

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 (436) hide show
  1. package/android/CMakeLists.txt +2 -0
  2. package/cpp/api/JsiSkCanvas.h +22 -0
  3. package/cpp/api/JsiSkDispatcher.cpp +9 -0
  4. package/cpp/api/JsiSkDispatcher.h +149 -0
  5. package/cpp/api/JsiSkImage.h +27 -9
  6. package/cpp/api/JsiSkPicture.h +22 -1
  7. package/cpp/api/JsiSkSurface.h +15 -10
  8. package/cpp/api/recorder/Drawings.h +64 -51
  9. package/cpp/api/recorder/JsiRecorder.h +3 -1
  10. package/cpp/api/recorder/RNRecorder.h +10 -4
  11. package/cpp/jsi/JsiHostObject.cpp +16 -0
  12. package/jestSetup.js +1 -1
  13. package/lib/commonjs/Platform/Platform.js.map +1 -1
  14. package/lib/commonjs/Platform/Platform.web.js +0 -1
  15. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  16. package/lib/commonjs/animation/functions/interpolate.js +0 -1
  17. package/lib/commonjs/animation/functions/interpolate.js.map +1 -1
  18. package/lib/commonjs/dom/nodes/datatypes/Fitting.js.map +1 -1
  19. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  20. package/lib/commonjs/external/reanimated/textures.js +31 -28
  21. package/lib/commonjs/external/reanimated/textures.js.map +1 -1
  22. package/lib/commonjs/external/reanimated/useVideo.js.map +1 -1
  23. package/lib/commonjs/renderer/Canvas.js +1 -3
  24. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  25. package/lib/commonjs/renderer/Offscreen.js +1 -7
  26. package/lib/commonjs/renderer/Offscreen.js.map +1 -1
  27. package/lib/commonjs/renderer/__tests__/e2e/setup/Paragraph.d.ts +1 -0
  28. package/lib/commonjs/renderer/__tests__/e2e/setup/SVG.d.ts +1 -0
  29. package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
  30. package/lib/commonjs/skia/core/Image.js.map +1 -1
  31. package/lib/commonjs/skia/core/SVG.web.js +9 -2
  32. package/lib/commonjs/skia/core/SVG.web.js.map +1 -1
  33. package/lib/commonjs/skia/types/JsiInstance.d.ts +1 -1
  34. package/lib/commonjs/skia/types/JsiInstance.js.map +1 -1
  35. package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
  36. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  37. package/lib/commonjs/skia/types/Shader/Shader.js +1 -3
  38. package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
  39. package/lib/commonjs/skia/web/CanvasKitWebGLBufferImpl.js.map +1 -1
  40. package/lib/commonjs/skia/web/Host.d.ts +2 -1
  41. package/lib/commonjs/skia/web/Host.js +8 -0
  42. package/lib/commonjs/skia/web/Host.js.map +1 -1
  43. package/lib/commonjs/skia/web/JsiSkAnimatedImage.d.ts +0 -1
  44. package/lib/commonjs/skia/web/JsiSkAnimatedImage.js +0 -6
  45. package/lib/commonjs/skia/web/JsiSkAnimatedImage.js.map +1 -1
  46. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +0 -1
  47. package/lib/commonjs/skia/web/JsiSkCanvas.js +0 -6
  48. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  49. package/lib/commonjs/skia/web/JsiSkColor.js +0 -1
  50. package/lib/commonjs/skia/web/JsiSkColor.js.map +1 -1
  51. package/lib/commonjs/skia/web/JsiSkColorFilter.d.ts +0 -1
  52. package/lib/commonjs/skia/web/JsiSkColorFilter.js +0 -6
  53. package/lib/commonjs/skia/web/JsiSkColorFilter.js.map +1 -1
  54. package/lib/commonjs/skia/web/JsiSkContourMeasure.d.ts +0 -1
  55. package/lib/commonjs/skia/web/JsiSkContourMeasure.js +0 -6
  56. package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
  57. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.d.ts +0 -1
  58. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.js +0 -6
  59. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  60. package/lib/commonjs/skia/web/JsiSkData.d.ts +0 -1
  61. package/lib/commonjs/skia/web/JsiSkData.js +0 -6
  62. package/lib/commonjs/skia/web/JsiSkData.js.map +1 -1
  63. package/lib/commonjs/skia/web/JsiSkDataFactory.js.map +1 -1
  64. package/lib/commonjs/skia/web/JsiSkFont.d.ts +0 -1
  65. package/lib/commonjs/skia/web/JsiSkFont.js +0 -6
  66. package/lib/commonjs/skia/web/JsiSkFont.js.map +1 -1
  67. package/lib/commonjs/skia/web/JsiSkFontMgr.js +1 -1
  68. package/lib/commonjs/skia/web/JsiSkFontMgr.js.map +1 -1
  69. package/lib/commonjs/skia/web/JsiSkImage.d.ts +0 -1
  70. package/lib/commonjs/skia/web/JsiSkImage.js +0 -6
  71. package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
  72. package/lib/commonjs/skia/web/JsiSkImageFilter.d.ts +0 -1
  73. package/lib/commonjs/skia/web/JsiSkImageFilter.js +0 -6
  74. package/lib/commonjs/skia/web/JsiSkImageFilter.js.map +1 -1
  75. package/lib/commonjs/skia/web/JsiSkMaskFilter.d.ts +0 -1
  76. package/lib/commonjs/skia/web/JsiSkMaskFilter.js +0 -6
  77. package/lib/commonjs/skia/web/JsiSkMaskFilter.js.map +1 -1
  78. package/lib/commonjs/skia/web/JsiSkMatrix.d.ts +0 -1
  79. package/lib/commonjs/skia/web/JsiSkMatrix.js +0 -6
  80. package/lib/commonjs/skia/web/JsiSkMatrix.js.map +1 -1
  81. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +0 -1
  82. package/lib/commonjs/skia/web/JsiSkPaint.js +0 -6
  83. package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
  84. package/lib/commonjs/skia/web/JsiSkParagraph.d.ts +0 -1
  85. package/lib/commonjs/skia/web/JsiSkParagraph.js +0 -3
  86. package/lib/commonjs/skia/web/JsiSkParagraph.js.map +1 -1
  87. package/lib/commonjs/skia/web/JsiSkParagraphBuilder.d.ts +0 -1
  88. package/lib/commonjs/skia/web/JsiSkParagraphBuilder.js +0 -3
  89. package/lib/commonjs/skia/web/JsiSkParagraphBuilder.js.map +1 -1
  90. package/lib/commonjs/skia/web/JsiSkPath.d.ts +0 -1
  91. package/lib/commonjs/skia/web/JsiSkPath.js +0 -6
  92. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  93. package/lib/commonjs/skia/web/JsiSkPathEffect.d.ts +0 -1
  94. package/lib/commonjs/skia/web/JsiSkPathEffect.js +0 -6
  95. package/lib/commonjs/skia/web/JsiSkPathEffect.js.map +1 -1
  96. package/lib/commonjs/skia/web/JsiSkPicture.d.ts +0 -1
  97. package/lib/commonjs/skia/web/JsiSkPicture.js +2 -6
  98. package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
  99. package/lib/commonjs/skia/web/JsiSkPictureRecorder.d.ts +0 -1
  100. package/lib/commonjs/skia/web/JsiSkPictureRecorder.js +0 -6
  101. package/lib/commonjs/skia/web/JsiSkPictureRecorder.js.map +1 -1
  102. package/lib/commonjs/skia/web/JsiSkPoint.d.ts +1 -2
  103. package/lib/commonjs/skia/web/JsiSkPoint.js +0 -6
  104. package/lib/commonjs/skia/web/JsiSkPoint.js.map +1 -1
  105. package/lib/commonjs/skia/web/JsiSkRRect.d.ts +2 -2
  106. package/lib/commonjs/skia/web/JsiSkRRect.js +3 -6
  107. package/lib/commonjs/skia/web/JsiSkRRect.js.map +1 -1
  108. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +1 -2
  109. package/lib/commonjs/skia/web/JsiSkRSXform.js +0 -6
  110. package/lib/commonjs/skia/web/JsiSkRSXform.js.map +1 -1
  111. package/lib/commonjs/skia/web/JsiSkRect.d.ts +0 -1
  112. package/lib/commonjs/skia/web/JsiSkRect.js +0 -6
  113. package/lib/commonjs/skia/web/JsiSkRect.js.map +1 -1
  114. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.d.ts +0 -1
  115. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js +0 -6
  116. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  117. package/lib/commonjs/skia/web/JsiSkSVG.d.ts +1 -1
  118. package/lib/commonjs/skia/web/JsiSkSVG.js +5 -8
  119. package/lib/commonjs/skia/web/JsiSkSVG.js.map +1 -1
  120. package/lib/commonjs/skia/web/JsiSkShader.d.ts +0 -1
  121. package/lib/commonjs/skia/web/JsiSkShader.js +0 -6
  122. package/lib/commonjs/skia/web/JsiSkShader.js.map +1 -1
  123. package/lib/commonjs/skia/web/JsiSkSurface.d.ts +1 -1
  124. package/lib/commonjs/skia/web/JsiSkSurface.js +3 -6
  125. package/lib/commonjs/skia/web/JsiSkSurface.js.map +1 -1
  126. package/lib/commonjs/skia/web/JsiSkTextBlob.d.ts +0 -1
  127. package/lib/commonjs/skia/web/JsiSkTextBlob.js +0 -6
  128. package/lib/commonjs/skia/web/JsiSkTextBlob.js.map +1 -1
  129. package/lib/commonjs/skia/web/JsiSkTypeface.d.ts +0 -1
  130. package/lib/commonjs/skia/web/JsiSkTypeface.js +0 -6
  131. package/lib/commonjs/skia/web/JsiSkTypeface.js.map +1 -1
  132. package/lib/commonjs/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -2
  133. package/lib/commonjs/skia/web/JsiSkTypefaceFontProvider.js +0 -12
  134. package/lib/commonjs/skia/web/JsiSkTypefaceFontProvider.js.map +1 -1
  135. package/lib/commonjs/skia/web/JsiSkVertices.d.ts +0 -1
  136. package/lib/commonjs/skia/web/JsiSkVertices.js +0 -6
  137. package/lib/commonjs/skia/web/JsiSkVertices.js.map +1 -1
  138. package/lib/commonjs/skia/web/JsiSkottieAnimation.d.ts +0 -1
  139. package/lib/commonjs/skia/web/JsiSkottieAnimation.js +0 -3
  140. package/lib/commonjs/skia/web/JsiSkottieAnimation.js.map +1 -1
  141. package/lib/commonjs/skia/web/JsiVideo.d.ts +1 -0
  142. package/lib/commonjs/skia/web/JsiVideo.js +4 -1
  143. package/lib/commonjs/skia/web/JsiVideo.js.map +1 -1
  144. package/lib/commonjs/sksg/Container.native.js.map +1 -1
  145. package/lib/commonjs/sksg/Container.web.js.map +1 -1
  146. package/lib/commonjs/sksg/Elements.js.map +1 -1
  147. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  148. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +4 -0
  149. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js +4 -0
  150. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  151. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
  152. package/lib/commonjs/sksg/StaticContainer.js.map +1 -1
  153. package/lib/commonjs/views/SkiaPictureView.web.js +3 -1
  154. package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
  155. package/lib/module/Platform/Platform.js.map +1 -1
  156. package/lib/module/Platform/Platform.web.js +0 -1
  157. package/lib/module/Platform/Platform.web.js.map +1 -1
  158. package/lib/module/animation/functions/interpolate.js +0 -1
  159. package/lib/module/animation/functions/interpolate.js.map +1 -1
  160. package/lib/module/dom/nodes/datatypes/Fitting.js.map +1 -1
  161. package/lib/module/dom/types/Drawings.js.map +1 -1
  162. package/lib/module/external/reanimated/textures.js +33 -30
  163. package/lib/module/external/reanimated/textures.js.map +1 -1
  164. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  165. package/lib/module/renderer/Canvas.js +1 -3
  166. package/lib/module/renderer/Canvas.js.map +1 -1
  167. package/lib/module/renderer/Offscreen.js +1 -8
  168. package/lib/module/renderer/Offscreen.js.map +1 -1
  169. package/lib/module/renderer/__tests__/e2e/setup/Paragraph.d.ts +1 -0
  170. package/lib/module/renderer/__tests__/e2e/setup/SVG.d.ts +1 -0
  171. package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
  172. package/lib/module/skia/core/Image.js.map +1 -1
  173. package/lib/module/skia/core/SVG.web.js +9 -2
  174. package/lib/module/skia/core/SVG.web.js.map +1 -1
  175. package/lib/module/skia/types/JsiInstance.d.ts +1 -1
  176. package/lib/module/skia/types/JsiInstance.js.map +1 -1
  177. package/lib/module/skia/types/Matrix4.js.map +1 -1
  178. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -1
  179. package/lib/module/skia/types/Shader/Shader.js +1 -3
  180. package/lib/module/skia/types/Shader/Shader.js.map +1 -1
  181. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js.map +1 -1
  182. package/lib/module/skia/web/Host.d.ts +2 -1
  183. package/lib/module/skia/web/Host.js +8 -0
  184. package/lib/module/skia/web/Host.js.map +1 -1
  185. package/lib/module/skia/web/JsiSkAnimatedImage.d.ts +0 -1
  186. package/lib/module/skia/web/JsiSkAnimatedImage.js +0 -6
  187. package/lib/module/skia/web/JsiSkAnimatedImage.js.map +1 -1
  188. package/lib/module/skia/web/JsiSkCanvas.d.ts +0 -1
  189. package/lib/module/skia/web/JsiSkCanvas.js +0 -6
  190. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  191. package/lib/module/skia/web/JsiSkColor.js +0 -1
  192. package/lib/module/skia/web/JsiSkColor.js.map +1 -1
  193. package/lib/module/skia/web/JsiSkColorFilter.d.ts +0 -1
  194. package/lib/module/skia/web/JsiSkColorFilter.js +0 -6
  195. package/lib/module/skia/web/JsiSkColorFilter.js.map +1 -1
  196. package/lib/module/skia/web/JsiSkContourMeasure.d.ts +0 -1
  197. package/lib/module/skia/web/JsiSkContourMeasure.js +0 -6
  198. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  199. package/lib/module/skia/web/JsiSkContourMeasureIter.d.ts +0 -1
  200. package/lib/module/skia/web/JsiSkContourMeasureIter.js +0 -6
  201. package/lib/module/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  202. package/lib/module/skia/web/JsiSkData.d.ts +0 -1
  203. package/lib/module/skia/web/JsiSkData.js +0 -6
  204. package/lib/module/skia/web/JsiSkData.js.map +1 -1
  205. package/lib/module/skia/web/JsiSkDataFactory.js.map +1 -1
  206. package/lib/module/skia/web/JsiSkFont.d.ts +0 -1
  207. package/lib/module/skia/web/JsiSkFont.js +0 -6
  208. package/lib/module/skia/web/JsiSkFont.js.map +1 -1
  209. package/lib/module/skia/web/JsiSkFontMgr.js +1 -1
  210. package/lib/module/skia/web/JsiSkFontMgr.js.map +1 -1
  211. package/lib/module/skia/web/JsiSkImage.d.ts +0 -1
  212. package/lib/module/skia/web/JsiSkImage.js +0 -6
  213. package/lib/module/skia/web/JsiSkImage.js.map +1 -1
  214. package/lib/module/skia/web/JsiSkImageFilter.d.ts +0 -1
  215. package/lib/module/skia/web/JsiSkImageFilter.js +0 -6
  216. package/lib/module/skia/web/JsiSkImageFilter.js.map +1 -1
  217. package/lib/module/skia/web/JsiSkMaskFilter.d.ts +0 -1
  218. package/lib/module/skia/web/JsiSkMaskFilter.js +0 -6
  219. package/lib/module/skia/web/JsiSkMaskFilter.js.map +1 -1
  220. package/lib/module/skia/web/JsiSkMatrix.d.ts +0 -1
  221. package/lib/module/skia/web/JsiSkMatrix.js +0 -6
  222. package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
  223. package/lib/module/skia/web/JsiSkPaint.d.ts +0 -1
  224. package/lib/module/skia/web/JsiSkPaint.js +0 -6
  225. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  226. package/lib/module/skia/web/JsiSkParagraph.d.ts +0 -1
  227. package/lib/module/skia/web/JsiSkParagraph.js +0 -3
  228. package/lib/module/skia/web/JsiSkParagraph.js.map +1 -1
  229. package/lib/module/skia/web/JsiSkParagraphBuilder.d.ts +0 -1
  230. package/lib/module/skia/web/JsiSkParagraphBuilder.js +0 -3
  231. package/lib/module/skia/web/JsiSkParagraphBuilder.js.map +1 -1
  232. package/lib/module/skia/web/JsiSkPath.d.ts +0 -1
  233. package/lib/module/skia/web/JsiSkPath.js +0 -6
  234. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  235. package/lib/module/skia/web/JsiSkPathEffect.d.ts +0 -1
  236. package/lib/module/skia/web/JsiSkPathEffect.js +0 -6
  237. package/lib/module/skia/web/JsiSkPathEffect.js.map +1 -1
  238. package/lib/module/skia/web/JsiSkPicture.d.ts +0 -1
  239. package/lib/module/skia/web/JsiSkPicture.js +0 -6
  240. package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
  241. package/lib/module/skia/web/JsiSkPictureRecorder.d.ts +0 -1
  242. package/lib/module/skia/web/JsiSkPictureRecorder.js +0 -6
  243. package/lib/module/skia/web/JsiSkPictureRecorder.js.map +1 -1
  244. package/lib/module/skia/web/JsiSkPoint.d.ts +1 -2
  245. package/lib/module/skia/web/JsiSkPoint.js +0 -6
  246. package/lib/module/skia/web/JsiSkPoint.js.map +1 -1
  247. package/lib/module/skia/web/JsiSkRRect.d.ts +2 -2
  248. package/lib/module/skia/web/JsiSkRRect.js +3 -6
  249. package/lib/module/skia/web/JsiSkRRect.js.map +1 -1
  250. package/lib/module/skia/web/JsiSkRSXform.d.ts +1 -2
  251. package/lib/module/skia/web/JsiSkRSXform.js +0 -6
  252. package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
  253. package/lib/module/skia/web/JsiSkRect.d.ts +0 -1
  254. package/lib/module/skia/web/JsiSkRect.js +0 -6
  255. package/lib/module/skia/web/JsiSkRect.js.map +1 -1
  256. package/lib/module/skia/web/JsiSkRuntimeEffect.d.ts +0 -1
  257. package/lib/module/skia/web/JsiSkRuntimeEffect.js +0 -6
  258. package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  259. package/lib/module/skia/web/JsiSkSVG.d.ts +1 -1
  260. package/lib/module/skia/web/JsiSkSVG.js +5 -8
  261. package/lib/module/skia/web/JsiSkSVG.js.map +1 -1
  262. package/lib/module/skia/web/JsiSkShader.d.ts +0 -1
  263. package/lib/module/skia/web/JsiSkShader.js +0 -6
  264. package/lib/module/skia/web/JsiSkShader.js.map +1 -1
  265. package/lib/module/skia/web/JsiSkSurface.d.ts +1 -1
  266. package/lib/module/skia/web/JsiSkSurface.js +3 -6
  267. package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
  268. package/lib/module/skia/web/JsiSkTextBlob.d.ts +0 -1
  269. package/lib/module/skia/web/JsiSkTextBlob.js +0 -6
  270. package/lib/module/skia/web/JsiSkTextBlob.js.map +1 -1
  271. package/lib/module/skia/web/JsiSkTypeface.d.ts +0 -1
  272. package/lib/module/skia/web/JsiSkTypeface.js +0 -6
  273. package/lib/module/skia/web/JsiSkTypeface.js.map +1 -1
  274. package/lib/module/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -2
  275. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js +0 -12
  276. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js.map +1 -1
  277. package/lib/module/skia/web/JsiSkVertices.d.ts +0 -1
  278. package/lib/module/skia/web/JsiSkVertices.js +0 -6
  279. package/lib/module/skia/web/JsiSkVertices.js.map +1 -1
  280. package/lib/module/skia/web/JsiSkottieAnimation.d.ts +0 -1
  281. package/lib/module/skia/web/JsiSkottieAnimation.js +0 -3
  282. package/lib/module/skia/web/JsiSkottieAnimation.js.map +1 -1
  283. package/lib/module/skia/web/JsiVideo.d.ts +1 -0
  284. package/lib/module/skia/web/JsiVideo.js +4 -1
  285. package/lib/module/skia/web/JsiVideo.js.map +1 -1
  286. package/lib/module/sksg/Container.native.js.map +1 -1
  287. package/lib/module/sksg/Container.web.js.map +1 -1
  288. package/lib/module/sksg/Elements.js.map +1 -1
  289. package/lib/module/sksg/Reconciler.js.map +1 -1
  290. package/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +4 -0
  291. package/lib/module/sksg/Recorder/ReanimatedRecorder.js +5 -0
  292. package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  293. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  294. package/lib/module/sksg/StaticContainer.js.map +1 -1
  295. package/lib/module/views/SkiaPictureView.web.js +3 -1
  296. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  297. package/lib/typescript/eslint.config.d.mts +2 -0
  298. package/lib/typescript/jest.config.d.ts +11 -2
  299. package/lib/typescript/lib/commonjs/skia/web/Host.d.ts +2 -0
  300. package/lib/typescript/lib/commonjs/skia/web/JsiSkFontMgr.d.ts +0 -1
  301. package/lib/typescript/lib/commonjs/skia/web/JsiSkParagraph.d.ts +0 -1
  302. package/lib/typescript/lib/commonjs/skia/web/JsiSkParagraphBuilder.d.ts +0 -1
  303. package/lib/typescript/lib/commonjs/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -1
  304. package/lib/typescript/lib/commonjs/skia/web/JsiSkottieAnimation.d.ts +0 -1
  305. package/lib/typescript/lib/commonjs/skia/web/JsiVideo.d.ts +1 -0
  306. package/lib/typescript/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +4 -0
  307. package/lib/typescript/lib/module/skia/web/Host.d.ts +2 -0
  308. package/lib/typescript/lib/module/skia/web/JsiSkFontMgr.d.ts +0 -1
  309. package/lib/typescript/lib/module/skia/web/JsiSkParagraph.d.ts +0 -1
  310. package/lib/typescript/lib/module/skia/web/JsiSkParagraphBuilder.d.ts +0 -1
  311. package/lib/typescript/lib/module/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -1
  312. package/lib/typescript/lib/module/skia/web/JsiSkottieAnimation.d.ts +0 -1
  313. package/lib/typescript/lib/module/skia/web/JsiVideo.d.ts +1 -0
  314. package/lib/typescript/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +4 -0
  315. package/lib/typescript/src/renderer/__tests__/e2e/setup/Paragraph.d.ts +1 -0
  316. package/lib/typescript/src/renderer/__tests__/e2e/setup/SVG.d.ts +1 -0
  317. package/lib/typescript/src/skia/types/JsiInstance.d.ts +1 -1
  318. package/lib/typescript/src/skia/web/Host.d.ts +2 -1
  319. package/lib/typescript/src/skia/web/JsiSkAnimatedImage.d.ts +0 -1
  320. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +0 -1
  321. package/lib/typescript/src/skia/web/JsiSkColorFilter.d.ts +0 -1
  322. package/lib/typescript/src/skia/web/JsiSkContourMeasure.d.ts +0 -1
  323. package/lib/typescript/src/skia/web/JsiSkContourMeasureIter.d.ts +0 -1
  324. package/lib/typescript/src/skia/web/JsiSkData.d.ts +0 -1
  325. package/lib/typescript/src/skia/web/JsiSkFont.d.ts +0 -1
  326. package/lib/typescript/src/skia/web/JsiSkImage.d.ts +0 -1
  327. package/lib/typescript/src/skia/web/JsiSkImageFilter.d.ts +0 -1
  328. package/lib/typescript/src/skia/web/JsiSkMaskFilter.d.ts +0 -1
  329. package/lib/typescript/src/skia/web/JsiSkMatrix.d.ts +0 -1
  330. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +0 -1
  331. package/lib/typescript/src/skia/web/JsiSkParagraph.d.ts +0 -1
  332. package/lib/typescript/src/skia/web/JsiSkParagraphBuilder.d.ts +0 -1
  333. package/lib/typescript/src/skia/web/JsiSkPath.d.ts +0 -1
  334. package/lib/typescript/src/skia/web/JsiSkPathEffect.d.ts +0 -1
  335. package/lib/typescript/src/skia/web/JsiSkPicture.d.ts +0 -1
  336. package/lib/typescript/src/skia/web/JsiSkPictureRecorder.d.ts +0 -1
  337. package/lib/typescript/src/skia/web/JsiSkPoint.d.ts +1 -2
  338. package/lib/typescript/src/skia/web/JsiSkRRect.d.ts +2 -2
  339. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +1 -2
  340. package/lib/typescript/src/skia/web/JsiSkRect.d.ts +0 -1
  341. package/lib/typescript/src/skia/web/JsiSkRuntimeEffect.d.ts +0 -1
  342. package/lib/typescript/src/skia/web/JsiSkSVG.d.ts +1 -1
  343. package/lib/typescript/src/skia/web/JsiSkShader.d.ts +0 -1
  344. package/lib/typescript/src/skia/web/JsiSkSurface.d.ts +1 -1
  345. package/lib/typescript/src/skia/web/JsiSkTextBlob.d.ts +0 -1
  346. package/lib/typescript/src/skia/web/JsiSkTypeface.d.ts +0 -1
  347. package/lib/typescript/src/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -2
  348. package/lib/typescript/src/skia/web/JsiSkVertices.d.ts +0 -1
  349. package/lib/typescript/src/skia/web/JsiSkottieAnimation.d.ts +0 -1
  350. package/lib/typescript/src/skia/web/JsiVideo.d.ts +1 -0
  351. package/lib/typescript/src/sksg/Recorder/ReanimatedRecorder.d.ts +4 -0
  352. package/package.json +19 -12
  353. package/scripts/setup-canvaskit.js +15 -9
  354. package/src/Platform/Platform.ts +2 -2
  355. package/src/Platform/Platform.web.tsx +0 -1
  356. package/src/__tests__/setup.ts +1 -4
  357. package/src/animation/functions/interpolate.ts +0 -1
  358. package/src/dom/nodes/datatypes/Fitting.ts +1 -1
  359. package/src/dom/types/Drawings.ts +1 -1
  360. package/src/external/reanimated/textures.tsx +36 -27
  361. package/src/external/reanimated/useVideo.ts +1 -1
  362. package/src/renderer/Canvas.tsx +1 -2
  363. package/src/renderer/Offscreen.tsx +1 -7
  364. package/src/renderer/__tests__/FitBox.spec.tsx +0 -1
  365. package/src/renderer/__tests__/Picture.spec.tsx +8 -5
  366. package/src/renderer/__tests__/Surfaces.spec.tsx +11 -16
  367. package/src/renderer/__tests__/documentation/Group.spec.tsx +0 -1
  368. package/src/renderer/__tests__/e2e/AnimatedImages.spec.tsx +0 -1
  369. package/src/renderer/__tests__/e2e/Drawings.spec.tsx +0 -4
  370. package/src/renderer/__tests__/e2e/Group.spec.tsx +0 -1
  371. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +0 -2
  372. package/src/renderer/__tests__/e2e/Paint.spec.tsx +0 -1
  373. package/src/renderer/__tests__/e2e/Paths.spec.tsx +1 -6
  374. package/src/renderer/__tests__/e2e/RuntimeShader.spec.tsx +0 -1
  375. package/src/renderer/__tests__/e2e/Skottie.spec.tsx +6 -6
  376. package/src/renderer/__tests__/e2e/Surfaces.spec.tsx +2 -2
  377. package/src/renderer/__tests__/e2e/TextPath.spec.tsx +0 -2
  378. package/src/renderer/__tests__/e2e/Video.ts +0 -1
  379. package/src/renderer/__tests__/e2e/setup/Paragraph.ts +5 -1
  380. package/src/renderer/__tests__/e2e/setup/SVG.ts +5 -1
  381. package/src/renderer/__tests__/e2e/setup/SkiaObject.ts +1 -1
  382. package/src/renderer/__tests__/setup.tsx +0 -1
  383. package/src/renderer/processors/Animations/Animations.ts +4 -4
  384. package/src/skia/__tests__/Path.spec.ts +1 -3
  385. package/src/skia/core/Image.ts +1 -1
  386. package/src/skia/core/SVG.web.ts +12 -8
  387. package/src/skia/types/JsiInstance.ts +1 -1
  388. package/src/skia/types/Matrix4.ts +4 -4
  389. package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +1 -1
  390. package/src/skia/types/Shader/Shader.ts +0 -1
  391. package/src/skia/web/CanvasKitWebGLBufferImpl.ts +4 -1
  392. package/src/skia/web/Host.ts +14 -1
  393. package/src/skia/web/JsiSkAnimatedImage.ts +0 -4
  394. package/src/skia/web/JsiSkCanvas.ts +0 -4
  395. package/src/skia/web/JsiSkColor.ts +1 -1
  396. package/src/skia/web/JsiSkColorFilter.ts +0 -4
  397. package/src/skia/web/JsiSkContourMeasure.ts +0 -4
  398. package/src/skia/web/JsiSkContourMeasureIter.ts +0 -4
  399. package/src/skia/web/JsiSkData.ts +0 -4
  400. package/src/skia/web/JsiSkDataFactory.ts +1 -1
  401. package/src/skia/web/JsiSkFont.ts +0 -4
  402. package/src/skia/web/JsiSkFontMgr.ts +2 -1
  403. package/src/skia/web/JsiSkImage.ts +0 -4
  404. package/src/skia/web/JsiSkImageFilter.ts +0 -4
  405. package/src/skia/web/JsiSkMaskFilter.ts +0 -4
  406. package/src/skia/web/JsiSkMatrix.ts +2 -6
  407. package/src/skia/web/JsiSkPaint.ts +0 -4
  408. package/src/skia/web/JsiSkParagraph.ts +0 -4
  409. package/src/skia/web/JsiSkParagraphBuilder.ts +0 -4
  410. package/src/skia/web/JsiSkPath.ts +0 -4
  411. package/src/skia/web/JsiSkPathEffect.ts +0 -4
  412. package/src/skia/web/JsiSkPicture.ts +0 -4
  413. package/src/skia/web/JsiSkPictureRecorder.ts +0 -4
  414. package/src/skia/web/JsiSkPoint.ts +0 -4
  415. package/src/skia/web/JsiSkRRect.ts +3 -3
  416. package/src/skia/web/JsiSkRSXform.ts +5 -3
  417. package/src/skia/web/JsiSkRect.ts +0 -4
  418. package/src/skia/web/JsiSkRuntimeEffect.ts +5 -5
  419. package/src/skia/web/JsiSkSVG.ts +2 -2
  420. package/src/skia/web/JsiSkShader.ts +0 -4
  421. package/src/skia/web/JsiSkSurface.ts +2 -2
  422. package/src/skia/web/JsiSkTextBlob.ts +0 -4
  423. package/src/skia/web/JsiSkTypeface.ts +0 -4
  424. package/src/skia/web/JsiSkTypefaceFontProvider.ts +0 -12
  425. package/src/skia/web/JsiSkVertices.ts +0 -4
  426. package/src/skia/web/JsiSkottieAnimation.ts +0 -3
  427. package/src/skia/web/JsiVideo.ts +5 -1
  428. package/src/sksg/Container.native.ts +4 -1
  429. package/src/sksg/Container.web.ts +4 -1
  430. package/src/sksg/Elements.tsx +0 -1
  431. package/src/sksg/Reconciler.ts +4 -1
  432. package/src/sksg/Recorder/ReanimatedRecorder.ts +4 -0
  433. package/src/sksg/Recorder/Visitor.ts +1 -1
  434. package/src/sksg/StaticContainer.ts +4 -1
  435. package/src/views/SkiaPictureView.web.tsx +12 -3
  436. package/cpp/api/JsiSkThreadSafeDeletion.h +0 -105
@@ -29,8 +29,4 @@ export class JsiSkTypeface
29
29
  getGlyphIDs(str: string, numCodePoints?: number) {
30
30
  return Array.from(this.ref.getGlyphIDs(str, numCodePoints));
31
31
  }
32
-
33
- dispose = () => {
34
- this.ref.delete();
35
- };
36
32
  }
@@ -9,8 +9,6 @@ export class JsiSkTypefaceFontProvider
9
9
  extends HostObject<TypefaceFontProvider, "FontMgr">
10
10
  implements SkTypefaceFontProvider
11
11
  {
12
- private allocatedPointers: number[] = [];
13
-
14
12
  constructor(CanvasKit: CanvasKit, ref: TypefaceFontProvider) {
15
13
  super(CanvasKit, ref, "FontMgr");
16
14
  }
@@ -36,16 +34,6 @@ export class JsiSkTypefaceFontProvider
36
34
  // @ts-expect-error
37
35
  this.ref._registerFont(typeface.ref, strPtr);
38
36
  }
39
-
40
- dispose() {
41
- for (const ptr of this.allocatedPointers) {
42
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
43
- // @ts-expect-error
44
- this.CanvasKit._free(ptr);
45
- }
46
-
47
- this.ref.delete();
48
- }
49
37
  }
50
38
 
51
39
  const lengthBytesUTF8 = (str: string) => {
@@ -13,10 +13,6 @@ export class JsiSkVertices
13
13
  super(CanvasKit, ref, "Vertices");
14
14
  }
15
15
 
16
- dispose = () => {
17
- this.ref.delete();
18
- };
19
-
20
16
  bounds() {
21
17
  return new JsiSkRect(this.CanvasKit, this.ref.bounds());
22
18
  }
@@ -253,7 +253,4 @@ export class JsiSkottieAnimation
253
253
  version() {
254
254
  return this.ref.version();
255
255
  }
256
- dispose() {
257
- this.ref.delete();
258
- }
259
256
  }
@@ -89,9 +89,13 @@ export class JsiVideo implements Video {
89
89
  this.videoElement.volume = volume;
90
90
  }
91
91
 
92
- dispose() {
92
+ [Symbol.dispose]() {
93
93
  if (this.videoElement.parentNode) {
94
94
  this.videoElement.parentNode.removeChild(this.videoElement);
95
95
  }
96
96
  }
97
+
98
+ dispose() {
99
+ this[Symbol.dispose]();
100
+ }
97
101
  }
@@ -23,7 +23,10 @@ const nativeDrawOnscreen = (nativeId: number, recorder: JsiRecorder) => {
23
23
  class NativeReanimatedContainer extends Container {
24
24
  private mapperId: number | null = null;
25
25
 
26
- constructor(Skia: Skia, private nativeId: number) {
26
+ constructor(
27
+ Skia: Skia,
28
+ private nativeId: number
29
+ ) {
27
30
  super(Skia);
28
31
  }
29
32
 
@@ -29,7 +29,10 @@ const drawOnscreen = (Skia: Skia, nativeId: number, recording: Recording) => {
29
29
  class ReanimatedContainer extends Container {
30
30
  private mapperId: number | null = null;
31
31
 
32
- constructor(Skia: Skia, private nativeId: number) {
32
+ constructor(
33
+ Skia: Skia,
34
+ private nativeId: number
35
+ ) {
33
36
  super(Skia);
34
37
  }
35
38
 
@@ -57,7 +57,6 @@ import type {
57
57
  import type { SkiaProps } from "../renderer";
58
58
 
59
59
  declare module "react" {
60
- // eslint-disable-next-line @typescript-eslint/no-namespace
61
60
  namespace JSX {
62
61
  interface IntrinsicElements {
63
62
  skGroup: SkiaProps<GroupProps>;
@@ -23,7 +23,10 @@ export class SkiaSGRoot {
23
23
  private root: OpaqueRoot;
24
24
  private container: Container;
25
25
 
26
- constructor(public Skia: Skia, nativeId = -1) {
26
+ constructor(
27
+ public Skia: Skia,
28
+ nativeId = -1
29
+ ) {
27
30
  this.container = createContainer(Skia, nativeId);
28
31
  this.root = skiaReconciler.createContainer(
29
32
  this.container,
@@ -32,6 +32,10 @@ import type {
32
32
  import type { AnimatedProps } from "../../renderer";
33
33
  import { isSharedValue } from "../utils";
34
34
 
35
+ /**
36
+ * Currently the recorder only work if the GPU resources (e.g Images) are owned by the main thread.
37
+ * It will crash otherwise on Ganesh (iOS/Android).
38
+ */
35
39
  export class ReanimatedRecorder implements BaseRecorder {
36
40
  private values = new Set<SharedValue<unknown>>();
37
41
  private recorder: JsiRecorder;
@@ -250,7 +250,7 @@ const visitNode = (recorder: BaseRecorder, node: Node<any>) => {
250
250
  const shadows = node.children
251
251
  .filter((n) => n.type === NodeType.BoxShadow)
252
252
  // eslint-disable-next-line @typescript-eslint/no-shadow
253
- .map(({ props }) => ({ props } as { props: BoxShadowProps }));
253
+ .map(({ props }) => ({ props }) as { props: BoxShadowProps });
254
254
  recorder.drawBox(props, shadows);
255
255
  break;
256
256
  case NodeType.Fill:
@@ -48,7 +48,10 @@ export abstract class Container {
48
48
  }
49
49
 
50
50
  export class StaticContainer extends Container {
51
- constructor(Skia: Skia, private nativeId: number) {
51
+ constructor(
52
+ Skia: Skia,
53
+ private nativeId: number
54
+ ) {
52
55
  super(Skia);
53
56
  }
54
57
 
@@ -26,7 +26,10 @@ interface Renderer {
26
26
  class WebGLRenderer implements Renderer {
27
27
  private surface: JsiSkSurface | null = null;
28
28
 
29
- constructor(private canvas: HTMLCanvasElement, private pd: number) {
29
+ constructor(
30
+ private canvas: HTMLCanvasElement,
31
+ private pd: number
32
+ ) {
30
33
  this.onResize();
31
34
  }
32
35
 
@@ -83,7 +86,10 @@ class WebGLRenderer implements Renderer {
83
86
  class StaticWebGLRenderer implements Renderer {
84
87
  private cachedImage: SkImage | null = null;
85
88
 
86
- constructor(private canvas: HTMLCanvasElement, private pd: number) {}
89
+ constructor(
90
+ private canvas: HTMLCanvasElement,
91
+ private pd: number
92
+ ) {}
87
93
 
88
94
  onResize(): void {
89
95
  this.cachedImage = null;
@@ -294,10 +300,13 @@ export const SkiaPictureView = forwardRef<
294
300
  redraw,
295
301
  makeImageSnapshot,
296
302
  } as SkiaPictureViewHandle);
303
+ }, [setPicture, getSize, redraw, makeImageSnapshot, props.nativeID]);
304
+
305
+ useEffect(() => {
297
306
  if (props.picture) {
298
307
  setPicture(props.picture);
299
308
  }
300
- }, [setPicture, getSize, redraw, makeImageSnapshot, props]);
309
+ }, [setPicture, props.picture]);
301
310
 
302
311
  useEffect(() => {
303
312
  tick();
@@ -1,105 +0,0 @@
1
- #pragma once
2
-
3
- #include <functional>
4
- #include <memory>
5
- #include <mutex>
6
- #include <queue>
7
- #include <thread>
8
-
9
- // Define this to disable thread-safe deletion (for testing purposes)
10
- // #define DISABLE_THREAD_SAFE_DELETION
11
-
12
- namespace RNSkia {
13
-
14
- /**
15
- * Utility class for managing thread-safe deletion of Skia objects.
16
- * Ensures objects are deleted on the thread that created them.
17
- */
18
- template <typename T> class ThreadSafeDeletion {
19
- private:
20
- struct DeletionItem {
21
- sk_sp<T> object;
22
- std::thread::id creationThreadId;
23
- };
24
-
25
- static inline std::mutex _queueMutex;
26
- static inline std::queue<DeletionItem> _deletionQueue;
27
-
28
- std::thread::id _creationThreadId;
29
-
30
- public:
31
- ThreadSafeDeletion() : _creationThreadId(std::this_thread::get_id()) {}
32
-
33
- /**
34
- * Handles deletion of the object. If we're on the wrong thread,
35
- * queues it for later deletion. Otherwise, allows immediate deletion.
36
- * The object is always considered handled after this call.
37
- */
38
- void handleDeletion(sk_sp<T> object) {
39
- if (!object) {
40
- return;
41
- }
42
-
43
- #ifdef DISABLE_THREAD_SAFE_DELETION
44
- // When disabled, allow immediate deletion
45
- // This will likely cause crashes when objects are deleted on wrong thread
46
- return;
47
- #else
48
- // Always try to drain the queue when handling deletions
49
- drainDeletionQueue();
50
-
51
- // Check if we're on the creation thread
52
- if (std::this_thread::get_id() != _creationThreadId) {
53
- // Queue for deletion on the correct thread
54
- std::lock_guard<std::mutex> lock(_queueMutex);
55
- _deletionQueue.push({object, _creationThreadId});
56
- return;
57
- }
58
-
59
- // We're on the correct thread, allow immediate deletion via destructor
60
- return;
61
- #endif
62
- }
63
-
64
- /**
65
- * Drains the deletion queue for objects created on the current thread.
66
- * Should be called periodically (e.g., when creating new objects).
67
- */
68
- static void drainDeletionQueue() {
69
- #ifndef DISABLE_THREAD_SAFE_DELETION
70
- auto currentThreadId = std::this_thread::get_id();
71
- std::queue<DeletionItem> remainingItems;
72
-
73
- std::lock_guard<std::mutex> lock(_queueMutex);
74
-
75
- // Process all items in the queue
76
- while (!_deletionQueue.empty()) {
77
- auto item = _deletionQueue.front();
78
- _deletionQueue.pop();
79
-
80
- // If this item belongs to the current thread, let it be deleted
81
- if (item.creationThreadId == currentThreadId) {
82
- // The sk_sp destructor will handle the cleanup
83
- // Just let it go out of scope
84
- } else {
85
- // Keep items that belong to other threads
86
- remainingItems.push(item);
87
- }
88
- }
89
-
90
- // Put back items that couldn't be deleted
91
- _deletionQueue = std::move(remainingItems);
92
- #endif
93
- }
94
-
95
- /**
96
- * Returns the number of items waiting for deletion.
97
- * Useful for debugging and testing.
98
- */
99
- static size_t getPendingDeletionCount() {
100
- std::lock_guard<std::mutex> lock(_queueMutex);
101
- return _deletionQueue.size();
102
- }
103
- };
104
-
105
- } // namespace RNSkia