@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
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- /* eslint-disable max-len */
3
2
 
4
3
  /**
5
4
  * A script to automate the setup of `@shopify/react-native-skia` for web.
@@ -39,23 +38,26 @@ const lime = (text) => `\x1b[32m${text}\x1b[0m`;
39
38
 
40
39
  function getWetherItsAnExpoProjectWithMetro() {
41
40
  try {
42
- const appJsonPath = path.join(process.cwd(), 'app.json');
41
+ const appJsonPath = path.join(process.cwd(), "app.json");
43
42
 
44
43
  console.log(
45
44
  `› Reading Expo settings from (if any):\n ${gray(appJsonPath)}`
46
45
  );
47
46
 
48
47
  const appJson = require(appJsonPath);
49
- const isAnExpoProjectWithMetro = appJson.expo && appJson.expo.web && appJson.expo.web.bundler === 'metro';
48
+ const isAnExpoProjectWithMetro =
49
+ appJson.expo && appJson.expo.web && appJson.expo.web.bundler === "metro";
50
50
  if (isAnExpoProjectWithMetro) {
51
- console.log(` ${gray(`Expo project with metro bundler detected`)}\n`);
51
+ console.log(` ${gray("Expo project with metro bundler detected")}\n`);
52
52
  return true;
53
53
  } else {
54
- console.log(` ${gray(`Metro bundler not detected. Assuming the project is using Webpack.`)}\n`);
54
+ console.log(
55
+ ` ${gray(`Metro bundler not detected. Assuming the project is using Webpack.`)}\n`
56
+ );
55
57
  return false;
56
58
  }
57
59
  } catch (error) {
58
- console.log(` ${gray(`No Expo settings found`)}\n`);
60
+ console.log(` ${gray("No Expo settings found")}\n`);
59
61
  return false;
60
62
  }
61
63
  }
@@ -65,7 +67,8 @@ function getWasmFilePath() {
65
67
  return require.resolve("canvaskit-wasm/bin/full/canvaskit.wasm");
66
68
  } catch (error) {
67
69
  console.error(
68
- `Could not find 'canvaskit-wasm'. Please install '@shopify/react-native-skia' and ensure it can be resolved from your project: ${process.cwd()}`
70
+ `Could not find 'canvaskit-wasm'.
71
+ Please install '@shopify/react-native-skia' and ensure it can be resolved from your project: ${process.cwd()}`
69
72
  );
70
73
  process.exit(1);
71
74
  }
@@ -73,7 +76,9 @@ function getWasmFilePath() {
73
76
 
74
77
  function getOutputFilePath(isAnExpoProjectWithMetro) {
75
78
  // Default to using `web` public path.
76
- const publicFolder = path.resolve(args[0] || ((isAnExpoProjectWithMetro) ? "public" : "web/static/js"));
79
+ const publicFolder = path.resolve(
80
+ args[0] || (isAnExpoProjectWithMetro ? "public" : "web/static/js")
81
+ );
77
82
  const publicLocation = "./canvaskit.wasm";
78
83
  const output = path.join(publicFolder, publicLocation);
79
84
 
@@ -99,7 +104,8 @@ function copyFile(from, to) {
99
104
  console.log(lime("› Success! You are almost there:"));
100
105
  console.log(
101
106
  gray(
102
- "› To load React Native Skia Web, follow these instructions : https://shopify.github.io/react-native-skia/docs/getting-started/web"
107
+ `› To load React Native Skia Web,
108
+ follow these instructions: https://shopify.github.io/react-native-skia/docs/getting-started/web`
103
109
  )
104
110
  );
105
111
  })();
@@ -19,8 +19,8 @@ export const Platform: IPlatform = {
19
19
  return isRNModule(source)
20
20
  ? Image.resolveAssetSource(source).uri
21
21
  : "uri" in source
22
- ? source.uri
23
- : source.default;
22
+ ? source.uri
23
+ : source.default;
24
24
  },
25
25
  findNodeHandle,
26
26
  View,
@@ -7,7 +7,6 @@ import { isRNModule } from "../skia/types";
7
7
 
8
8
  import type { IPlatform } from "./IPlatform";
9
9
 
10
- // eslint-disable-next-line max-len
11
10
  // https://github.com/necolas/react-native-web/blob/master/packages/react-native-web/src/modules/useElementLayout/index.js
12
11
  const DOM_LAYOUT_HANDLER_NAME = "__reactLayoutHandler";
13
12
  type OnLayout = ((event: LayoutChangeEvent) => void) | undefined;
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-len */
2
1
  import path from "path";
3
2
  import fs from "fs";
4
3
 
@@ -24,10 +23,9 @@ export const processResult = (
24
23
  overwrite = false
25
24
  ) => {
26
25
  surface.flush();
27
- const image = surface.makeImageSnapshot();
26
+ using image = surface.makeImageSnapshot();
28
27
  surface.getCanvas().clear(Float32Array.of(0, 0, 0, 0));
29
28
  const result = checkImage(image, relPath, { overwrite });
30
- image.dispose();
31
29
  return result;
32
30
  };
33
31
 
@@ -99,7 +97,6 @@ export const checkImage = (
99
97
  };
100
98
 
101
99
  declare global {
102
- // eslint-disable-next-line @typescript-eslint/no-namespace
103
100
  namespace jest {
104
101
  interface Matchers<R> {
105
102
  /**
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-len */
2
1
  export enum Extrapolate {
3
2
  IDENTITY = "identity",
4
3
  CLAMP = "clamp",
@@ -19,7 +19,7 @@ export const rect2rect = (
19
19
  { translateX: number },
20
20
  { translateY: number },
21
21
  { scaleX: number },
22
- { scaleY: number }
22
+ { scaleY: number },
23
23
  ] => {
24
24
  "worklet";
25
25
  const scaleX = dst.width / src.width;
@@ -84,7 +84,7 @@ export interface PatchProps extends DrawingNodeProps {
84
84
  CubicBezierHandle,
85
85
  CubicBezierHandle,
86
86
  CubicBezierHandle,
87
- CubicBezierHandle
87
+ CubicBezierHandle,
88
88
  ];
89
89
  texture?: readonly [SkPoint, SkPoint, SkPoint, SkPoint];
90
90
  blendMode?: SkEnum<typeof BlendMode>;
@@ -1,4 +1,4 @@
1
- import { useEffect, useMemo, useState } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  import type { DependencyList, ReactElement } from "react";
3
3
  import type { SharedValue } from "react-native-reanimated";
4
4
 
@@ -8,21 +8,45 @@ import type {
8
8
  SkPicture,
9
9
  SkSize,
10
10
  } from "../../skia/types";
11
- import {
12
- drawAsImageFromPicture,
13
- drawAsPicture,
14
- } from "../../renderer/Offscreen";
11
+ import { drawAsPicture } from "../../renderer/Offscreen";
15
12
  import { Skia, useImage } from "../../skia";
13
+ import { Platform } from "../../Platform";
16
14
 
17
15
  import Rea from "./ReanimatedProxy";
18
16
 
17
+ const createTextureFromImage = (
18
+ texture: SharedValue<SkImage | null>,
19
+ image: SkImage
20
+ ) => {
21
+ "worklet";
22
+ const surface = Skia.Surface.MakeOffscreen(image.width(), image.height());
23
+ if (!surface) {
24
+ texture.value = null;
25
+ return;
26
+ }
27
+ const canvas = surface.getCanvas();
28
+ canvas.drawImage(image, 0, 0);
29
+ surface.flush();
30
+ texture.value = surface.makeImageSnapshot();
31
+ if (Platform.OS === "web") {
32
+ texture.value = texture.value.makeNonTextureImage();
33
+ }
34
+ };
35
+
19
36
  const createTexture = (
20
37
  texture: SharedValue<SkImage | null>,
21
38
  picture: SkPicture,
22
39
  size: SkSize
23
40
  ) => {
24
41
  "worklet";
25
- texture.value = drawAsImageFromPicture(picture, size);
42
+ const surface = Skia.Surface.MakeOffscreen(size.width, size.height)!;
43
+ const canvas = surface.getCanvas();
44
+ canvas.drawPicture(picture);
45
+ surface.flush();
46
+ texture.value = surface.makeImageSnapshot();
47
+ if (Platform.OS === "web") {
48
+ texture.value = texture.value.makeNonTextureImage();
49
+ }
26
50
  };
27
51
 
28
52
  export const useTexture = (
@@ -61,26 +85,11 @@ export const usePictureAsTexture = (
61
85
 
62
86
  export const useImageAsTexture = (source: DataSourceParam) => {
63
87
  const image = useImage(source);
64
- const size = useMemo(() => {
65
- if (image) {
66
- return { width: image.width(), height: image.height() };
67
- }
68
- return { width: 0, height: 0 };
69
- }, [image]);
70
- const picture = useMemo(() => {
71
- if (image) {
72
- const recorder = Skia.PictureRecorder();
73
- const canvas = recorder.beginRecording({
74
- x: 0,
75
- y: 0,
76
- width: size.width,
77
- height: size.height,
78
- });
79
- canvas.drawImage(image, 0, 0);
80
- return recorder.finishRecordingAsPicture();
81
- } else {
82
- return null;
88
+ const texture = Rea.useSharedValue<SkImage | null>(null);
89
+ useEffect(() => {
90
+ if (image !== null) {
91
+ Rea.runOnUI(createTextureFromImage)(texture, image);
83
92
  }
84
- }, [size, image]);
85
- return usePictureAsTexture(picture, size);
93
+ }, [image, texture]);
94
+ return texture;
86
95
  };
@@ -78,7 +78,7 @@ export const useVideo = (
78
78
  const lastTimestamp = Rea.useSharedValue(-1);
79
79
  const duration = useMemo(() => video?.duration() ?? 0, [video]);
80
80
  const framerate = useMemo(
81
- () => (Platform.OS === "web" ? -1 : video?.framerate() ?? 0),
81
+ () => (Platform.OS === "web" ? -1 : (video?.framerate() ?? 0)),
82
82
  [video]
83
83
  );
84
84
  const size = useMemo(() => video?.size() ?? { width: 0, height: 0 }, [video]);
@@ -81,7 +81,6 @@ export const Canvas = ({
81
81
  }: CanvasProps) => {
82
82
  if (onLayout && isFabric) {
83
83
  console.error(
84
- // eslint-disable-next-line max-len
85
84
  "<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size"
86
85
  );
87
86
  }
@@ -145,7 +144,7 @@ export const Canvas = ({
145
144
  measureInWindow: (callback) => {
146
145
  viewRef.current?.measureInWindow(callback);
147
146
  },
148
- } as CanvasRef)
147
+ }) as CanvasRef
149
148
  );
150
149
 
151
150
  const onLayoutWeb = useCallback(
@@ -5,7 +5,6 @@ import { Skia } from "../skia";
5
5
  import { Platform } from "../Platform";
6
6
  import { SkiaSGRoot } from "../sksg/Reconciler";
7
7
 
8
- // We call it main thread because on web main is JS thread
9
8
  export const isOnMainThread = () => {
10
9
  "worklet";
11
10
  return (
@@ -36,10 +35,5 @@ export const drawAsImageFromPicture = (picture: SkPicture, size: SkSize) => {
36
35
  canvas.drawPicture(picture);
37
36
  surface.flush();
38
37
  const image = surface.makeImageSnapshot();
39
- // If we are not on the main thread or if we are on Web, we need to make the image non-texture.
40
- if (!isOnMainThread() || Platform.OS === "web") {
41
- return image.makeNonTextureImage();
42
- } else {
43
- return image;
44
- }
38
+ return image.makeNonTextureImage();
45
39
  };
@@ -663,7 +663,6 @@ describe("FitBox", () => {
663
663
  });
664
664
  test("draw Skia logo", () => {
665
665
  const skiaLogo =
666
- // eslint-disable-next-line max-len
667
666
  "M465.63 273.956C409.11 212.516 348.87 258.846 362.34 310.646C367.09 328.936 381.05 347.906 407.6 363.056C444.3 383.986 460.05 408.286 461.42 430.426C464.57 481.036 392.6 520.356 324 482.376M490 430.426C589.17 299.226 590.11 228.576 568.77 222.366C554.04 218.586 529.13 244.036 518 301.366C505.52 367.526 500.67 405.066 490 494.956C505.58 451.676 514.49 414.746 545.45 389.956C554.589 382.551 565.818 378.197 577.56 377.506C628.71 374.806 621.17 446.096 541.95 430.406M541.95 430.426C575.55 436.726 571.27 458.036 580.75 482.326C582.111 485.913 584.445 489.051 587.49 491.386C607.49 506.386 643.49 476.616 654.36 457.216C671.21 432.636 684.24 404.916 697.36 378.486M697.38 378.486C684.12 411.766 675.597 437.196 671.81 454.776C668.54 481.546 675.24 493.636 686.32 496.256C710.7 502.016 756.23 461.896 763.13 431.256C776.37 372.396 862.18 350.556 881.97 419.656M881.97 419.636C862.18 350.536 776.21 372.376 763.13 431.236C759.37 455.676 766.85 473.336 779.67 483.966C786.621 489.63 794.908 493.417 803.74 494.966C818.132 497.496 832.957 495.178 845.89 488.376C846.69 487.956 847.49 487.516 848.29 487.056C856.441 482.27 863.382 475.672 868.574 467.773C873.765 459.875 877.069 450.887 878.23 441.506C881.09 419.196 888.04 394.656 892.59 378.086M892.59 378.076C885.36 404.426 872.1 449.746 878.77 476.156C880.283 482.292 884.122 487.599 889.475 490.958C894.828 494.316 901.277 495.463 907.46 494.156C925.39 490.256 943.78 472.156 955.09 454.336M714.5 338C714.5 339.933 712.933 341.5 711 341.5C709.067 341.5 707.5 339.933 707.5 338C707.5 336.067 709.067 334.5 711 334.5C712.933 334.5 714.5 336.067 714.5 338Z";
668
667
  const { Skia } = importSkia();
669
668
  const path = Skia.Path.MakeFromSVGString(skiaLogo)!;
@@ -43,11 +43,14 @@ const CheckPicture2 = ({}: EmptyProps) => {
43
43
  }, [Skia]);
44
44
  const picture = useMemo(
45
45
  () =>
46
- createPicture((canvas) => {
47
- const paint = Skia.Paint();
48
- paint.setColor(Skia.Color(color));
49
- canvas.drawCircle(r, r, r, paint);
50
- }, Skia.XYWHRect(0, 0, r * 2, r * 2)),
46
+ createPicture(
47
+ (canvas) => {
48
+ const paint = Skia.Paint();
49
+ paint.setColor(Skia.Color(color));
50
+ canvas.drawCircle(r, r, r, paint);
51
+ },
52
+ Skia.XYWHRect(0, 0, r * 2, r * 2)
53
+ ),
51
54
  // eslint-disable-next-line react-hooks/exhaustive-deps
52
55
  []
53
56
  );
@@ -12,15 +12,13 @@ describe("Surface", () => {
12
12
  // When leaking, the WASM memory limit will be reached quite quickly
13
13
  // causing the test to fail
14
14
  for (let i = 0; i < 500; i++) {
15
- const surface = Skia.Surface.Make(1920, 1080)!;
15
+ using surface = Skia.Surface.Make(1920, 1080)!;
16
16
  const canvas = surface.getCanvas();
17
17
  canvas.clear(Skia.Color("cyan"));
18
18
  surface.flush();
19
- const image = surface.makeImageSnapshot();
20
- const copy = image.makeNonTextureImage();
21
- copy.dispose();
22
- image.dispose();
23
- surface.dispose();
19
+ using image = surface.makeImageSnapshot();
20
+ using copy = image.makeNonTextureImage();
21
+ expect(copy).toBeDefined();
24
22
  }
25
23
  });
26
24
  it("A raster surface shouldn't leak (1)", () => {
@@ -28,13 +26,12 @@ describe("Surface", () => {
28
26
  // When leaking, the WASM memory limit will be reached quite quickly
29
27
  // causing the test to fail
30
28
  for (let i = 0; i < 500; i++) {
31
- const surface = Skia.Surface.Make(1920, 1080)!;
29
+ using surface = Skia.Surface.Make(1920, 1080)!;
32
30
  const canvas = surface.getCanvas();
33
31
  canvas.clear(Skia.Color("cyan"));
34
32
  surface.flush();
35
- const image = surface.makeImageSnapshot();
36
- image.dispose();
37
- surface.dispose();
33
+ using image = surface.makeImageSnapshot();
34
+ expect(image).toBeDefined();
38
35
  }
39
36
  });
40
37
  it("A raster surface shouldn't leak (2)", () => {
@@ -42,20 +39,19 @@ describe("Surface", () => {
42
39
  // When leaking, the WASM memory limit will be reached quite quickly
43
40
  // causing the test to fail
44
41
  for (let i = 0; i < 500; i++) {
45
- const surface = Skia.Surface.MakeOffscreen(1920, 1080)!;
42
+ using surface = Skia.Surface.MakeOffscreen(1920, 1080)!;
46
43
  const canvas = surface.getCanvas();
47
44
  canvas.clear(Skia.Color("cyan"));
48
45
  surface.flush();
49
- const image = surface.makeImageSnapshot();
50
- image.dispose();
51
- surface.dispose();
46
+ using image = surface.makeImageSnapshot();
47
+ expect(image).toBeDefined();
52
48
  }
53
49
  });
54
50
  it("A raster surface shouldn't leak (3)", async () => {
55
51
  for (let i = 0; i < 10; i++) {
56
52
  //const t = performance.now();
57
53
  const r = 128;
58
- const surface = await drawOnNode(
54
+ using surface = await drawOnNode(
59
55
  <>
60
56
  <Group blendMode="multiply">
61
57
  <Circle cx={r} cy={r} r={r} color="cyan" />
@@ -67,7 +63,6 @@ describe("Surface", () => {
67
63
  surface.flush();
68
64
  //console.log(`Iteration ${i} took ${Math.floor(performance.now() - t)}ms`);
69
65
  processResult(surface, "snapshots/leak.png");
70
- surface.dispose();
71
66
  }
72
67
  });
73
68
  });
@@ -145,7 +145,6 @@ describe("Group", () => {
145
145
  it("Should scale an SVG Path properly", async () => {
146
146
  const { rect, Skia } = importSkia();
147
147
  const svgPath =
148
- // eslint-disable-next-line max-len
149
148
  "M481.586 193.457C470.446 176.319 382.871 101.323 313.771 101.323C244.671 101.323 207.195 126.054 193.668 142.763C149.967 196.747 134.971 249.875 148.681 302.146C166.676 365.556 216.376 423.397 297.781 475.668C391.183 528.795 451.166 589.207 477.73 656.902C487.156 686.893 488.441 716.456 481.586 745.591C474.731 774.725 461.021 801.289 440.455 825.282C423.317 848.419 400.609 865.128 372.332 875.411C344.054 884.837 309.778 892.12 269.504 897.262C172.674 904.974 93.8398 890.407 33 853.56M559.992 689.035C667.105 531.366 746.796 399.832 799.067 294.434C811.92 264.442 821.346 241.735 827.344 226.31C833.343 210.029 839.341 188.607 845.339 162.043C851.338 135.479 853.48 111.058 851.766 88.7783C849.195 66.4989 838.056 51.0748 818.347 39.9351C798.638 28.7954 784.212 31.7989 761.792 43.7911C724.945 63.4998 700.095 97.3473 687.242 145.334C679.53 165.899 671.817 189.892 664.105 217.313C657.25 244.734 652.109 265.728 648.681 280.295C646.111 294.862 641.398 321.426 634.542 359.987C627.687 397.69 623.403 419.969 621.689 426.825C604.551 533.937 583.985 689.464 559.992 893.406C586.556 800.861 616.976 727.167 651.252 672.326C663.248 648.333 673.531 629.481 682.1 615.771C690.669 602.06 703.094 587.065 719.375 570.784C736.513 554.502 754.508 542.506 773.36 534.794C837.627 510.801 883.9 512.943 912.177 541.221C929.315 559.215 937.884 581.066 937.884 606.773C938.741 632.48 928.887 652.617 908.321 667.185C868.047 689.464 806.779 696.748 724.517 689.035C738.227 693.32 748.51 697.176 755.365 700.604C763.077 703.174 772.503 707.459 783.643 713.457C795.639 719.455 804.637 726.739 810.635 735.308C817.49 743.877 821.775 753.731 823.488 764.871C824.345 769.155 825.631 777.296 827.344 789.293C829.915 801.289 832.057 810.287 833.771 816.285C835.485 822.283 837.627 829.995 840.198 839.421C843.626 848.847 847.482 856.987 851.766 863.843C856.907 869.841 862.906 875.839 869.761 881.838C891.183 902.403 926.745 899.832 976.445 874.125C991.012 867.27 1004.29 858.701 1016.29 848.418C1029.14 838.136 1041.14 825.711 1052.28 811.143C1064.28 795.719 1073.7 783.294 1080.56 773.868C1087.41 763.586 1096.84 748.59 1108.84 728.881C1120.83 709.173 1129.4 695.891 1134.54 689.035C1161.96 634.194 1189.38 579.352 1216.8 524.511C1174.82 629.909 1147.82 710.458 1135.83 766.156C1130.69 782.437 1128.54 801.289 1129.4 822.712C1130.26 844.134 1136.68 861.272 1148.68 874.125C1157.25 884.408 1167.96 891.263 1180.81 894.691C1194.53 898.119 1207.38 897.69 1219.38 893.406C1271.65 877.981 1314.06 847.99 1346.62 803.431C1365.48 777.724 1390.75 739.592 1422.46 689.035M1275.93 367.699C1263.93 367.699 1256.65 362.129 1254.08 350.989C1252.37 338.993 1253.65 328.71 1257.94 320.141C1261.37 313.272 1272.5 314.999 1283.64 314.999C1294.78 314.999 1303.74 321.228 1304.21 329.138M1804.21 655.616C1782.79 595.634 1756.65 558.358 1725.8 543.791C1696.67 526.653 1664.11 518.513 1628.12 519.37C1592.13 519.37 1559.99 528.796 1531.71 547.647C1505.15 563.071 1482.44 583.637 1463.59 609.344C1444.74 634.194 1431.89 661.615 1425.03 691.606C1419.03 720.741 1419.89 750.304 1427.6 780.295C1436.17 809.43 1450.74 834.28 1471.3 854.845C1503.87 882.266 1543.28 895.976 1589.56 895.976C1635.83 895.976 1675.67 882.266 1709.09 854.845C1722.8 841.135 1732.66 831.281 1738.66 825.282C1744.65 819.284 1751.51 810.715 1759.22 799.575C1767.79 788.436 1774.65 776.868 1779.79 764.871M1835.06 523.226C1811.92 618.341 1796.5 701.032 1788.78 771.298C1781.07 825.282 1791.35 862.557 1819.63 883.123C1841.05 900.261 1874.47 897.69 1919.89 875.411C1959.31 856.559 1997.01 819.712 2033 764.871";
150
149
  const path = Skia.Path.MakeFromSVGString(svgPath)!;
151
150
  expect(path).toBeTruthy();
@@ -44,7 +44,6 @@ describe("Animated Images", () => {
44
44
  return frame.encodeToBase64();
45
45
  });
46
46
  expect(result).toEqual(
47
- // eslint-disable-next-line max-len
48
47
  "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAANzQklUCAgI2+FP4AAAAAxJREFUCJljSFwlDwACmgErMAA+hwAAAABJRU5ErkJggg=="
49
48
  );
50
49
  });
@@ -77,7 +77,6 @@ describe("Drawings", () => {
77
77
  const { Skia } = importSkia();
78
78
  const { width, height } = surface;
79
79
  const path = Skia.Path.MakeFromSVGString(
80
- // eslint-disable-next-line max-len
81
80
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
82
81
  )!;
83
82
  const PADDING = width / 16;
@@ -120,7 +119,6 @@ describe("Drawings", () => {
120
119
  const { Skia } = importSkia();
121
120
  const { width, height } = surface;
122
121
  const path = Skia.Path.MakeFromSVGString(
123
- // eslint-disable-next-line max-len
124
122
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
125
123
  )!;
126
124
  const PADDING = width / 16;
@@ -146,7 +144,6 @@ describe("Drawings", () => {
146
144
  const { Skia } = importSkia();
147
145
  const { width, height } = surface;
148
146
  const path = Skia.Path.MakeFromSVGString(
149
- // eslint-disable-next-line max-len
150
147
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
151
148
  )!;
152
149
  const PADDING = width / 16;
@@ -190,7 +187,6 @@ describe("Drawings", () => {
190
187
  const { Skia } = importSkia();
191
188
  const { width, height } = surface;
192
189
  const path = Skia.Path.MakeFromSVGString(
193
- // eslint-disable-next-line max-len
194
190
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
195
191
  )!;
196
192
  const PADDING = width / 16;
@@ -107,7 +107,6 @@ describe("Group", () => {
107
107
  const { width, height } = surface;
108
108
  const { rect, Skia } = importSkia();
109
109
  const svgPath =
110
- // eslint-disable-next-line max-len
111
110
  "M481.586 193.457C470.446 176.319 382.871 101.323 313.771 101.323C244.671 101.323 207.195 126.054 193.668 142.763C149.967 196.747 134.971 249.875 148.681 302.146C166.676 365.556 216.376 423.397 297.781 475.668C391.183 528.795 451.166 589.207 477.73 656.902C487.156 686.893 488.441 716.456 481.586 745.591C474.731 774.725 461.021 801.289 440.455 825.282C423.317 848.419 400.609 865.128 372.332 875.411C344.054 884.837 309.778 892.12 269.504 897.262C172.674 904.974 93.8398 890.407 33 853.56M559.992 689.035C667.105 531.366 746.796 399.832 799.067 294.434C811.92 264.442 821.346 241.735 827.344 226.31C833.343 210.029 839.341 188.607 845.339 162.043C851.338 135.479 853.48 111.058 851.766 88.7783C849.195 66.4989 838.056 51.0748 818.347 39.9351C798.638 28.7954 784.212 31.7989 761.792 43.7911C724.945 63.4998 700.095 97.3473 687.242 145.334C679.53 165.899 671.817 189.892 664.105 217.313C657.25 244.734 652.109 265.728 648.681 280.295C646.111 294.862 641.398 321.426 634.542 359.987C627.687 397.69 623.403 419.969 621.689 426.825C604.551 533.937 583.985 689.464 559.992 893.406C586.556 800.861 616.976 727.167 651.252 672.326C663.248 648.333 673.531 629.481 682.1 615.771C690.669 602.06 703.094 587.065 719.375 570.784C736.513 554.502 754.508 542.506 773.36 534.794C837.627 510.801 883.9 512.943 912.177 541.221C929.315 559.215 937.884 581.066 937.884 606.773C938.741 632.48 928.887 652.617 908.321 667.185C868.047 689.464 806.779 696.748 724.517 689.035C738.227 693.32 748.51 697.176 755.365 700.604C763.077 703.174 772.503 707.459 783.643 713.457C795.639 719.455 804.637 726.739 810.635 735.308C817.49 743.877 821.775 753.731 823.488 764.871C824.345 769.155 825.631 777.296 827.344 789.293C829.915 801.289 832.057 810.287 833.771 816.285C835.485 822.283 837.627 829.995 840.198 839.421C843.626 848.847 847.482 856.987 851.766 863.843C856.907 869.841 862.906 875.839 869.761 881.838C891.183 902.403 926.745 899.832 976.445 874.125C991.012 867.27 1004.29 858.701 1016.29 848.418C1029.14 838.136 1041.14 825.711 1052.28 811.143C1064.28 795.719 1073.7 783.294 1080.56 773.868C1087.41 763.586 1096.84 748.59 1108.84 728.881C1120.83 709.173 1129.4 695.891 1134.54 689.035C1161.96 634.194 1189.38 579.352 1216.8 524.511C1174.82 629.909 1147.82 710.458 1135.83 766.156C1130.69 782.437 1128.54 801.289 1129.4 822.712C1130.26 844.134 1136.68 861.272 1148.68 874.125C1157.25 884.408 1167.96 891.263 1180.81 894.691C1194.53 898.119 1207.38 897.69 1219.38 893.406C1271.65 877.981 1314.06 847.99 1346.62 803.431C1365.48 777.724 1390.75 739.592 1422.46 689.035M1275.93 367.699C1263.93 367.699 1256.65 362.129 1254.08 350.989C1252.37 338.993 1253.65 328.71 1257.94 320.141C1261.37 313.272 1272.5 314.999 1283.64 314.999C1294.78 314.999 1303.74 321.228 1304.21 329.138M1804.21 655.616C1782.79 595.634 1756.65 558.358 1725.8 543.791C1696.67 526.653 1664.11 518.513 1628.12 519.37C1592.13 519.37 1559.99 528.796 1531.71 547.647C1505.15 563.071 1482.44 583.637 1463.59 609.344C1444.74 634.194 1431.89 661.615 1425.03 691.606C1419.03 720.741 1419.89 750.304 1427.6 780.295C1436.17 809.43 1450.74 834.28 1471.3 854.845C1503.87 882.266 1543.28 895.976 1589.56 895.976C1635.83 895.976 1675.67 882.266 1709.09 854.845C1722.8 841.135 1732.66 831.281 1738.66 825.282C1744.65 819.284 1751.51 810.715 1759.22 799.575C1767.79 788.436 1774.65 776.868 1779.79 764.871M1835.06 523.226C1811.92 618.341 1796.5 701.032 1788.78 771.298C1781.07 825.282 1791.35 862.557 1819.63 883.123C1841.05 900.261 1874.47 897.69 1919.89 875.411C1959.31 856.559 1997.01 819.712 2033 764.871";
112
111
  const path = Skia.Path.MakeFromSVGString(svgPath)!;
113
112
  expect(path).toBeTruthy();
@@ -246,7 +246,6 @@ describe("Test Image Filters", () => {
246
246
  it("should build reference result outer and inner shadows on text", () => {
247
247
  const { surface: ckSurface, canvas, Skia } = setupSkia(wWidth, wHeight);
248
248
  const path = Skia.Path.MakeFromSVGString(
249
- // eslint-disable-next-line max-len
250
249
  "M62.477 2.273V75h-8.522L14.324 17.898h-.71V75H4.807V2.273h8.522l39.773 57.244h.71V2.273h8.665ZM78.963 75V20.454h8.381V75h-8.38Zm4.262-63.636c-1.634 0-3.042-.557-4.226-1.67-1.16-1.112-1.74-2.45-1.74-4.012 0-1.563.58-2.9 1.74-4.013C80.183.556 81.59 0 83.225 0c1.633 0 3.03.556 4.19 1.669 1.184 1.113 1.776 2.45 1.776 4.013 0 1.562-.592 2.9-1.776 4.013-1.16 1.112-2.557 1.669-4.19 1.669ZM124.853 76.136c-5.114 0-9.517-1.207-13.21-3.622-3.693-2.415-6.534-5.74-8.523-9.978-1.989-4.238-2.983-9.08-2.983-14.525 0-5.54 1.018-10.428 3.054-14.666 2.06-4.261 4.924-7.587 8.594-9.979 3.693-2.414 8.002-3.622 12.926-3.622 3.835 0 7.292.71 10.369 2.131 3.078 1.42 5.599 3.41 7.564 5.966 1.965 2.557 3.184 5.54 3.658 8.949h-8.381c-.639-2.486-2.059-4.688-4.261-6.605-2.178-1.942-5.114-2.912-8.807-2.912-3.267 0-6.132.852-8.594 2.556-2.438 1.681-4.344 4.06-5.717 7.138-1.35 3.054-2.024 6.641-2.024 10.76 0 4.214.663 7.884 1.988 11.009 1.35 3.125 3.244 5.551 5.682 7.28 2.462 1.728 5.351 2.592 8.665 2.592 2.178 0 4.155-.379 5.93-1.136a12.23 12.23 0 0 0 4.51-3.267c1.231-1.42 2.107-3.125 2.628-5.114h8.381c-.474 3.22-1.646 6.12-3.516 8.7-1.846 2.557-4.297 4.593-7.351 6.108-3.03 1.492-6.557 2.237-10.582 2.237ZM181.423 76.136c-5.256 0-9.79-1.16-13.601-3.48-3.788-2.344-6.712-5.61-8.772-9.8-2.036-4.215-3.054-9.116-3.054-14.703s1.018-10.511 3.054-14.772c2.06-4.285 4.925-7.623 8.594-10.015 3.693-2.414 8.002-3.622 12.926-3.622 2.841 0 5.647.474 8.417 1.42 2.769.948 5.291 2.487 7.563 4.617 2.273 2.107 4.084 4.9 5.434 8.38 1.349 3.481 2.024 7.766 2.024 12.856v3.551h-42.046v-7.244h33.523c0-3.078-.615-5.824-1.847-8.239-1.207-2.415-2.935-4.32-5.184-5.717-2.226-1.397-4.853-2.095-7.884-2.095-3.338 0-6.226.828-8.664 2.486a16.35 16.35 0 0 0-5.576 6.392c-1.302 2.627-1.953 5.445-1.953 8.451v4.83c0 4.12.71 7.611 2.131 10.476 1.444 2.84 3.444 5.007 6.001 6.498 2.557 1.468 5.528 2.202 8.914 2.202 2.201 0 4.19-.308 5.965-.923 1.8-.64 3.35-1.587 4.652-2.841 1.303-1.279 2.309-2.865 3.019-4.759l8.097 2.273a17.965 17.965 0 0 1-4.297 7.244c-2.013 2.06-4.498 3.67-7.458 4.83-2.959 1.136-6.285 1.704-9.978 1.704ZM32.648 123.273h8.806v51.988c0 4.641-.852 8.582-2.556 11.826-1.705 3.243-4.108 5.705-7.21 7.386-3.1 1.681-6.758 2.521-10.972 2.521-3.977 0-7.517-.722-10.618-2.166-3.101-1.468-5.54-3.551-7.315-6.25-1.776-2.699-2.664-5.907-2.664-9.623h8.665c0 2.059.51 3.858 1.527 5.397 1.042 1.515 2.462 2.699 4.261 3.551 1.8.853 3.848 1.279 6.144 1.279 2.533 0 4.687-.533 6.463-1.598 1.776-1.066 3.125-2.628 4.048-4.688.947-2.083 1.42-4.628 1.42-7.635v-51.988ZM80.126 197.136c-4.924 0-9.244-1.172-12.961-3.515-3.693-2.344-6.582-5.623-8.665-9.837-2.06-4.214-3.09-9.138-3.09-14.773 0-5.681 1.03-10.641 3.09-14.879 2.083-4.238 4.972-7.528 8.665-9.872 3.717-2.344 8.037-3.516 12.961-3.516 4.925 0 9.233 1.172 12.927 3.516 3.716 2.344 6.605 5.634 8.664 9.872 2.084 4.238 3.125 9.198 3.125 14.879 0 5.635-1.041 10.559-3.125 14.773-2.06 4.214-4.948 7.493-8.664 9.837-3.694 2.343-8.002 3.515-12.927 3.515Zm0-7.528c3.741 0 6.819-.959 9.233-2.876 2.415-1.918 4.203-4.439 5.363-7.564 1.16-3.125 1.74-6.511 1.74-10.157 0-3.645-.58-7.043-1.74-10.191-1.16-3.149-2.948-5.694-5.363-7.635-2.414-1.942-5.492-2.912-9.233-2.912-3.74 0-6.818.97-9.233 2.912-2.414 1.941-4.202 4.486-5.362 7.635-1.16 3.148-1.74 6.546-1.74 10.191 0 3.646.58 7.032 1.74 10.157 1.16 3.125 2.948 5.646 5.362 7.564 2.415 1.917 5.493 2.876 9.233 2.876ZM118.772 196v-72.727h8.38v26.846h.711c.615-.947 1.467-2.154 2.556-3.622 1.113-1.491 2.699-2.817 4.759-3.977 2.083-1.184 4.9-1.776 8.452-1.776 4.592 0 8.641 1.149 12.145 3.445 3.503 2.296 6.238 5.552 8.203 9.766 1.965 4.214 2.947 9.185 2.947 14.914 0 5.777-.982 10.784-2.947 15.022-1.965 4.214-4.688 7.481-8.168 9.801-3.48 2.296-7.493 3.444-12.038 3.444-3.504 0-6.31-.58-8.417-1.74-2.107-1.183-3.728-2.521-4.865-4.012-1.136-1.516-2.012-2.77-2.627-3.765h-.995V196h-8.096Zm8.238-27.273c0 4.12.604 7.754 1.811 10.902 1.208 3.125 2.971 5.576 5.292 7.351 2.32 1.752 5.161 2.628 8.522 2.628 3.504 0 6.428-.923 8.772-2.77 2.367-1.87 4.143-4.38 5.326-7.528 1.208-3.173 1.811-6.7 1.811-10.583 0-3.835-.591-7.291-1.775-10.369-1.16-3.101-2.924-5.552-5.291-7.351-2.344-1.823-5.292-2.734-8.843-2.734-3.409 0-6.273.864-8.593 2.592-2.321 1.705-4.072 4.096-5.256 7.173-1.184 3.054-1.776 6.617-1.776 10.689ZM190.824 123.273l-.71 52.272h-8.239l-.71-52.272h9.659Zm-4.829 73.295c-1.752 0-3.256-.627-4.51-1.882-1.255-1.255-1.882-2.758-1.882-4.51 0-1.752.627-3.255 1.882-4.51 1.254-1.255 2.758-1.882 4.51-1.882 1.752 0 3.255.627 4.51 1.882 1.254 1.255 1.882 2.758 1.882 4.51a6.02 6.02 0 0 1-.888 3.196 6.634 6.634 0 0 1-2.308 2.344c-.947.568-2.013.852-3.196.852Z"
251
250
  )!;
252
251
 
@@ -280,7 +279,6 @@ describe("Test Image Filters", () => {
280
279
  });
281
280
  it("should show outer and inner shadows on text", async () => {
282
281
  const path =
283
- // eslint-disable-next-line max-len
284
282
  "M62.477 2.273V75h-8.522L14.324 17.898h-.71V75H4.807V2.273h8.522l39.773 57.244h.71V2.273h8.665ZM78.963 75V20.454h8.381V75h-8.38Zm4.262-63.636c-1.634 0-3.042-.557-4.226-1.67-1.16-1.112-1.74-2.45-1.74-4.012 0-1.563.58-2.9 1.74-4.013C80.183.556 81.59 0 83.225 0c1.633 0 3.03.556 4.19 1.669 1.184 1.113 1.776 2.45 1.776 4.013 0 1.562-.592 2.9-1.776 4.013-1.16 1.112-2.557 1.669-4.19 1.669ZM124.853 76.136c-5.114 0-9.517-1.207-13.21-3.622-3.693-2.415-6.534-5.74-8.523-9.978-1.989-4.238-2.983-9.08-2.983-14.525 0-5.54 1.018-10.428 3.054-14.666 2.06-4.261 4.924-7.587 8.594-9.979 3.693-2.414 8.002-3.622 12.926-3.622 3.835 0 7.292.71 10.369 2.131 3.078 1.42 5.599 3.41 7.564 5.966 1.965 2.557 3.184 5.54 3.658 8.949h-8.381c-.639-2.486-2.059-4.688-4.261-6.605-2.178-1.942-5.114-2.912-8.807-2.912-3.267 0-6.132.852-8.594 2.556-2.438 1.681-4.344 4.06-5.717 7.138-1.35 3.054-2.024 6.641-2.024 10.76 0 4.214.663 7.884 1.988 11.009 1.35 3.125 3.244 5.551 5.682 7.28 2.462 1.728 5.351 2.592 8.665 2.592 2.178 0 4.155-.379 5.93-1.136a12.23 12.23 0 0 0 4.51-3.267c1.231-1.42 2.107-3.125 2.628-5.114h8.381c-.474 3.22-1.646 6.12-3.516 8.7-1.846 2.557-4.297 4.593-7.351 6.108-3.03 1.492-6.557 2.237-10.582 2.237ZM181.423 76.136c-5.256 0-9.79-1.16-13.601-3.48-3.788-2.344-6.712-5.61-8.772-9.8-2.036-4.215-3.054-9.116-3.054-14.703s1.018-10.511 3.054-14.772c2.06-4.285 4.925-7.623 8.594-10.015 3.693-2.414 8.002-3.622 12.926-3.622 2.841 0 5.647.474 8.417 1.42 2.769.948 5.291 2.487 7.563 4.617 2.273 2.107 4.084 4.9 5.434 8.38 1.349 3.481 2.024 7.766 2.024 12.856v3.551h-42.046v-7.244h33.523c0-3.078-.615-5.824-1.847-8.239-1.207-2.415-2.935-4.32-5.184-5.717-2.226-1.397-4.853-2.095-7.884-2.095-3.338 0-6.226.828-8.664 2.486a16.35 16.35 0 0 0-5.576 6.392c-1.302 2.627-1.953 5.445-1.953 8.451v4.83c0 4.12.71 7.611 2.131 10.476 1.444 2.84 3.444 5.007 6.001 6.498 2.557 1.468 5.528 2.202 8.914 2.202 2.201 0 4.19-.308 5.965-.923 1.8-.64 3.35-1.587 4.652-2.841 1.303-1.279 2.309-2.865 3.019-4.759l8.097 2.273a17.965 17.965 0 0 1-4.297 7.244c-2.013 2.06-4.498 3.67-7.458 4.83-2.959 1.136-6.285 1.704-9.978 1.704ZM32.648 123.273h8.806v51.988c0 4.641-.852 8.582-2.556 11.826-1.705 3.243-4.108 5.705-7.21 7.386-3.1 1.681-6.758 2.521-10.972 2.521-3.977 0-7.517-.722-10.618-2.166-3.101-1.468-5.54-3.551-7.315-6.25-1.776-2.699-2.664-5.907-2.664-9.623h8.665c0 2.059.51 3.858 1.527 5.397 1.042 1.515 2.462 2.699 4.261 3.551 1.8.853 3.848 1.279 6.144 1.279 2.533 0 4.687-.533 6.463-1.598 1.776-1.066 3.125-2.628 4.048-4.688.947-2.083 1.42-4.628 1.42-7.635v-51.988ZM80.126 197.136c-4.924 0-9.244-1.172-12.961-3.515-3.693-2.344-6.582-5.623-8.665-9.837-2.06-4.214-3.09-9.138-3.09-14.773 0-5.681 1.03-10.641 3.09-14.879 2.083-4.238 4.972-7.528 8.665-9.872 3.717-2.344 8.037-3.516 12.961-3.516 4.925 0 9.233 1.172 12.927 3.516 3.716 2.344 6.605 5.634 8.664 9.872 2.084 4.238 3.125 9.198 3.125 14.879 0 5.635-1.041 10.559-3.125 14.773-2.06 4.214-4.948 7.493-8.664 9.837-3.694 2.343-8.002 3.515-12.927 3.515Zm0-7.528c3.741 0 6.819-.959 9.233-2.876 2.415-1.918 4.203-4.439 5.363-7.564 1.16-3.125 1.74-6.511 1.74-10.157 0-3.645-.58-7.043-1.74-10.191-1.16-3.149-2.948-5.694-5.363-7.635-2.414-1.942-5.492-2.912-9.233-2.912-3.74 0-6.818.97-9.233 2.912-2.414 1.941-4.202 4.486-5.362 7.635-1.16 3.148-1.74 6.546-1.74 10.191 0 3.646.58 7.032 1.74 10.157 1.16 3.125 2.948 5.646 5.362 7.564 2.415 1.917 5.493 2.876 9.233 2.876ZM118.772 196v-72.727h8.38v26.846h.711c.615-.947 1.467-2.154 2.556-3.622 1.113-1.491 2.699-2.817 4.759-3.977 2.083-1.184 4.9-1.776 8.452-1.776 4.592 0 8.641 1.149 12.145 3.445 3.503 2.296 6.238 5.552 8.203 9.766 1.965 4.214 2.947 9.185 2.947 14.914 0 5.777-.982 10.784-2.947 15.022-1.965 4.214-4.688 7.481-8.168 9.801-3.48 2.296-7.493 3.444-12.038 3.444-3.504 0-6.31-.58-8.417-1.74-2.107-1.183-3.728-2.521-4.865-4.012-1.136-1.516-2.012-2.77-2.627-3.765h-.995V196h-8.096Zm8.238-27.273c0 4.12.604 7.754 1.811 10.902 1.208 3.125 2.971 5.576 5.292 7.351 2.32 1.752 5.161 2.628 8.522 2.628 3.504 0 6.428-.923 8.772-2.77 2.367-1.87 4.143-4.38 5.326-7.528 1.208-3.173 1.811-6.7 1.811-10.583 0-3.835-.591-7.291-1.775-10.369-1.16-3.101-2.924-5.552-5.291-7.351-2.344-1.823-5.292-2.734-8.843-2.734-3.409 0-6.273.864-8.593 2.592-2.321 1.705-4.072 4.096-5.256 7.173-1.184 3.054-1.776 6.617-1.776 10.689ZM190.824 123.273l-.71 52.272h-8.239l-.71-52.272h9.659Zm-4.829 73.295c-1.752 0-3.256-.627-4.51-1.882-1.255-1.255-1.882-2.758-1.882-4.51 0-1.752.627-3.255 1.882-4.51 1.254-1.255 2.758-1.882 4.51-1.882 1.752 0 3.255.627 4.51 1.882 1.254 1.255 1.882 2.758 1.882 4.51a6.02 6.02 0 0 1-.888 3.196 6.634 6.634 0 0 1-2.308 2.344c-.947.568-2.013.852-3.196.852Z";
285
283
 
286
284
  const img = await surface.draw(
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-len */
2
1
  import React from "react";
3
2
 
4
3
  import { surface, importSkia } from "../setup";
@@ -74,7 +74,6 @@ describe("Paths", () => {
74
74
  it("toCmd should work properly", async () => {
75
75
  const result = await surface.eval((Skia) => {
76
76
  const path = Skia.Path.MakeFromSVGString(
77
- // eslint-disable-next-line max-len
78
77
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
79
78
  );
80
79
  if (!path) {
@@ -85,7 +84,6 @@ describe("Paths", () => {
85
84
  });
86
85
  const { Skia } = importSkia();
87
86
  const ref = Skia.Path.MakeFromSVGString(
88
- // eslint-disable-next-line max-len
89
87
  "M512.213 204.005C500.312 185.697 406.758 105.581 332.94 105.581C259.122 105.581 219.088 132 204.638 149.85C157.952 207.52 141.933 264.275 156.579 320.115C175.803 387.854 228.896 449.644 315.859 505.483C415.638 562.238 479.716 626.774 508.093 699.091C518.163 731.13 519.536 762.711 512.213 793.835C504.889 824.959 490.243 853.336 468.273 878.967C449.965 903.683 425.707 921.534 395.499 932.518C365.291 942.588 328.675 950.369 285.651 955.861C182.21 964.1 97.9935 948.538 33 909.176M595.972 733.419C710.397 564.985 795.529 424.47 851.369 311.876C865.1 279.837 875.169 255.579 881.577 239.102C887.985 221.709 894.393 198.824 900.801 170.447C907.208 142.069 909.497 115.98 907.666 92.1797C904.92 68.3793 893.02 51.9021 871.965 40.0019C850.911 28.1016 835.5 31.3101 811.549 44.1212C772.187 65.1754 745.64 101.334 731.909 152.596C723.67 174.566 715.432 200.197 707.193 229.49C699.87 258.783 694.378 281.21 690.716 296.772C687.97 312.334 682.935 340.711 675.612 381.904C668.289 422.182 663.712 445.982 661.881 453.306C643.573 567.731 621.603 733.876 595.972 951.742C624.349 852.878 656.846 774.154 693.462 715.568C706.278 689.937 717.263 669.798 726.417 655.152C735.571 640.505 748.844 624.486 766.237 607.093C784.545 589.701 803.768 576.885 823.907 568.646C892.562 543.015 941.994 545.304 972.202 575.512C990.51 594.735 999.664 618.078 999.664 645.54C1000.58 673.002 990.052 694.514 968.083 710.076C925.059 733.876 859.608 741.657 771.729 733.419C786.375 737.996 797.36 742.115 804.683 745.776C812.922 748.523 822.992 753.1 834.892 759.508C847.707 765.915 857.319 773.696 863.727 782.85C871.05 792.004 875.627 802.531 877.458 814.432C878.373 819.009 879.746 827.705 881.577 840.521C884.323 853.336 886.612 862.948 888.443 869.356C890.273 875.763 892.562 884.002 895.308 894.072C898.97 904.141 903.089 912.837 907.666 920.16C913.159 926.568 919.566 932.976 926.89 939.384C949.775 961.354 987.764 958.607 1040.86 931.145C1056.42 923.822 1070.61 914.668 1083.42 903.683C1097.15 892.698 1109.97 879.425 1121.87 863.863C1134.69 847.386 1144.76 834.113 1152.08 824.043C1159.4 813.058 1169.47 797.039 1182.29 775.985C1195.1 754.931 1204.26 740.742 1209.75 733.419C1239.04 674.833 1268.33 616.247 1297.63 557.661C1252.77 670.256 1223.94 756.304 1211.12 815.805C1205.63 833.197 1203.34 853.336 1204.26 876.221C1205.17 899.106 1212.04 917.414 1224.85 931.145C1234.01 942.13 1245.45 949.453 1259.18 953.115C1273.83 956.777 1287.56 956.319 1300.37 951.742C1356.21 935.265 1401.53 903.226 1436.31 855.625C1456.45 828.163 1483.45 787.427 1517.32 733.419M1360.79 390.143C1347.97 390.143 1340.19 384.193 1337.45 372.293C1335.62 359.477 1336.99 348.492 1341.57 339.338C1345.24 332 1357.13 333.846 1369.03 333.846C1380.93 333.846 1390.5 340.5 1391 348.95M1925.13 697.718C1902.25 633.64 1874.33 593.82 1841.38 578.258C1810.25 559.95 1775.47 551.254 1737.02 552.169C1698.57 552.169 1664.25 562.238 1634.04 582.377C1605.66 598.855 1581.4 620.824 1561.26 648.286C1541.12 674.833 1527.39 704.126 1520.07 736.165C1513.66 767.288 1514.58 798.87 1522.82 830.909C1531.97 862.032 1547.53 888.579 1569.5 910.549C1604.29 939.842 1646.4 954.488 1695.83 954.488C1745.26 954.488 1787.82 939.842 1823.53 910.549C1838.17 895.902 1848.7 885.375 1855.11 878.967C1861.51 872.56 1868.84 863.406 1877.08 851.505C1886.23 839.605 1893.55 827.247 1899.05 814.432M1958.09 556.288C1933.37 657.898 1916.9 746.234 1908.66 821.297C1900.42 878.967 1911.4 918.787 1941.61 940.757C1964.5 959.065 2000.2 956.319 2048.71 932.518C2090.82 912.38 2131.1 873.017 2169.55 814.432"
90
88
  )!;
91
89
  expect(result).toEqual(ref.toCmds());
@@ -198,12 +196,10 @@ describe("Paths", () => {
198
196
  strokePaint.setStrokeWidth(strokeWidth);
199
197
 
200
198
  const borders = Skia.Path.MakeFromSVGString(
201
- // eslint-disable-next-line max-len
202
199
  "M447.955 756.37H44.699C20.5664 756.37 0.820374 736.624 0.820374 712.492V44.8242C0.820374 20.6898 20.5664 0.945557 44.699 0.945557H447.955C472.088 0.945557 491.834 20.6898 491.834 44.8242V712.492C491.834 736.624 472.088 756.37 447.955 756.37Z"
203
200
  )!;
204
201
 
205
202
  const bg =
206
- // eslint-disable-next-line max-len
207
203
  "M423.554 40.0679H69.3443C51.3334 40.0679 36.6796 54.7199 36.6796 72.7307V685.881C36.6796 703.892 51.3334 718.546 69.3443 718.546H423.554C441.565 718.546 456.219 703.892 456.219 685.881V72.7307C456.219 54.7199 441.565 40.0679 423.554 40.0679Z";
208
204
  const Circles = () => {
209
205
  const c = 12;
@@ -289,9 +285,8 @@ describe("Paths", () => {
289
285
  });
290
286
  it("should be possible to call dispose on a path", async () => {
291
287
  await surface.eval((Skia) => {
292
- const path = Skia.Path.Make();
288
+ using path = Skia.Path.Make();
293
289
  path.moveTo(20, 20).lineTo(20, 40).lineTo(40, 20);
294
- path.dispose();
295
290
  return path;
296
291
  });
297
292
  });
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-len */
2
1
  import React from "react";
3
2
 
4
3
  import { surface, importSkia, fonts } from "../setup";
@@ -86,7 +86,7 @@ describe("Skottie", () => {
86
86
  it("Should render Skottie component with basic slots animation", async () => {
87
87
  const { Skia } = importSkia();
88
88
  const assets = {
89
- NotoSerif: Skia.Data.fromBytes(
89
+ "NotoSerif": Skia.Data.fromBytes(
90
90
  new Uint8Array(Array.from(dataAssets.NotoSansSCRegular))
91
91
  ),
92
92
  "img_0.png": Skia.Data.fromBytes(
@@ -102,7 +102,7 @@ describe("Skottie", () => {
102
102
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
103
103
  // @ts-expect-error
104
104
  animation.assets = {
105
- NotoSerif: Array.from(dataAssets.NotoSansSCRegular),
105
+ "NotoSerif": Array.from(dataAssets.NotoSansSCRegular),
106
106
  "img_0.png": Array.from(dataAssets.img_0),
107
107
  };
108
108
  // END OF INTERNAL TESTING ONLY
@@ -199,7 +199,7 @@ describe("Skottie", () => {
199
199
  const slots = await surface.eval(
200
200
  (Skia, ctx) => {
201
201
  const assets = {
202
- NotoSerif: Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
202
+ "NotoSerif": Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
203
203
  "img_0.png": Skia.Data.fromBytes(new Uint8Array(ctx.img_0)),
204
204
  };
205
205
  const animation = Skia.Skottie.Make(ctx.basicSlotsJSON, assets);
@@ -223,7 +223,7 @@ describe("Skottie", () => {
223
223
  const props = await surface.eval(
224
224
  (Skia, ctx) => {
225
225
  const assets = {
226
- NotoSerif: Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
226
+ "NotoSerif": Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
227
227
  "img_0.png": Skia.Data.fromBytes(new Uint8Array(ctx.img_0)),
228
228
  };
229
229
  const animation = Skia.Skottie.Make(ctx.basicSlotsJSON, assets);
@@ -299,7 +299,7 @@ describe("Skottie", () => {
299
299
  const raw = await surface.eval(
300
300
  (Skia, ctx) => {
301
301
  const assets = {
302
- NotoSerif: Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
302
+ "NotoSerif": Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
303
303
  "img_0.png": Skia.Data.fromBytes(new Uint8Array(ctx.img_0)),
304
304
  };
305
305
  const animation = Skia.Skottie.Make(ctx.basicSlotsJSON, assets);
@@ -330,7 +330,7 @@ describe("Skottie", () => {
330
330
  const raw = await surface.eval(
331
331
  (Skia, ctx) => {
332
332
  const assets = {
333
- NotoSerif: Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
333
+ "NotoSerif": Skia.Data.fromBytes(new Uint8Array(ctx.NotoSerif)),
334
334
  "img_0.png": Skia.Data.fromBytes(new Uint8Array(ctx.img_0)),
335
335
  };
336
336
  const animation = Skia.Skottie.Make(ctx.basicSlotsJSON, assets);