@shopify/react-native-skia 1.3.12 → 1.3.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (616) hide show
  1. package/lib/commonjs/__tests__/globalSetup.d.ts +9 -0
  2. package/lib/commonjs/__tests__/globalTeardown.d.ts +2 -0
  3. package/lib/commonjs/__tests__/setup.d.ts +18 -0
  4. package/lib/commonjs/dom/__tests__/Compose.spec.d.ts +1 -0
  5. package/lib/commonjs/dom/__tests__/Demos.spec.d.ts +1 -0
  6. package/lib/commonjs/dom/__tests__/DrawingContext.spec.d.ts +1 -0
  7. package/lib/commonjs/dom/__tests__/Drawings.spec.d.ts +1 -0
  8. package/lib/commonjs/dom/__tests__/Group.spec.d.ts +1 -0
  9. package/lib/commonjs/dom/__tests__/Paint.spec.d.ts +1 -0
  10. package/lib/commonjs/dom/__tests__/RenderNodes.spec.d.ts +1 -0
  11. package/lib/commonjs/dom/__tests__/Shaders.spec.d.ts +1 -0
  12. package/lib/commonjs/renderer/__tests__/Data.spec.d.ts +1 -0
  13. package/lib/commonjs/renderer/__tests__/Drawings.spec.d.ts +1 -0
  14. package/lib/commonjs/renderer/__tests__/FitBox.spec.d.ts +1 -0
  15. package/lib/commonjs/renderer/__tests__/Glyphs.spec.d.ts +1 -0
  16. package/lib/commonjs/renderer/__tests__/Image.spec.d.ts +1 -0
  17. package/lib/commonjs/renderer/__tests__/Paths.spec.d.ts +1 -0
  18. package/lib/commonjs/renderer/__tests__/Picture.spec.d.ts +1 -0
  19. package/lib/commonjs/renderer/__tests__/Simple.spec.d.ts +1 -0
  20. package/lib/commonjs/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
  21. package/lib/commonjs/renderer/__tests__/Surfaces.spec.d.ts +1 -0
  22. package/lib/commonjs/renderer/__tests__/Text.spec.d.ts +1 -0
  23. package/lib/commonjs/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
  24. package/lib/commonjs/renderer/__tests__/Transform.spec.d.ts +1 -0
  25. package/lib/commonjs/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
  26. package/lib/commonjs/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
  27. package/lib/commonjs/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
  28. package/lib/commonjs/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
  29. package/lib/commonjs/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
  30. package/lib/commonjs/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
  31. package/lib/commonjs/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
  32. package/lib/commonjs/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
  33. package/lib/commonjs/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
  34. package/lib/commonjs/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
  35. package/lib/commonjs/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
  36. package/lib/commonjs/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
  37. package/lib/commonjs/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
  38. package/lib/commonjs/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
  39. package/lib/commonjs/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
  40. package/lib/commonjs/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
  41. package/lib/commonjs/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
  42. package/lib/commonjs/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
  43. package/lib/commonjs/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
  44. package/lib/commonjs/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
  45. package/lib/commonjs/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
  46. package/lib/commonjs/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
  47. package/lib/commonjs/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
  48. package/lib/commonjs/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
  49. package/lib/commonjs/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
  50. package/lib/commonjs/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
  51. package/lib/commonjs/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
  52. package/lib/commonjs/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
  53. package/lib/commonjs/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
  54. package/lib/commonjs/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
  55. package/lib/commonjs/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
  56. package/lib/commonjs/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
  57. package/lib/commonjs/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
  58. package/lib/commonjs/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
  59. package/lib/commonjs/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
  60. package/lib/commonjs/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
  61. package/lib/commonjs/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
  62. package/lib/commonjs/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
  63. package/lib/commonjs/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
  64. package/lib/commonjs/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
  65. package/lib/commonjs/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
  66. package/lib/commonjs/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
  67. package/lib/commonjs/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
  68. package/lib/commonjs/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
  69. package/lib/commonjs/renderer/__tests__/e2e/Video.d.ts +1 -0
  70. package/lib/commonjs/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
  71. package/lib/commonjs/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
  72. package/lib/commonjs/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
  73. package/lib/commonjs/renderer/__tests__/e2e/setup/index.d.ts +3 -0
  74. package/lib/commonjs/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
  75. package/lib/commonjs/renderer/__tests__/setup.d.ts +66 -0
  76. package/lib/commonjs/skia/__tests__/ColorFilter.spec.d.ts +1 -0
  77. package/lib/commonjs/skia/__tests__/Data.spec.d.ts +1 -0
  78. package/lib/commonjs/skia/__tests__/Drawings.spec.d.ts +1 -0
  79. package/lib/commonjs/skia/__tests__/Enums.spec.d.ts +1 -0
  80. package/lib/commonjs/skia/__tests__/Geometry.spec.d.ts +1 -0
  81. package/lib/commonjs/skia/__tests__/ImageFilter.spec.d.ts +1 -0
  82. package/lib/commonjs/skia/__tests__/Mock.spec.d.ts +0 -0
  83. package/lib/commonjs/skia/__tests__/Paint.spec.d.ts +1 -0
  84. package/lib/commonjs/skia/__tests__/Path.spec.d.ts +1 -0
  85. package/lib/commonjs/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
  86. package/lib/commonjs/skia/__tests__/Shader.spec.d.ts +1 -0
  87. package/lib/commonjs/skia/__tests__/Text.spec.d.ts +1 -0
  88. package/lib/commonjs/skia/__tests__/Transform.spec.d.ts +1 -0
  89. package/lib/commonjs/skia/__tests__/Vertices.spec.d.ts +1 -0
  90. package/lib/commonjs/skia/__tests__/setup.d.ts +19 -0
  91. package/lib/module/__tests__/globalSetup.d.ts +9 -0
  92. package/lib/module/__tests__/globalTeardown.d.ts +2 -0
  93. package/lib/module/__tests__/setup.d.ts +18 -0
  94. package/lib/module/dom/__tests__/Compose.spec.d.ts +1 -0
  95. package/lib/module/dom/__tests__/Demos.spec.d.ts +1 -0
  96. package/lib/module/dom/__tests__/DrawingContext.spec.d.ts +1 -0
  97. package/lib/module/dom/__tests__/Drawings.spec.d.ts +1 -0
  98. package/lib/module/dom/__tests__/Group.spec.d.ts +1 -0
  99. package/lib/module/dom/__tests__/Paint.spec.d.ts +1 -0
  100. package/lib/module/dom/__tests__/RenderNodes.spec.d.ts +1 -0
  101. package/lib/module/dom/__tests__/Shaders.spec.d.ts +1 -0
  102. package/lib/module/renderer/__tests__/Data.spec.d.ts +1 -0
  103. package/lib/module/renderer/__tests__/Drawings.spec.d.ts +1 -0
  104. package/lib/module/renderer/__tests__/FitBox.spec.d.ts +1 -0
  105. package/lib/module/renderer/__tests__/Glyphs.spec.d.ts +1 -0
  106. package/lib/module/renderer/__tests__/Image.spec.d.ts +1 -0
  107. package/lib/module/renderer/__tests__/Paths.spec.d.ts +1 -0
  108. package/lib/module/renderer/__tests__/Picture.spec.d.ts +1 -0
  109. package/lib/module/renderer/__tests__/Simple.spec.d.ts +1 -0
  110. package/lib/module/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
  111. package/lib/module/renderer/__tests__/Surfaces.spec.d.ts +1 -0
  112. package/lib/module/renderer/__tests__/Text.spec.d.ts +1 -0
  113. package/lib/module/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
  114. package/lib/module/renderer/__tests__/Transform.spec.d.ts +1 -0
  115. package/lib/module/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
  116. package/lib/module/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
  117. package/lib/module/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
  118. package/lib/module/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
  119. package/lib/module/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
  120. package/lib/module/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
  121. package/lib/module/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
  122. package/lib/module/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
  123. package/lib/module/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
  124. package/lib/module/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
  125. package/lib/module/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
  126. package/lib/module/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
  127. package/lib/module/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
  128. package/lib/module/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
  129. package/lib/module/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
  130. package/lib/module/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
  131. package/lib/module/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
  132. package/lib/module/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
  133. package/lib/module/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
  134. package/lib/module/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
  135. package/lib/module/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
  136. package/lib/module/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
  137. package/lib/module/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
  138. package/lib/module/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
  139. package/lib/module/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
  140. package/lib/module/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
  141. package/lib/module/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
  142. package/lib/module/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
  143. package/lib/module/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
  144. package/lib/module/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
  145. package/lib/module/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
  146. package/lib/module/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
  147. package/lib/module/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
  148. package/lib/module/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
  149. package/lib/module/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
  150. package/lib/module/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
  151. package/lib/module/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
  152. package/lib/module/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
  153. package/lib/module/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
  154. package/lib/module/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
  155. package/lib/module/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
  156. package/lib/module/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
  157. package/lib/module/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
  158. package/lib/module/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
  159. package/lib/module/renderer/__tests__/e2e/Video.d.ts +1 -0
  160. package/lib/module/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
  161. package/lib/module/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
  162. package/lib/module/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
  163. package/lib/module/renderer/__tests__/e2e/setup/index.d.ts +3 -0
  164. package/lib/module/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
  165. package/lib/module/renderer/__tests__/setup.d.ts +66 -0
  166. package/lib/module/skia/__tests__/ColorFilter.spec.d.ts +1 -0
  167. package/lib/module/skia/__tests__/Data.spec.d.ts +1 -0
  168. package/lib/module/skia/__tests__/Drawings.spec.d.ts +1 -0
  169. package/lib/module/skia/__tests__/Enums.spec.d.ts +1 -0
  170. package/lib/module/skia/__tests__/Geometry.spec.d.ts +1 -0
  171. package/lib/module/skia/__tests__/ImageFilter.spec.d.ts +1 -0
  172. package/lib/module/skia/__tests__/Mock.spec.d.ts +0 -0
  173. package/lib/module/skia/__tests__/Paint.spec.d.ts +1 -0
  174. package/lib/module/skia/__tests__/Path.spec.d.ts +1 -0
  175. package/lib/module/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
  176. package/lib/module/skia/__tests__/Shader.spec.d.ts +1 -0
  177. package/lib/module/skia/__tests__/Text.spec.d.ts +1 -0
  178. package/lib/module/skia/__tests__/Transform.spec.d.ts +1 -0
  179. package/lib/module/skia/__tests__/Vertices.spec.d.ts +1 -0
  180. package/lib/module/skia/__tests__/setup.d.ts +19 -0
  181. package/lib/typescript/src/__tests__/globalSetup.d.ts +9 -0
  182. package/lib/typescript/src/__tests__/globalTeardown.d.ts +2 -0
  183. package/lib/typescript/src/__tests__/setup.d.ts +18 -0
  184. package/lib/typescript/src/dom/__tests__/Compose.spec.d.ts +1 -0
  185. package/lib/typescript/src/dom/__tests__/Demos.spec.d.ts +1 -0
  186. package/lib/typescript/src/dom/__tests__/DrawingContext.spec.d.ts +1 -0
  187. package/lib/typescript/src/dom/__tests__/Drawings.spec.d.ts +1 -0
  188. package/lib/typescript/src/dom/__tests__/Group.spec.d.ts +1 -0
  189. package/lib/typescript/src/dom/__tests__/Paint.spec.d.ts +1 -0
  190. package/lib/typescript/src/dom/__tests__/RenderNodes.spec.d.ts +1 -0
  191. package/lib/typescript/src/dom/__tests__/Shaders.spec.d.ts +1 -0
  192. package/lib/typescript/src/renderer/__tests__/Data.spec.d.ts +1 -0
  193. package/lib/typescript/src/renderer/__tests__/Drawings.spec.d.ts +1 -0
  194. package/lib/typescript/src/renderer/__tests__/FitBox.spec.d.ts +1 -0
  195. package/lib/typescript/src/renderer/__tests__/Glyphs.spec.d.ts +1 -0
  196. package/lib/typescript/src/renderer/__tests__/Image.spec.d.ts +1 -0
  197. package/lib/typescript/src/renderer/__tests__/Paths.spec.d.ts +1 -0
  198. package/lib/typescript/src/renderer/__tests__/Picture.spec.d.ts +1 -0
  199. package/lib/typescript/src/renderer/__tests__/Simple.spec.d.ts +1 -0
  200. package/lib/typescript/src/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
  201. package/lib/typescript/src/renderer/__tests__/Surfaces.spec.d.ts +1 -0
  202. package/lib/typescript/src/renderer/__tests__/Text.spec.d.ts +1 -0
  203. package/lib/typescript/src/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
  204. package/lib/typescript/src/renderer/__tests__/Transform.spec.d.ts +1 -0
  205. package/lib/typescript/src/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
  206. package/lib/typescript/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
  207. package/lib/typescript/src/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
  208. package/lib/typescript/src/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
  209. package/lib/typescript/src/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
  210. package/lib/typescript/src/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
  211. package/lib/typescript/src/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
  212. package/lib/typescript/src/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
  213. package/lib/typescript/src/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
  214. package/lib/typescript/src/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
  215. package/lib/typescript/src/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
  216. package/lib/typescript/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
  217. package/lib/typescript/src/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
  218. package/lib/typescript/src/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
  219. package/lib/typescript/src/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
  220. package/lib/typescript/src/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
  221. package/lib/typescript/src/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
  222. package/lib/typescript/src/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
  223. package/lib/typescript/src/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
  224. package/lib/typescript/src/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
  225. package/lib/typescript/src/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
  226. package/lib/typescript/src/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
  227. package/lib/typescript/src/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
  228. package/lib/typescript/src/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
  229. package/lib/typescript/src/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
  230. package/lib/typescript/src/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
  231. package/lib/typescript/src/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
  232. package/lib/typescript/src/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
  233. package/lib/typescript/src/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
  234. package/lib/typescript/src/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
  235. package/lib/typescript/src/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
  236. package/lib/typescript/src/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
  237. package/lib/typescript/src/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
  238. package/lib/typescript/src/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
  239. package/lib/typescript/src/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
  240. package/lib/typescript/src/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
  241. package/lib/typescript/src/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
  242. package/lib/typescript/src/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
  243. package/lib/typescript/src/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
  244. package/lib/typescript/src/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
  245. package/lib/typescript/src/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
  246. package/lib/typescript/src/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
  247. package/lib/typescript/src/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
  248. package/lib/typescript/src/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
  249. package/lib/typescript/src/renderer/__tests__/e2e/Video.d.ts +1 -0
  250. package/lib/typescript/src/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
  251. package/lib/typescript/src/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
  252. package/lib/typescript/src/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
  253. package/lib/typescript/src/renderer/__tests__/e2e/setup/index.d.ts +3 -0
  254. package/lib/typescript/src/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
  255. package/lib/typescript/src/renderer/__tests__/setup.d.ts +66 -0
  256. package/lib/typescript/src/skia/__tests__/ColorFilter.spec.d.ts +1 -0
  257. package/lib/typescript/src/skia/__tests__/Data.spec.d.ts +1 -0
  258. package/lib/typescript/src/skia/__tests__/Drawings.spec.d.ts +1 -0
  259. package/lib/typescript/src/skia/__tests__/Enums.spec.d.ts +1 -0
  260. package/lib/typescript/src/skia/__tests__/Geometry.spec.d.ts +1 -0
  261. package/lib/typescript/src/skia/__tests__/ImageFilter.spec.d.ts +1 -0
  262. package/lib/typescript/src/skia/__tests__/Mock.spec.d.ts +0 -0
  263. package/lib/typescript/src/skia/__tests__/Paint.spec.d.ts +1 -0
  264. package/lib/typescript/src/skia/__tests__/Path.spec.d.ts +1 -0
  265. package/lib/typescript/src/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
  266. package/lib/typescript/src/skia/__tests__/Shader.spec.d.ts +1 -0
  267. package/lib/typescript/src/skia/__tests__/Text.spec.d.ts +1 -0
  268. package/lib/typescript/src/skia/__tests__/Transform.spec.d.ts +1 -0
  269. package/lib/typescript/src/skia/__tests__/Vertices.spec.d.ts +1 -0
  270. package/lib/typescript/src/skia/__tests__/setup.d.ts +19 -0
  271. package/libs/ios/libskia.xcframework/Info.plist +46 -0
  272. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  273. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  274. package/libs/ios/libskottie.xcframework/Info.plist +46 -0
  275. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  276. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  277. package/libs/ios/libskparagraph.xcframework/Info.plist +46 -0
  278. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  279. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  280. package/libs/ios/libsksg.xcframework/Info.plist +46 -0
  281. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  282. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  283. package/libs/ios/libskshaper.xcframework/Info.plist +46 -0
  284. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  285. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  286. package/libs/ios/libskunicode.xcframework/Info.plist +46 -0
  287. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  288. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  289. package/libs/ios/libsvg.xcframework/Info.plist +46 -0
  290. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  291. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  292. package/package.json +11 -14
  293. package/src/__tests__/globalSetup.ts +51 -0
  294. package/src/__tests__/globalTeardown.ts +11 -0
  295. package/src/__tests__/setup.ts +129 -0
  296. package/src/__tests__/snapshots/animated-images/bird.png +0 -0
  297. package/src/__tests__/snapshots/animations/green.png +0 -0
  298. package/src/__tests__/snapshots/animations/lightblue.png +0 -0
  299. package/src/__tests__/snapshots/animations/quarter-lightblue.png +0 -0
  300. package/src/__tests__/snapshots/animations/red.png +0 -0
  301. package/src/__tests__/snapshots/atlas/identity.png +0 -0
  302. package/src/__tests__/snapshots/atlas/rsxform.png +0 -0
  303. package/src/__tests__/snapshots/atlas/rsxform1.png +0 -0
  304. package/src/__tests__/snapshots/atlas/simple.png +0 -0
  305. package/src/__tests__/snapshots/atlas/simple2.png +0 -0
  306. package/src/__tests__/snapshots/box/box-shadow.png +0 -0
  307. package/src/__tests__/snapshots/box/box-shadow2.png +0 -0
  308. package/src/__tests__/snapshots/box/box-shadow3.png +0 -0
  309. package/src/__tests__/snapshots/box/box-stroke.png +0 -0
  310. package/src/__tests__/snapshots/color-filter/color-filter-composition.png +0 -0
  311. package/src/__tests__/snapshots/color-filter/matrix1.png +0 -0
  312. package/src/__tests__/snapshots/color-filter/matrix3.png +0 -0
  313. package/src/__tests__/snapshots/color-filter/zurich-sepia.png +0 -0
  314. package/src/__tests__/snapshots/coons-patch/patch-with-opacity.png +0 -0
  315. package/src/__tests__/snapshots/coons-patch/simple.png +0 -0
  316. package/src/__tests__/snapshots/cyan-buffer.png +0 -0
  317. package/src/__tests__/snapshots/data/oslo.png +0 -0
  318. package/src/__tests__/snapshots/data/red.png +0 -0
  319. package/src/__tests__/snapshots/data/zurich.png +0 -0
  320. package/src/__tests__/snapshots/demos/apple-breathe.png +0 -0
  321. package/src/__tests__/snapshots/demos/apple-breathe1.png +0 -0
  322. package/src/__tests__/snapshots/demos/breathe.png +0 -0
  323. package/src/__tests__/snapshots/demos/breathe2.png +0 -0
  324. package/src/__tests__/snapshots/demos/product.png +0 -0
  325. package/src/__tests__/snapshots/demos/product2.png +0 -0
  326. package/src/__tests__/snapshots/demos/skia-neon.png +0 -0
  327. package/src/__tests__/snapshots/demos/skia-neon1.png +0 -0
  328. package/src/__tests__/snapshots/drawings/arc.png +0 -0
  329. package/src/__tests__/snapshots/drawings/blend-mode-multiply.png +0 -0
  330. package/src/__tests__/snapshots/drawings/blend-modes.png +0 -0
  331. package/src/__tests__/snapshots/drawings/blur-node.png +0 -0
  332. package/src/__tests__/snapshots/drawings/blur.png +0 -0
  333. package/src/__tests__/snapshots/drawings/blur2.png +0 -0
  334. package/src/__tests__/snapshots/drawings/custom-drawing.png +0 -0
  335. package/src/__tests__/snapshots/drawings/cyan-circle.png +0 -0
  336. package/src/__tests__/snapshots/drawings/cyan.png +0 -0
  337. package/src/__tests__/snapshots/drawings/default-props.png +0 -0
  338. package/src/__tests__/snapshots/drawings/hello-world.png +0 -0
  339. package/src/__tests__/snapshots/drawings/image-default-props.png +0 -0
  340. package/src/__tests__/snapshots/drawings/lightblue-quarter-circle.png +0 -0
  341. package/src/__tests__/snapshots/drawings/lightblue-rect.png +0 -0
  342. package/src/__tests__/snapshots/drawings/line.png +0 -0
  343. package/src/__tests__/snapshots/drawings/multiple-paints.png +0 -0
  344. package/src/__tests__/snapshots/drawings/nested-shader.png +0 -0
  345. package/src/__tests__/snapshots/drawings/nested-shader2.png +0 -0
  346. package/src/__tests__/snapshots/drawings/opacity-image.png +0 -0
  347. package/src/__tests__/snapshots/drawings/opacity-multiplication.png +0 -0
  348. package/src/__tests__/snapshots/drawings/opacity-multiplication2.png +0 -0
  349. package/src/__tests__/snapshots/drawings/points.png +0 -0
  350. package/src/__tests__/snapshots/drawings/purple.png +0 -0
  351. package/src/__tests__/snapshots/drawings/rotated-image.png +0 -0
  352. package/src/__tests__/snapshots/drawings/rotated-scaled-image.png +0 -0
  353. package/src/__tests__/snapshots/drawings/rrect-aa.png +0 -0
  354. package/src/__tests__/snapshots/drawings/rrect-no-aa.png +0 -0
  355. package/src/__tests__/snapshots/drawings/scaled-image.png +0 -0
  356. package/src/__tests__/snapshots/drawings/scaled-image2.png +0 -0
  357. package/src/__tests__/snapshots/drawings/shader-opacity-reference.png +0 -0
  358. package/src/__tests__/snapshots/drawings/skew-transform.png +0 -0
  359. package/src/__tests__/snapshots/drawings/skew-transform2.png +0 -0
  360. package/src/__tests__/snapshots/drawings/small-lightblue-rect.png +0 -0
  361. package/src/__tests__/snapshots/drawings/stroke.png +0 -0
  362. package/src/__tests__/snapshots/drawings/transform-origin.png +0 -0
  363. package/src/__tests__/snapshots/drawings/transparent.png +0 -0
  364. package/src/__tests__/snapshots/drawings/violet.png +0 -0
  365. package/src/__tests__/snapshots/font/green.png +0 -0
  366. package/src/__tests__/snapshots/font/red.png +0 -0
  367. package/src/__tests__/snapshots/glyphs/simple.png +0 -0
  368. package/src/__tests__/snapshots/gradient/linear-with-opacity.png +0 -0
  369. package/src/__tests__/snapshots/gradient/linear.png +0 -0
  370. package/src/__tests__/snapshots/green.png +0 -0
  371. package/src/__tests__/snapshots/image-filter/blur.png +0 -0
  372. package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
  373. package/src/__tests__/snapshots/images/bundle-android.png +0 -0
  374. package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
  375. package/src/__tests__/snapshots/images/bundle-node.png +0 -0
  376. package/src/__tests__/snapshots/images/bundle.png +0 -0
  377. package/src/__tests__/snapshots/images/filter.png +0 -0
  378. package/src/__tests__/snapshots/leak.png +0 -0
  379. package/src/__tests__/snapshots/matrix4/perspective.png +0 -0
  380. package/src/__tests__/snapshots/paint/blend-mode.png +0 -0
  381. package/src/__tests__/snapshots/paint/circle.png +0 -0
  382. package/src/__tests__/snapshots/paint/colors.png +0 -0
  383. package/src/__tests__/snapshots/paint/dither.png +0 -0
  384. package/src/__tests__/snapshots/paint/path-paint.png +0 -0
  385. package/src/__tests__/snapshots/paint/without-dither.png +0 -0
  386. package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-android.png +0 -0
  387. package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-ios.png +0 -0
  388. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-android.png +0 -0
  389. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-ios.png +0 -0
  390. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-node.png +0 -0
  391. package/src/__tests__/snapshots/paragraph/paragraph-ellipse-android.png +0 -0
  392. package/src/__tests__/snapshots/paragraph/paragraph-ellipse-ios.png +0 -0
  393. package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-android.png +0 -0
  394. package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-ios.png +0 -0
  395. package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-android.png +0 -0
  396. package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-ios.png +0 -0
  397. package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-android.png +0 -0
  398. package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-ios.png +0 -0
  399. package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-android.png +0 -0
  400. package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-ios.png +0 -0
  401. package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-android.png +0 -0
  402. package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-ios.png +0 -0
  403. package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-android.png +0 -0
  404. package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-ios.png +0 -0
  405. package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-android.png +0 -0
  406. package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-ios.png +0 -0
  407. package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-android.png +0 -0
  408. package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-ios.png +0 -0
  409. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-android.png +0 -0
  410. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-ios.png +0 -0
  411. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android-box.png +0 -0
  412. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android.png +0 -0
  413. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios-box.png +0 -0
  414. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios.png +0 -0
  415. package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-android.png +0 -0
  416. package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-ios.png +0 -0
  417. package/src/__tests__/snapshots/paragraph/simple-paragraph-android.png +0 -0
  418. package/src/__tests__/snapshots/paragraph/simple-paragraph-ios.png +0 -0
  419. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-android.png +0 -0
  420. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-ios.png +0 -0
  421. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-node.png +0 -0
  422. package/src/__tests__/snapshots/path/interpolate.png +0 -0
  423. package/src/__tests__/snapshots/path/logo.png +0 -0
  424. package/src/__tests__/snapshots/path-effects/discrete.png +0 -0
  425. package/src/__tests__/snapshots/path-effects/sum.png +0 -0
  426. package/src/__tests__/snapshots/path-effects/sum2.png +0 -0
  427. package/src/__tests__/snapshots/paths/arc.png +0 -0
  428. package/src/__tests__/snapshots/paths/emptyPath.png +0 -0
  429. package/src/__tests__/snapshots/paths/interpolation1.png +0 -0
  430. package/src/__tests__/snapshots/paths/oval.png +0 -0
  431. package/src/__tests__/snapshots/paths/pattern.png +0 -0
  432. package/src/__tests__/snapshots/paths/poly.png +0 -0
  433. package/src/__tests__/snapshots/paths/rrect.png +0 -0
  434. package/src/__tests__/snapshots/paths/skia-trimmed.png +0 -0
  435. package/src/__tests__/snapshots/paths/skia.png +0 -0
  436. package/src/__tests__/snapshots/pictures/create-picture.png +0 -0
  437. package/src/__tests__/snapshots/pictures/green.png +0 -0
  438. package/src/__tests__/snapshots/pictures/hello-world.png +0 -0
  439. package/src/__tests__/snapshots/pictures/red.png +0 -0
  440. package/src/__tests__/snapshots/pictures/simple-picture.png +0 -0
  441. package/src/__tests__/snapshots/platform-buffer-bgra.png +0 -0
  442. package/src/__tests__/snapshots/platform-buffer.png +0 -0
  443. package/src/__tests__/snapshots/points/points.png +0 -0
  444. package/src/__tests__/snapshots/points/points2.png +0 -0
  445. package/src/__tests__/snapshots/render-nodes/simple.png +0 -0
  446. package/src/__tests__/snapshots/render-nodes/simple2.png +0 -0
  447. package/src/__tests__/snapshots/runtime-effects/blend-color-burn.png +0 -0
  448. package/src/__tests__/snapshots/runtime-effects/blend-color-burn2.png +0 -0
  449. package/src/__tests__/snapshots/runtime-effects/blend-color-burn3.png +0 -0
  450. package/src/__tests__/snapshots/runtime-effects/blend-color-dodge.png +0 -0
  451. package/src/__tests__/snapshots/runtime-effects/blend-multiply.png +0 -0
  452. package/src/__tests__/snapshots/runtime-effects/int-uniform.png +0 -0
  453. package/src/__tests__/snapshots/runtime-effects/linear-gradient.png +0 -0
  454. package/src/__tests__/snapshots/runtime-effects/linear-gradient2.png +0 -0
  455. package/src/__tests__/snapshots/runtime-effects/small-spiral.png +0 -0
  456. package/src/__tests__/snapshots/runtime-effects/spiral.png +0 -0
  457. package/src/__tests__/snapshots/runtime-shader/scaled-circle.png +0 -0
  458. package/src/__tests__/snapshots/runtime-shader/scaled-circle2.png +0 -0
  459. package/src/__tests__/snapshots/runtime-shader/simple.png +0 -0
  460. package/src/__tests__/snapshots/runtime-shader/spiral.png +0 -0
  461. package/src/__tests__/snapshots/runtime-shader/unscaled-image.png +0 -0
  462. package/src/__tests__/snapshots/screens/snapshot1-android-ci.png +0 -0
  463. package/src/__tests__/snapshots/screens/snapshot1-android.png +0 -0
  464. package/src/__tests__/snapshots/screens/snapshot1-ios.png +0 -0
  465. package/src/__tests__/snapshots/screens/snapshot2-android-ci.png +0 -0
  466. package/src/__tests__/snapshots/screens/snapshot2-android.png +0 -0
  467. package/src/__tests__/snapshots/screens/snapshot2-ios.png +0 -0
  468. package/src/__tests__/snapshots/screens/snapshot3-android-ci.png +0 -0
  469. package/src/__tests__/snapshots/screens/snapshot3-android.png +0 -0
  470. package/src/__tests__/snapshots/screens/snapshot3-ios.png +0 -0
  471. package/src/__tests__/snapshots/screens/snapshot4-android-ci.png +0 -0
  472. package/src/__tests__/snapshots/screens/snapshot4-android.png +0 -0
  473. package/src/__tests__/snapshots/screens/snapshot4-ios.png +0 -0
  474. package/src/__tests__/snapshots/screens/snapshot5-android.png +0 -0
  475. package/src/__tests__/snapshots/screens/snapshot5-ios.png +0 -0
  476. package/src/__tests__/snapshots/sdf/circle.png +0 -0
  477. package/src/__tests__/snapshots/sdf/heart.png +0 -0
  478. package/src/__tests__/snapshots/sdf/line.png +0 -0
  479. package/src/__tests__/snapshots/sdf/rectangle.png +0 -0
  480. package/src/__tests__/snapshots/shader/bilinear-interpolation.png +0 -0
  481. package/src/__tests__/snapshots/shader/hue.png +0 -0
  482. package/src/__tests__/snapshots/shader/hue2.png +0 -0
  483. package/src/__tests__/snapshots/shader/shader1.png +0 -0
  484. package/src/__tests__/snapshots/shader/shader2.png +0 -0
  485. package/src/__tests__/snapshots/shader/sweep-gradient.png +0 -0
  486. package/src/__tests__/snapshots/text/text-bounds-android.png +0 -0
  487. package/src/__tests__/snapshots/text/text-bounds-ios.png +0 -0
  488. package/src/__tests__/snapshots/text/text-default-font-android.png +0 -0
  489. package/src/__tests__/snapshots/text/text-default-font-ios.png +0 -0
  490. package/src/__tests__/snapshots/text/text-path-bug-android.png +0 -0
  491. package/src/__tests__/snapshots/text/text-path-bug-ios.png +0 -0
  492. package/src/__tests__/snapshots/text/text-path-bug-node.png +0 -0
  493. package/src/__tests__/snapshots/text/text-path1-android.png +0 -0
  494. package/src/__tests__/snapshots/text/text-path1-ios.png +0 -0
  495. package/src/__tests__/snapshots/text/text-path1-node.png +0 -0
  496. package/src/__tests__/snapshots/text/text-path2-android.png +0 -0
  497. package/src/__tests__/snapshots/text/text-path2-ios.png +0 -0
  498. package/src/__tests__/snapshots/text/text-path2-node.png +0 -0
  499. package/src/__tests__/snapshots/transform/rectangles.png +0 -0
  500. package/src/__tests__/snapshots/transform/rotate-radiants.png +0 -0
  501. package/src/__tests__/snapshots/transform/rotate.png +0 -0
  502. package/src/__tests__/snapshots/transform/scale-origin.png +0 -0
  503. package/src/__tests__/snapshots/transform/scale.png +0 -0
  504. package/src/__tests__/snapshots/transform/skew.png +0 -0
  505. package/src/__tests__/snapshots/transparent.png +0 -0
  506. package/src/__tests__/snapshots/vertices/billinear-gradient.png +0 -0
  507. package/src/__tests__/snapshots/vertices/strip.png +0 -0
  508. package/src/__tests__/snapshots/vertices/vertices.png +0 -0
  509. package/src/dom/__tests__/Compose.spec.tsx +42 -0
  510. package/src/dom/__tests__/Demos.spec.tsx +145 -0
  511. package/src/dom/__tests__/DrawingContext.spec.tsx +99 -0
  512. package/src/dom/__tests__/Drawings.spec.tsx +95 -0
  513. package/src/dom/__tests__/Group.spec.tsx +132 -0
  514. package/src/dom/__tests__/Paint.spec.tsx +100 -0
  515. package/src/dom/__tests__/RenderNodes.spec.tsx +44 -0
  516. package/src/dom/__tests__/Shaders.spec.tsx +123 -0
  517. package/src/renderer/__tests__/Data.spec.tsx +67 -0
  518. package/src/renderer/__tests__/Drawings.spec.tsx +96 -0
  519. package/src/renderer/__tests__/FitBox.spec.tsx +126 -0
  520. package/src/renderer/__tests__/Glyphs.spec.tsx +46 -0
  521. package/src/renderer/__tests__/Image.spec.tsx +45 -0
  522. package/src/renderer/__tests__/Paths.spec.tsx +75 -0
  523. package/src/renderer/__tests__/Picture.spec.tsx +82 -0
  524. package/src/renderer/__tests__/Simple.spec.tsx +81 -0
  525. package/src/renderer/__tests__/SkiaDOM.spec.tsx +46 -0
  526. package/src/renderer/__tests__/Surfaces.spec.tsx +73 -0
  527. package/src/renderer/__tests__/Text.spec.tsx +134 -0
  528. package/src/renderer/__tests__/TouchHandler.spec.tsx +113 -0
  529. package/src/renderer/__tests__/Transform.spec.tsx +72 -0
  530. package/src/renderer/__tests__/documentation/Group.spec.tsx +171 -0
  531. package/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.tsx +51 -0
  532. package/src/renderer/__tests__/documentation/paint/Overview.spec.tsx +84 -0
  533. package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +46 -0
  534. package/src/renderer/__tests__/e2e/AnimatedImages.spec.tsx +88 -0
  535. package/src/renderer/__tests__/e2e/Atlas.spec.tsx +358 -0
  536. package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +141 -0
  537. package/src/renderer/__tests__/e2e/Blending.spec.tsx +115 -0
  538. package/src/renderer/__tests__/e2e/Blur.spec.tsx +56 -0
  539. package/src/renderer/__tests__/e2e/Box.spec.tsx +83 -0
  540. package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +212 -0
  541. package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +81 -0
  542. package/src/renderer/__tests__/e2e/CoonPatch.spec.tsx +74 -0
  543. package/src/renderer/__tests__/e2e/DataEncoding.spec.tsx +75 -0
  544. package/src/renderer/__tests__/e2e/Drawings.spec.tsx +209 -0
  545. package/src/renderer/__tests__/e2e/FontMgr.spec.tsx +150 -0
  546. package/src/renderer/__tests__/e2e/Gradient.spec.tsx +40 -0
  547. package/src/renderer/__tests__/e2e/Group.spec.tsx +129 -0
  548. package/src/renderer/__tests__/e2e/Image.spec.tsx +139 -0
  549. package/src/renderer/__tests__/e2e/ImageEncoding.spec.tsx +255 -0
  550. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +230 -0
  551. package/src/renderer/__tests__/e2e/Mask.spec.tsx +85 -0
  552. package/src/renderer/__tests__/e2e/Matrix4.spec.tsx +275 -0
  553. package/src/renderer/__tests__/e2e/NativeBuffer.spec.tsx +156 -0
  554. package/src/renderer/__tests__/e2e/Offscreen.spec.tsx +109 -0
  555. package/src/renderer/__tests__/e2e/Opacity.spec.tsx +278 -0
  556. package/src/renderer/__tests__/e2e/Paint.spec.tsx +170 -0
  557. package/src/renderer/__tests__/e2e/ParagraphPaint.spec.tsx +262 -0
  558. package/src/renderer/__tests__/e2e/Paragraphs.spec.tsx +615 -0
  559. package/src/renderer/__tests__/e2e/PathEffects.spec.tsx +73 -0
  560. package/src/renderer/__tests__/e2e/Paths.spec.tsx +390 -0
  561. package/src/renderer/__tests__/e2e/Picture.spec.tsx +134 -0
  562. package/src/renderer/__tests__/e2e/Point.spec.tsx +35 -0
  563. package/src/renderer/__tests__/e2e/Rect.spec.tsx +139 -0
  564. package/src/renderer/__tests__/e2e/RuntimeShader.spec.tsx +324 -0
  565. package/src/renderer/__tests__/e2e/SDF.spec.tsx +148 -0
  566. package/src/renderer/__tests__/e2e/SVG.spec.tsx +191 -0
  567. package/src/renderer/__tests__/e2e/Shader.spec.tsx +260 -0
  568. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +29 -0
  569. package/src/renderer/__tests__/e2e/Surfaces.spec.tsx +17 -0
  570. package/src/renderer/__tests__/e2e/Text.spec.tsx +109 -0
  571. package/src/renderer/__tests__/e2e/TextPath.spec.tsx +45 -0
  572. package/src/renderer/__tests__/e2e/Transforms.spec.tsx +63 -0
  573. package/src/renderer/__tests__/e2e/Vertices.spec.tsx +30 -0
  574. package/src/renderer/__tests__/e2e/Video.ts +69 -0
  575. package/src/renderer/__tests__/e2e/setup/Paragraph.ts +56 -0
  576. package/src/renderer/__tests__/e2e/setup/SVG.ts +27 -0
  577. package/src/renderer/__tests__/e2e/setup/SkiaObject.ts +31 -0
  578. package/src/renderer/__tests__/e2e/setup/index.ts +3 -0
  579. package/src/renderer/__tests__/examples/BlendModes.spec.tsx +123 -0
  580. package/src/renderer/__tests__/setup.tsx +489 -0
  581. package/src/skia/__tests__/ColorFilter.spec.ts +67 -0
  582. package/src/skia/__tests__/Data.spec.ts +29 -0
  583. package/src/skia/__tests__/Drawings.spec.ts +119 -0
  584. package/src/skia/__tests__/Enums.spec.ts +114 -0
  585. package/src/skia/__tests__/Geometry.spec.ts +39 -0
  586. package/src/skia/__tests__/ImageFilter.spec.ts +19 -0
  587. package/src/skia/__tests__/Mock.spec.ts +7 -0
  588. package/src/skia/__tests__/Paint.spec.ts +25 -0
  589. package/src/skia/__tests__/Path.spec.ts +386 -0
  590. package/src/skia/__tests__/RuntimeEffect.spec.ts +66 -0
  591. package/src/skia/__tests__/Shader.spec.ts +96 -0
  592. package/src/skia/__tests__/Text.spec.ts +32 -0
  593. package/src/skia/__tests__/Transform.spec.ts +89 -0
  594. package/src/skia/__tests__/Vertices.spec.ts +40 -0
  595. package/src/skia/__tests__/assets/DIN-Medium.ttf +0 -0
  596. package/src/skia/__tests__/assets/NotoColorEmoji.ttf +0 -0
  597. package/src/skia/__tests__/assets/NotoSansSC-Regular.otf +0 -0
  598. package/src/skia/__tests__/assets/Pacifico-Regular.ttf +0 -0
  599. package/src/skia/__tests__/assets/Roboto-BlackItalic.ttf +0 -0
  600. package/src/skia/__tests__/assets/Roboto-Bold.ttf +0 -0
  601. package/src/skia/__tests__/assets/Roboto-Italic.ttf +0 -0
  602. package/src/skia/__tests__/assets/Roboto-Medium.ttf +0 -0
  603. package/src/skia/__tests__/assets/Roboto-Regular.ttf +0 -0
  604. package/src/skia/__tests__/assets/UberMove-Medium_mono.ttf +0 -0
  605. package/src/skia/__tests__/assets/bird.gif +0 -0
  606. package/src/skia/__tests__/assets/box.png +0 -0
  607. package/src/skia/__tests__/assets/box2.png +0 -0
  608. package/src/skia/__tests__/assets/card.png +0 -0
  609. package/src/skia/__tests__/assets/mask.png +0 -0
  610. package/src/skia/__tests__/assets/oslo.jpg +0 -0
  611. package/src/skia/__tests__/assets/product.png +0 -0
  612. package/src/skia/__tests__/assets/skia_logo.png +0 -0
  613. package/src/skia/__tests__/assets/skia_logo_jpeg.jpg +0 -0
  614. package/src/skia/__tests__/assets/tiger.svg +724 -0
  615. package/src/skia/__tests__/assets/zurich.jpg +0 -0
  616. package/src/skia/__tests__/setup.ts +77 -0
@@ -0,0 +1,114 @@
1
+ import type { EmbindEnum } from "canvaskit-wasm";
2
+
3
+ import {
4
+ AlphaType,
5
+ BlurStyle,
6
+ ClipOp,
7
+ ColorType,
8
+ FillType,
9
+ FilterMode,
10
+ FontEdging,
11
+ FontHinting,
12
+ FontSlant,
13
+ FontWeight,
14
+ FontWidth,
15
+ ImageFormat,
16
+ MipmapMode,
17
+ PaintStyle,
18
+ PathOp,
19
+ PathVerb,
20
+ PointMode,
21
+ SaveLayerFlag,
22
+ StrokeCap,
23
+ StrokeJoin,
24
+ TileMode,
25
+ VertexMode,
26
+ } from "../types";
27
+ import { Path1DEffectStyle } from "../types/PathEffect";
28
+ import { BlendMode } from "../types/Paint/BlendMode";
29
+ import { mapKeys } from "../../renderer/typeddash";
30
+
31
+ import { setupSkia } from "./setup";
32
+
33
+ const checkEnum = <T>(skiaEnum: T, canvasKitEnum: EmbindEnum) => {
34
+ mapKeys(canvasKitEnum.values).forEach((key) => {
35
+ const namedKey = skiaEnum[key as keyof T] as keyof T;
36
+ const expected = skiaEnum[namedKey];
37
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
38
+ // @ts-expect-error
39
+ const selectedEnum = canvasKitEnum[namedKey];
40
+ if (namedKey === undefined || selectedEnum === undefined) {
41
+ console.log({ skiaEnum, canvasKitEnum, key, namedKey, expected });
42
+ }
43
+ expect(selectedEnum).toBeDefined();
44
+ expect(expected).toBe(selectedEnum.value);
45
+ });
46
+ };
47
+
48
+ describe("Enums", () => {
49
+ it("Should match Paint enums values with CanvasKit", () => {
50
+ const { CanvasKit } = setupSkia();
51
+ checkEnum(PaintStyle, CanvasKit.PaintStyle);
52
+ checkEnum(StrokeCap, CanvasKit.StrokeCap);
53
+ checkEnum(StrokeJoin, CanvasKit.StrokeJoin);
54
+ checkEnum(BlendMode, CanvasKit.BlendMode);
55
+ });
56
+ it("Should match TileMode enums values with CanvasKit", () => {
57
+ const { CanvasKit } = setupSkia();
58
+ checkEnum(TileMode, CanvasKit.TileMode);
59
+ });
60
+ it("Should match Font enums values with CanvasKit", () => {
61
+ const { CanvasKit } = setupSkia();
62
+ checkEnum(FontHinting, CanvasKit.FontHinting);
63
+ checkEnum(FontEdging, CanvasKit.FontEdging);
64
+ checkEnum(FontSlant, CanvasKit.FontSlant);
65
+ checkEnum(FontWidth, CanvasKit.FontWidth);
66
+ checkEnum(FontWeight, CanvasKit.FontWeight);
67
+ });
68
+ it("Should match PointMode enums values with CanvasKit", () => {
69
+ const { CanvasKit } = setupSkia();
70
+ checkEnum(PointMode, CanvasKit.PointMode);
71
+ });
72
+ it("Should match Image enums values with CanvasKit", () => {
73
+ const { CanvasKit } = setupSkia();
74
+ checkEnum(ColorType, CanvasKit.ColorType);
75
+ checkEnum(AlphaType, CanvasKit.AlphaType);
76
+ checkEnum(ImageFormat, CanvasKit.ImageFormat);
77
+ checkEnum(MipmapMode, CanvasKit.MipmapMode);
78
+ checkEnum(FilterMode, CanvasKit.FilterMode);
79
+ });
80
+ it("Should match Path enums values with CanvasKit", () => {
81
+ const { CanvasKit } = setupSkia();
82
+ checkEnum(PathOp, CanvasKit.PathOp);
83
+ checkEnum(FillType, CanvasKit.FillType);
84
+ checkEnum(Path1DEffectStyle, CanvasKit.Path1DEffect);
85
+ expect(PathVerb.Close).toBe(CanvasKit.CLOSE_VERB);
86
+ expect(PathVerb.Conic).toBe(CanvasKit.CONIC_VERB);
87
+ expect(PathVerb.Cubic).toBe(CanvasKit.CUBIC_VERB);
88
+ expect(PathVerb.Line).toBe(CanvasKit.LINE_VERB);
89
+ expect(PathVerb.Move).toBe(CanvasKit.MOVE_VERB);
90
+ expect(PathVerb.Quad).toBe(CanvasKit.QUAD_VERB);
91
+ });
92
+ it("Should match BlurStyle enums values with CanvasKit", () => {
93
+ const { CanvasKit } = setupSkia();
94
+ checkEnum(BlurStyle, CanvasKit.BlurStyle);
95
+ });
96
+ it("Should match VertexMode enums values with CanvasKit", () => {
97
+ const { CanvasKit } = setupSkia();
98
+ expect(VertexMode.TriangleFan).toBe(CanvasKit.VertexMode.TriangleFan.value);
99
+ expect(VertexMode.TriangleStrip).toBe(
100
+ CanvasKit.VertexMode.TrianglesStrip.value
101
+ );
102
+ expect(VertexMode.Triangles).toBe(CanvasKit.VertexMode.Triangles.value);
103
+ });
104
+ it("Should match Canvas enums values with CanvasKit", () => {
105
+ const { CanvasKit } = setupSkia();
106
+ expect(SaveLayerFlag.SaveLayerF16ColorType).toBe(
107
+ CanvasKit.SaveLayerF16ColorType
108
+ );
109
+ expect(SaveLayerFlag.SaveLayerInitWithPrevious).toBe(
110
+ CanvasKit.SaveLayerInitWithPrevious
111
+ );
112
+ checkEnum(ClipOp, CanvasKit.ClipOp);
113
+ });
114
+ });
@@ -0,0 +1,39 @@
1
+ import { importSkia } from "../../renderer/__tests__/setup";
2
+
3
+ describe("Geometry", () => {
4
+ it("should calculate the bounding box the union of multiple rectangles", () => {
5
+ const { bounds, rect } = importSkia();
6
+
7
+ const r1 = rect(-10, -10, 30, 30);
8
+ const r2 = rect(30, 30, 100, 20);
9
+ const result = bounds([r1, r2]);
10
+ expect(result.x).toBe(-10);
11
+ expect(result.y).toBe(-10);
12
+ expect(result.width).toBe(140);
13
+ expect(result.height).toBe(60);
14
+ });
15
+
16
+ test("parse #hex without opacity", () => {
17
+ const { Skia } = importSkia();
18
+
19
+ const color = Skia.Color("#808080");
20
+ expect(color[0]).toBeCloseTo(0.5);
21
+ expect(color[1]).toBeCloseTo(0.5);
22
+ expect(color[2]).toBeCloseTo(0.5);
23
+ });
24
+ test("parse #hex with opacity", () => {
25
+ const { Skia } = importSkia();
26
+
27
+ let color = Skia.Color("#80808080");
28
+ expect(color[0]).toBeCloseTo(0.5);
29
+ expect(color[1]).toBeCloseTo(0.5);
30
+ expect(color[2]).toBeCloseTo(0.5);
31
+ expect(color[3]).toBeCloseTo(0.5);
32
+
33
+ color = Skia.Color("#ff800080");
34
+ expect(color[0]).toBeCloseTo(1);
35
+ expect(color[1]).toBeCloseTo(0.5);
36
+ expect(color[2]).toBeCloseTo(0);
37
+ expect(color[3]).toBeCloseTo(0.5);
38
+ });
39
+ });
@@ -0,0 +1,19 @@
1
+ import { processResult } from "../../__tests__/setup";
2
+ import { TileMode } from "../types";
3
+
4
+ import { setupSkia } from "./setup";
5
+
6
+ describe("ImageFilter", () => {
7
+ it("Blured lightblue circle", () => {
8
+ const { surface, canvas, width, Skia } = setupSkia();
9
+ const r = width / 2;
10
+ const paint = Skia.Paint();
11
+ paint.setAntiAlias(true);
12
+ paint.setColor(Skia.Color("lightblue"));
13
+ paint.setImageFilter(
14
+ Skia.ImageFilter.MakeBlur(40, 40, TileMode.Clamp, null)
15
+ );
16
+ canvas.drawCircle(r, r, r, paint);
17
+ processResult(surface, "snapshots/image-filter/blur.png");
18
+ });
19
+ });
@@ -0,0 +1,7 @@
1
+ describe("Test the mock we provide to users", () => {
2
+ it("Should load the mock successfully", () => {
3
+ expect(() => {
4
+ require("../../mock");
5
+ }).not.toThrow();
6
+ });
7
+ });
@@ -0,0 +1,25 @@
1
+ import { processResult } from "../../__tests__/setup";
2
+
3
+ import { setupSkia } from "./setup";
4
+
5
+ describe("Paint", () => {
6
+ it("should have anti-aliasing is true by default but the value be preserved when using copy()", () => {
7
+ const { surface, canvas, Skia, width } = setupSkia();
8
+ const size = width;
9
+ const p1 = Skia.Paint();
10
+ const rct = Skia.RRectXY(
11
+ Skia.XYWHRect(0, 0, size, size),
12
+ size / 4,
13
+ size / 4
14
+ );
15
+ canvas.drawRRect(rct, p1);
16
+ processResult(surface, "snapshots/drawings/rrect-aa.png");
17
+ const p2 = Skia.Paint();
18
+ p2.setAntiAlias(false);
19
+ canvas.drawRRect(rct, p2);
20
+ processResult(surface, "snapshots/drawings/rrect-no-aa.png");
21
+ const p3 = p2.copy();
22
+ canvas.drawRRect(rct, p3);
23
+ processResult(surface, "snapshots/drawings/rrect-no-aa.png");
24
+ });
25
+ });
@@ -0,0 +1,386 @@
1
+ /* eslint-disable max-len */
2
+ import { interpolatePaths } from "../../animation/functions/interpolatePaths";
3
+ import type { Skia, SkPath } from "../types";
4
+ import { FillType, PathOp, PathVerb } from "../types";
5
+ import { processResult } from "../../__tests__/setup";
6
+ import { PaintStyle } from "../types/Paint/Paint";
7
+
8
+ import { setupSkia } from "./setup";
9
+
10
+ const roundtrip = (Skia: Skia, path: SkPath) =>
11
+ Skia.Path.MakeFromCmds(path.toCmds())!;
12
+
13
+ describe("Path", () => {
14
+ it("React logo", () => {
15
+ const { surface, canvas, Skia } = setupSkia();
16
+ const svg1 =
17
+ "M150.817 113.884C150.817 126.485 140.602 136.701 128 136.701C115.398 136.701 105.183 126.485 105.183 113.884C105.183 101.282 115.398 91.0663 128 91.0663C140.602 91.0663 150.817 101.282 150.817 113.884Z";
18
+ const svg2 =
19
+ "M128 191.877C104.213 216.339 80.8869 228.058 66.7826 219.915C52.6783 211.772 51.1647 185.712 60.4559 152.88C27.3773 144.511 5.56522 130.17 5.56522 113.884C5.56522 97.5975 27.3773 83.2565 60.4559 74.8871C51.1647 42.0555 52.6783 15.9952 66.7826 7.85209C80.8869 -0.291009 104.213 11.4283 128 35.8905C151.787 11.4283 175.113 -0.291018 189.217 7.85208C203.322 15.9952 204.835 42.0555 195.544 74.8871C228.623 83.2565 250.435 97.5975 250.435 113.884C250.435 130.17 228.623 144.511 195.544 152.88C204.835 185.712 203.322 211.772 189.217 219.915C175.113 228.058 151.787 216.339 128 191.877ZM71.7826 211.255C69.497 209.936 67.0111 206.926 65.6137 200.393C64.2166 193.861 64.1969 184.917 65.9598 173.914C66.9004 168.042 68.3234 161.739 70.2187 155.109C79.9755 157.106 90.5237 158.614 101.637 159.545C108.001 168.704 114.58 177.085 121.189 184.536C116.395 189.493 111.647 193.877 107.033 197.627C98.385 204.655 90.6292 209.111 84.2739 211.167C77.9172 213.223 74.0682 212.575 71.7826 211.255ZM185.781 72.6589C187.677 66.0285 189.1 59.7251 190.04 53.8539C191.803 42.8506 191.783 33.9062 190.386 27.3744C188.989 20.8411 186.503 17.8319 184.217 16.5123C181.932 15.1928 178.083 14.5444 171.726 16.6009C165.371 18.6569 157.615 23.112 148.967 30.1404C144.353 33.8906 139.605 38.2747 134.811 43.2312C141.42 50.6819 147.999 59.0631 154.363 68.2223C165.476 69.1534 176.025 70.6611 185.781 72.6589ZM121.189 43.2312C116.395 38.2747 111.647 33.8906 107.033 30.1404C98.385 23.112 90.6292 18.6569 84.2739 16.6009C77.9172 14.5445 74.0682 15.1928 71.7826 16.5123C69.497 17.8319 67.0111 20.8411 65.6137 27.3744C64.2166 33.9062 64.1969 42.8506 65.9598 53.8539C66.9004 59.7251 68.3234 66.0286 70.2187 72.6589C79.9755 70.6611 90.5237 69.1534 101.637 68.2223C108.001 59.0631 114.58 50.682 121.189 43.2312ZM114.51 67.4164C118.965 61.3763 123.485 55.7626 128 50.6258C132.515 55.7626 137.035 61.3763 141.49 67.4164C137.06 67.231 132.559 67.1359 128 67.1359C123.441 67.1359 118.94 67.231 114.51 67.4164ZM94.503 78.9676C87.0448 79.8054 79.9231 80.9132 73.2171 82.2548C75.4082 88.7331 78.0097 95.4546 81.0133 102.333C83.0676 98.4035 85.2357 94.4581 87.5152 90.5098C89.7947 86.5615 92.1276 82.7112 94.503 78.9676ZM86.3696 113.884C89.3439 107.821 92.6143 101.678 96.1754 95.5098C99.7366 89.3416 103.422 83.4378 107.185 77.8307C113.922 77.3752 120.878 77.1359 128 77.1359C135.122 77.1359 142.078 77.3752 148.815 77.8307C152.578 83.4378 156.263 89.3416 159.825 95.5098C163.386 101.678 166.656 107.821 169.63 113.884C166.656 119.946 163.386 126.089 159.825 132.258C156.263 138.426 152.578 144.33 148.815 149.937C142.078 150.392 135.122 150.632 128 150.632C120.878 150.632 113.922 150.392 107.185 149.937C103.422 144.33 99.7366 138.426 96.1754 132.258C92.6143 126.089 89.3439 119.946 86.3696 113.884ZM75.2747 113.884C70.5243 103.793 66.5558 93.9046 63.4076 84.4561C56.7179 86.1298 50.5474 88.0492 44.9926 90.1702C34.5819 94.1452 26.8457 98.6344 21.8875 103.11C16.9283 107.587 15.5652 111.245 15.5652 113.884C15.5652 116.523 16.9283 120.18 21.8875 124.657C26.8457 129.133 34.5819 133.622 44.9926 137.597C50.5474 139.718 56.7179 141.638 63.4076 143.311C66.5558 133.863 70.5243 123.974 75.2747 113.884ZM73.2171 145.513C75.4082 139.034 78.0097 132.313 81.0133 125.435C83.0676 129.364 85.2357 133.309 87.5152 137.258C89.7947 141.206 92.1276 145.056 94.503 148.8C87.0448 147.962 79.9231 146.854 73.2171 145.513ZM154.363 159.545C165.476 158.614 176.024 157.106 185.781 155.109C187.677 161.739 189.1 168.042 190.04 173.914C191.803 184.917 191.783 193.861 190.386 200.393C188.989 206.926 186.503 209.936 184.217 211.255C181.932 212.575 178.083 213.223 171.726 211.167C165.371 209.111 157.615 204.655 148.967 197.627C144.353 193.877 139.605 189.493 134.811 184.536C141.42 177.085 147.999 168.704 154.363 159.545ZM141.49 160.351C137.035 166.391 132.515 172.005 128 177.142C123.485 172.005 118.965 166.391 114.51 160.351C118.94 160.536 123.441 160.632 128 160.632C132.559 160.632 137.06 160.536 141.49 160.351ZM161.497 148.8C163.872 145.056 166.205 141.206 168.485 137.258C170.764 133.309 172.932 129.364 174.987 125.435C177.99 132.313 180.592 139.034 182.783 145.513C176.077 146.854 168.955 147.962 161.497 148.8ZM180.725 113.884C185.476 123.974 189.444 133.863 192.592 143.311C199.282 141.638 205.453 139.718 211.007 137.597C221.418 133.622 229.154 129.133 234.112 124.657C239.072 120.18 240.435 116.523 240.435 113.884C240.435 111.245 239.072 107.587 234.112 103.11C229.154 98.6344 221.418 94.1452 211.007 90.1702C205.453 88.0492 199.282 86.1298 192.592 84.4561C189.444 93.9046 185.476 103.793 180.725 113.884ZM174.987 102.333C177.99 95.4546 180.592 88.7331 182.783 82.2548C176.077 80.9132 168.955 79.8054 161.497 78.9676C163.872 82.7112 166.205 86.5615 168.485 90.5098C170.764 94.4581 172.932 98.4035 174.987 102.333Z";
20
+ const p1 = roundtrip(Skia, Skia.Path.MakeFromSVGString(svg1)!);
21
+ expect(p1.toSVGString()).toBe(svg1);
22
+
23
+ const paint = Skia.Paint();
24
+ paint.setAntiAlias(true);
25
+ paint.setColor(Skia.Color("cyan"));
26
+ canvas.drawPath(p1, paint);
27
+ const p2 = roundtrip(Skia, Skia.Path.MakeFromSVGString(svg2)!);
28
+ expect(p2.toSVGString()).toBe(svg2);
29
+
30
+ p2.setFillType(FillType.EvenOdd);
31
+ canvas.drawPath(p2, paint);
32
+ const cmds1 = p1.toCmds();
33
+ expect(cmds1).toEqual(Skia.Path.MakeFromCmds(cmds1)?.toCmds());
34
+ processResult(surface, "snapshots/path/logo.png");
35
+ });
36
+
37
+ it("Should test that path are interpolatable as specificed in fiddle", () => {
38
+ // https://fiddle.skia.org/c/@Path_isInterpolatable
39
+ const { Skia } = setupSkia();
40
+ const path = Skia.Path.Make();
41
+ const path2 = Skia.Path.Make();
42
+ path.moveTo(20, 20);
43
+ path.lineTo(40, 40);
44
+ path.lineTo(20, 20);
45
+ path.lineTo(40, 40);
46
+ path.close();
47
+ path2.addRect(Skia.XYWHRect(20, 20, 20, 20));
48
+ expect(path.isInterpolatable(path2)).toBe(true);
49
+ });
50
+
51
+ it("Should test that path interpolation works as specified in the Skia test suite", () => {
52
+ // https://github.com/google/skia/blob/1f193df9b393d50da39570dab77a0bb5d28ec8ef/tests/PathTest.cpp
53
+ const { Skia } = setupSkia();
54
+ const p1 = Skia.Path.Make();
55
+ const p2 = Skia.Path.Make();
56
+ let p3: SkPath;
57
+ expect(p1.isInterpolatable(p2)).toBe(true);
58
+ p3 = p1.interpolate(p2, 0)!;
59
+ expect(p3).toBeTruthy();
60
+ expect(p1.toCmds()).toEqual(p3.toCmds());
61
+ p3 = p1.interpolate(p2, 1)!;
62
+ expect(p3).toBeTruthy();
63
+ expect(p2.toCmds()).toEqual(p3.toCmds());
64
+ p1.moveTo(0, 2);
65
+ p1.lineTo(0, 4);
66
+ expect(p1.isInterpolatable(p2)).toBe(false);
67
+ expect(p1.interpolate(p2, 1)).toBeNull();
68
+ p2.moveTo(6, 0);
69
+ p2.lineTo(8, 0);
70
+ expect(p1.isInterpolatable(p2)).toBe(true);
71
+ p3 = p1.interpolate(p2, 0)!;
72
+ expect(p3).toBeTruthy();
73
+ expect(p2.toCmds()).toEqual(p3.toCmds());
74
+ p3 = p1.interpolate(p2, 1)!;
75
+ expect(p3).toBeTruthy();
76
+ expect(p1.toCmds()).toEqual(p3.toCmds());
77
+ p3 = p1.interpolate(p2, 0.5)!;
78
+ expect(p3).toBeTruthy();
79
+ let bounds = p3.getBounds();
80
+ let rect = Skia.XYWHRect(3, 1, 1, 1);
81
+ expect([bounds.x, bounds.y, bounds.width, bounds.height]).toEqual([
82
+ rect.x,
83
+ rect.y,
84
+ rect.width,
85
+ rect.height,
86
+ ]);
87
+ p1.reset();
88
+ p1.moveTo(4, 4);
89
+ p1.conicTo(5, 4, 5, 5, 0.2);
90
+ p2.reset();
91
+ p2.moveTo(4, 2);
92
+ p2.conicTo(7, 2, 7, 5, 0.2);
93
+ expect(p1.isInterpolatable(p2)).toBe(true);
94
+ p3 = p1.interpolate(p2, 0.5)!;
95
+ expect(p3).toBeTruthy();
96
+ expect(p3.toCmds()).toEqual([
97
+ [PathVerb.Move, 4, 3],
98
+ [PathVerb.Conic, 6, 3, 6, 5, Math.fround(0.2)],
99
+ ]);
100
+ bounds = p3.getBounds();
101
+ rect = Skia.XYWHRect(4, 3, 2, 2);
102
+ expect([bounds.x, bounds.y, bounds.width, bounds.height]).toEqual([
103
+ rect.x,
104
+ rect.y,
105
+ rect.width,
106
+ rect.height,
107
+ ]);
108
+ p2.reset();
109
+ p2.moveTo(4, 2);
110
+ p2.conicTo(6, 3, 6, 5, 1);
111
+ expect(p1.isInterpolatable(p2)).toBe(false);
112
+ p2.reset();
113
+ p2.moveTo(4, 4);
114
+ p2.conicTo(5, 4, 5, 5, 0.5);
115
+ expect(p1.isInterpolatable(p2)).toBe(false);
116
+ });
117
+
118
+ it("Should test that paths can be interpolated", () => {
119
+ const { Skia } = setupSkia();
120
+ const path1 = Skia.Path.Make();
121
+ path1.moveTo(0, 0);
122
+ path1.lineTo(100, 100);
123
+ const path2 = Skia.Path.Make();
124
+ path2.moveTo(100, 100);
125
+ path2.lineTo(0, 0);
126
+ expect(path1.isInterpolatable(path2)).toBe(true);
127
+ path2.lineTo(0, 100);
128
+ expect(path1.isInterpolatable(path2)).toBe(false);
129
+ });
130
+
131
+ it("Should interpolate one Path", () => {
132
+ const { Skia } = setupSkia();
133
+ const path1 = Skia.Path.Make();
134
+ path1.moveTo(0, 0);
135
+ path1.lineTo(100, 100);
136
+ const path2 = Skia.Path.Make();
137
+ path2.moveTo(100, 100);
138
+ path2.lineTo(0, 0);
139
+ const path3 = Skia.Path.Make();
140
+ path3.moveTo(50, 50);
141
+ path3.lineTo(50, 50);
142
+ expect(path1.isInterpolatable(path2)).toBe(true);
143
+ const interpolate0 = path1.interpolate(path2, 0)!;
144
+ const interpolate05 = path1.interpolate(path2, 0.5)!;
145
+ const interpolate1 = path1.interpolate(path2, 1)!;
146
+
147
+ expect(interpolate0).not.toBeNull();
148
+ expect(interpolate05).not.toBeNull();
149
+ expect(interpolate1).not.toBeNull();
150
+
151
+ expect(interpolate0.toCmds().flat()).toEqual(path2.toCmds().flat());
152
+ expect(interpolate05.toCmds().flat()).toEqual(path3.toCmds().flat());
153
+ expect(interpolate1.toCmds().flat()).toEqual(path1.toCmds().flat());
154
+ });
155
+
156
+ it("Should interpolate more than one Path", () => {
157
+ const { Skia } = setupSkia();
158
+ const path1 = Skia.Path.Make();
159
+ path1.moveTo(0, 0);
160
+ path1.lineTo(100, 100);
161
+ const path2 = Skia.Path.Make();
162
+ path2.moveTo(100, 100);
163
+ path2.lineTo(0, 0);
164
+ const path3 = Skia.Path.Make();
165
+ path3.moveTo(0, 0);
166
+ path3.lineTo(200, 200);
167
+ expect(path1.isInterpolatable(path2)).toBe(true);
168
+ expect(path2.isInterpolatable(path3)).toBe(true);
169
+ let path = interpolatePaths(0, [0, 0.5, 1], [path1, path2, path3]);
170
+ expect(path.toCmds().flat()).toEqual(path1.toCmds().flat());
171
+ path = interpolatePaths(0.5, [0, 0.5, 1], [path1, path2, path3]);
172
+ expect(path.toCmds().flat()).toEqual(path2.toCmds().flat());
173
+ path = interpolatePaths(1, [0, 0.5, 1], [path1, path2, path3]);
174
+ expect(path.toCmds().flat()).toEqual(path3.toCmds().flat());
175
+ });
176
+
177
+ it("Should interpolate more than one path and clamp on the left side", () => {
178
+ const { Skia } = setupSkia();
179
+ const path1 = Skia.Path.Make();
180
+ path1.moveTo(0, 0);
181
+ path1.lineTo(100, 100);
182
+ const path2 = Skia.Path.Make();
183
+ path2.moveTo(100, 100);
184
+ path2.lineTo(0, 0);
185
+ const path3 = Skia.Path.Make();
186
+ path3.moveTo(0, 0);
187
+ path3.lineTo(200, 200);
188
+ const path = interpolatePaths(
189
+ -1,
190
+ [0, 0.5, 1],
191
+ [path1, path2, path3],
192
+ "clamp"
193
+ );
194
+ expect(path.toCmds().flat()).toEqual(path1.toCmds().flat());
195
+ });
196
+
197
+ it("Should interpolate more than one path and clamp on the right side", () => {
198
+ const { Skia } = setupSkia();
199
+ const path1 = Skia.Path.Make();
200
+ path1.moveTo(0, 0);
201
+ path1.lineTo(100, 100);
202
+ const path2 = Skia.Path.Make();
203
+ path2.moveTo(100, 100);
204
+ path2.lineTo(0, 0);
205
+ const path3 = Skia.Path.Make();
206
+ path3.moveTo(0, 0);
207
+ path3.lineTo(200, 200);
208
+ const path = interpolatePaths(
209
+ 2,
210
+ [0, 0.5, 1],
211
+ [path1, path2, path3],
212
+ "clamp"
213
+ );
214
+ expect(path.toCmds()).toEqual(path3.toCmds());
215
+ });
216
+
217
+ it("Should match construct a path from commands", () => {
218
+ const { Skia } = setupSkia();
219
+ const cmds = [
220
+ [PathVerb.Move, 205, 5],
221
+ [PathVerb.Line, 795, 5],
222
+ [PathVerb.Line, 595, 295],
223
+ [PathVerb.Line, 5, 295],
224
+ [PathVerb.Line, 205, 5],
225
+ [PathVerb.Close],
226
+ ];
227
+ const path = Skia.Path.MakeFromCmds(cmds)!;
228
+ expect(path).toBeTruthy();
229
+ const svgStr = path.toSVGString();
230
+ // We output it in terse form, which is different than Wikipedia's version
231
+ expect(svgStr).toEqual("M205 5L795 5L595 295L5 295L205 5Z");
232
+ });
233
+
234
+ it("Should serialize a path to commands", () => {
235
+ const { Skia } = setupSkia();
236
+ const path = Skia.Path.MakeFromSVGString(
237
+ "M 205,5 L 795,5 L 595,295 L 5,295 L 205,5 z"
238
+ )!;
239
+ const cmds = path.toCmds();
240
+ expect(cmds).toBeTruthy();
241
+ // 1 move, 4 lines, 1 close
242
+ // each element in cmds is an array, with index 0 being the verb, and the rest being args
243
+ expect(cmds.length).toBe(6);
244
+ expect(cmds).toEqual([
245
+ [PathVerb.Move, 205, 5],
246
+ [PathVerb.Line, 795, 5],
247
+ [PathVerb.Line, 595, 295],
248
+ [PathVerb.Line, 5, 295],
249
+ [PathVerb.Line, 205, 5],
250
+ [PathVerb.Close],
251
+ ]);
252
+ });
253
+
254
+ it("should create a path by combining two other paths", () => {
255
+ const { Skia } = setupSkia();
256
+ // Get the intersection of two overlapping squares and verify that it is the smaller square.
257
+ const pathOne = Skia.Path.Make();
258
+ pathOne.addRect(Skia.XYWHRect(0, 0, 100, 100));
259
+
260
+ const pathTwo = Skia.Path.Make();
261
+ pathTwo.addRect(Skia.XYWHRect(50, 50, 50, 50));
262
+
263
+ const path = Skia.Path.MakeFromOp(pathOne, pathTwo, PathOp.Intersect)!;
264
+ expect(path).not.toBeNull();
265
+ const cmds = path.toCmds();
266
+ expect(cmds).toBeTruthy();
267
+ expect(cmds).toEqual([
268
+ [PathVerb.Move, 50, 50],
269
+ [PathVerb.Line, 100, 50],
270
+ [PathVerb.Line, 100, 100],
271
+ [PathVerb.Line, 50, 100],
272
+ [PathVerb.Close],
273
+ ]);
274
+ });
275
+
276
+ it("should create an SVG string from a path", () => {
277
+ const { Skia } = setupSkia();
278
+ const cmds = [
279
+ [PathVerb.Move, 205, 5],
280
+ [PathVerb.Line, 795, 5],
281
+ [PathVerb.Line, 595, 295],
282
+ [PathVerb.Line, 5, 295],
283
+ [PathVerb.Line, 205, 5],
284
+ [PathVerb.Close],
285
+ ];
286
+ const path = Skia.Path.MakeFromCmds(cmds)!;
287
+ expect(path).toBeTruthy();
288
+ // We output it in terse form, which is different than Wikipedia's version
289
+ expect(path.toSVGString()).toEqual("M205 5L795 5L595 295L5 295L205 5Z");
290
+ });
291
+
292
+ it("should draw different interpolation states", () => {
293
+ const { Skia, surface, canvas } = setupSkia();
294
+ const paint = Skia.Paint();
295
+ paint.setAntiAlias(true);
296
+ paint.setStyle(PaintStyle.Stroke);
297
+ const path = Skia.Path.Make();
298
+ const path2 = Skia.Path.Make();
299
+ path.moveTo(20, 20);
300
+ path.lineTo(40, 40);
301
+ path.lineTo(20, 40);
302
+ path.lineTo(40, 20);
303
+ path.close();
304
+ path2.addRect(Skia.XYWHRect(20, 20, 20, 20));
305
+ for (let i = 0; i <= 1; i += 1 / 6) {
306
+ const interp = path.interpolate(path2, i)!;
307
+ expect(interp).toBeTruthy();
308
+ canvas.drawPath(interp, paint);
309
+ canvas.translate(30, 0);
310
+ }
311
+ processResult(surface, "snapshots/path/interpolate.png");
312
+ });
313
+
314
+ it("should support overshooting values in path interpolation", () => {
315
+ const { Skia } = setupSkia();
316
+ const p1 = Skia.Path.Make();
317
+ p1.moveTo(0, 0);
318
+ p1.lineTo(100, 100);
319
+
320
+ const p2 = Skia.Path.Make();
321
+ p2.moveTo(0, 100);
322
+ p2.lineTo(100, 0);
323
+
324
+ const p3 = p2.interpolate(p1, 1.1)!;
325
+ expect(p3).not.toBeNull();
326
+ const [[, moveX, moveY], [, lineX, lineY]] = p3.toCmds();
327
+ expect(moveX).toBe(0);
328
+ expect(moveY).toBe(110);
329
+ expect(lineX).toBe(100);
330
+ expect(lineY).toBeCloseTo(-10);
331
+
332
+ const p4 = p2.interpolate(p1, -0.1)!;
333
+ expect(p4).not.toBeNull();
334
+ const [[, moveX1, moveY1], [, lineX1, lineY1]] = p4.toCmds();
335
+ expect(moveX1).toBe(0);
336
+ expect(moveY1).toBe(-10);
337
+ expect(lineX1).toBe(100);
338
+ expect(lineY1).toBe(110);
339
+ });
340
+
341
+ it("interpolatePath() should support overshooting values", () => {
342
+ const { Skia } = setupSkia();
343
+ const p1 = Skia.Path.Make();
344
+ p1.moveTo(0, 0);
345
+ p1.lineTo(100, 100);
346
+
347
+ const p2 = Skia.Path.Make();
348
+ p2.moveTo(0, 100);
349
+ p2.lineTo(100, 0);
350
+
351
+ const ref1 = Skia.Path.Make();
352
+ ref1.moveTo(0, -10);
353
+ ref1.lineTo(100, 110);
354
+
355
+ const ref2 = Skia.Path.Make();
356
+ ref2.moveTo(0, 110);
357
+ ref2.lineTo(100, -10.000001907348633);
358
+
359
+ const p3 = interpolatePaths(-0.1, [0, 1], [p1, p2]);
360
+ expect(p3.toCmds()).toEqual(ref1.toCmds());
361
+ const p4 = interpolatePaths(1.1, [0, 1], [p1, p2]);
362
+ expect(p4.toCmds()).toEqual(ref2.toCmds());
363
+ });
364
+
365
+ it("interpolatePath() should support clamping left and right values", () => {
366
+ const { Skia } = setupSkia();
367
+ const p1 = Skia.Path.Make();
368
+ p1.moveTo(0, 0);
369
+ p1.lineTo(100, 100);
370
+
371
+ const p2 = Skia.Path.Make();
372
+ p2.moveTo(0, 100);
373
+ p2.lineTo(100, 0);
374
+
375
+ const p3 = interpolatePaths(-0.1, [0, 1], [p1, p2], "clamp");
376
+ expect(p3.toCmds()).toEqual(p1.toCmds());
377
+ const p4 = interpolatePaths(1.1, [0, 1], [p1, p2], "clamp");
378
+ expect(p4.toCmds()).toEqual(p2.toCmds());
379
+ });
380
+ it("should be possible to call dispose on a path", () => {
381
+ const { Skia } = setupSkia();
382
+ const path = Skia.Path.Make();
383
+ path.moveTo(20, 20).lineTo(20, 40).lineTo(40, 20);
384
+ path.dispose();
385
+ });
386
+ });
@@ -0,0 +1,66 @@
1
+ import { processResult } from "../../__tests__/setup";
2
+
3
+ import { setupSkia } from "./setup";
4
+
5
+ const spiralSkSL = `
6
+ uniform float rad_scale;
7
+ uniform int2 in_center;
8
+ uniform float4 in_colors0;
9
+ uniform float4 in_colors1;
10
+ half4 main(float2 p) {
11
+ float2 pp = p - float2(in_center);
12
+ float radius = sqrt(dot(pp, pp));
13
+ radius = sqrt(radius);
14
+ float angle = atan(pp.y / pp.x);
15
+ float t = (angle + 3.1415926/2) / (3.1415926);
16
+ t += radius * rad_scale;
17
+ t = fract(t);
18
+ return half4(mix(in_colors0, in_colors1, t));
19
+ }`;
20
+
21
+ describe("RuntimeEffect", () => {
22
+ it("Should draw a spiral", () => {
23
+ const { surface, Skia, width, height } = setupSkia();
24
+ const spiral = Skia.RuntimeEffect.Make(spiralSkSL)!;
25
+ expect(spiral).toBeTruthy();
26
+
27
+ expect(spiral.getUniformCount()).toEqual(4);
28
+ expect(spiral.getUniformFloatCount()).toEqual(11);
29
+ const center = spiral.getUniform(1);
30
+ expect(center).toBeTruthy();
31
+
32
+ expect(center.slot).toEqual(1);
33
+ expect(center.columns).toEqual(2);
34
+ expect(center.rows).toEqual(1);
35
+ expect(center.isInteger).toEqual(true);
36
+ const color0 = spiral.getUniform(2);
37
+ expect(color0).toBeTruthy();
38
+ expect(color0.slot).toEqual(3);
39
+ expect(color0.columns).toEqual(4);
40
+ expect(color0.rows).toEqual(1);
41
+ expect(color0.isInteger).toEqual(false);
42
+ expect(spiral.getUniformName(2)).toEqual("in_colors0");
43
+
44
+ const canvas = surface.getCanvas();
45
+ const paint = Skia.Paint();
46
+ canvas.clear(Skia.Color("black")); // black should not be visible
47
+ const shader = spiral.makeShader(
48
+ [
49
+ 0.3,
50
+ width / 2,
51
+ height / 2,
52
+ 1,
53
+ 0,
54
+ 0,
55
+ 1, // solid red
56
+ 0,
57
+ 1,
58
+ 0,
59
+ 1,
60
+ ] // solid green
61
+ );
62
+ paint.setShader(shader);
63
+ canvas.drawRect(Skia.XYWHRect(0, 0, width, height), paint);
64
+ processResult(surface, "snapshots/runtime-effects/small-spiral.png");
65
+ });
66
+ });