@shopify/react-native-skia 2.2.21 → 2.3.4

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 (816) hide show
  1. package/android/CMakeLists.txt +0 -3
  2. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +4 -1
  3. package/apple/RNSkApplePlatformContext.mm +21 -12
  4. package/cpp/api/JsiSkCanvas.h +3 -21
  5. package/cpp/api/JsiSkImage.h +8 -2
  6. package/cpp/api/JsiSkPath.h +1 -1
  7. package/cpp/api/JsiSkPathFactory.h +1 -1
  8. package/cpp/api/JsiSkSVG.h +4 -1
  9. package/cpp/api/JsiSkSVGFactory.h +127 -8
  10. package/cpp/skia/include/android/AHardwareBufferUtils.h +3 -0
  11. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +0 -4
  12. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +0 -4
  13. package/cpp/skia/include/android/SkImageAndroid.h +1 -0
  14. package/cpp/skia/include/codec/SkCodec.h +23 -2
  15. package/cpp/skia/include/codec/SkPngRustDecoder.h +30 -0
  16. package/cpp/skia/include/core/SkBitmap.h +1 -1
  17. package/cpp/skia/include/core/SkCPURecorder.h +5 -0
  18. package/cpp/skia/include/core/SkCanvas.h +2 -0
  19. package/cpp/skia/include/core/SkColorSpace.h +11 -12
  20. package/cpp/skia/include/core/SkContourMeasure.h +6 -2
  21. package/cpp/skia/include/core/SkExecutor.h +18 -0
  22. package/cpp/skia/include/core/SkFont.h +26 -19
  23. package/cpp/skia/include/core/SkImage.h +4 -66
  24. package/cpp/skia/include/core/SkImageGenerator.h +0 -5
  25. package/cpp/skia/include/core/SkMatrix.h +84 -120
  26. package/cpp/skia/include/core/SkMilestone.h +1 -1
  27. package/cpp/skia/include/core/SkPath.h +390 -395
  28. package/cpp/skia/include/core/SkPathBuilder.h +64 -34
  29. package/cpp/skia/include/core/SkPathEffect.h +12 -5
  30. package/cpp/skia/include/core/SkPathIter.h +90 -0
  31. package/cpp/skia/include/core/SkPathMeasure.h +5 -1
  32. package/cpp/skia/include/core/SkPathTypes.h +7 -3
  33. package/cpp/skia/include/core/SkPathUtils.h +20 -13
  34. package/cpp/skia/include/core/SkRRect.h +7 -11
  35. package/cpp/skia/include/core/SkRecorder.h +12 -0
  36. package/cpp/skia/include/core/SkRect.h +33 -8
  37. package/cpp/skia/include/core/SkRegion.h +14 -3
  38. package/cpp/skia/include/core/SkScalar.h +0 -12
  39. package/cpp/skia/include/core/SkShader.h +20 -7
  40. package/cpp/skia/include/core/SkStrokeRec.h +2 -1
  41. package/cpp/skia/include/core/SkTypeface.h +8 -10
  42. package/cpp/skia/include/core/SkTypes.h +4 -0
  43. package/cpp/skia/include/encode/SkJpegEncoder.h +5 -10
  44. package/cpp/skia/include/encode/SkPngEncoder.h +8 -7
  45. package/cpp/skia/include/encode/SkPngRustEncoder.h +88 -0
  46. package/cpp/skia/include/encode/SkWebpEncoder.h +5 -10
  47. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +5 -2
  48. package/cpp/skia/include/gpu/graphite/BackendTexture.h +5 -2
  49. package/cpp/skia/include/gpu/graphite/Context.h +15 -2
  50. package/cpp/skia/include/gpu/graphite/ContextOptions.h +26 -0
  51. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +75 -0
  52. package/cpp/skia/include/gpu/graphite/Recorder.h +15 -6
  53. package/cpp/skia/include/gpu/graphite/Recording.h +0 -3
  54. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +2 -0
  55. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +3 -7
  56. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +2 -10
  57. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +1 -6
  58. package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +1 -5
  59. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +16 -3
  60. package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +3 -0
  61. package/cpp/skia/{modules/pathops/include → include/pathops}/SkPathOps.h +49 -20
  62. package/cpp/skia/include/ports/SkFontMgr_FontConfigInterface.h +2 -1
  63. package/cpp/skia/include/ports/SkFontMgr_android.h +0 -4
  64. package/cpp/skia/include/ports/SkFontMgr_android_ndk.h +4 -2
  65. package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +0 -3
  66. package/cpp/skia/include/private/SkEncodedInfo.h +73 -54
  67. package/cpp/skia/include/private/SkHdrMetadata.h +173 -0
  68. package/cpp/skia/include/private/SkPathRef.h +117 -146
  69. package/cpp/skia/include/private/base/SkTemplates.h +74 -32
  70. package/cpp/skia/include/utils/SkParsePath.h +9 -1
  71. package/cpp/skia/modules/skcms/src/Transform_inl.h +53 -7
  72. package/cpp/skia/modules/skcms/src/skcms_Transform.h +2 -0
  73. package/cpp/skia/modules/skcms/src/skcms_internals.h +8 -0
  74. package/cpp/skia/modules/skottie/include/TextShaper.h +4 -0
  75. package/cpp/skia/modules/skparagraph/include/FontCollection.h +1 -1
  76. package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +7 -1
  77. package/cpp/skia/modules/skparagraph/include/TextStyle.h +12 -0
  78. package/cpp/skia/modules/sksg/include/SkSGGeometryEffect.h +26 -0
  79. package/cpp/skia/modules/sksg/include/SkSGPath.h +1 -1
  80. package/cpp/skia/modules/skunicode/include/SkUnicode.h +11 -1
  81. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +7 -11
  82. package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
  83. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -2
  84. package/cpp/skia/modules/svg/include/SkSVGFe.h +0 -1
  85. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +0 -1
  86. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +0 -1
  87. package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
  88. package/cpp/skia/modules/svg/include/SkSVGNode.h +11 -10
  89. package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
  90. package/cpp/skia/modules/svg/include/SkSVGPattern.h +4 -3
  91. package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
  92. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +0 -1
  93. package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -2
  94. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +5 -5
  95. package/cpp/skia/modules/svg/include/SkSVGSVG.h +0 -1
  96. package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
  97. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +2 -2
  98. package/cpp/skia/src/base/SkTLazy.h +8 -0
  99. package/cpp/skia/src/core/SkLRUCache.h +17 -13
  100. package/lib/commonjs/skia/types/SVG/SVGFactory.d.ts +3 -2
  101. package/lib/commonjs/skia/types/SVG/SVGFactory.js.map +1 -1
  102. package/lib/module/skia/types/SVG/SVGFactory.d.ts +3 -2
  103. package/lib/module/skia/types/SVG/SVGFactory.js.map +1 -1
  104. package/lib/typescript/src/skia/types/SVG/SVGFactory.d.ts +3 -2
  105. package/package.json +9 -8
  106. package/react-native-skia.podspec +1 -2
  107. package/scripts/install-skia.mjs +360 -0
  108. package/src/skia/types/SVG/SVGFactory.ts +11 -2
  109. package/cpp/skia/include/android/SkHeifDecoder.h +0 -50
  110. package/lib/commonjs/__tests__/globalSetup.d.ts +0 -9
  111. package/lib/commonjs/__tests__/globalTeardown.d.ts +0 -2
  112. package/lib/commonjs/__tests__/setup.d.ts +0 -36
  113. package/lib/commonjs/mock/__tests__/mock.spec.d.ts +0 -1
  114. package/lib/commonjs/renderer/__tests__/Data.spec.d.ts +0 -1
  115. package/lib/commonjs/renderer/__tests__/Drawings.spec.d.ts +0 -1
  116. package/lib/commonjs/renderer/__tests__/FitBox.spec.d.ts +0 -1
  117. package/lib/commonjs/renderer/__tests__/Glyphs.spec.d.ts +0 -1
  118. package/lib/commonjs/renderer/__tests__/Image.spec.d.ts +0 -1
  119. package/lib/commonjs/renderer/__tests__/Paths.spec.d.ts +0 -1
  120. package/lib/commonjs/renderer/__tests__/Picture.spec.d.ts +0 -1
  121. package/lib/commonjs/renderer/__tests__/Simple.spec.d.ts +0 -1
  122. package/lib/commonjs/renderer/__tests__/Surfaces.spec.d.ts +0 -1
  123. package/lib/commonjs/renderer/__tests__/Text.spec.d.ts +0 -1
  124. package/lib/commonjs/renderer/__tests__/Transform.spec.d.ts +0 -1
  125. package/lib/commonjs/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
  126. package/lib/commonjs/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
  127. package/lib/commonjs/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
  128. package/lib/commonjs/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
  129. package/lib/commonjs/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
  130. package/lib/commonjs/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
  131. package/lib/commonjs/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
  132. package/lib/commonjs/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
  133. package/lib/commonjs/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
  134. package/lib/commonjs/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
  135. package/lib/commonjs/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
  136. package/lib/commonjs/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
  137. package/lib/commonjs/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
  138. package/lib/commonjs/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
  139. package/lib/commonjs/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
  140. package/lib/commonjs/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
  141. package/lib/commonjs/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
  142. package/lib/commonjs/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
  143. package/lib/commonjs/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
  144. package/lib/commonjs/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
  145. package/lib/commonjs/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
  146. package/lib/commonjs/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
  147. package/lib/commonjs/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
  148. package/lib/commonjs/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
  149. package/lib/commonjs/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
  150. package/lib/commonjs/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
  151. package/lib/commonjs/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
  152. package/lib/commonjs/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
  153. package/lib/commonjs/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
  154. package/lib/commonjs/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
  155. package/lib/commonjs/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
  156. package/lib/commonjs/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
  157. package/lib/commonjs/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
  158. package/lib/commonjs/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
  159. package/lib/commonjs/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
  160. package/lib/commonjs/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
  161. package/lib/commonjs/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
  162. package/lib/commonjs/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
  163. package/lib/commonjs/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
  164. package/lib/commonjs/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
  165. package/lib/commonjs/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
  166. package/lib/commonjs/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
  167. package/lib/commonjs/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
  168. package/lib/commonjs/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
  169. package/lib/commonjs/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
  170. package/lib/commonjs/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
  171. package/lib/commonjs/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
  172. package/lib/commonjs/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
  173. package/lib/commonjs/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
  174. package/lib/commonjs/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
  175. package/lib/commonjs/renderer/__tests__/e2e/Video.d.ts +0 -1
  176. package/lib/commonjs/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
  177. package/lib/commonjs/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
  178. package/lib/commonjs/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
  179. package/lib/commonjs/renderer/__tests__/e2e/setup/index.d.ts +0 -3
  180. package/lib/commonjs/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
  181. package/lib/commonjs/renderer/__tests__/setup.d.ts +0 -71
  182. package/lib/commonjs/skia/__tests__/ColorFilter.spec.d.ts +0 -1
  183. package/lib/commonjs/skia/__tests__/Data.spec.d.ts +0 -1
  184. package/lib/commonjs/skia/__tests__/Drawings.spec.d.ts +0 -1
  185. package/lib/commonjs/skia/__tests__/Enums.spec.d.ts +0 -1
  186. package/lib/commonjs/skia/__tests__/Geometry.spec.d.ts +0 -1
  187. package/lib/commonjs/skia/__tests__/ImageFilter.spec.d.ts +0 -1
  188. package/lib/commonjs/skia/__tests__/Mock.spec.d.ts +0 -0
  189. package/lib/commonjs/skia/__tests__/Paint.spec.d.ts +0 -1
  190. package/lib/commonjs/skia/__tests__/Path.spec.d.ts +0 -1
  191. package/lib/commonjs/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
  192. package/lib/commonjs/skia/__tests__/Shader.spec.d.ts +0 -1
  193. package/lib/commonjs/skia/__tests__/Text.spec.d.ts +0 -1
  194. package/lib/commonjs/skia/__tests__/Transform.spec.d.ts +0 -1
  195. package/lib/commonjs/skia/__tests__/Vertices.spec.d.ts +0 -1
  196. package/lib/commonjs/skia/__tests__/setup.d.ts +0 -16
  197. package/lib/commonjs/sksg/__tests__/Simple.spec.d.ts +0 -1
  198. package/lib/module/__tests__/globalSetup.d.ts +0 -9
  199. package/lib/module/__tests__/globalTeardown.d.ts +0 -2
  200. package/lib/module/__tests__/setup.d.ts +0 -36
  201. package/lib/module/mock/__tests__/mock.spec.d.ts +0 -1
  202. package/lib/module/renderer/__tests__/Data.spec.d.ts +0 -1
  203. package/lib/module/renderer/__tests__/Drawings.spec.d.ts +0 -1
  204. package/lib/module/renderer/__tests__/FitBox.spec.d.ts +0 -1
  205. package/lib/module/renderer/__tests__/Glyphs.spec.d.ts +0 -1
  206. package/lib/module/renderer/__tests__/Image.spec.d.ts +0 -1
  207. package/lib/module/renderer/__tests__/Paths.spec.d.ts +0 -1
  208. package/lib/module/renderer/__tests__/Picture.spec.d.ts +0 -1
  209. package/lib/module/renderer/__tests__/Simple.spec.d.ts +0 -1
  210. package/lib/module/renderer/__tests__/Surfaces.spec.d.ts +0 -1
  211. package/lib/module/renderer/__tests__/Text.spec.d.ts +0 -1
  212. package/lib/module/renderer/__tests__/Transform.spec.d.ts +0 -1
  213. package/lib/module/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
  214. package/lib/module/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
  215. package/lib/module/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
  216. package/lib/module/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
  217. package/lib/module/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
  218. package/lib/module/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
  219. package/lib/module/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
  220. package/lib/module/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
  221. package/lib/module/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
  222. package/lib/module/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
  223. package/lib/module/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
  224. package/lib/module/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
  225. package/lib/module/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
  226. package/lib/module/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
  227. package/lib/module/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
  228. package/lib/module/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
  229. package/lib/module/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
  230. package/lib/module/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
  231. package/lib/module/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
  232. package/lib/module/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
  233. package/lib/module/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
  234. package/lib/module/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
  235. package/lib/module/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
  236. package/lib/module/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
  237. package/lib/module/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
  238. package/lib/module/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
  239. package/lib/module/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
  240. package/lib/module/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
  241. package/lib/module/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
  242. package/lib/module/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
  243. package/lib/module/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
  244. package/lib/module/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
  245. package/lib/module/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
  246. package/lib/module/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
  247. package/lib/module/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
  248. package/lib/module/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
  249. package/lib/module/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
  250. package/lib/module/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
  251. package/lib/module/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
  252. package/lib/module/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
  253. package/lib/module/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
  254. package/lib/module/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
  255. package/lib/module/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
  256. package/lib/module/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
  257. package/lib/module/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
  258. package/lib/module/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
  259. package/lib/module/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
  260. package/lib/module/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
  261. package/lib/module/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
  262. package/lib/module/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
  263. package/lib/module/renderer/__tests__/e2e/Video.d.ts +0 -1
  264. package/lib/module/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
  265. package/lib/module/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
  266. package/lib/module/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
  267. package/lib/module/renderer/__tests__/e2e/setup/index.d.ts +0 -3
  268. package/lib/module/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
  269. package/lib/module/renderer/__tests__/setup.d.ts +0 -71
  270. package/lib/module/skia/__tests__/ColorFilter.spec.d.ts +0 -1
  271. package/lib/module/skia/__tests__/Data.spec.d.ts +0 -1
  272. package/lib/module/skia/__tests__/Drawings.spec.d.ts +0 -1
  273. package/lib/module/skia/__tests__/Enums.spec.d.ts +0 -1
  274. package/lib/module/skia/__tests__/Geometry.spec.d.ts +0 -1
  275. package/lib/module/skia/__tests__/ImageFilter.spec.d.ts +0 -1
  276. package/lib/module/skia/__tests__/Mock.spec.d.ts +0 -0
  277. package/lib/module/skia/__tests__/Paint.spec.d.ts +0 -1
  278. package/lib/module/skia/__tests__/Path.spec.d.ts +0 -1
  279. package/lib/module/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
  280. package/lib/module/skia/__tests__/Shader.spec.d.ts +0 -1
  281. package/lib/module/skia/__tests__/Text.spec.d.ts +0 -1
  282. package/lib/module/skia/__tests__/Transform.spec.d.ts +0 -1
  283. package/lib/module/skia/__tests__/Vertices.spec.d.ts +0 -1
  284. package/lib/module/skia/__tests__/setup.d.ts +0 -16
  285. package/lib/module/sksg/__tests__/Simple.spec.d.ts +0 -1
  286. package/lib/typescript/src/__tests__/globalSetup.d.ts +0 -9
  287. package/lib/typescript/src/__tests__/globalTeardown.d.ts +0 -2
  288. package/lib/typescript/src/__tests__/setup.d.ts +0 -36
  289. package/lib/typescript/src/mock/__tests__/mock.spec.d.ts +0 -1
  290. package/lib/typescript/src/renderer/__tests__/Data.spec.d.ts +0 -1
  291. package/lib/typescript/src/renderer/__tests__/Drawings.spec.d.ts +0 -1
  292. package/lib/typescript/src/renderer/__tests__/FitBox.spec.d.ts +0 -1
  293. package/lib/typescript/src/renderer/__tests__/Glyphs.spec.d.ts +0 -1
  294. package/lib/typescript/src/renderer/__tests__/Image.spec.d.ts +0 -1
  295. package/lib/typescript/src/renderer/__tests__/Paths.spec.d.ts +0 -1
  296. package/lib/typescript/src/renderer/__tests__/Picture.spec.d.ts +0 -1
  297. package/lib/typescript/src/renderer/__tests__/Simple.spec.d.ts +0 -1
  298. package/lib/typescript/src/renderer/__tests__/Surfaces.spec.d.ts +0 -1
  299. package/lib/typescript/src/renderer/__tests__/Text.spec.d.ts +0 -1
  300. package/lib/typescript/src/renderer/__tests__/Transform.spec.d.ts +0 -1
  301. package/lib/typescript/src/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
  302. package/lib/typescript/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
  303. package/lib/typescript/src/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
  304. package/lib/typescript/src/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
  305. package/lib/typescript/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
  306. package/lib/typescript/src/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
  307. package/lib/typescript/src/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
  308. package/lib/typescript/src/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
  309. package/lib/typescript/src/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
  310. package/lib/typescript/src/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
  311. package/lib/typescript/src/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
  312. package/lib/typescript/src/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
  313. package/lib/typescript/src/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
  314. package/lib/typescript/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
  315. package/lib/typescript/src/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
  316. package/lib/typescript/src/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
  317. package/lib/typescript/src/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
  318. package/lib/typescript/src/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
  319. package/lib/typescript/src/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
  320. package/lib/typescript/src/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
  321. package/lib/typescript/src/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
  322. package/lib/typescript/src/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
  323. package/lib/typescript/src/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
  324. package/lib/typescript/src/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
  325. package/lib/typescript/src/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
  326. package/lib/typescript/src/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
  327. package/lib/typescript/src/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
  328. package/lib/typescript/src/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
  329. package/lib/typescript/src/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
  330. package/lib/typescript/src/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
  331. package/lib/typescript/src/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
  332. package/lib/typescript/src/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
  333. package/lib/typescript/src/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
  334. package/lib/typescript/src/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
  335. package/lib/typescript/src/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
  336. package/lib/typescript/src/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
  337. package/lib/typescript/src/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
  338. package/lib/typescript/src/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
  339. package/lib/typescript/src/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
  340. package/lib/typescript/src/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
  341. package/lib/typescript/src/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
  342. package/lib/typescript/src/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
  343. package/lib/typescript/src/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
  344. package/lib/typescript/src/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
  345. package/lib/typescript/src/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
  346. package/lib/typescript/src/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
  347. package/lib/typescript/src/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
  348. package/lib/typescript/src/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
  349. package/lib/typescript/src/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
  350. package/lib/typescript/src/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
  351. package/lib/typescript/src/renderer/__tests__/e2e/Video.d.ts +0 -1
  352. package/lib/typescript/src/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
  353. package/lib/typescript/src/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
  354. package/lib/typescript/src/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
  355. package/lib/typescript/src/renderer/__tests__/e2e/setup/index.d.ts +0 -3
  356. package/lib/typescript/src/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
  357. package/lib/typescript/src/renderer/__tests__/setup.d.ts +0 -71
  358. package/lib/typescript/src/skia/__tests__/ColorFilter.spec.d.ts +0 -1
  359. package/lib/typescript/src/skia/__tests__/Data.spec.d.ts +0 -1
  360. package/lib/typescript/src/skia/__tests__/Drawings.spec.d.ts +0 -1
  361. package/lib/typescript/src/skia/__tests__/Enums.spec.d.ts +0 -1
  362. package/lib/typescript/src/skia/__tests__/Geometry.spec.d.ts +0 -1
  363. package/lib/typescript/src/skia/__tests__/ImageFilter.spec.d.ts +0 -1
  364. package/lib/typescript/src/skia/__tests__/Mock.spec.d.ts +0 -0
  365. package/lib/typescript/src/skia/__tests__/Paint.spec.d.ts +0 -1
  366. package/lib/typescript/src/skia/__tests__/Path.spec.d.ts +0 -1
  367. package/lib/typescript/src/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
  368. package/lib/typescript/src/skia/__tests__/Shader.spec.d.ts +0 -1
  369. package/lib/typescript/src/skia/__tests__/Text.spec.d.ts +0 -1
  370. package/lib/typescript/src/skia/__tests__/Transform.spec.d.ts +0 -1
  371. package/lib/typescript/src/skia/__tests__/Vertices.spec.d.ts +0 -1
  372. package/lib/typescript/src/skia/__tests__/setup.d.ts +0 -16
  373. package/lib/typescript/src/sksg/__tests__/Simple.spec.d.ts +0 -1
  374. package/libs/android/arm64-v8a/libjsonreader.a +0 -0
  375. package/libs/android/arm64-v8a/libpathops.a +0 -0
  376. package/libs/android/arm64-v8a/libskia.a +0 -0
  377. package/libs/android/arm64-v8a/libskottie.a +0 -0
  378. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  379. package/libs/android/arm64-v8a/libsksg.a +0 -0
  380. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  381. package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
  382. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  383. package/libs/android/arm64-v8a/libsvg.a +0 -0
  384. package/libs/android/armeabi-v7a/libjsonreader.a +0 -0
  385. package/libs/android/armeabi-v7a/libpathops.a +0 -0
  386. package/libs/android/armeabi-v7a/libskia.a +0 -0
  387. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  388. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  389. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  390. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  391. package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
  392. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  393. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  394. package/libs/android/x86/libjsonreader.a +0 -0
  395. package/libs/android/x86/libpathops.a +0 -0
  396. package/libs/android/x86/libskia.a +0 -0
  397. package/libs/android/x86/libskottie.a +0 -0
  398. package/libs/android/x86/libskparagraph.a +0 -0
  399. package/libs/android/x86/libsksg.a +0 -0
  400. package/libs/android/x86/libskshaper.a +0 -0
  401. package/libs/android/x86/libskunicode_core.a +0 -0
  402. package/libs/android/x86/libskunicode_icu.a +0 -0
  403. package/libs/android/x86/libsvg.a +0 -0
  404. package/libs/android/x86_64/libjsonreader.a +0 -0
  405. package/libs/android/x86_64/libpathops.a +0 -0
  406. package/libs/android/x86_64/libskia.a +0 -0
  407. package/libs/android/x86_64/libskottie.a +0 -0
  408. package/libs/android/x86_64/libskparagraph.a +0 -0
  409. package/libs/android/x86_64/libsksg.a +0 -0
  410. package/libs/android/x86_64/libskshaper.a +0 -0
  411. package/libs/android/x86_64/libskunicode_core.a +0 -0
  412. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  413. package/libs/android/x86_64/libsvg.a +0 -0
  414. package/libs/apple/libpathops.xcframework/Info.plist +0 -94
  415. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
  416. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  417. package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
  418. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
  419. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  420. package/libs/apple/libskia.xcframework/Info.plist +0 -94
  421. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  422. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  423. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  424. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  425. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  426. package/libs/apple/libskottie.xcframework/Info.plist +0 -94
  427. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  428. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  429. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  430. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  431. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  432. package/libs/apple/libskparagraph.xcframework/Info.plist +0 -94
  433. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  434. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  435. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  436. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  437. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  438. package/libs/apple/libsksg.xcframework/Info.plist +0 -94
  439. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  440. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  441. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  442. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  443. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  444. package/libs/apple/libskshaper.xcframework/Info.plist +0 -94
  445. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  446. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  447. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  448. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  449. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  450. package/libs/apple/libskunicode_core.xcframework/Info.plist +0 -94
  451. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  452. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  453. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  454. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
  455. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  456. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +0 -94
  457. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  458. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  459. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  460. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  461. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  462. package/libs/apple/libsvg.xcframework/Info.plist +0 -94
  463. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  464. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  465. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  466. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  467. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  468. package/src/__tests__/globalSetup.ts +0 -53
  469. package/src/__tests__/globalTeardown.ts +0 -11
  470. package/src/__tests__/setup.ts +0 -192
  471. package/src/__tests__/snapshots/animated-images/bird.png +0 -0
  472. package/src/__tests__/snapshots/animations/green.png +0 -0
  473. package/src/__tests__/snapshots/animations/lightblue.png +0 -0
  474. package/src/__tests__/snapshots/animations/quarter-lightblue.png +0 -0
  475. package/src/__tests__/snapshots/animations/red.png +0 -0
  476. package/src/__tests__/snapshots/atlas/identity.png +0 -0
  477. package/src/__tests__/snapshots/atlas/rsxform.png +0 -0
  478. package/src/__tests__/snapshots/atlas/rsxform1.png +0 -0
  479. package/src/__tests__/snapshots/atlas/simple.png +0 -0
  480. package/src/__tests__/snapshots/atlas/simple2.png +0 -0
  481. package/src/__tests__/snapshots/box/box-shadow-opacity.png +0 -0
  482. package/src/__tests__/snapshots/box/box-shadow.png +0 -0
  483. package/src/__tests__/snapshots/box/box-shadow2.png +0 -0
  484. package/src/__tests__/snapshots/box/box-shadow3.png +0 -0
  485. package/src/__tests__/snapshots/box/box-stroke.png +0 -0
  486. package/src/__tests__/snapshots/color-filter/color-filter-composition.png +0 -0
  487. package/src/__tests__/snapshots/color-filter/matrix1.png +0 -0
  488. package/src/__tests__/snapshots/color-filter/matrix3.png +0 -0
  489. package/src/__tests__/snapshots/color-filter/zurich-sepia.png +0 -0
  490. package/src/__tests__/snapshots/coons-patch/patch-with-opacity.png +0 -0
  491. package/src/__tests__/snapshots/coons-patch/simple.png +0 -0
  492. package/src/__tests__/snapshots/cyan-buffer.png +0 -0
  493. package/src/__tests__/snapshots/data/oslo.png +0 -0
  494. package/src/__tests__/snapshots/data/red.png +0 -0
  495. package/src/__tests__/snapshots/data/zurich.png +0 -0
  496. package/src/__tests__/snapshots/demos/apple-breathe.png +0 -0
  497. package/src/__tests__/snapshots/demos/apple-breathe1.png +0 -0
  498. package/src/__tests__/snapshots/demos/breathe.png +0 -0
  499. package/src/__tests__/snapshots/demos/breathe2.png +0 -0
  500. package/src/__tests__/snapshots/demos/product.png +0 -0
  501. package/src/__tests__/snapshots/demos/product2.png +0 -0
  502. package/src/__tests__/snapshots/demos/skia-neon.png +0 -0
  503. package/src/__tests__/snapshots/demos/skia-neon1.png +0 -0
  504. package/src/__tests__/snapshots/drawings/arc.png +0 -0
  505. package/src/__tests__/snapshots/drawings/blend-mode-multiply.png +0 -0
  506. package/src/__tests__/snapshots/drawings/blend-modes.png +0 -0
  507. package/src/__tests__/snapshots/drawings/blur-node.png +0 -0
  508. package/src/__tests__/snapshots/drawings/blur.png +0 -0
  509. package/src/__tests__/snapshots/drawings/blur2.png +0 -0
  510. package/src/__tests__/snapshots/drawings/custom-drawing.png +0 -0
  511. package/src/__tests__/snapshots/drawings/cyan-circle.png +0 -0
  512. package/src/__tests__/snapshots/drawings/cyan.png +0 -0
  513. package/src/__tests__/snapshots/drawings/default-props.png +0 -0
  514. package/src/__tests__/snapshots/drawings/hello-world.png +0 -0
  515. package/src/__tests__/snapshots/drawings/image-default-props.png +0 -0
  516. package/src/__tests__/snapshots/drawings/lightblue-quarter-circle.png +0 -0
  517. package/src/__tests__/snapshots/drawings/lightblue-rect.png +0 -0
  518. package/src/__tests__/snapshots/drawings/line.png +0 -0
  519. package/src/__tests__/snapshots/drawings/multiple-paints.png +0 -0
  520. package/src/__tests__/snapshots/drawings/nested-shader.png +0 -0
  521. package/src/__tests__/snapshots/drawings/nested-shader2.png +0 -0
  522. package/src/__tests__/snapshots/drawings/opacity-image.png +0 -0
  523. package/src/__tests__/snapshots/drawings/opacity-multiplication.png +0 -0
  524. package/src/__tests__/snapshots/drawings/opacity-multiplication2.png +0 -0
  525. package/src/__tests__/snapshots/drawings/points.png +0 -0
  526. package/src/__tests__/snapshots/drawings/purple.png +0 -0
  527. package/src/__tests__/snapshots/drawings/rotated-image.png +0 -0
  528. package/src/__tests__/snapshots/drawings/rotated-scaled-image.png +0 -0
  529. package/src/__tests__/snapshots/drawings/rrect-aa.png +0 -0
  530. package/src/__tests__/snapshots/drawings/rrect-no-aa.png +0 -0
  531. package/src/__tests__/snapshots/drawings/scaled-image.png +0 -0
  532. package/src/__tests__/snapshots/drawings/scaled-image2.png +0 -0
  533. package/src/__tests__/snapshots/drawings/semi-transparent-layer.png +0 -0
  534. package/src/__tests__/snapshots/drawings/shader-opacity-reference.png +0 -0
  535. package/src/__tests__/snapshots/drawings/skew-transform.png +0 -0
  536. package/src/__tests__/snapshots/drawings/skew-transform2.png +0 -0
  537. package/src/__tests__/snapshots/drawings/small-lightblue-rect.png +0 -0
  538. package/src/__tests__/snapshots/drawings/stroke.png +0 -0
  539. package/src/__tests__/snapshots/drawings/transform-origin.png +0 -0
  540. package/src/__tests__/snapshots/drawings/transparent-layer.png +0 -0
  541. package/src/__tests__/snapshots/drawings/transparent.png +0 -0
  542. package/src/__tests__/snapshots/drawings/violet.png +0 -0
  543. package/src/__tests__/snapshots/font/green.png +0 -0
  544. package/src/__tests__/snapshots/font/red.png +0 -0
  545. package/src/__tests__/snapshots/glyphs/simple.png +0 -0
  546. package/src/__tests__/snapshots/gradient/linear-with-opacity.png +0 -0
  547. package/src/__tests__/snapshots/gradient/linear.png +0 -0
  548. package/src/__tests__/snapshots/green.png +0 -0
  549. package/src/__tests__/snapshots/image-filter/blur.png +0 -0
  550. package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
  551. package/src/__tests__/snapshots/images/bundle-android.png +0 -0
  552. package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
  553. package/src/__tests__/snapshots/images/bundle-node.png +0 -0
  554. package/src/__tests__/snapshots/images/bundle.png +0 -0
  555. package/src/__tests__/snapshots/images/filter.png +0 -0
  556. package/src/__tests__/snapshots/leak.png +0 -0
  557. package/src/__tests__/snapshots/matrix4/camera-corner.png +0 -0
  558. package/src/__tests__/snapshots/matrix4/camera-offset.png +0 -0
  559. package/src/__tests__/snapshots/matrix4/camera-top-left-center.png +0 -0
  560. package/src/__tests__/snapshots/matrix4/camera-zoom-out.png +0 -0
  561. package/src/__tests__/snapshots/matrix4/full-rect.png +0 -0
  562. package/src/__tests__/snapshots/matrix4/perspective.png +0 -0
  563. package/src/__tests__/snapshots/matrix4/rect.png +0 -0
  564. package/src/__tests__/snapshots/matrix4/scaled-rect.png +0 -0
  565. package/src/__tests__/snapshots/matrix4/test-perspective.png +0 -0
  566. package/src/__tests__/snapshots/matrix4/test-perspective2.png +0 -0
  567. package/src/__tests__/snapshots/paint/blend-mode.png +0 -0
  568. package/src/__tests__/snapshots/paint/circle.png +0 -0
  569. package/src/__tests__/snapshots/paint/colors.png +0 -0
  570. package/src/__tests__/snapshots/paint/dither.png +0 -0
  571. package/src/__tests__/snapshots/paint/path-paint.png +0 -0
  572. package/src/__tests__/snapshots/paint/without-dither.png +0 -0
  573. package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-android.png +0 -0
  574. package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-ios.png +0 -0
  575. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-android.png +0 -0
  576. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-ios.png +0 -0
  577. package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-node.png +0 -0
  578. package/src/__tests__/snapshots/paragraph/paragraph-ellipse-android.png +0 -0
  579. package/src/__tests__/snapshots/paragraph/paragraph-ellipse-ios.png +0 -0
  580. package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-android.png +0 -0
  581. package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-ios.png +0 -0
  582. package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-android.png +0 -0
  583. package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-ios.png +0 -0
  584. package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-android.png +0 -0
  585. package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-ios.png +0 -0
  586. package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-android.png +0 -0
  587. package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-ios.png +0 -0
  588. package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-android.png +0 -0
  589. package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-ios.png +0 -0
  590. package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-android.png +0 -0
  591. package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-ios.png +0 -0
  592. package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-android.png +0 -0
  593. package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-ios.png +0 -0
  594. package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-android.png +0 -0
  595. package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-ios.png +0 -0
  596. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-android.png +0 -0
  597. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-ios.png +0 -0
  598. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android-box.png +0 -0
  599. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android.png +0 -0
  600. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios-box.png +0 -0
  601. package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios.png +0 -0
  602. package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-android.png +0 -0
  603. package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-ios.png +0 -0
  604. package/src/__tests__/snapshots/paragraph/simple-paragraph-android.png +0 -0
  605. package/src/__tests__/snapshots/paragraph/simple-paragraph-ios.png +0 -0
  606. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-android.png +0 -0
  607. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-ios.png +0 -0
  608. package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-node.png +0 -0
  609. package/src/__tests__/snapshots/path/interpolate.png +0 -0
  610. package/src/__tests__/snapshots/path/logo.png +0 -0
  611. package/src/__tests__/snapshots/path-effects/discrete.png +0 -0
  612. package/src/__tests__/snapshots/path-effects/sum.png +0 -0
  613. package/src/__tests__/snapshots/path-effects/sum2.png +0 -0
  614. package/src/__tests__/snapshots/paths/arc.png +0 -0
  615. package/src/__tests__/snapshots/paths/emptyPath.png +0 -0
  616. package/src/__tests__/snapshots/paths/interpolation1.png +0 -0
  617. package/src/__tests__/snapshots/paths/oval.png +0 -0
  618. package/src/__tests__/snapshots/paths/pattern.png +0 -0
  619. package/src/__tests__/snapshots/paths/poly.png +0 -0
  620. package/src/__tests__/snapshots/paths/rrect.png +0 -0
  621. package/src/__tests__/snapshots/paths/skia-trimmed.png +0 -0
  622. package/src/__tests__/snapshots/paths/skia.png +0 -0
  623. package/src/__tests__/snapshots/pictures/create-picture.png +0 -0
  624. package/src/__tests__/snapshots/pictures/green.png +0 -0
  625. package/src/__tests__/snapshots/pictures/hello-world.png +0 -0
  626. package/src/__tests__/snapshots/pictures/red.png +0 -0
  627. package/src/__tests__/snapshots/pictures/simple-picture.png +0 -0
  628. package/src/__tests__/snapshots/platform-buffer-bgra.png +0 -0
  629. package/src/__tests__/snapshots/platform-buffer.png +0 -0
  630. package/src/__tests__/snapshots/points/points.png +0 -0
  631. package/src/__tests__/snapshots/points/points2.png +0 -0
  632. package/src/__tests__/snapshots/render-nodes/simple.png +0 -0
  633. package/src/__tests__/snapshots/render-nodes/simple2.png +0 -0
  634. package/src/__tests__/snapshots/runtime-effects/blend-color-burn.png +0 -0
  635. package/src/__tests__/snapshots/runtime-effects/blend-color-burn2.png +0 -0
  636. package/src/__tests__/snapshots/runtime-effects/blend-color-burn3.png +0 -0
  637. package/src/__tests__/snapshots/runtime-effects/blend-color-dodge.png +0 -0
  638. package/src/__tests__/snapshots/runtime-effects/blend-multiply.png +0 -0
  639. package/src/__tests__/snapshots/runtime-effects/int-uniform.png +0 -0
  640. package/src/__tests__/snapshots/runtime-effects/linear-gradient.png +0 -0
  641. package/src/__tests__/snapshots/runtime-effects/linear-gradient2.png +0 -0
  642. package/src/__tests__/snapshots/runtime-effects/small-spiral.png +0 -0
  643. package/src/__tests__/snapshots/runtime-effects/spiral.png +0 -0
  644. package/src/__tests__/snapshots/runtime-shader/scaled-circle.png +0 -0
  645. package/src/__tests__/snapshots/runtime-shader/scaled-circle2.png +0 -0
  646. package/src/__tests__/snapshots/runtime-shader/simple.png +0 -0
  647. package/src/__tests__/snapshots/runtime-shader/spiral.png +0 -0
  648. package/src/__tests__/snapshots/runtime-shader/unscaled-image.png +0 -0
  649. package/src/__tests__/snapshots/screens/snapshot1-android-ci.png +0 -0
  650. package/src/__tests__/snapshots/screens/snapshot1-android.png +0 -0
  651. package/src/__tests__/snapshots/screens/snapshot1-ios.png +0 -0
  652. package/src/__tests__/snapshots/screens/snapshot2-android-ci.png +0 -0
  653. package/src/__tests__/snapshots/screens/snapshot2-android.png +0 -0
  654. package/src/__tests__/snapshots/screens/snapshot2-ios.png +0 -0
  655. package/src/__tests__/snapshots/screens/snapshot3-android-ci.png +0 -0
  656. package/src/__tests__/snapshots/screens/snapshot3-android.png +0 -0
  657. package/src/__tests__/snapshots/screens/snapshot3-ios.png +0 -0
  658. package/src/__tests__/snapshots/screens/snapshot4-android-ci.png +0 -0
  659. package/src/__tests__/snapshots/screens/snapshot4-android.png +0 -0
  660. package/src/__tests__/snapshots/screens/snapshot4-ios.png +0 -0
  661. package/src/__tests__/snapshots/screens/snapshot5-android.png +0 -0
  662. package/src/__tests__/snapshots/screens/snapshot5-ios.png +0 -0
  663. package/src/__tests__/snapshots/sdf/circle.png +0 -0
  664. package/src/__tests__/snapshots/sdf/heart.png +0 -0
  665. package/src/__tests__/snapshots/sdf/line.png +0 -0
  666. package/src/__tests__/snapshots/sdf/rectangle.png +0 -0
  667. package/src/__tests__/snapshots/shader/bilinear-interpolation.png +0 -0
  668. package/src/__tests__/snapshots/shader/hue.png +0 -0
  669. package/src/__tests__/snapshots/shader/hue2.png +0 -0
  670. package/src/__tests__/snapshots/shader/shader1.png +0 -0
  671. package/src/__tests__/snapshots/shader/shader2.png +0 -0
  672. package/src/__tests__/snapshots/shader/sweep-gradient.png +0 -0
  673. package/src/__tests__/snapshots/sksg/breathe-0.png +0 -0
  674. package/src/__tests__/snapshots/sksg/breathe.png +0 -0
  675. package/src/__tests__/snapshots/sksg/simple.png +0 -0
  676. package/src/__tests__/snapshots/sksg/simple2.png +0 -0
  677. package/src/__tests__/snapshots/text/text-bounds-android.png +0 -0
  678. package/src/__tests__/snapshots/text/text-bounds-ios.png +0 -0
  679. package/src/__tests__/snapshots/text/text-default-font-android.png +0 -0
  680. package/src/__tests__/snapshots/text/text-default-font-ios.png +0 -0
  681. package/src/__tests__/snapshots/text/text-path-bug-android.png +0 -0
  682. package/src/__tests__/snapshots/text/text-path-bug-ios.png +0 -0
  683. package/src/__tests__/snapshots/text/text-path-bug-node.png +0 -0
  684. package/src/__tests__/snapshots/text/text-path1-android.png +0 -0
  685. package/src/__tests__/snapshots/text/text-path1-ios.png +0 -0
  686. package/src/__tests__/snapshots/text/text-path1-node.png +0 -0
  687. package/src/__tests__/snapshots/text/text-path2-android.png +0 -0
  688. package/src/__tests__/snapshots/text/text-path2-ios.png +0 -0
  689. package/src/__tests__/snapshots/text/text-path2-node.png +0 -0
  690. package/src/__tests__/snapshots/transform/rectangles.png +0 -0
  691. package/src/__tests__/snapshots/transform/rotate-radiants.png +0 -0
  692. package/src/__tests__/snapshots/transform/rotate.png +0 -0
  693. package/src/__tests__/snapshots/transform/scale-origin.png +0 -0
  694. package/src/__tests__/snapshots/transform/scale.png +0 -0
  695. package/src/__tests__/snapshots/transform/skew.png +0 -0
  696. package/src/__tests__/snapshots/transparent.png +0 -0
  697. package/src/__tests__/snapshots/vertices/billinear-gradient.png +0 -0
  698. package/src/__tests__/snapshots/vertices/strip.png +0 -0
  699. package/src/__tests__/snapshots/vertices/vertices.png +0 -0
  700. package/src/mock/__tests__/mock.spec.ts +0 -47
  701. package/src/renderer/__tests__/Data.spec.tsx +0 -66
  702. package/src/renderer/__tests__/Drawings.spec.tsx +0 -96
  703. package/src/renderer/__tests__/FitBox.spec.tsx +0 -677
  704. package/src/renderer/__tests__/Glyphs.spec.tsx +0 -46
  705. package/src/renderer/__tests__/Image.spec.tsx +0 -45
  706. package/src/renderer/__tests__/Paths.spec.tsx +0 -75
  707. package/src/renderer/__tests__/Picture.spec.tsx +0 -83
  708. package/src/renderer/__tests__/Simple.spec.tsx +0 -81
  709. package/src/renderer/__tests__/Surfaces.spec.tsx +0 -68
  710. package/src/renderer/__tests__/Text.spec.tsx +0 -134
  711. package/src/renderer/__tests__/Transform.spec.tsx +0 -72
  712. package/src/renderer/__tests__/documentation/Group.spec.tsx +0 -170
  713. package/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.tsx +0 -51
  714. package/src/renderer/__tests__/documentation/paint/Overview.spec.tsx +0 -84
  715. package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +0 -46
  716. package/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.tsx +0 -492
  717. package/src/renderer/__tests__/e2e/AnimatedImages.spec.tsx +0 -87
  718. package/src/renderer/__tests__/e2e/Atlas.spec.tsx +0 -358
  719. package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +0 -164
  720. package/src/renderer/__tests__/e2e/Blending.spec.tsx +0 -115
  721. package/src/renderer/__tests__/e2e/Blur.spec.tsx +0 -56
  722. package/src/renderer/__tests__/e2e/Box.spec.tsx +0 -105
  723. package/src/renderer/__tests__/e2e/Camera.spec.tsx +0 -475
  724. package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +0 -227
  725. package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +0 -102
  726. package/src/renderer/__tests__/e2e/CoonPatch.spec.tsx +0 -74
  727. package/src/renderer/__tests__/e2e/DataEncoding.spec.tsx +0 -79
  728. package/src/renderer/__tests__/e2e/Drawings.spec.tsx +0 -254
  729. package/src/renderer/__tests__/e2e/FontMgr.spec.tsx +0 -150
  730. package/src/renderer/__tests__/e2e/Gradient.spec.tsx +0 -40
  731. package/src/renderer/__tests__/e2e/Group.spec.tsx +0 -128
  732. package/src/renderer/__tests__/e2e/Image.spec.tsx +0 -77
  733. package/src/renderer/__tests__/e2e/ImageEncoding.spec.tsx +0 -255
  734. package/src/renderer/__tests__/e2e/ImageFilter.spec.tsx +0 -99
  735. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +0 -320
  736. package/src/renderer/__tests__/e2e/LightingImageFilters.spec.tsx +0 -1478
  737. package/src/renderer/__tests__/e2e/Mask.spec.tsx +0 -85
  738. package/src/renderer/__tests__/e2e/Matrix4.spec.tsx +0 -367
  739. package/src/renderer/__tests__/e2e/NativeBuffer.spec.tsx +0 -158
  740. package/src/renderer/__tests__/e2e/Offscreen.spec.tsx +0 -109
  741. package/src/renderer/__tests__/e2e/Opacity.spec.tsx +0 -301
  742. package/src/renderer/__tests__/e2e/Paint.spec.tsx +0 -230
  743. package/src/renderer/__tests__/e2e/ParagraphMethods.spec.tsx +0 -388
  744. package/src/renderer/__tests__/e2e/ParagraphPaint.spec.tsx +0 -262
  745. package/src/renderer/__tests__/e2e/Paragraphs.spec.tsx +0 -615
  746. package/src/renderer/__tests__/e2e/PathEffects.spec.tsx +0 -73
  747. package/src/renderer/__tests__/e2e/Paths.spec.tsx +0 -394
  748. package/src/renderer/__tests__/e2e/Picture.spec.tsx +0 -134
  749. package/src/renderer/__tests__/e2e/Point.spec.tsx +0 -35
  750. package/src/renderer/__tests__/e2e/Rect.spec.tsx +0 -139
  751. package/src/renderer/__tests__/e2e/RuntimeShader.spec.tsx +0 -323
  752. package/src/renderer/__tests__/e2e/SDF.spec.tsx +0 -148
  753. package/src/renderer/__tests__/e2e/SVG.spec.tsx +0 -192
  754. package/src/renderer/__tests__/e2e/Shader.spec.tsx +0 -353
  755. package/src/renderer/__tests__/e2e/Skottie.spec.tsx +0 -463
  756. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +0 -29
  757. package/src/renderer/__tests__/e2e/Surfaces.spec.tsx +0 -17
  758. package/src/renderer/__tests__/e2e/Text.spec.tsx +0 -109
  759. package/src/renderer/__tests__/e2e/TextPath.spec.tsx +0 -43
  760. package/src/renderer/__tests__/e2e/Transforms.spec.tsx +0 -63
  761. package/src/renderer/__tests__/e2e/Vertices.spec.tsx +0 -30
  762. package/src/renderer/__tests__/e2e/Video.ts +0 -68
  763. package/src/renderer/__tests__/e2e/setup/Paragraph.ts +0 -60
  764. package/src/renderer/__tests__/e2e/setup/SVG.ts +0 -31
  765. package/src/renderer/__tests__/e2e/setup/SkiaObject.ts +0 -31
  766. package/src/renderer/__tests__/e2e/setup/index.ts +0 -3
  767. package/src/renderer/__tests__/e2e/setup/skottie/basic_slots.json +0 -1118
  768. package/src/renderer/__tests__/e2e/setup/skottie/color-props.json +0 -1
  769. package/src/renderer/__tests__/e2e/setup/skottie/confetti.json +0 -5899
  770. package/src/renderer/__tests__/e2e/setup/skottie/drinks.json +0 -43857
  771. package/src/renderer/__tests__/e2e/setup/skottie/fingerprint.json +0 -1
  772. package/src/renderer/__tests__/e2e/setup/skottie/lego_loader.json +0 -29540
  773. package/src/renderer/__tests__/e2e/setup/skottie/new-drop.json +0 -1
  774. package/src/renderer/__tests__/e2e/setup/skottie/onboarding.json +0 -1
  775. package/src/renderer/__tests__/e2e/setup/skottie/text-layer.json +0 -1
  776. package/src/renderer/__tests__/examples/BlendModes.spec.tsx +0 -123
  777. package/src/renderer/__tests__/setup.tsx +0 -525
  778. package/src/skia/__tests__/ColorFilter.spec.ts +0 -67
  779. package/src/skia/__tests__/Data.spec.ts +0 -29
  780. package/src/skia/__tests__/Drawings.spec.ts +0 -119
  781. package/src/skia/__tests__/Enums.spec.ts +0 -136
  782. package/src/skia/__tests__/Geometry.spec.ts +0 -39
  783. package/src/skia/__tests__/ImageFilter.spec.ts +0 -19
  784. package/src/skia/__tests__/Mock.spec.ts +0 -7
  785. package/src/skia/__tests__/Paint.spec.ts +0 -25
  786. package/src/skia/__tests__/Path.spec.ts +0 -384
  787. package/src/skia/__tests__/RuntimeEffect.spec.ts +0 -66
  788. package/src/skia/__tests__/Shader.spec.ts +0 -96
  789. package/src/skia/__tests__/Text.spec.ts +0 -32
  790. package/src/skia/__tests__/Transform.spec.ts +0 -89
  791. package/src/skia/__tests__/Vertices.spec.ts +0 -40
  792. package/src/skia/__tests__/assets/Avenir-Heavy.ttf +0 -0
  793. package/src/skia/__tests__/assets/DIN-Medium.ttf +0 -0
  794. package/src/skia/__tests__/assets/NotoColorEmoji.ttf +0 -0
  795. package/src/skia/__tests__/assets/NotoSansSC-Regular.otf +0 -0
  796. package/src/skia/__tests__/assets/Pacifico-Regular.ttf +0 -0
  797. package/src/skia/__tests__/assets/Roboto-BlackItalic.ttf +0 -0
  798. package/src/skia/__tests__/assets/Roboto-Bold.ttf +0 -0
  799. package/src/skia/__tests__/assets/Roboto-Italic.ttf +0 -0
  800. package/src/skia/__tests__/assets/Roboto-Medium.ttf +0 -0
  801. package/src/skia/__tests__/assets/Roboto-Regular.ttf +0 -0
  802. package/src/skia/__tests__/assets/UberMove-Medium_mono.ttf +0 -0
  803. package/src/skia/__tests__/assets/bird.gif +0 -0
  804. package/src/skia/__tests__/assets/box.png +0 -0
  805. package/src/skia/__tests__/assets/box2.png +0 -0
  806. package/src/skia/__tests__/assets/card.png +0 -0
  807. package/src/skia/__tests__/assets/mask.png +0 -0
  808. package/src/skia/__tests__/assets/oslo-mini.jpg +0 -0
  809. package/src/skia/__tests__/assets/oslo.jpg +0 -0
  810. package/src/skia/__tests__/assets/product.png +0 -0
  811. package/src/skia/__tests__/assets/skia_logo.png +0 -0
  812. package/src/skia/__tests__/assets/skia_logo_jpeg.jpg +0 -0
  813. package/src/skia/__tests__/assets/tiger.svg +0 -724
  814. package/src/skia/__tests__/assets/zurich.jpg +0 -0
  815. package/src/skia/__tests__/setup.ts +0 -27
  816. package/src/sksg/__tests__/Simple.spec.tsx +0 -148
@@ -9,6 +9,7 @@
9
9
  #define SkPath_DEFINED
10
10
 
11
11
  #include "include/core/SkMatrix.h"
12
+ #include "include/core/SkPathIter.h"
12
13
  #include "include/core/SkPathTypes.h"
13
14
  #include "include/core/SkPoint.h"
14
15
  #include "include/core/SkRect.h"
@@ -26,13 +27,12 @@
26
27
  #include <optional>
27
28
  #include <tuple>
28
29
 
29
- struct SkArc;
30
30
  class SkData;
31
31
  class SkPathRef;
32
32
  class SkRRect;
33
33
  class SkWStream;
34
34
  enum class SkPathConvexity;
35
- enum class SkPathFirstDirection;
35
+ struct SkPathRaw;
36
36
  struct SkPathVerbAnalysis;
37
37
 
38
38
  // WIP -- define this locally, and fix call-sites to use SkPathBuilder (skbug.com/40040287)
@@ -59,7 +59,7 @@ struct SkPathVerbAnalysis;
59
59
  class SK_API SkPath {
60
60
  public:
61
61
  /**
62
- * Create a new path with the specified segments.
62
+ * Create a new path with the specified spans.
63
63
  *
64
64
  * The points and weights arrays are read in order, based on the sequence of verbs.
65
65
  *
@@ -77,30 +77,40 @@ public:
77
77
  * with a Move verb, followed by 0 or more segments: Line, Quad, Conic, Cubic, followed
78
78
  * by an optional Close.
79
79
  */
80
- static SkPath Make(SkSpan<const SkPoint> pts,
81
- SkSpan<const uint8_t> verbs,
82
- SkSpan<const SkScalar> conics,
83
- SkPathFillType, bool isVolatile = false);
80
+ static SkPath Raw(SkSpan<const SkPoint> pts,
81
+ SkSpan<const SkPathVerb> verbs,
82
+ SkSpan<const SkScalar> conics,
83
+ SkPathFillType, bool isVolatile = false);
84
84
 
85
- static SkPath Rect(const SkRect&, SkPathDirection = SkPathDirection::kCW,
85
+ static SkPath Rect(const SkRect&, SkPathDirection = SkPathDirection::kDefault,
86
86
  unsigned startIndex = 0);
87
- static SkPath Oval(const SkRect&, SkPathDirection = SkPathDirection::kCW);
87
+ static SkPath Oval(const SkRect&, SkPathDirection = SkPathDirection::kDefault);
88
88
  static SkPath Oval(const SkRect&, SkPathDirection, unsigned startIndex);
89
89
  static SkPath Circle(SkScalar center_x, SkScalar center_y, SkScalar radius,
90
90
  SkPathDirection dir = SkPathDirection::kCW);
91
- static SkPath RRect(const SkRRect&, SkPathDirection dir = SkPathDirection::kCW);
91
+ static SkPath RRect(const SkRRect&, SkPathDirection dir = SkPathDirection::kDefault);
92
92
  static SkPath RRect(const SkRRect&, SkPathDirection, unsigned startIndex);
93
93
  static SkPath RRect(const SkRect& bounds, SkScalar rx, SkScalar ry,
94
- SkPathDirection dir = SkPathDirection::kCW);
94
+ SkPathDirection dir = SkPathDirection::kDefault);
95
95
 
96
96
  static SkPath Polygon(SkSpan<const SkPoint> pts, bool isClosed,
97
- SkPathFillType fillType = SkPathFillType::kWinding,
97
+ SkPathFillType fillType = SkPathFillType::kDefault,
98
98
  bool isVolatile = false);
99
99
 
100
100
  static SkPath Line(const SkPoint a, const SkPoint b) {
101
101
  return Polygon({a, b}, false);
102
102
  }
103
103
 
104
+ // Deprecated: use Raw()
105
+ static SkPath Make(SkSpan<const SkPoint> pts,
106
+ SkSpan<const uint8_t> verbs,
107
+ SkSpan<const SkScalar> conics,
108
+ SkPathFillType fillType,
109
+ bool isVolatile = false) {
110
+ return Raw(pts, {reinterpret_cast<const SkPathVerb*>(verbs.data()), verbs.size()},
111
+ conics, fillType, isVolatile);
112
+ }
113
+
104
114
  /** Constructs an empty SkPath. By default, SkPath has no verbs, no SkPoint, and no weights.
105
115
  FillType is set to kWinding.
106
116
 
@@ -137,19 +147,6 @@ public:
137
147
  return *this;
138
148
  }
139
149
 
140
- #ifdef SK_HIDE_PATH_EDIT_METHODS
141
- private:
142
- #endif
143
- /** Returns a copy of this path in the current state, and resets the path to empty. */
144
- SkPath detach() {
145
- SkPath result = *this;
146
- this->reset();
147
- return result;
148
- }
149
- #ifdef SK_HIDE_PATH_EDIT_METHODS
150
- public:
151
- #endif
152
-
153
150
  /** Constructs a copy of an existing path.
154
151
  SkPath assignment makes two paths identical by value. Internally, assignment
155
152
  shares pointer values. The underlying verb array, SkPoint array and weights
@@ -200,9 +197,6 @@ public:
200
197
  */
201
198
  bool isInterpolatable(const SkPath& compare) const;
202
199
 
203
- #ifdef SK_HIDE_PATH_EDIT_METHODS
204
- private:
205
- #endif
206
200
  /** Interpolates between SkPath with SkPoint array of equal size.
207
201
  Copy verb array and weights to out, and set out SkPoint array to a weighted
208
202
  average of this SkPoint array and ending SkPoint array, using the formula:
@@ -212,22 +206,17 @@ private:
212
206
  one (this Point_Array); will work with values outside of this
213
207
  range.
214
208
 
215
- interpolate() returns false and leaves out unchanged if SkPoint array is not
216
- the same size as ending SkPoint array. Call isInterpolatable() to check SkPath
217
- compatibility prior to calling interpolate().
209
+ interpolate() returns an empty SkPath if SkPoint array is not the same size
210
+ as ending SkPoint array. Call isInterpolatable() to check SkPath compatibility
211
+ prior to calling makeInterpolate().
218
212
 
219
213
  @param ending SkPoint array averaged with this SkPoint array
220
214
  @param weight contribution of this SkPoint array, and
221
215
  one minus contribution of ending SkPoint array
222
- @param out SkPath replaced by interpolated averages
223
- @return true if SkPath contain same number of SkPoint
216
+ @return SkPath replaced by interpolated averages
224
217
 
225
218
  example: https://fiddle.skia.org/c/@Path_interpolate
226
219
  */
227
- bool interpolate(const SkPath& ending, SkScalar weight, SkPath* out) const;
228
- #ifdef SK_HIDE_PATH_EDIT_METHODS
229
- public:
230
- #endif
231
220
  SkPath makeInterpolate(const SkPath& ending, SkScalar weight) const;
232
221
 
233
222
  /** Returns SkPathFillType, the rule used to fill SkPath.
@@ -236,19 +225,6 @@ public:
236
225
  */
237
226
  SkPathFillType getFillType() const { return (SkPathFillType)fFillType; }
238
227
 
239
- #ifdef SK_HIDE_PATH_EDIT_METHODS
240
- private:
241
- #endif
242
- /** Sets SkPathFillType, the rule used to fill SkPath. While there is no
243
- check that ft is legal, values outside of SkPathFillType are not supported.
244
- */
245
- void setFillType(SkPathFillType ft) {
246
- fFillType = SkToU8(ft);
247
- }
248
- #ifdef SK_HIDE_PATH_EDIT_METHODS
249
- public:
250
- #endif
251
-
252
228
  /** Creates an SkPath with the same properties and data, and with SkPathFillType
253
229
  set to newFillType.
254
230
  */
@@ -261,19 +237,6 @@ public:
261
237
  */
262
238
  bool isInverseFillType() const { return SkPathFillType_IsInverse(this->getFillType()); }
263
239
 
264
- #ifdef SK_HIDE_PATH_EDIT_METHODS
265
- private:
266
- #endif
267
- /** Replaces SkPathFillType with its inverse. The inverse of SkPathFillType describes the area
268
- unmodified by the original SkPathFillType.
269
- */
270
- void toggleInverseFillType() {
271
- fFillType ^= 2;
272
- }
273
- #ifdef SK_HIDE_PATH_EDIT_METHODS
274
- public:
275
- #endif
276
-
277
240
  /** Creates an SkPath with the same properties and data, and with SkPathFillType
278
241
  replaced with its inverse. The inverse of SkPathFillType describes the area unmodified
279
242
  by the original FillType.
@@ -311,45 +274,6 @@ public:
311
274
  */
312
275
  bool isRRect(SkRRect* rrect) const;
313
276
 
314
- /** Returns true if path is representable as an oval arc. In other words, could this
315
- path be drawn using SkCanvas::drawArc.
316
-
317
- arc receives parameters of arc
318
-
319
- @param arc storage for arc; may be nullptr
320
- @return true if SkPath contains only a single arc from an oval
321
- */
322
- bool isArc(SkArc* arc) const;
323
-
324
- #ifdef SK_HIDE_PATH_EDIT_METHODS
325
- private:
326
- #endif
327
- /** Sets SkPath to its initial state.
328
- Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
329
- Internal storage associated with SkPath is released.
330
-
331
- @return reference to SkPath
332
-
333
- example: https://fiddle.skia.org/c/@Path_reset
334
- */
335
- SkPath& reset();
336
-
337
- /** Sets SkPath to its initial state, preserving internal storage.
338
- Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
339
- Internal storage associated with SkPath is retained.
340
-
341
- Use rewind() instead of reset() if SkPath storage will be reused and performance
342
- is critical.
343
-
344
- @return reference to SkPath
345
-
346
- example: https://fiddle.skia.org/c/@Path_rewind
347
- */
348
- SkPath& rewind();
349
- #ifdef SK_HIDE_PATH_EDIT_METHODS
350
- public:
351
- #endif
352
-
353
277
  /** Returns if SkPath is empty.
354
278
  Empty SkPath may have FillType but has no SkPoint, SkPath::Verb, or conic weight.
355
279
  SkPath() constructs empty SkPath; reset() and rewind() make SkPath empty.
@@ -387,12 +311,9 @@ public:
387
311
  return SkToBool(fIsVolatile);
388
312
  }
389
313
 
390
- #ifdef SK_HIDE_PATH_EDIT_METHODS
391
- private:
392
- #endif
393
- /** Specifies whether SkPath is volatile; whether it will be altered or discarded
394
- by the caller after it is drawn. SkPath by default have volatile set false, allowing
395
- Skia to attach a cache of data which speeds repeated drawing.
314
+ /** Return a copy of SkPath with isVolatile indicating whether it will be altered
315
+ or discarded by the caller after it is drawn. SkPath by default have volatile
316
+ set false, allowing Skia to attach a cache of data which speeds repeated drawing.
396
317
 
397
318
  Mark temporary paths, discarded or modified after use, as volatile
398
319
  to inform Skia that the path need not be cached.
@@ -404,15 +325,8 @@ private:
404
325
  GPU surface SkPath draws are affected by volatile for some shadows and concave geometries.
405
326
 
406
327
  @param isVolatile true if caller will alter SkPath after drawing
407
- @return reference to SkPath
328
+ @return SkPath
408
329
  */
409
- SkPath& setIsVolatile(bool isVolatile) {
410
- fIsVolatile = isVolatile;
411
- return *this;
412
- }
413
- #ifdef SK_HIDE_PATH_EDIT_METHODS
414
- public:
415
- #endif
416
330
  SkPath makeIsVolatile(bool isVolatile) const;
417
331
 
418
332
  /** Tests if line between SkPoint pair is degenerate.
@@ -528,26 +442,6 @@ public:
528
442
  */
529
443
  size_t approximateBytesUsed() const;
530
444
 
531
- #ifdef SK_HIDE_PATH_EDIT_METHODS
532
- private:
533
- #endif
534
- /** Exchanges the verb array, SkPoint array, weights, and SkPath::FillType with other.
535
- Cached state is also exchanged. swap() internally exchanges pointers, so
536
- it is lightweight and does not allocate memory.
537
-
538
- swap() usage has largely been replaced by operator=(const SkPath& path).
539
- SkPath do not copy their content on assignment until they are written to,
540
- making assignment as efficient as swap().
541
-
542
- @param other SkPath exchanged by value
543
-
544
- example: https://fiddle.skia.org/c/@Path_swap
545
- */
546
- void swap(SkPath& other);
547
- #ifdef SK_HIDE_PATH_EDIT_METHODS
548
- public:
549
- #endif
550
-
551
445
  /** Returns minimum and maximum axes values of SkPoint array.
552
446
  Returns (0, 0, 0, 0) if SkPath contains no points. Returned bounds width and height may
553
447
  be larger or smaller than area affected when SkPath is drawn.
@@ -594,21 +488,290 @@ public:
594
488
  /** Returns true if rect is contained by SkPath.
595
489
  May return false when rect is contained by SkPath.
596
490
 
597
- For now, only returns true if SkPath has one contour and is convex.
598
- rect may share points and edges with SkPath and be contained.
599
- Returns true if rect is empty, that is, it has zero width or height; and
600
- the SkPoint or line described by rect is contained by SkPath.
491
+ For now, only returns true if SkPath has one contour and is convex.
492
+ rect may share points and edges with SkPath and be contained.
493
+ Returns true if rect is empty, that is, it has zero width or height; and
494
+ the SkPoint or line described by rect is contained by SkPath.
495
+
496
+ @param rect SkRect, line, or SkPoint checked for containment
497
+ @return true if rect is contained
498
+
499
+ example: https://fiddle.skia.org/c/@Path_conservativelyContainsRect
500
+ */
501
+ bool conservativelyContainsRect(const SkRect& rect) const;
502
+
503
+ /** \enum SkPath::ArcSize
504
+ Four oval parts with radii (rx, ry) start at last SkPath SkPoint and ends at (x, y).
505
+ ArcSize and Direction select one of the four oval parts.
506
+ */
507
+ enum ArcSize {
508
+ kSmall_ArcSize, //!< smaller of arc pair
509
+ kLarge_ArcSize, //!< larger of arc pair
510
+ };
511
+
512
+ /** Approximates conic with quad array. Conic is constructed from start SkPoint p0,
513
+ control SkPoint p1, end SkPoint p2, and weight w.
514
+ Quad array is stored in pts; this storage is supplied by caller.
515
+ Maximum quad count is 2 to the pow2.
516
+ Every third point in array shares last SkPoint of previous quad and first SkPoint of
517
+ next quad. Maximum pts storage size is given by:
518
+ (1 + 2 * (1 << pow2)) * sizeof(SkPoint).
519
+
520
+ Returns quad count used the approximation, which may be smaller
521
+ than the number requested.
522
+
523
+ conic weight determines the amount of influence conic control point has on the curve.
524
+ w less than one represents an elliptical section. w greater than one represents
525
+ a hyperbolic section. w equal to one represents a parabolic section.
526
+
527
+ Two quad curves are sufficient to approximate an elliptical conic with a sweep
528
+ of up to 90 degrees; in this case, set pow2 to one.
529
+
530
+ @param p0 conic start SkPoint
531
+ @param p1 conic control SkPoint
532
+ @param p2 conic end SkPoint
533
+ @param w conic weight
534
+ @param pts storage for quad array
535
+ @param pow2 quad count, as power of two, normally 0 to 5 (1 to 32 quad curves)
536
+ @return number of quad curves written to pts
537
+ */
538
+ static int ConvertConicToQuads(const SkPoint& p0, const SkPoint& p1, const SkPoint& p2,
539
+ SkScalar w, SkPoint pts[], int pow2);
540
+
541
+ /** Returns true if SkPath is equivalent to SkRect when filled.
542
+ If false: rect, isClosed, and direction are unchanged.
543
+ If true: rect, isClosed, and direction are written to if not nullptr.
544
+
545
+ rect may be smaller than the SkPath bounds. SkPath bounds may include kMove_Verb points
546
+ that do not alter the area drawn by the returned rect.
547
+
548
+ @param rect storage for bounds of SkRect; may be nullptr
549
+ @param isClosed storage set to true if SkPath is closed; may be nullptr
550
+ @param direction storage set to SkRect direction; may be nullptr
551
+ @return true if SkPath contains SkRect
552
+
553
+ example: https://fiddle.skia.org/c/@Path_isRect
554
+ */
555
+ bool isRect(SkRect* rect, bool* isClosed = nullptr, SkPathDirection* direction = nullptr) const;
556
+
557
+ /** \enum SkPath::AddPathMode
558
+ AddPathMode chooses how addPath() appends. Adding one SkPath to another can extend
559
+ the last contour or start a new contour.
560
+ */
561
+ enum AddPathMode {
562
+ /** Contours are appended to the destination path as new contours.
563
+ */
564
+ kAppend_AddPathMode,
565
+ /** Extends the last contour of the destination path with the first countour
566
+ of the source path, connecting them with a line. If the last contour is
567
+ closed, a new empty contour starting at its start point is extended instead.
568
+ If the destination path is empty, the result is the source path.
569
+ The last path of the result is closed only if the last path of the source is.
570
+ */
571
+ kExtend_AddPathMode,
572
+ };
573
+
574
+ /** Returns SkPath with SkPoint array offset by (dx, dy).
575
+
576
+ @param dx offset added to SkPoint array x-axis coordinates
577
+ @param dy offset added to SkPoint array y-axis coordinates
578
+ */
579
+ SkPath makeOffset(SkScalar dx, SkScalar dy) const {
580
+ SkPath dst;
581
+ this->offset(dx, dy, &dst);
582
+ return dst;
583
+ }
584
+
585
+ /** Return a copy of SkPath with verb array, SkPoint array, and weight transformed
586
+ by matrix. makeTransform may change verbs and increase their number.
587
+
588
+ @param matrix SkMatrix to apply to SkPath
589
+ @param pc whether to apply perspective clipping
590
+ @return SkPath
591
+ */
592
+ SkPath makeTransform(const SkMatrix& matrix) const {
593
+ SkPath dst;
594
+ this->transform(matrix, &dst);
595
+ return dst;
596
+ }
597
+
598
+ SkPath makeScale(SkScalar sx, SkScalar sy) const {
599
+ return this->makeTransform(SkMatrix::Scale(sx, sy));
600
+ }
601
+
602
+ #ifdef SK_SUPPORT_LEGACY_APPLYPERSPECTIVECLIP
603
+ void transform(const SkMatrix& matrix, SkPath* dst, SkApplyPerspectiveClip) const {
604
+ this->transform(matrix, dst);
605
+ }
606
+ void transform(const SkMatrix& matrix, SkApplyPerspectiveClip) {
607
+ this->transform(matrix);
608
+ }
609
+ SkPath makeTransform(const SkMatrix& m, SkApplyPerspectiveClip) const {
610
+ return this->makeTransform(m);
611
+ }
612
+ #endif
613
+
614
+ /** Return the last point, or {}
615
+
616
+ @return The last if the path contains one or more SkPoint, else returns {}
617
+
618
+ example: https://fiddle.skia.org/c/@Path_getLastPt
619
+ */
620
+ std::optional<SkPoint> getLastPt() const;
621
+
622
+ // DEPRECATED
623
+ bool getLastPt(SkPoint* lastPt) const {
624
+ if (auto lp = this->getLastPt()) {
625
+ if (lastPt) {
626
+ *lastPt = *lp;
627
+ }
628
+ return true;
629
+ }
630
+ if (lastPt) {
631
+ *lastPt = {0, 0};
632
+ }
633
+ return false;
634
+ }
635
+
636
+ /** \enum SkPath::SegmentMask
637
+ SegmentMask constants correspond to each drawing Verb type in SkPath; for
638
+ instance, if SkPath only contains lines, only the kLine_SegmentMask bit is set.
639
+ */
640
+ enum SegmentMask {
641
+ kLine_SegmentMask = kLine_SkPathSegmentMask,
642
+ kQuad_SegmentMask = kQuad_SkPathSegmentMask,
643
+ kConic_SegmentMask = kConic_SkPathSegmentMask,
644
+ kCubic_SegmentMask = kCubic_SkPathSegmentMask,
645
+ };
646
+
647
+ /** Returns a mask, where each set bit corresponds to a SegmentMask constant
648
+ if SkPath contains one or more verbs of that type.
649
+ Returns zero if SkPath contains no lines, or curves: quads, conics, or cubics.
650
+
651
+ getSegmentMasks() returns a cached result; it is very fast.
652
+
653
+ @return SegmentMask bits or zero
654
+ */
655
+ uint32_t getSegmentMasks() const;
656
+
657
+ /** \enum SkPath::Verb
658
+ Verb instructs SkPath how to interpret one or more SkPoint and optional conic weight;
659
+ manage contour, and terminate SkPath.
660
+ */
661
+ enum Verb {
662
+ kMove_Verb = static_cast<int>(SkPathVerb::kMove),
663
+ kLine_Verb = static_cast<int>(SkPathVerb::kLine),
664
+ kQuad_Verb = static_cast<int>(SkPathVerb::kQuad),
665
+ kConic_Verb = static_cast<int>(SkPathVerb::kConic),
666
+ kCubic_Verb = static_cast<int>(SkPathVerb::kCubic),
667
+ kClose_Verb = static_cast<int>(SkPathVerb::kClose),
668
+ kDone_Verb = kClose_Verb + 1
669
+ };
670
+
671
+ /** Specifies whether SkPath is volatile; whether it will be altered or discarded
672
+ by the caller after it is drawn. SkPath by default have volatile set false, allowing
673
+ Skia to attach a cache of data which speeds repeated drawing.
674
+
675
+ Mark temporary paths, discarded or modified after use, as volatile
676
+ to inform Skia that the path need not be cached.
677
+
678
+ Mark animating SkPath volatile to improve performance.
679
+ Mark unchanging SkPath non-volatile to improve repeated rendering.
680
+
681
+ raster surface SkPath draws are affected by volatile for some shadows.
682
+ GPU surface SkPath draws are affected by volatile for some shadows and concave geometries.
683
+
684
+ @param isVolatile true if caller will alter SkPath after drawing
685
+ @return reference to SkPath
686
+ */
687
+ SkPath& setIsVolatile(bool isVolatile) {
688
+ fIsVolatile = isVolatile;
689
+ return *this;
690
+ }
691
+
692
+ /** Exchanges the verb array, SkPoint array, weights, and SkPath::FillType with other.
693
+ Cached state is also exchanged. swap() internally exchanges pointers, so
694
+ it is lightweight and does not allocate memory.
695
+
696
+ swap() usage has largely been replaced by operator=(const SkPath& path).
697
+ SkPath do not copy their content on assignment until they are written to,
698
+ making assignment as efficient as swap().
699
+
700
+ @param other SkPath exchanged by value
701
+
702
+ example: https://fiddle.skia.org/c/@Path_swap
703
+ */
704
+ void swap(SkPath& other);
705
+
706
+ /** Interpolates between SkPath with SkPoint array of equal size.
707
+ Copy verb array and weights to out, and set out SkPoint array to a weighted
708
+ average of this SkPoint array and ending SkPoint array, using the formula:
709
+ (Path Point * weight) + ending Point * (1 - weight).
710
+
711
+ weight is most useful when between zero (ending SkPoint array) and
712
+ one (this Point_Array); will work with values outside of this
713
+ range.
714
+
715
+ interpolate() returns false and leaves out unchanged if SkPoint array is not
716
+ the same size as ending SkPoint array. Call isInterpolatable() to check SkPath
717
+ compatibility prior to calling interpolate().
718
+
719
+ @param ending SkPoint array averaged with this SkPoint array
720
+ @param weight contribution of this SkPoint array, and
721
+ one minus contribution of ending SkPoint array
722
+ @param out SkPath replaced by interpolated averages
723
+ @return true if SkPath contain same number of SkPoint
724
+
725
+ example: https://fiddle.skia.org/c/@Path_interpolate
726
+ */
727
+ bool interpolate(const SkPath& ending, SkScalar weight, SkPath* out) const;
728
+
729
+ /** Sets SkPathFillType, the rule used to fill SkPath. While there is no
730
+ check that ft is legal, values outside of SkPathFillType are not supported.
731
+ */
732
+ void setFillType(SkPathFillType ft) {
733
+ fFillType = SkToU8(ft);
734
+ }
735
+
736
+ /** Replaces SkPathFillType with its inverse. The inverse of SkPathFillType describes the area
737
+ unmodified by the original SkPathFillType.
738
+ */
739
+ void toggleInverseFillType() {
740
+ fFillType ^= 2;
741
+ }
742
+
743
+ #ifdef SK_HIDE_PATH_EDIT_METHODS
744
+ private:
745
+ #endif
746
+ /** Returns a copy of this path in the current state, and resets the path to empty. */
747
+ SkPath detach() {
748
+ SkPath result = *this;
749
+ this->reset();
750
+ return result;
751
+ }
752
+
753
+ /** Sets SkPath to its initial state.
754
+ Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
755
+ Internal storage associated with SkPath is released.
756
+
757
+ @return reference to SkPath
758
+
759
+ example: https://fiddle.skia.org/c/@Path_reset
760
+ */
761
+ SkPath& reset();
762
+
763
+ /** Sets SkPath to its initial state, preserving internal storage.
764
+ Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
765
+ Internal storage associated with SkPath is retained.
766
+
767
+ Use rewind() instead of reset() if SkPath storage will be reused and performance
768
+ is critical.
601
769
 
602
- @param rect SkRect, line, or SkPoint checked for containment
603
- @return true if rect is contained
770
+ @return reference to SkPath
604
771
 
605
- example: https://fiddle.skia.org/c/@Path_conservativelyContainsRect
772
+ example: https://fiddle.skia.org/c/@Path_rewind
606
773
  */
607
- bool conservativelyContainsRect(const SkRect& rect) const;
608
-
609
- #ifdef SK_HIDE_PATH_EDIT_METHODS
610
- private:
611
- #endif
774
+ SkPath& rewind();
612
775
 
613
776
  /** Grows SkPath verb array, SkPoint array, and conics to contain additional space.
614
777
  May improve performance and use less memory by
@@ -622,24 +785,16 @@ private:
622
785
  */
623
786
  void incReserve(int extraPtCount, int extraVerbCount = 0, int extraConicCount = 0);
624
787
 
625
- /** Adds beginning of contour at SkPoint (x, y).
626
-
627
- @param x x-axis value of contour start
628
- @param y y-axis value of contour start
629
- @return reference to SkPath
630
-
631
- example: https://fiddle.skia.org/c/@Path_moveTo
632
- */
633
- SkPath& moveTo(SkScalar x, SkScalar y);
634
-
635
- /** Adds beginning of contour at SkPoint p.
636
-
637
- @param p contour start
638
- @return reference to SkPath
639
- */
640
- SkPath& moveTo(const SkPoint& p) {
788
+ /** Specifies the beginning of contour. If the previous verb was a "move" verb,
789
+ * then this just replaces the point value of that move, otherwise it appends a new
790
+ * "move" verb to the path using the point.
791
+ *
792
+ * Thus, each contour can only have 1 move verb in it (the last one specified).
793
+ */
794
+ SkPath& moveTo(SkPoint p) {
641
795
  return this->moveTo(p.fX, p.fY);
642
796
  }
797
+ SkPath& moveTo(SkScalar x, SkScalar y);
643
798
 
644
799
  /** Adds beginning of contour relative to last point.
645
800
  If SkPath is empty, starts contour at (dx, dy).
@@ -962,15 +1117,6 @@ private:
962
1117
  return this->arcTo(p1.fX, p1.fY, p2.fX, p2.fY, radius);
963
1118
  }
964
1119
 
965
- /** \enum SkPath::ArcSize
966
- Four oval parts with radii (rx, ry) start at last SkPath SkPoint and ends at (x, y).
967
- ArcSize and Direction select one of the four oval parts.
968
- */
969
- enum ArcSize {
970
- kSmall_ArcSize, //!< smaller of arc pair
971
- kLarge_ArcSize, //!< larger of arc pair
972
- };
973
-
974
1120
  /** Appends arc to SkPath. Arc is implemented by one or more conics weighted to
975
1121
  describe part of oval with radii (rx, ry) rotated by xAxisRotate degrees. Arc
976
1122
  curves from last SkPath SkPoint to (x, y), choosing one of four possible routes:
@@ -1069,59 +1215,6 @@ private:
1069
1215
  */
1070
1216
  SkPath& close();
1071
1217
 
1072
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1073
- public:
1074
- #endif
1075
-
1076
- /** Approximates conic with quad array. Conic is constructed from start SkPoint p0,
1077
- control SkPoint p1, end SkPoint p2, and weight w.
1078
- Quad array is stored in pts; this storage is supplied by caller.
1079
- Maximum quad count is 2 to the pow2.
1080
- Every third point in array shares last SkPoint of previous quad and first SkPoint of
1081
- next quad. Maximum pts storage size is given by:
1082
- (1 + 2 * (1 << pow2)) * sizeof(SkPoint).
1083
-
1084
- Returns quad count used the approximation, which may be smaller
1085
- than the number requested.
1086
-
1087
- conic weight determines the amount of influence conic control point has on the curve.
1088
- w less than one represents an elliptical section. w greater than one represents
1089
- a hyperbolic section. w equal to one represents a parabolic section.
1090
-
1091
- Two quad curves are sufficient to approximate an elliptical conic with a sweep
1092
- of up to 90 degrees; in this case, set pow2 to one.
1093
-
1094
- @param p0 conic start SkPoint
1095
- @param p1 conic control SkPoint
1096
- @param p2 conic end SkPoint
1097
- @param w conic weight
1098
- @param pts storage for quad array
1099
- @param pow2 quad count, as power of two, normally 0 to 5 (1 to 32 quad curves)
1100
- @return number of quad curves written to pts
1101
- */
1102
- static int ConvertConicToQuads(const SkPoint& p0, const SkPoint& p1, const SkPoint& p2,
1103
- SkScalar w, SkPoint pts[], int pow2);
1104
-
1105
- /** Returns true if SkPath is equivalent to SkRect when filled.
1106
- If false: rect, isClosed, and direction are unchanged.
1107
- If true: rect, isClosed, and direction are written to if not nullptr.
1108
-
1109
- rect may be smaller than the SkPath bounds. SkPath bounds may include kMove_Verb points
1110
- that do not alter the area drawn by the returned rect.
1111
-
1112
- @param rect storage for bounds of SkRect; may be nullptr
1113
- @param isClosed storage set to true if SkPath is closed; may be nullptr
1114
- @param direction storage set to SkRect direction; may be nullptr
1115
- @return true if SkPath contains SkRect
1116
-
1117
- example: https://fiddle.skia.org/c/@Path_isRect
1118
- */
1119
- bool isRect(SkRect* rect, bool* isClosed = nullptr, SkPathDirection* direction = nullptr) const;
1120
-
1121
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1122
- private:
1123
- #endif
1124
-
1125
1218
  /** Adds a new contour to the path, defined by the rect, and wound in the
1126
1219
  specified direction. The verbs added to the path will be:
1127
1220
 
@@ -1296,23 +1389,6 @@ private:
1296
1389
  */
1297
1390
  SkPath& addPoly(SkSpan<const SkPoint> pts, bool close);
1298
1391
 
1299
- /** \enum SkPath::AddPathMode
1300
- AddPathMode chooses how addPath() appends. Adding one SkPath to another can extend
1301
- the last contour or start a new contour.
1302
- */
1303
- enum AddPathMode {
1304
- /** Contours are appended to the destination path as new contours.
1305
- */
1306
- kAppend_AddPathMode,
1307
- /** Extends the last contour of the destination path with the first countour
1308
- of the source path, connecting them with a line. If the last contour is
1309
- closed, a new empty contour starting at its start point is extended instead.
1310
- If the destination path is empty, the result is the source path.
1311
- The last path of the result is closed only if the last path of the source is.
1312
- */
1313
- kExtend_AddPathMode,
1314
- };
1315
-
1316
1392
  /** Appends src to SkPath, offset by (dx, dy).
1317
1393
 
1318
1394
  If mode is kAppend_AddPathMode, src verb array, SkPoint array, and conic weights are
@@ -1369,17 +1445,6 @@ private:
1369
1445
  */
1370
1446
  SkPath& reverseAddPath(const SkPath& src);
1371
1447
 
1372
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1373
- public:
1374
- #endif
1375
- SkPath makeOffset(SkScalar dx, SkScalar dy) const {
1376
- SkPath dst;
1377
- this->offset(dx, dy, &dst);
1378
- return dst;
1379
- }
1380
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1381
- private:
1382
- #endif
1383
1448
  /** Offsets SkPoint array by (dx, dy). Offset SkPath replaces dst.
1384
1449
  If dst is nullptr, SkPath is replaced by offset data.
1385
1450
 
@@ -1412,8 +1477,7 @@ private:
1412
1477
 
1413
1478
  example: https://fiddle.skia.org/c/@Path_transform
1414
1479
  */
1415
- void transform(const SkMatrix& matrix, SkPath* dst,
1416
- SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) const;
1480
+ void transform(const SkMatrix& matrix, SkPath* dst) const;
1417
1481
 
1418
1482
  /** Transforms verb array, SkPoint array, and weight by matrix.
1419
1483
  transform may change verbs and increase their number.
@@ -1422,39 +1486,11 @@ private:
1422
1486
  @param matrix SkMatrix to apply to SkPath
1423
1487
  @param pc whether to apply perspective clipping
1424
1488
  */
1425
- SkPath& transform(const SkMatrix& matrix,
1426
- SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) {
1427
- this->transform(matrix, this, pc);
1489
+ SkPath& transform(const SkMatrix& matrix) {
1490
+ this->transform(matrix, this);
1428
1491
  return *this;
1429
1492
  }
1430
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1431
- public:
1432
- #endif
1433
-
1434
- SkPath makeTransform(const SkMatrix& m,
1435
- SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) const {
1436
- SkPath dst;
1437
- this->transform(m, &dst, pc);
1438
- return dst;
1439
- }
1440
-
1441
- SkPath makeScale(SkScalar sx, SkScalar sy) const {
1442
- return this->makeTransform(SkMatrix::Scale(sx, sy), SkApplyPerspectiveClip::kNo);
1443
- }
1444
-
1445
- /** Returns last point on SkPath in lastPt. Returns false if SkPoint array is empty,
1446
- storing (0, 0) if lastPt is not nullptr.
1447
-
1448
- @param lastPt storage for final SkPoint in SkPoint array; may be nullptr
1449
- @return true if SkPoint array contains one or more SkPoint
1450
-
1451
- example: https://fiddle.skia.org/c/@Path_getLastPt
1452
- */
1453
- bool getLastPt(SkPoint* lastPt) const;
1454
1493
 
1455
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1456
- private:
1457
- #endif
1458
1494
  /** Sets last point to (x, y). If SkPoint array is empty, append kMove_Verb to
1459
1495
  verb array and append (x, y) to SkPoint array.
1460
1496
 
@@ -1473,44 +1509,51 @@ private:
1473
1509
  void setLastPt(const SkPoint& p) {
1474
1510
  this->setLastPt(p.fX, p.fY);
1475
1511
  }
1512
+
1476
1513
  #ifdef SK_HIDE_PATH_EDIT_METHODS
1477
1514
  public:
1515
+ #endif
1516
+ #ifdef SK_SUPPORT_UNSPANNED_APIS
1517
+ static SkPath Make(const SkPoint points[], int pointCount,
1518
+ const uint8_t verbs[], int verbCount,
1519
+ const SkScalar conics[], int conicWeightCount,
1520
+ SkPathFillType fillType, bool isVolatile = false) {
1521
+ return Make({points, pointCount},
1522
+ {verbs, verbCount},
1523
+ {conics, conicWeightCount},
1524
+ fillType, isVolatile);
1525
+ }
1526
+ static SkPath Polygon(const SkPoint pts[], int count, bool isClosed,
1527
+ SkPathFillType fillType = SkPathFillType::kWinding,
1528
+ bool isVolatile = false) {
1529
+ return Polygon({pts, count}, isClosed, fillType, isVolatile);
1530
+ }
1531
+ int getPoints(SkPoint points[], int max) const {
1532
+ return (int)this->getPoints({points, max});
1533
+ }
1534
+ int getVerbs(uint8_t verbs[], int max) const {
1535
+ return (int)this->getVerbs({verbs, max});
1536
+ }
1537
+ SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
1538
+ SkPathDirection dir = SkPathDirection::kCW) {
1539
+ return this->addRoundRect(rect, {radii, radii ? 8 : 0}, dir);
1540
+ }
1541
+ SkPath& addPoly(const SkPoint pts[], int count, bool close) {
1542
+ return this->addPoly({pts, count}, close);
1543
+ }
1478
1544
  #endif
1479
1545
 
1546
+ SkPathIter iter() const;
1480
1547
 
1481
- /** \enum SkPath::SegmentMask
1482
- SegmentMask constants correspond to each drawing Verb type in SkPath; for
1483
- instance, if SkPath only contains lines, only the kLine_SegmentMask bit is set.
1484
- */
1485
- enum SegmentMask {
1486
- kLine_SegmentMask = kLine_SkPathSegmentMask,
1487
- kQuad_SegmentMask = kQuad_SkPathSegmentMask,
1488
- kConic_SegmentMask = kConic_SkPathSegmentMask,
1489
- kCubic_SegmentMask = kCubic_SkPathSegmentMask,
1490
- };
1491
-
1492
- /** Returns a mask, where each set bit corresponds to a SegmentMask constant
1493
- if SkPath contains one or more verbs of that type.
1494
- Returns zero if SkPath contains no lines, or curves: quads, conics, or cubics.
1495
-
1496
- getSegmentMasks() returns a cached result; it is very fast.
1497
-
1498
- @return SegmentMask bits or zero
1499
- */
1500
- uint32_t getSegmentMasks() const;
1548
+ struct IterRec {
1549
+ SkPathVerb fVerb;
1550
+ SkSpan<const SkPoint> fPoints;
1551
+ float fConicWeight;
1501
1552
 
1502
- /** \enum SkPath::Verb
1503
- Verb instructs SkPath how to interpret one or more SkPoint and optional conic weight;
1504
- manage contour, and terminate SkPath.
1505
- */
1506
- enum Verb {
1507
- kMove_Verb = static_cast<int>(SkPathVerb::kMove),
1508
- kLine_Verb = static_cast<int>(SkPathVerb::kLine),
1509
- kQuad_Verb = static_cast<int>(SkPathVerb::kQuad),
1510
- kConic_Verb = static_cast<int>(SkPathVerb::kConic),
1511
- kCubic_Verb = static_cast<int>(SkPathVerb::kCubic),
1512
- kClose_Verb = static_cast<int>(SkPathVerb::kClose),
1513
- kDone_Verb = kClose_Verb + 1
1553
+ float conicWeight() const {
1554
+ SkASSERT(fVerb == SkPathVerb::kConic);
1555
+ return fConicWeight;
1556
+ }
1514
1557
  };
1515
1558
 
1516
1559
  /** \class SkPath::Iter
@@ -1566,6 +1609,8 @@ public:
1566
1609
  */
1567
1610
  Verb next(SkPoint pts[4]);
1568
1611
 
1612
+ std::optional<IterRec> next();
1613
+
1569
1614
  /** Returns conic weight if next() returned kConic_Verb.
1570
1615
 
1571
1616
  If next() has not been called, or next() did not return kConic_Verb,
@@ -1597,49 +1642,20 @@ public:
1597
1642
  bool isClosedContour() const;
1598
1643
 
1599
1644
  private:
1600
- const SkPoint* fPts;
1601
- const uint8_t* fVerbs;
1602
- const uint8_t* fVerbStop;
1603
- const SkScalar* fConicWeights;
1604
- SkPoint fMoveTo;
1605
- SkPoint fLastPt;
1606
- bool fForceClose;
1607
- bool fNeedClose;
1608
- bool fCloseLine;
1609
-
1610
- Verb autoClose(SkPoint pts[2]);
1645
+ const SkPoint* fPts;
1646
+ const SkPathVerb* fVerbs;
1647
+ const SkPathVerb* fVerbStop;
1648
+ const SkScalar* fConicWeights;
1649
+ SkPoint fMoveTo;
1650
+ SkPoint fLastPt;
1651
+ std::array<SkPoint, 4> fStorage;
1652
+ bool fForceClose;
1653
+ bool fNeedClose;
1654
+ bool fCloseLine;
1655
+
1656
+ SkPathVerb autoClose(SkPoint pts[2]);
1611
1657
  };
1612
1658
 
1613
- #ifdef SK_SUPPORT_UNSPANNED_APIS
1614
- static SkPath Make(const SkPoint points[], int pointCount,
1615
- const uint8_t verbs[], int verbCount,
1616
- const SkScalar conics[], int conicWeightCount,
1617
- SkPathFillType fillType, bool isVolatile = false) {
1618
- return Make({points, pointCount},
1619
- {verbs, verbCount},
1620
- {conics, conicWeightCount},
1621
- fillType, isVolatile);
1622
- }
1623
- static SkPath Polygon(const SkPoint pts[], int count, bool isClosed,
1624
- SkPathFillType fillType = SkPathFillType::kWinding,
1625
- bool isVolatile = false) {
1626
- return Polygon({pts, count}, isClosed, fillType, isVolatile);
1627
- }
1628
- int getPoints(SkPoint points[], int max) const {
1629
- return (int)this->getPoints({points, max});
1630
- }
1631
- int getVerbs(uint8_t verbs[], int max) const {
1632
- return (int)this->getVerbs({verbs, max});
1633
- }
1634
- SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
1635
- SkPathDirection dir = SkPathDirection::kCW) {
1636
- return this->addRoundRect(rect, {radii, radii ? 8 : 0}, dir);
1637
- }
1638
- SkPath& addPoly(const SkPoint pts[], int count, bool close) {
1639
- return this->addPoly({pts, count}, close);
1640
- }
1641
- #endif
1642
-
1643
1659
  private:
1644
1660
  /** \class SkPath::RangeIter
1645
1661
  Iterates through a raw range of path verbs, points, and conics. All values are returned
@@ -1650,7 +1666,7 @@ private:
1650
1666
  class RangeIter {
1651
1667
  public:
1652
1668
  RangeIter() = default;
1653
- RangeIter(const uint8_t* verbs, const SkPoint* points, const SkScalar* weights)
1669
+ RangeIter(const SkPathVerb* verbs, const SkPoint* points, const SkScalar* weights)
1654
1670
  : fVerb(verbs), fPoints(points), fWeights(weights) {
1655
1671
  SkDEBUGCODE(fInitialPoints = fPoints;)
1656
1672
  }
@@ -1661,7 +1677,7 @@ private:
1661
1677
  return fVerb == that.fVerb;
1662
1678
  }
1663
1679
  RangeIter& operator++() {
1664
- auto verb = static_cast<SkPathVerb>(*fVerb++);
1680
+ auto verb = *fVerb++;
1665
1681
  fPoints += pts_advance_after_verb(verb);
1666
1682
  if (verb == SkPathVerb::kConic) {
1667
1683
  ++fWeights;
@@ -1674,7 +1690,7 @@ private:
1674
1690
  return copy;
1675
1691
  }
1676
1692
  SkPathVerb peekVerb() const {
1677
- return static_cast<SkPathVerb>(*fVerb);
1693
+ return *fVerb;
1678
1694
  }
1679
1695
  std::tuple<SkPathVerb, const SkPoint*, const SkScalar*> operator*() const {
1680
1696
  SkPathVerb verb = this->peekVerb();
@@ -1708,7 +1724,7 @@ private:
1708
1724
  }
1709
1725
  SkUNREACHABLE;
1710
1726
  }
1711
- const uint8_t* fVerb = nullptr;
1727
+ const SkPathVerb* fVerb = nullptr;
1712
1728
  const SkPoint* fPoints = nullptr;
1713
1729
  const SkScalar* fWeights = nullptr;
1714
1730
  SkDEBUGCODE(const SkPoint* fInitialPoints = nullptr;)
@@ -1753,6 +1769,8 @@ public:
1753
1769
  */
1754
1770
  Verb next(SkPoint[4]);
1755
1771
 
1772
+ std::optional<IterRec> next();
1773
+
1756
1774
  /** Returns next SkPath::Verb, but does not advance RawIter.
1757
1775
 
1758
1776
  @return next SkPath::Verb from verb array
@@ -1839,29 +1857,7 @@ public:
1839
1857
  */
1840
1858
  sk_sp<SkData> serialize() const;
1841
1859
 
1842
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1843
- private:
1844
- #endif
1845
- /** Initializes SkPath from buffer of size length. Returns zero if the buffer is
1846
- data is inconsistent, or the length is too small.
1847
-
1848
- Reads SkPath::FillType, verb array, SkPoint array, conic weight, and
1849
- additionally reads computed information like SkPath::Convexity and bounds.
1850
-
1851
- Used only in concert with writeToMemory();
1852
- the format used for SkPath in memory is not guaranteed.
1853
-
1854
- @param buffer storage for SkPath
1855
- @param length buffer size in bytes; must be multiple of 4
1856
- @return number of bytes read, or zero on failure
1857
-
1858
- example: https://fiddle.skia.org/c/@Path_readFromMemory
1859
- */
1860
- size_t readFromMemory(const void* buffer, size_t length);
1861
- #ifdef SK_HIDE_PATH_EDIT_METHODS
1862
- public:
1863
- #endif
1864
- /** Initializes SkPath from buffer of size length. If the buffer data is inconsistent, or the
1860
+ /** Returns a SkPath from buffer of size length. If the buffer data is inconsistent, or the
1865
1861
  length is too small, returns a nullopt.
1866
1862
 
1867
1863
  Reads SkPath::FillType, verb array, SkPoint array, conic weight, and
@@ -1880,6 +1876,10 @@ public:
1880
1876
  static std::optional<SkPath> ReadFromMemory(const void* buffer, size_t length,
1881
1877
  size_t* bytesRead = nullptr);
1882
1878
 
1879
+ #ifndef SK_HIDE_PATH_EDIT_METHODS
1880
+ size_t readFromMemory(const void* buffer, size_t length);
1881
+ #endif
1882
+
1883
1883
  /** (See skbug.com/40032862)
1884
1884
  Returns a non-zero, globally unique value. A different value is returned
1885
1885
  if verb array, SkPoint array, or conic weight changes.
@@ -1906,13 +1906,11 @@ public:
1906
1906
  using sk_is_trivially_relocatable = std::true_type;
1907
1907
 
1908
1908
  private:
1909
- SkPath(sk_sp<SkPathRef>, SkPathFillType, bool isVolatile, SkPathConvexity,
1910
- SkPathFirstDirection firstDirection);
1909
+ SkPath(sk_sp<SkPathRef>, SkPathFillType, bool isVolatile, SkPathConvexity);
1911
1910
 
1912
1911
  sk_sp<SkPathRef> fPathRef;
1913
1912
  int fLastMoveToIndex;
1914
1913
  mutable std::atomic<uint8_t> fConvexity; // SkPathConvexity
1915
- mutable std::atomic<uint8_t> fFirstDirection; // SkPathFirstDirection
1916
1914
  uint8_t fFillType : 2;
1917
1915
  uint8_t fIsVolatile : 1;
1918
1916
 
@@ -1982,8 +1980,7 @@ private:
1982
1980
  // Notice the setters are const... these are mutable atomic fields.
1983
1981
  void setConvexity(SkPathConvexity) const;
1984
1982
 
1985
- void setFirstDirection(SkPathFirstDirection) const;
1986
- SkPathFirstDirection getFirstDirection() const;
1983
+ void addRaw(const SkPathRaw&);
1987
1984
 
1988
1985
  /** Returns the comvexity type, computing if needed. Never returns kUnknown.
1989
1986
  @return path's convexity type (convex or concave)
@@ -2015,15 +2012,13 @@ private:
2015
2012
  // SkPathPriv::AnalyzeVerbs().
2016
2013
  static SkPath MakeInternal(const SkPathVerbAnalysis& analsis,
2017
2014
  const SkPoint points[],
2018
- const uint8_t verbs[],
2019
- int verbCount,
2015
+ SkSpan<const SkPathVerb> verbs,
2020
2016
  const SkScalar conics[],
2021
2017
  SkPathFillType fillType,
2022
2018
  bool isVolatile);
2023
2019
 
2024
- friend class SkAutoPathBoundsUpdate;
2020
+ friend class SkAutoAddSimpleShape;
2025
2021
  friend class SkAutoDisableOvalCheck;
2026
- friend class SkAutoDisableDirectionCheck;
2027
2022
  friend class SkPathBuilder;
2028
2023
  friend class SkPathEdgeIter;
2029
2024
  friend class SkPathWriter;