@shopify/react-native-skia 0.1.115

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1704) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +7 -0
  3. package/android/CMakeLists.txt +132 -0
  4. package/android/README.md +14 -0
  5. package/android/build.gradle +196 -0
  6. package/android/cpp/jni/JniLoad.cpp +13 -0
  7. package/android/cpp/jni/JniPlatformContext.cpp +142 -0
  8. package/android/cpp/jni/JniSkiaDrawView.cpp +169 -0
  9. package/android/cpp/jni/JniSkiaManager.cpp +57 -0
  10. package/android/cpp/jni/SkiaOpenGLRenderer.cpp +340 -0
  11. package/android/cpp/jni/include/JniPlatformContext.h +75 -0
  12. package/android/cpp/jni/include/JniPlatformContextWrapper.h +54 -0
  13. package/android/cpp/jni/include/JniSkiaDrawView.h +82 -0
  14. package/android/cpp/jni/include/JniSkiaManager.h +81 -0
  15. package/android/cpp/jni/include/SkiaOpenGLRenderer.h +159 -0
  16. package/android/src/main/AndroidManifest.xml +6 -0
  17. package/android/src/main/java/com/shopify/reactnative/skia/PlatformContext.java +181 -0
  18. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaModule.java +88 -0
  19. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +24 -0
  20. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaViewManager.java +72 -0
  21. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDrawView.java +137 -0
  22. package/android/src/main/java/com/shopify/reactnative/skia/SkiaManager.java +66 -0
  23. package/cpp/api/JsiSkApi.h +97 -0
  24. package/cpp/api/JsiSkCanvas.h +532 -0
  25. package/cpp/api/JsiSkColorFilter.h +43 -0
  26. package/cpp/api/JsiSkColorFilterFactory.h +98 -0
  27. package/cpp/api/JsiSkContourMeasure.h +102 -0
  28. package/cpp/api/JsiSkContourMeasureIter.h +90 -0
  29. package/cpp/api/JsiSkData.h +46 -0
  30. package/cpp/api/JsiSkDataFactory.h +92 -0
  31. package/cpp/api/JsiSkFont.h +326 -0
  32. package/cpp/api/JsiSkFontMgr.h +84 -0
  33. package/cpp/api/JsiSkFontMgrFactory.h +48 -0
  34. package/cpp/api/JsiSkHostObjects.h +83 -0
  35. package/cpp/api/JsiSkImage.h +141 -0
  36. package/cpp/api/JsiSkImageFactory.h +50 -0
  37. package/cpp/api/JsiSkImageFilter.h +47 -0
  38. package/cpp/api/JsiSkImageFilterFactory.h +217 -0
  39. package/cpp/api/JsiSkImageInfo.h +57 -0
  40. package/cpp/api/JsiSkMaskFilter.h +45 -0
  41. package/cpp/api/JsiSkMaskFilterFactory.h +42 -0
  42. package/cpp/api/JsiSkMatrix.h +64 -0
  43. package/cpp/api/JsiSkPaint.h +227 -0
  44. package/cpp/api/JsiSkPath.h +557 -0
  45. package/cpp/api/JsiSkPathEffect.h +45 -0
  46. package/cpp/api/JsiSkPathEffectFactory.h +123 -0
  47. package/cpp/api/JsiSkPathFactory.h +64 -0
  48. package/cpp/api/JsiSkPoint.h +81 -0
  49. package/cpp/api/JsiSkRRect.h +93 -0
  50. package/cpp/api/JsiSkRSXform.h +105 -0
  51. package/cpp/api/JsiSkRect.h +119 -0
  52. package/cpp/api/JsiSkRuntimeEffect.h +217 -0
  53. package/cpp/api/JsiSkRuntimeEffectFactory.h +41 -0
  54. package/cpp/api/JsiSkSVG.h +43 -0
  55. package/cpp/api/JsiSkSVGFactory.h +48 -0
  56. package/cpp/api/JsiSkShader.h +45 -0
  57. package/cpp/api/JsiSkShaderFactory.h +214 -0
  58. package/cpp/api/JsiSkSurface.h +67 -0
  59. package/cpp/api/JsiSkSurfaceFactory.h +44 -0
  60. package/cpp/api/JsiSkTextBlob.h +50 -0
  61. package/cpp/api/JsiSkTextBlobFactory.h +109 -0
  62. package/cpp/api/JsiSkTypeface.h +76 -0
  63. package/cpp/api/JsiSkTypefaceFactory.h +30 -0
  64. package/cpp/api/JsiSkVertices.h +147 -0
  65. package/cpp/jsi/JsiHostObject.cpp +154 -0
  66. package/cpp/jsi/JsiHostObject.h +241 -0
  67. package/cpp/rnskia/RNSkAnimation.h +73 -0
  68. package/cpp/rnskia/RNSkDispatchQueue.cpp +84 -0
  69. package/cpp/rnskia/RNSkDispatchQueue.h +47 -0
  70. package/cpp/rnskia/RNSkDrawView.cpp +333 -0
  71. package/cpp/rnskia/RNSkDrawView.h +242 -0
  72. package/cpp/rnskia/RNSkInfoParameter.h +100 -0
  73. package/cpp/rnskia/RNSkJsiViewApi.h +305 -0
  74. package/cpp/rnskia/RNSkManager.cpp +81 -0
  75. package/cpp/rnskia/RNSkManager.h +81 -0
  76. package/cpp/rnskia/RNSkPlatformContext.h +196 -0
  77. package/cpp/rnskia/RNSkValueApi.h +69 -0
  78. package/cpp/rnskia/values/RNSkClockValue.h +133 -0
  79. package/cpp/rnskia/values/RNSkDerivedValue.h +92 -0
  80. package/cpp/rnskia/values/RNSkReadonlyValue.h +140 -0
  81. package/cpp/rnskia/values/RNSkValue.h +112 -0
  82. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +61 -0
  83. package/cpp/skia/include/android/SkAnimatedImage.h +179 -0
  84. package/cpp/skia/include/c/sk_canvas.h +159 -0
  85. package/cpp/skia/include/c/sk_colorspace.h +25 -0
  86. package/cpp/skia/include/c/sk_data.h +65 -0
  87. package/cpp/skia/include/c/sk_image.h +71 -0
  88. package/cpp/skia/include/c/sk_imageinfo.h +62 -0
  89. package/cpp/skia/include/c/sk_maskfilter.h +47 -0
  90. package/cpp/skia/include/c/sk_matrix.h +49 -0
  91. package/cpp/skia/include/c/sk_paint.h +145 -0
  92. package/cpp/skia/include/c/sk_path.h +102 -0
  93. package/cpp/skia/include/c/sk_picture.h +70 -0
  94. package/cpp/skia/include/c/sk_shader.h +143 -0
  95. package/cpp/skia/include/c/sk_surface.h +73 -0
  96. package/cpp/skia/include/c/sk_types.h +278 -0
  97. package/cpp/skia/include/codec/SkAndroidCodec.h +263 -0
  98. package/cpp/skia/include/codec/SkCodec.h +992 -0
  99. package/cpp/skia/include/codec/SkCodecAnimation.h +61 -0
  100. package/cpp/skia/include/codec/SkEncodedOrigin.h +54 -0
  101. package/cpp/skia/include/config/SkUserConfig.h +89 -0
  102. package/cpp/skia/include/core/SkAnnotation.h +50 -0
  103. package/cpp/skia/include/core/SkBBHFactory.h +63 -0
  104. package/cpp/skia/include/core/SkBitmap.h +1212 -0
  105. package/cpp/skia/include/core/SkBlendMode.h +110 -0
  106. package/cpp/skia/include/core/SkBlender.h +33 -0
  107. package/cpp/skia/include/core/SkBlurTypes.h +22 -0
  108. package/cpp/skia/include/core/SkCanvas.h +2583 -0
  109. package/cpp/skia/include/core/SkCanvasVirtualEnforcer.h +61 -0
  110. package/cpp/skia/include/core/SkClipOp.h +19 -0
  111. package/cpp/skia/include/core/SkColor.h +438 -0
  112. package/cpp/skia/include/core/SkColorFilter.h +90 -0
  113. package/cpp/skia/include/core/SkColorPriv.h +152 -0
  114. package/cpp/skia/include/core/SkColorSpace.h +245 -0
  115. package/cpp/skia/include/core/SkContourMeasure.h +131 -0
  116. package/cpp/skia/include/core/SkCoverageMode.h +30 -0
  117. package/cpp/skia/include/core/SkCubicMap.h +45 -0
  118. package/cpp/skia/include/core/SkCustomMesh.h +202 -0
  119. package/cpp/skia/include/core/SkData.h +188 -0
  120. package/cpp/skia/include/core/SkDataTable.h +118 -0
  121. package/cpp/skia/include/core/SkDeferredDisplayList.h +110 -0
  122. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +97 -0
  123. package/cpp/skia/include/core/SkDocument.h +91 -0
  124. package/cpp/skia/include/core/SkDrawLooper.h +135 -0
  125. package/cpp/skia/include/core/SkDrawable.h +160 -0
  126. package/cpp/skia/include/core/SkEncodedImageFormat.h +35 -0
  127. package/cpp/skia/include/core/SkExecutor.h +41 -0
  128. package/cpp/skia/include/core/SkFlattenable.h +113 -0
  129. package/cpp/skia/include/core/SkFont.h +534 -0
  130. package/cpp/skia/include/core/SkFontArguments.h +62 -0
  131. package/cpp/skia/include/core/SkFontMetrics.h +138 -0
  132. package/cpp/skia/include/core/SkFontMgr.h +157 -0
  133. package/cpp/skia/include/core/SkFontParameters.h +42 -0
  134. package/cpp/skia/include/core/SkFontStyle.h +81 -0
  135. package/cpp/skia/include/core/SkFontTypes.h +25 -0
  136. package/cpp/skia/include/core/SkGraphics.h +153 -0
  137. package/cpp/skia/include/core/SkICC.h +19 -0
  138. package/cpp/skia/include/core/SkImage.h +1302 -0
  139. package/cpp/skia/include/core/SkImageEncoder.h +72 -0
  140. package/cpp/skia/include/core/SkImageFilter.h +114 -0
  141. package/cpp/skia/include/core/SkImageGenerator.h +215 -0
  142. package/cpp/skia/include/core/SkImageInfo.h +721 -0
  143. package/cpp/skia/include/core/SkM44.h +426 -0
  144. package/cpp/skia/include/core/SkMallocPixelRef.h +42 -0
  145. package/cpp/skia/include/core/SkMaskFilter.h +50 -0
  146. package/cpp/skia/include/core/SkMath.h +54 -0
  147. package/cpp/skia/include/core/SkMatrix.h +1986 -0
  148. package/cpp/skia/include/core/SkMilestone.h +9 -0
  149. package/cpp/skia/include/core/SkOverdrawCanvas.h +68 -0
  150. package/cpp/skia/include/core/SkPaint.h +720 -0
  151. package/cpp/skia/include/core/SkPath.h +1891 -0
  152. package/cpp/skia/include/core/SkPathBuilder.h +268 -0
  153. package/cpp/skia/include/core/SkPathEffect.h +106 -0
  154. package/cpp/skia/include/core/SkPathMeasure.h +88 -0
  155. package/cpp/skia/include/core/SkPathTypes.h +59 -0
  156. package/cpp/skia/include/core/SkPicture.h +280 -0
  157. package/cpp/skia/include/core/SkPictureRecorder.h +115 -0
  158. package/cpp/skia/include/core/SkPixelRef.h +123 -0
  159. package/cpp/skia/include/core/SkPixmap.h +720 -0
  160. package/cpp/skia/include/core/SkPngChunkReader.h +45 -0
  161. package/cpp/skia/include/core/SkPoint.h +566 -0
  162. package/cpp/skia/include/core/SkPoint3.h +157 -0
  163. package/cpp/skia/include/core/SkPromiseImageTexture.h +46 -0
  164. package/cpp/skia/include/core/SkRRect.h +512 -0
  165. package/cpp/skia/include/core/SkRSXform.h +69 -0
  166. package/cpp/skia/include/core/SkRasterHandleAllocator.h +92 -0
  167. package/cpp/skia/include/core/SkRect.h +1378 -0
  168. package/cpp/skia/include/core/SkRefCnt.h +382 -0
  169. package/cpp/skia/include/core/SkRegion.h +672 -0
  170. package/cpp/skia/include/core/SkSamplingOptions.h +92 -0
  171. package/cpp/skia/include/core/SkScalar.h +194 -0
  172. package/cpp/skia/include/core/SkSerialProcs.h +73 -0
  173. package/cpp/skia/include/core/SkShader.h +148 -0
  174. package/cpp/skia/include/core/SkSize.h +90 -0
  175. package/cpp/skia/include/core/SkSpan.h +89 -0
  176. package/cpp/skia/include/core/SkStream.h +524 -0
  177. package/cpp/skia/include/core/SkString.h +302 -0
  178. package/cpp/skia/include/core/SkStringView.h +185 -0
  179. package/cpp/skia/include/core/SkStrokeRec.h +154 -0
  180. package/cpp/skia/include/core/SkSurface.h +1079 -0
  181. package/cpp/skia/include/core/SkSurfaceCharacterization.h +263 -0
  182. package/cpp/skia/include/core/SkSurfaceProps.h +92 -0
  183. package/cpp/skia/include/core/SkSwizzle.h +19 -0
  184. package/cpp/skia/include/core/SkTextBlob.h +503 -0
  185. package/cpp/skia/include/core/SkTileMode.h +41 -0
  186. package/cpp/skia/include/core/SkTime.h +63 -0
  187. package/cpp/skia/include/core/SkTraceMemoryDump.h +99 -0
  188. package/cpp/skia/include/core/SkTypeface.h +454 -0
  189. package/cpp/skia/include/core/SkTypes.h +621 -0
  190. package/cpp/skia/include/core/SkUnPreMultiply.h +56 -0
  191. package/cpp/skia/include/core/SkVertices.h +132 -0
  192. package/cpp/skia/include/core/SkYUVAInfo.h +304 -0
  193. package/cpp/skia/include/core/SkYUVAPixmaps.h +336 -0
  194. package/cpp/skia/include/docs/SkPDFDocument.h +196 -0
  195. package/cpp/skia/include/docs/SkXPSDocument.h +27 -0
  196. package/cpp/skia/include/effects/Sk1DPathEffect.h +35 -0
  197. package/cpp/skia/include/effects/Sk2DPathEffect.h +30 -0
  198. package/cpp/skia/include/effects/SkBlenders.h +27 -0
  199. package/cpp/skia/include/effects/SkBlurDrawLooper.h +26 -0
  200. package/cpp/skia/include/effects/SkBlurMaskFilter.h +35 -0
  201. package/cpp/skia/include/effects/SkColorMatrix.h +55 -0
  202. package/cpp/skia/include/effects/SkColorMatrixFilter.h +25 -0
  203. package/cpp/skia/include/effects/SkCornerPathEffect.h +28 -0
  204. package/cpp/skia/include/effects/SkDashPathEffect.h +39 -0
  205. package/cpp/skia/include/effects/SkDiscretePathEffect.h +37 -0
  206. package/cpp/skia/include/effects/SkGradientShader.h +264 -0
  207. package/cpp/skia/include/effects/SkHighContrastFilter.h +80 -0
  208. package/cpp/skia/include/effects/SkImageFilters.h +551 -0
  209. package/cpp/skia/include/effects/SkLayerDrawLooper.h +161 -0
  210. package/cpp/skia/include/effects/SkLumaColorFilter.h +34 -0
  211. package/cpp/skia/include/effects/SkOpPathEffect.h +39 -0
  212. package/cpp/skia/include/effects/SkOverdrawColorFilter.h +29 -0
  213. package/cpp/skia/include/effects/SkPerlinNoiseShader.h +54 -0
  214. package/cpp/skia/include/effects/SkRuntimeEffect.h +518 -0
  215. package/cpp/skia/include/effects/SkShaderMaskFilter.h +24 -0
  216. package/cpp/skia/include/effects/SkStrokeAndFillPathEffect.h +28 -0
  217. package/cpp/skia/include/effects/SkTableColorFilter.h +42 -0
  218. package/cpp/skia/include/effects/SkTableMaskFilter.h +37 -0
  219. package/cpp/skia/include/effects/SkTrimPathEffect.h +41 -0
  220. package/cpp/skia/include/encode/SkEncoder.h +42 -0
  221. package/cpp/skia/include/encode/SkJpegEncoder.h +97 -0
  222. package/cpp/skia/include/encode/SkPngEncoder.h +99 -0
  223. package/cpp/skia/include/encode/SkWebpEncoder.h +48 -0
  224. package/cpp/skia/include/gpu/GrBackendDrawableInfo.h +44 -0
  225. package/cpp/skia/include/gpu/GrBackendSemaphore.h +140 -0
  226. package/cpp/skia/include/gpu/GrBackendSurface.h +643 -0
  227. package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +91 -0
  228. package/cpp/skia/include/gpu/GrConfig.h +53 -0
  229. package/cpp/skia/include/gpu/GrContextOptions.h +364 -0
  230. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +159 -0
  231. package/cpp/skia/include/gpu/GrDirectContext.h +880 -0
  232. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +52 -0
  233. package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +45 -0
  234. package/cpp/skia/include/gpu/GrRecordingContext.h +275 -0
  235. package/cpp/skia/include/gpu/GrSurfaceInfo.h +166 -0
  236. package/cpp/skia/include/gpu/GrTypes.h +244 -0
  237. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +124 -0
  238. package/cpp/skia/include/gpu/ShaderErrorHandler.h +36 -0
  239. package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +35 -0
  240. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +248 -0
  241. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +95 -0
  242. package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +11 -0
  243. package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +39 -0
  244. package/cpp/skia/include/gpu/gl/GrGLConfig.h +79 -0
  245. package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +14 -0
  246. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +78 -0
  247. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +304 -0
  248. package/cpp/skia/include/gpu/gl/GrGLInterface.h +342 -0
  249. package/cpp/skia/include/gpu/gl/GrGLTypes.h +207 -0
  250. package/cpp/skia/include/gpu/gl/egl/GrGLMakeEGLInterface.h +14 -0
  251. package/cpp/skia/include/gpu/gl/glx/GrGLMakeGLXInterface.h +14 -0
  252. package/cpp/skia/include/gpu/mock/GrMockTypes.h +144 -0
  253. package/cpp/skia/include/gpu/mtl/GrMtlBackendContext.h +21 -0
  254. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +63 -0
  255. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +76 -0
  256. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +63 -0
  257. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +140 -0
  258. package/cpp/skia/include/gpu/vk/GrVkTypes.h +187 -0
  259. package/cpp/skia/include/gpu/vk/GrVkVulkan.h +32 -0
  260. package/cpp/skia/include/pathops/SkPathOps.h +113 -0
  261. package/cpp/skia/include/ports/SkCFObject.h +184 -0
  262. package/cpp/skia/include/ports/SkFontConfigInterface.h +115 -0
  263. package/cpp/skia/include/ports/SkFontMgr_FontConfigInterface.h +20 -0
  264. package/cpp/skia/include/ports/SkFontMgr_android.h +45 -0
  265. package/cpp/skia/include/ports/SkFontMgr_directory.h +21 -0
  266. package/cpp/skia/include/ports/SkFontMgr_empty.h +21 -0
  267. package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +22 -0
  268. package/cpp/skia/include/ports/SkFontMgr_fuchsia.h +19 -0
  269. package/cpp/skia/include/ports/SkFontMgr_indirect.h +102 -0
  270. package/cpp/skia/include/ports/SkFontMgr_mac_ct.h +27 -0
  271. package/cpp/skia/include/ports/SkImageGeneratorCG.h +20 -0
  272. package/cpp/skia/include/ports/SkImageGeneratorNDK.h +40 -0
  273. package/cpp/skia/include/ports/SkImageGeneratorWIC.h +35 -0
  274. package/cpp/skia/include/ports/SkRemotableFontMgr.h +139 -0
  275. package/cpp/skia/include/ports/SkTypeface_mac.h +44 -0
  276. package/cpp/skia/include/ports/SkTypeface_win.h +79 -0
  277. package/cpp/skia/include/private/GrContext_Base.h +92 -0
  278. package/cpp/skia/include/private/GrD3DTypesMinimal.h +74 -0
  279. package/cpp/skia/include/private/GrDawnTypesPriv.h +26 -0
  280. package/cpp/skia/include/private/GrGLTypesPriv.h +107 -0
  281. package/cpp/skia/include/private/GrImageContext.h +55 -0
  282. package/cpp/skia/include/private/GrMockTypesPriv.h +31 -0
  283. package/cpp/skia/include/private/GrMtlTypesPriv.h +75 -0
  284. package/cpp/skia/include/private/GrSingleOwner.h +65 -0
  285. package/cpp/skia/include/private/GrTypesPriv.h +1354 -0
  286. package/cpp/skia/include/private/GrVkTypesPriv.h +107 -0
  287. package/cpp/skia/include/private/SkBitmaskEnum.h +59 -0
  288. package/cpp/skia/include/private/SkChecksum.h +66 -0
  289. package/cpp/skia/include/private/SkColorData.h +441 -0
  290. package/cpp/skia/include/private/SkDeque.h +141 -0
  291. package/cpp/skia/include/private/SkEncodedInfo.h +249 -0
  292. package/cpp/skia/include/private/SkFixed.h +141 -0
  293. package/cpp/skia/include/private/SkFloatBits.h +91 -0
  294. package/cpp/skia/include/private/SkFloatingPoint.h +272 -0
  295. package/cpp/skia/include/private/SkHalf.h +85 -0
  296. package/cpp/skia/include/private/SkIDChangeListener.h +75 -0
  297. package/cpp/skia/include/private/SkImageInfoPriv.h +193 -0
  298. package/cpp/skia/include/private/SkMacros.h +84 -0
  299. package/cpp/skia/include/private/SkMalloc.h +143 -0
  300. package/cpp/skia/include/private/SkMutex.h +56 -0
  301. package/cpp/skia/include/private/SkNoncopyable.h +30 -0
  302. package/cpp/skia/include/private/SkNx.h +430 -0
  303. package/cpp/skia/include/private/SkNx_neon.h +713 -0
  304. package/cpp/skia/include/private/SkNx_sse.h +823 -0
  305. package/cpp/skia/include/private/SkOnce.h +53 -0
  306. package/cpp/skia/include/private/SkOpts_spi.h +21 -0
  307. package/cpp/skia/include/private/SkPaintParamsKey.h +110 -0
  308. package/cpp/skia/include/private/SkPathRef.h +536 -0
  309. package/cpp/skia/include/private/SkSLDefines.h +56 -0
  310. package/cpp/skia/include/private/SkSLIRNode.h +63 -0
  311. package/cpp/skia/include/private/SkSLLayout.h +143 -0
  312. package/cpp/skia/include/private/SkSLModifiers.h +141 -0
  313. package/cpp/skia/include/private/SkSLProgramElement.h +77 -0
  314. package/cpp/skia/include/private/SkSLProgramKind.h +31 -0
  315. package/cpp/skia/include/private/SkSLSampleUsage.h +89 -0
  316. package/cpp/skia/include/private/SkSLStatement.h +87 -0
  317. package/cpp/skia/include/private/SkSLString.h +80 -0
  318. package/cpp/skia/include/private/SkSLSymbol.h +90 -0
  319. package/cpp/skia/include/private/SkSafe32.h +34 -0
  320. package/cpp/skia/include/private/SkSafe_math.h +52 -0
  321. package/cpp/skia/include/private/SkSemaphore.h +83 -0
  322. package/cpp/skia/include/private/SkShaderCodeDictionary.h +63 -0
  323. package/cpp/skia/include/private/SkShadowFlags.h +25 -0
  324. package/cpp/skia/include/private/SkSpinlock.h +57 -0
  325. package/cpp/skia/include/private/SkTArray.h +640 -0
  326. package/cpp/skia/include/private/SkTDArray.h +385 -0
  327. package/cpp/skia/include/private/SkTFitsIn.h +99 -0
  328. package/cpp/skia/include/private/SkTHash.h +548 -0
  329. package/cpp/skia/include/private/SkTLogic.h +86 -0
  330. package/cpp/skia/include/private/SkTOptional.h +362 -0
  331. package/cpp/skia/include/private/SkTPin.h +23 -0
  332. package/cpp/skia/include/private/SkTemplates.h +453 -0
  333. package/cpp/skia/include/private/SkThreadAnnotations.h +91 -0
  334. package/cpp/skia/include/private/SkThreadID.h +20 -0
  335. package/cpp/skia/include/private/SkTo.h +28 -0
  336. package/cpp/skia/include/private/SkUniquePaintParamsID.h +35 -0
  337. package/cpp/skia/include/private/SkVx.h +943 -0
  338. package/cpp/skia/include/private/SkWeakRefCnt.h +170 -0
  339. package/cpp/skia/include/private/chromium/GrSlug.h +41 -0
  340. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +143 -0
  341. package/cpp/skia/include/sksl/DSL.h +34 -0
  342. package/cpp/skia/include/sksl/DSLBlock.h +67 -0
  343. package/cpp/skia/include/sksl/DSLCase.h +68 -0
  344. package/cpp/skia/include/sksl/DSLCore.h +488 -0
  345. package/cpp/skia/include/sksl/DSLExpression.h +299 -0
  346. package/cpp/skia/include/sksl/DSLFunction.h +116 -0
  347. package/cpp/skia/include/sksl/DSLLayout.h +94 -0
  348. package/cpp/skia/include/sksl/DSLModifiers.h +64 -0
  349. package/cpp/skia/include/sksl/DSLRuntimeEffects.h +32 -0
  350. package/cpp/skia/include/sksl/DSLStatement.h +111 -0
  351. package/cpp/skia/include/sksl/DSLSymbols.h +71 -0
  352. package/cpp/skia/include/sksl/DSLType.h +259 -0
  353. package/cpp/skia/include/sksl/DSLVar.h +310 -0
  354. package/cpp/skia/include/sksl/DSLWrapper.h +77 -0
  355. package/cpp/skia/include/sksl/SkSLDebugTrace.h +28 -0
  356. package/cpp/skia/include/sksl/SkSLErrorReporter.h +115 -0
  357. package/cpp/skia/include/svg/SkSVGCanvas.h +37 -0
  358. package/cpp/skia/include/third_party/skcms/LICENSE +29 -0
  359. package/cpp/skia/include/third_party/skcms/skcms.h +394 -0
  360. package/cpp/skia/include/third_party/vulkan/LICENSE +29 -0
  361. package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +84 -0
  362. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +93 -0
  363. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +112 -0
  364. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +12620 -0
  365. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +47 -0
  366. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +47 -0
  367. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +315 -0
  368. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +55 -0
  369. package/cpp/skia/include/utils/SkAnimCodecPlayer.h +60 -0
  370. package/cpp/skia/include/utils/SkBase64.h +51 -0
  371. package/cpp/skia/include/utils/SkCamera.h +107 -0
  372. package/cpp/skia/include/utils/SkCanvasStateUtils.h +78 -0
  373. package/cpp/skia/include/utils/SkCustomTypeface.h +48 -0
  374. package/cpp/skia/include/utils/SkEventTracer.h +79 -0
  375. package/cpp/skia/include/utils/SkNWayCanvas.h +92 -0
  376. package/cpp/skia/include/utils/SkNoDrawCanvas.h +80 -0
  377. package/cpp/skia/include/utils/SkNullCanvas.h +18 -0
  378. package/cpp/skia/include/utils/SkOrderedFontMgr.h +53 -0
  379. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +107 -0
  380. package/cpp/skia/include/utils/SkParse.h +32 -0
  381. package/cpp/skia/include/utils/SkParsePath.h +25 -0
  382. package/cpp/skia/include/utils/SkRandom.h +169 -0
  383. package/cpp/skia/include/utils/SkShadowUtils.h +85 -0
  384. package/cpp/skia/include/utils/SkTextUtils.h +38 -0
  385. package/cpp/skia/include/utils/SkTraceEventPhase.h +19 -0
  386. package/cpp/skia/include/utils/mac/SkCGUtils.h +78 -0
  387. package/cpp/skia/modules/skresources/include/SkResources.h +254 -0
  388. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +113 -0
  389. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +134 -0
  390. package/cpp/skia/modules/svg/include/SkSVGCircle.h +43 -0
  391. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +35 -0
  392. package/cpp/skia/modules/svg/include/SkSVGContainer.h +36 -0
  393. package/cpp/skia/modules/svg/include/SkSVGDOM.h +96 -0
  394. package/cpp/skia/modules/svg/include/SkSVGDefs.h +23 -0
  395. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +41 -0
  396. package/cpp/skia/modules/svg/include/SkSVGFe.h +85 -0
  397. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +45 -0
  398. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +46 -0
  399. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +46 -0
  400. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +46 -0
  401. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +32 -0
  402. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +41 -0
  403. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +35 -0
  404. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +89 -0
  405. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +121 -0
  406. package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +47 -0
  407. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +35 -0
  408. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +40 -0
  409. package/cpp/skia/modules/svg/include/SkSVGFilter.h +39 -0
  410. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +69 -0
  411. package/cpp/skia/modules/svg/include/SkSVGG.h +23 -0
  412. package/cpp/skia/modules/svg/include/SkSVGGradient.h +48 -0
  413. package/cpp/skia/modules/svg/include/SkSVGHiddenContainer.h +23 -0
  414. package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +19 -0
  415. package/cpp/skia/modules/svg/include/SkSVGImage.h +58 -0
  416. package/cpp/skia/modules/svg/include/SkSVGLine.h +42 -0
  417. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +37 -0
  418. package/cpp/skia/modules/svg/include/SkSVGMask.h +43 -0
  419. package/cpp/skia/modules/svg/include/SkSVGNode.h +223 -0
  420. package/cpp/skia/modules/svg/include/SkSVGPath.h +36 -0
  421. package/cpp/skia/modules/svg/include/SkSVGPattern.h +55 -0
  422. package/cpp/skia/modules/svg/include/SkSVGPoly.h +45 -0
  423. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +38 -0
  424. package/cpp/skia/modules/svg/include/SkSVGRect.h +46 -0
  425. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +188 -0
  426. package/cpp/skia/modules/svg/include/SkSVGSVG.h +52 -0
  427. package/cpp/skia/modules/svg/include/SkSVGShape.h +33 -0
  428. package/cpp/skia/modules/svg/include/SkSVGStop.h +34 -0
  429. package/cpp/skia/modules/svg/include/SkSVGText.h +122 -0
  430. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +36 -0
  431. package/cpp/skia/modules/svg/include/SkSVGTypes.h +691 -0
  432. package/cpp/skia/modules/svg/include/SkSVGUse.h +42 -0
  433. package/cpp/skia/modules/svg/include/SkSVGValue.h +85 -0
  434. package/cpp/skia/readme.txt +1 -0
  435. package/cpp/utils/RNSkLog.h +53 -0
  436. package/cpp/utils/RNSkMeasureTime.h +32 -0
  437. package/cpp/utils/RNSkTimingInfo.h +91 -0
  438. package/ios/RNSkia-iOS/DisplayLink.h +17 -0
  439. package/ios/RNSkia-iOS/DisplayLink.mm +36 -0
  440. package/ios/RNSkia-iOS/PlatformContext.h +50 -0
  441. package/ios/RNSkia-iOS/PlatformContext.mm +52 -0
  442. package/ios/RNSkia-iOS/RNSkDrawViewImpl.h +57 -0
  443. package/ios/RNSkia-iOS/RNSkDrawViewImpl.mm +98 -0
  444. package/ios/RNSkia-iOS/SkiaDrawView.h +23 -0
  445. package/ios/RNSkia-iOS/SkiaDrawView.mm +165 -0
  446. package/ios/RNSkia-iOS/SkiaDrawViewManager.h +7 -0
  447. package/ios/RNSkia-iOS/SkiaDrawViewManager.mm +42 -0
  448. package/ios/RNSkia-iOS/SkiaManager.h +17 -0
  449. package/ios/RNSkia-iOS/SkiaManager.mm +50 -0
  450. package/ios/RNSkiaModule.h +11 -0
  451. package/ios/RNSkiaModule.mm +42 -0
  452. package/ios/Rnskia.xcodeproj/project.pbxproj +281 -0
  453. package/ios/Rnskia.xcworkspace/contents.xcworkspacedata +7 -0
  454. package/lib/commonjs/external/index.js +19 -0
  455. package/lib/commonjs/external/index.js.map +1 -0
  456. package/lib/commonjs/external/reanimated/index.js +19 -0
  457. package/lib/commonjs/external/reanimated/index.js.map +1 -0
  458. package/lib/commonjs/external/reanimated/useSharedValueEffect.js +86 -0
  459. package/lib/commonjs/external/reanimated/useSharedValueEffect.js.map +1 -0
  460. package/lib/commonjs/index.js +73 -0
  461. package/lib/commonjs/index.js.map +1 -0
  462. package/lib/commonjs/renderer/Canvas.js +186 -0
  463. package/lib/commonjs/renderer/Canvas.js.map +1 -0
  464. package/lib/commonjs/renderer/DependencyManager.js +70 -0
  465. package/lib/commonjs/renderer/DependencyManager.js.map +1 -0
  466. package/lib/commonjs/renderer/DrawingContext.js +6 -0
  467. package/lib/commonjs/renderer/DrawingContext.js.map +1 -0
  468. package/lib/commonjs/renderer/HostConfig.js +272 -0
  469. package/lib/commonjs/renderer/HostConfig.js.map +1 -0
  470. package/lib/commonjs/renderer/components/Blend.js +46 -0
  471. package/lib/commonjs/renderer/components/Blend.js.map +1 -0
  472. package/lib/commonjs/renderer/components/Compose.js +41 -0
  473. package/lib/commonjs/renderer/components/Compose.js.map +1 -0
  474. package/lib/commonjs/renderer/components/Defs.js +30 -0
  475. package/lib/commonjs/renderer/components/Defs.js.map +1 -0
  476. package/lib/commonjs/renderer/components/Group.js +73 -0
  477. package/lib/commonjs/renderer/components/Group.js.map +1 -0
  478. package/lib/commonjs/renderer/components/Mask.js +58 -0
  479. package/lib/commonjs/renderer/components/Mask.js.map +1 -0
  480. package/lib/commonjs/renderer/components/Paint.js +54 -0
  481. package/lib/commonjs/renderer/components/Paint.js.map +1 -0
  482. package/lib/commonjs/renderer/components/backdrop/BackdropBlur.js +33 -0
  483. package/lib/commonjs/renderer/components/backdrop/BackdropBlur.js.map +1 -0
  484. package/lib/commonjs/renderer/components/backdrop/BackdropFilter.js +54 -0
  485. package/lib/commonjs/renderer/components/backdrop/BackdropFilter.js.map +1 -0
  486. package/lib/commonjs/renderer/components/backdrop/index.js +32 -0
  487. package/lib/commonjs/renderer/components/backdrop/index.js.map +1 -0
  488. package/lib/commonjs/renderer/components/colorFilters/BlendColor.js +40 -0
  489. package/lib/commonjs/renderer/components/colorFilters/BlendColor.js.map +1 -0
  490. package/lib/commonjs/renderer/components/colorFilters/Compose.js +24 -0
  491. package/lib/commonjs/renderer/components/colorFilters/Compose.js.map +1 -0
  492. package/lib/commonjs/renderer/components/colorFilters/Lerp.js +40 -0
  493. package/lib/commonjs/renderer/components/colorFilters/Lerp.js.map +1 -0
  494. package/lib/commonjs/renderer/components/colorFilters/LinearToSRGBGamma.js +33 -0
  495. package/lib/commonjs/renderer/components/colorFilters/LinearToSRGBGamma.js.map +1 -0
  496. package/lib/commonjs/renderer/components/colorFilters/LumaColorFilter.js +33 -0
  497. package/lib/commonjs/renderer/components/colorFilters/LumaColorFilter.js.map +1 -0
  498. package/lib/commonjs/renderer/components/colorFilters/Matrix.js +41 -0
  499. package/lib/commonjs/renderer/components/colorFilters/Matrix.js.map +1 -0
  500. package/lib/commonjs/renderer/components/colorFilters/SRGBToLinearGamma.js +33 -0
  501. package/lib/commonjs/renderer/components/colorFilters/SRGBToLinearGamma.js.map +1 -0
  502. package/lib/commonjs/renderer/components/colorFilters/index.js +84 -0
  503. package/lib/commonjs/renderer/components/colorFilters/index.js.map +1 -0
  504. package/lib/commonjs/renderer/components/image/BoxFit.js +162 -0
  505. package/lib/commonjs/renderer/components/image/BoxFit.js.map +1 -0
  506. package/lib/commonjs/renderer/components/image/Image.js +55 -0
  507. package/lib/commonjs/renderer/components/image/Image.js.map +1 -0
  508. package/lib/commonjs/renderer/components/image/ImageSVG.js +45 -0
  509. package/lib/commonjs/renderer/components/image/ImageSVG.js.map +1 -0
  510. package/lib/commonjs/renderer/components/image/ImageShader.js +82 -0
  511. package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -0
  512. package/lib/commonjs/renderer/components/image/index.js +58 -0
  513. package/lib/commonjs/renderer/components/image/index.js.map +1 -0
  514. package/lib/commonjs/renderer/components/imageFilters/Blur.js +43 -0
  515. package/lib/commonjs/renderer/components/imageFilters/Blur.js.map +1 -0
  516. package/lib/commonjs/renderer/components/imageFilters/DisplacementMap.js +53 -0
  517. package/lib/commonjs/renderer/components/imageFilters/DisplacementMap.js.map +1 -0
  518. package/lib/commonjs/renderer/components/imageFilters/DropShadow.js +45 -0
  519. package/lib/commonjs/renderer/components/imageFilters/DropShadow.js.map +1 -0
  520. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js +60 -0
  521. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js.map +1 -0
  522. package/lib/commonjs/renderer/components/imageFilters/Morphology.js +43 -0
  523. package/lib/commonjs/renderer/components/imageFilters/Morphology.js.map +1 -0
  524. package/lib/commonjs/renderer/components/imageFilters/Offset.js +39 -0
  525. package/lib/commonjs/renderer/components/imageFilters/Offset.js.map +1 -0
  526. package/lib/commonjs/renderer/components/imageFilters/getInput.js +33 -0
  527. package/lib/commonjs/renderer/components/imageFilters/getInput.js.map +1 -0
  528. package/lib/commonjs/renderer/components/imageFilters/index.js +84 -0
  529. package/lib/commonjs/renderer/components/imageFilters/index.js.map +1 -0
  530. package/lib/commonjs/renderer/components/index.js +214 -0
  531. package/lib/commonjs/renderer/components/index.js.map +1 -0
  532. package/lib/commonjs/renderer/components/maskFilters/Blur.js +42 -0
  533. package/lib/commonjs/renderer/components/maskFilters/Blur.js.map +1 -0
  534. package/lib/commonjs/renderer/components/maskFilters/index.js +19 -0
  535. package/lib/commonjs/renderer/components/maskFilters/index.js.map +1 -0
  536. package/lib/commonjs/renderer/components/pathEffects/Corner.js +46 -0
  537. package/lib/commonjs/renderer/components/pathEffects/Corner.js.map +1 -0
  538. package/lib/commonjs/renderer/components/pathEffects/Dash.js +43 -0
  539. package/lib/commonjs/renderer/components/pathEffects/Dash.js.map +1 -0
  540. package/lib/commonjs/renderer/components/pathEffects/Discrete.js +47 -0
  541. package/lib/commonjs/renderer/components/pathEffects/Discrete.js.map +1 -0
  542. package/lib/commonjs/renderer/components/pathEffects/Line2D.js +47 -0
  543. package/lib/commonjs/renderer/components/pathEffects/Line2D.js.map +1 -0
  544. package/lib/commonjs/renderer/components/pathEffects/Path1D.js +53 -0
  545. package/lib/commonjs/renderer/components/pathEffects/Path1D.js.map +1 -0
  546. package/lib/commonjs/renderer/components/pathEffects/Path2D.js +49 -0
  547. package/lib/commonjs/renderer/components/pathEffects/Path2D.js.map +1 -0
  548. package/lib/commonjs/renderer/components/pathEffects/Sum.js +32 -0
  549. package/lib/commonjs/renderer/components/pathEffects/Sum.js.map +1 -0
  550. package/lib/commonjs/renderer/components/pathEffects/index.js +97 -0
  551. package/lib/commonjs/renderer/components/pathEffects/index.js.map +1 -0
  552. package/lib/commonjs/renderer/components/shaders/Color.js +32 -0
  553. package/lib/commonjs/renderer/components/shaders/Color.js.map +1 -0
  554. package/lib/commonjs/renderer/components/shaders/FractalNoise.js +42 -0
  555. package/lib/commonjs/renderer/components/shaders/FractalNoise.js.map +1 -0
  556. package/lib/commonjs/renderer/components/shaders/Gradient.js +32 -0
  557. package/lib/commonjs/renderer/components/shaders/Gradient.js.map +1 -0
  558. package/lib/commonjs/renderer/components/shaders/LinearGradient.js +43 -0
  559. package/lib/commonjs/renderer/components/shaders/LinearGradient.js.map +1 -0
  560. package/lib/commonjs/renderer/components/shaders/RadialGradient.js +43 -0
  561. package/lib/commonjs/renderer/components/shaders/RadialGradient.js.map +1 -0
  562. package/lib/commonjs/renderer/components/shaders/Shader.js +80 -0
  563. package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -0
  564. package/lib/commonjs/renderer/components/shaders/ShaderLib.js +52 -0
  565. package/lib/commonjs/renderer/components/shaders/ShaderLib.js.map +1 -0
  566. package/lib/commonjs/renderer/components/shaders/SweepGradient.js +44 -0
  567. package/lib/commonjs/renderer/components/shaders/SweepGradient.js.map +1 -0
  568. package/lib/commonjs/renderer/components/shaders/Turbulence.js +42 -0
  569. package/lib/commonjs/renderer/components/shaders/Turbulence.js.map +1 -0
  570. package/lib/commonjs/renderer/components/shaders/TwoPointConicalGradient.js +45 -0
  571. package/lib/commonjs/renderer/components/shaders/TwoPointConicalGradient.js.map +1 -0
  572. package/lib/commonjs/renderer/components/shaders/index.js +123 -0
  573. package/lib/commonjs/renderer/components/shaders/index.js.map +1 -0
  574. package/lib/commonjs/renderer/components/shapes/Circle.js +42 -0
  575. package/lib/commonjs/renderer/components/shapes/Circle.js.map +1 -0
  576. package/lib/commonjs/renderer/components/shapes/DiffRect.js +35 -0
  577. package/lib/commonjs/renderer/components/shapes/DiffRect.js.map +1 -0
  578. package/lib/commonjs/renderer/components/shapes/Fill.js +31 -0
  579. package/lib/commonjs/renderer/components/shapes/Fill.js.map +1 -0
  580. package/lib/commonjs/renderer/components/shapes/FitBox.js +38 -0
  581. package/lib/commonjs/renderer/components/shapes/FitBox.js.map +1 -0
  582. package/lib/commonjs/renderer/components/shapes/Line.js +35 -0
  583. package/lib/commonjs/renderer/components/shapes/Line.js.map +1 -0
  584. package/lib/commonjs/renderer/components/shapes/Oval.js +38 -0
  585. package/lib/commonjs/renderer/components/shapes/Oval.js.map +1 -0
  586. package/lib/commonjs/renderer/components/shapes/Patch.js +52 -0
  587. package/lib/commonjs/renderer/components/shapes/Patch.js.map +1 -0
  588. package/lib/commonjs/renderer/components/shapes/Path.js +58 -0
  589. package/lib/commonjs/renderer/components/shapes/Path.js.map +1 -0
  590. package/lib/commonjs/renderer/components/shapes/Points.js +45 -0
  591. package/lib/commonjs/renderer/components/shapes/Points.js.map +1 -0
  592. package/lib/commonjs/renderer/components/shapes/Rect.js +34 -0
  593. package/lib/commonjs/renderer/components/shapes/Rect.js.map +1 -0
  594. package/lib/commonjs/renderer/components/shapes/RoundedRect.js +37 -0
  595. package/lib/commonjs/renderer/components/shapes/RoundedRect.js.map +1 -0
  596. package/lib/commonjs/renderer/components/shapes/Vertices.js +54 -0
  597. package/lib/commonjs/renderer/components/shapes/Vertices.js.map +1 -0
  598. package/lib/commonjs/renderer/components/shapes/index.js +162 -0
  599. package/lib/commonjs/renderer/components/shapes/index.js.map +1 -0
  600. package/lib/commonjs/renderer/components/text/Glyphs.js +60 -0
  601. package/lib/commonjs/renderer/components/text/Glyphs.js.map +1 -0
  602. package/lib/commonjs/renderer/components/text/Text.js +45 -0
  603. package/lib/commonjs/renderer/components/text/Text.js.map +1 -0
  604. package/lib/commonjs/renderer/components/text/TextBlob.js +40 -0
  605. package/lib/commonjs/renderer/components/text/TextBlob.js.map +1 -0
  606. package/lib/commonjs/renderer/components/text/TextPath.js +95 -0
  607. package/lib/commonjs/renderer/components/text/TextPath.js.map +1 -0
  608. package/lib/commonjs/renderer/components/text/index.js +58 -0
  609. package/lib/commonjs/renderer/components/text/index.js.map +1 -0
  610. package/lib/commonjs/renderer/index.js +45 -0
  611. package/lib/commonjs/renderer/index.js.map +1 -0
  612. package/lib/commonjs/renderer/nodes/Container.js +28 -0
  613. package/lib/commonjs/renderer/nodes/Container.js.map +1 -0
  614. package/lib/commonjs/renderer/nodes/Declaration.js +47 -0
  615. package/lib/commonjs/renderer/nodes/Declaration.js.map +1 -0
  616. package/lib/commonjs/renderer/nodes/Drawing.js +75 -0
  617. package/lib/commonjs/renderer/nodes/Drawing.js.map +1 -0
  618. package/lib/commonjs/renderer/nodes/Node.js +78 -0
  619. package/lib/commonjs/renderer/nodes/Node.js.map +1 -0
  620. package/lib/commonjs/renderer/nodes/index.js +58 -0
  621. package/lib/commonjs/renderer/nodes/index.js.map +1 -0
  622. package/lib/commonjs/renderer/processors/Animations/Animations.js +52 -0
  623. package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -0
  624. package/lib/commonjs/renderer/processors/Animations/index.js +19 -0
  625. package/lib/commonjs/renderer/processors/Animations/index.js.map +1 -0
  626. package/lib/commonjs/renderer/processors/Circles.js +25 -0
  627. package/lib/commonjs/renderer/processors/Circles.js.map +1 -0
  628. package/lib/commonjs/renderer/processors/Clips.js +24 -0
  629. package/lib/commonjs/renderer/processors/Clips.js.map +1 -0
  630. package/lib/commonjs/renderer/processors/Font.js +39 -0
  631. package/lib/commonjs/renderer/processors/Font.js.map +1 -0
  632. package/lib/commonjs/renderer/processors/Paint.js +91 -0
  633. package/lib/commonjs/renderer/processors/Paint.js.map +1 -0
  634. package/lib/commonjs/renderer/processors/Paths.js +26 -0
  635. package/lib/commonjs/renderer/processors/Paths.js.map +1 -0
  636. package/lib/commonjs/renderer/processors/Radius.js +19 -0
  637. package/lib/commonjs/renderer/processors/Radius.js.map +1 -0
  638. package/lib/commonjs/renderer/processors/Rects.js +98 -0
  639. package/lib/commonjs/renderer/processors/Rects.js.map +1 -0
  640. package/lib/commonjs/renderer/processors/Transform.js +56 -0
  641. package/lib/commonjs/renderer/processors/Transform.js.map +1 -0
  642. package/lib/commonjs/renderer/processors/index.js +136 -0
  643. package/lib/commonjs/renderer/processors/index.js.map +1 -0
  644. package/lib/commonjs/renderer/processors/math/Coordinates.js +43 -0
  645. package/lib/commonjs/renderer/processors/math/Coordinates.js.map +1 -0
  646. package/lib/commonjs/renderer/processors/math/Math.js +11 -0
  647. package/lib/commonjs/renderer/processors/math/Math.js.map +1 -0
  648. package/lib/commonjs/renderer/processors/math/Matrix3.js +81 -0
  649. package/lib/commonjs/renderer/processors/math/Matrix3.js.map +1 -0
  650. package/lib/commonjs/renderer/processors/math/Transforms.js +22 -0
  651. package/lib/commonjs/renderer/processors/math/Transforms.js.map +1 -0
  652. package/lib/commonjs/renderer/processors/math/Vector.js +61 -0
  653. package/lib/commonjs/renderer/processors/math/Vector.js.map +1 -0
  654. package/lib/commonjs/renderer/processors/math/index.js +71 -0
  655. package/lib/commonjs/renderer/processors/math/index.js.map +1 -0
  656. package/lib/commonjs/renderer/typeddash.js +17 -0
  657. package/lib/commonjs/renderer/typeddash.js.map +1 -0
  658. package/lib/commonjs/skia/Canvas.js +22 -0
  659. package/lib/commonjs/skia/Canvas.js.map +1 -0
  660. package/lib/commonjs/skia/Color.js +77 -0
  661. package/lib/commonjs/skia/Color.js.map +1 -0
  662. package/lib/commonjs/skia/ColorFilter/ColorFilter.js +11 -0
  663. package/lib/commonjs/skia/ColorFilter/ColorFilter.js.map +1 -0
  664. package/lib/commonjs/skia/ColorFilter/ColorFilterFactory.js +6 -0
  665. package/lib/commonjs/skia/ColorFilter/ColorFilterFactory.js.map +1 -0
  666. package/lib/commonjs/skia/ColorFilter/index.js +32 -0
  667. package/lib/commonjs/skia/ColorFilter/index.js.map +1 -0
  668. package/lib/commonjs/skia/ContourMeasure.js +6 -0
  669. package/lib/commonjs/skia/ContourMeasure.js.map +1 -0
  670. package/lib/commonjs/skia/Data/Data.js +53 -0
  671. package/lib/commonjs/skia/Data/Data.js.map +1 -0
  672. package/lib/commonjs/skia/Data/DataFactory.js +6 -0
  673. package/lib/commonjs/skia/Data/DataFactory.js.map +1 -0
  674. package/lib/commonjs/skia/Data/index.js +32 -0
  675. package/lib/commonjs/skia/Data/index.js.map +1 -0
  676. package/lib/commonjs/skia/Font/Font.js +81 -0
  677. package/lib/commonjs/skia/Font/Font.js.map +1 -0
  678. package/lib/commonjs/skia/Font/index.js +32 -0
  679. package/lib/commonjs/skia/Font/index.js.map +1 -0
  680. package/lib/commonjs/skia/Font/useFont.js +36 -0
  681. package/lib/commonjs/skia/Font/useFont.js.map +1 -0
  682. package/lib/commonjs/skia/FontMgr/FontMgr.js +6 -0
  683. package/lib/commonjs/skia/FontMgr/FontMgr.js.map +1 -0
  684. package/lib/commonjs/skia/FontMgr/FontMgrFactory.js +6 -0
  685. package/lib/commonjs/skia/FontMgr/FontMgrFactory.js.map +1 -0
  686. package/lib/commonjs/skia/FontMgr/index.js +19 -0
  687. package/lib/commonjs/skia/FontMgr/index.js.map +1 -0
  688. package/lib/commonjs/skia/Image/Image.js +32 -0
  689. package/lib/commonjs/skia/Image/Image.js.map +1 -0
  690. package/lib/commonjs/skia/Image/ImageFactory.js +46 -0
  691. package/lib/commonjs/skia/Image/ImageFactory.js.map +1 -0
  692. package/lib/commonjs/skia/Image/index.js +45 -0
  693. package/lib/commonjs/skia/Image/index.js.map +1 -0
  694. package/lib/commonjs/skia/Image/useImage.js +18 -0
  695. package/lib/commonjs/skia/Image/useImage.js.map +1 -0
  696. package/lib/commonjs/skia/ImageFilter/ImageFilter.js +20 -0
  697. package/lib/commonjs/skia/ImageFilter/ImageFilter.js.map +1 -0
  698. package/lib/commonjs/skia/ImageFilter/ImageFilterFactory.js +16 -0
  699. package/lib/commonjs/skia/ImageFilter/ImageFilterFactory.js.map +1 -0
  700. package/lib/commonjs/skia/ImageFilter/index.js +32 -0
  701. package/lib/commonjs/skia/ImageFilter/index.js.map +1 -0
  702. package/lib/commonjs/skia/JsiInstance.js +2 -0
  703. package/lib/commonjs/skia/JsiInstance.js.map +1 -0
  704. package/lib/commonjs/skia/MaskFilter.js +20 -0
  705. package/lib/commonjs/skia/MaskFilter.js.map +1 -0
  706. package/lib/commonjs/skia/Matrix.js +21 -0
  707. package/lib/commonjs/skia/Matrix.js.map +1 -0
  708. package/lib/commonjs/skia/NativeSetup.js +19 -0
  709. package/lib/commonjs/skia/NativeSetup.js.map +1 -0
  710. package/lib/commonjs/skia/Paint/BlendMode.js +69 -0
  711. package/lib/commonjs/skia/Paint/BlendMode.js.map +1 -0
  712. package/lib/commonjs/skia/Paint/Paint.js +36 -0
  713. package/lib/commonjs/skia/Paint/Paint.js.map +1 -0
  714. package/lib/commonjs/skia/Paint/index.js +45 -0
  715. package/lib/commonjs/skia/Paint/index.js.map +1 -0
  716. package/lib/commonjs/skia/Paint/usePaint.js +28 -0
  717. package/lib/commonjs/skia/Paint/usePaint.js.map +1 -0
  718. package/lib/commonjs/skia/Path/Path.js +35 -0
  719. package/lib/commonjs/skia/Path/Path.js.map +1 -0
  720. package/lib/commonjs/skia/Path/PathFactory.js +6 -0
  721. package/lib/commonjs/skia/Path/PathFactory.js.map +1 -0
  722. package/lib/commonjs/skia/Path/index.js +45 -0
  723. package/lib/commonjs/skia/Path/index.js.map +1 -0
  724. package/lib/commonjs/skia/Path/usePath.js +60 -0
  725. package/lib/commonjs/skia/Path/usePath.js.map +1 -0
  726. package/lib/commonjs/skia/PathEffect.js +19 -0
  727. package/lib/commonjs/skia/PathEffect.js.map +1 -0
  728. package/lib/commonjs/skia/Point.js +15 -0
  729. package/lib/commonjs/skia/Point.js.map +1 -0
  730. package/lib/commonjs/skia/RRect.js +6 -0
  731. package/lib/commonjs/skia/RRect.js.map +1 -0
  732. package/lib/commonjs/skia/RSXform.js +6 -0
  733. package/lib/commonjs/skia/RSXform.js.map +1 -0
  734. package/lib/commonjs/skia/Rect.js +2 -0
  735. package/lib/commonjs/skia/Rect.js.map +1 -0
  736. package/lib/commonjs/skia/RuntimeEffect/RuntimeEffect.js +6 -0
  737. package/lib/commonjs/skia/RuntimeEffect/RuntimeEffect.js.map +1 -0
  738. package/lib/commonjs/skia/RuntimeEffect/RuntimeEffectFactory.js +6 -0
  739. package/lib/commonjs/skia/RuntimeEffect/RuntimeEffectFactory.js.map +1 -0
  740. package/lib/commonjs/skia/RuntimeEffect/index.js +32 -0
  741. package/lib/commonjs/skia/RuntimeEffect/index.js.map +1 -0
  742. package/lib/commonjs/skia/SVG/SVG.js +6 -0
  743. package/lib/commonjs/skia/SVG/SVG.js.map +1 -0
  744. package/lib/commonjs/skia/SVG/SVGFactory.js +6 -0
  745. package/lib/commonjs/skia/SVG/SVGFactory.js.map +1 -0
  746. package/lib/commonjs/skia/SVG/index.js +45 -0
  747. package/lib/commonjs/skia/SVG/index.js.map +1 -0
  748. package/lib/commonjs/skia/SVG/useSvg.js +15 -0
  749. package/lib/commonjs/skia/SVG/useSvg.js.map +1 -0
  750. package/lib/commonjs/skia/Shader/Shader.js +11 -0
  751. package/lib/commonjs/skia/Shader/Shader.js.map +1 -0
  752. package/lib/commonjs/skia/Shader/ShaderFactory.js +6 -0
  753. package/lib/commonjs/skia/Shader/ShaderFactory.js.map +1 -0
  754. package/lib/commonjs/skia/Shader/index.js +45 -0
  755. package/lib/commonjs/skia/Shader/index.js.map +1 -0
  756. package/lib/commonjs/skia/Shader/useShader.js +15 -0
  757. package/lib/commonjs/skia/Shader/useShader.js.map +1 -0
  758. package/lib/commonjs/skia/Skia.js +49 -0
  759. package/lib/commonjs/skia/Skia.js.map +1 -0
  760. package/lib/commonjs/skia/Surface/Surface.js +6 -0
  761. package/lib/commonjs/skia/Surface/Surface.js.map +1 -0
  762. package/lib/commonjs/skia/Surface/SurfaceFactory.js +6 -0
  763. package/lib/commonjs/skia/Surface/SurfaceFactory.js.map +1 -0
  764. package/lib/commonjs/skia/Surface/index.js +32 -0
  765. package/lib/commonjs/skia/Surface/index.js.map +1 -0
  766. package/lib/commonjs/skia/TextBlob.js +6 -0
  767. package/lib/commonjs/skia/TextBlob.js.map +1 -0
  768. package/lib/commonjs/skia/Typeface/Typeface.js +6 -0
  769. package/lib/commonjs/skia/Typeface/Typeface.js.map +1 -0
  770. package/lib/commonjs/skia/Typeface/TypefaceFactory.js +6 -0
  771. package/lib/commonjs/skia/Typeface/TypefaceFactory.js.map +1 -0
  772. package/lib/commonjs/skia/Typeface/index.js +45 -0
  773. package/lib/commonjs/skia/Typeface/index.js.map +1 -0
  774. package/lib/commonjs/skia/Typeface/useTypeface.js +18 -0
  775. package/lib/commonjs/skia/Typeface/useTypeface.js.map +1 -0
  776. package/lib/commonjs/skia/Vertices/Vertices.js +15 -0
  777. package/lib/commonjs/skia/Vertices/Vertices.js.map +1 -0
  778. package/lib/commonjs/skia/Vertices/index.js +19 -0
  779. package/lib/commonjs/skia/Vertices/index.js.map +1 -0
  780. package/lib/commonjs/skia/index.js +311 -0
  781. package/lib/commonjs/skia/index.js.map +1 -0
  782. package/lib/commonjs/values/animation/decay/decay.js +42 -0
  783. package/lib/commonjs/values/animation/decay/decay.js.map +1 -0
  784. package/lib/commonjs/values/animation/decay/index.js +14 -0
  785. package/lib/commonjs/values/animation/decay/index.js.map +1 -0
  786. package/lib/commonjs/values/animation/decay/runDecay.js +48 -0
  787. package/lib/commonjs/values/animation/decay/runDecay.js.map +1 -0
  788. package/lib/commonjs/values/animation/decay/types.js +6 -0
  789. package/lib/commonjs/values/animation/decay/types.js.map +1 -0
  790. package/lib/commonjs/values/animation/functions/index.js +28 -0
  791. package/lib/commonjs/values/animation/functions/index.js.map +1 -0
  792. package/lib/commonjs/values/animation/functions/interpolate.js +139 -0
  793. package/lib/commonjs/values/animation/functions/interpolate.js.map +1 -0
  794. package/lib/commonjs/values/animation/functions/interpolateColors.js +47 -0
  795. package/lib/commonjs/values/animation/functions/interpolateColors.js.map +1 -0
  796. package/lib/commonjs/values/animation/index.js +58 -0
  797. package/lib/commonjs/values/animation/index.js.map +1 -0
  798. package/lib/commonjs/values/animation/spring/Spring.js +77 -0
  799. package/lib/commonjs/values/animation/spring/Spring.js.map +1 -0
  800. package/lib/commonjs/values/animation/spring/functions/index.js +14 -0
  801. package/lib/commonjs/values/animation/spring/functions/index.js.map +1 -0
  802. package/lib/commonjs/values/animation/spring/functions/spring.js +94 -0
  803. package/lib/commonjs/values/animation/spring/functions/spring.js.map +1 -0
  804. package/lib/commonjs/values/animation/spring/index.js +30 -0
  805. package/lib/commonjs/values/animation/spring/index.js.map +1 -0
  806. package/lib/commonjs/values/animation/spring/runSpring.js +32 -0
  807. package/lib/commonjs/values/animation/spring/runSpring.js.map +1 -0
  808. package/lib/commonjs/values/animation/spring/types.js +2 -0
  809. package/lib/commonjs/values/animation/spring/types.js.map +1 -0
  810. package/lib/commonjs/values/animation/spring/useSpring.js +24 -0
  811. package/lib/commonjs/values/animation/spring/useSpring.js.map +1 -0
  812. package/lib/commonjs/values/animation/timing/Easing.js +108 -0
  813. package/lib/commonjs/values/animation/timing/Easing.js.map +1 -0
  814. package/lib/commonjs/values/animation/timing/createTiming.js +59 -0
  815. package/lib/commonjs/values/animation/timing/createTiming.js.map +1 -0
  816. package/lib/commonjs/values/animation/timing/functions/bezier.js +147 -0
  817. package/lib/commonjs/values/animation/timing/functions/bezier.js.map +1 -0
  818. package/lib/commonjs/values/animation/timing/functions/getResolvedParams.js +56 -0
  819. package/lib/commonjs/values/animation/timing/functions/getResolvedParams.js.map +1 -0
  820. package/lib/commonjs/values/animation/timing/functions/index.js +54 -0
  821. package/lib/commonjs/values/animation/timing/functions/index.js.map +1 -0
  822. package/lib/commonjs/values/animation/timing/functions/timing.js +50 -0
  823. package/lib/commonjs/values/animation/timing/functions/timing.js.map +1 -0
  824. package/lib/commonjs/values/animation/timing/functions/types.js +2 -0
  825. package/lib/commonjs/values/animation/timing/functions/types.js.map +1 -0
  826. package/lib/commonjs/values/animation/timing/index.js +38 -0
  827. package/lib/commonjs/values/animation/timing/index.js.map +1 -0
  828. package/lib/commonjs/values/animation/timing/runTiming.js +33 -0
  829. package/lib/commonjs/values/animation/timing/runTiming.js.map +1 -0
  830. package/lib/commonjs/values/animation/timing/useLoop.js +22 -0
  831. package/lib/commonjs/values/animation/timing/useLoop.js.map +1 -0
  832. package/lib/commonjs/values/animation/timing/useTiming.js +66 -0
  833. package/lib/commonjs/values/animation/timing/useTiming.js.map +1 -0
  834. package/lib/commonjs/values/animation/types.js +2 -0
  835. package/lib/commonjs/values/animation/types.js.map +1 -0
  836. package/lib/commonjs/values/api.js +20 -0
  837. package/lib/commonjs/values/api.js.map +1 -0
  838. package/lib/commonjs/values/hooks/index.js +58 -0
  839. package/lib/commonjs/values/hooks/index.js.map +1 -0
  840. package/lib/commonjs/values/hooks/useClockValue.js +27 -0
  841. package/lib/commonjs/values/hooks/useClockValue.js.map +1 -0
  842. package/lib/commonjs/values/hooks/useDerivedValue.js +25 -0
  843. package/lib/commonjs/values/hooks/useDerivedValue.js.map +1 -0
  844. package/lib/commonjs/values/hooks/useValue.js +23 -0
  845. package/lib/commonjs/values/hooks/useValue.js.map +1 -0
  846. package/lib/commonjs/values/hooks/useValueEffect.js +22 -0
  847. package/lib/commonjs/values/hooks/useValueEffect.js.map +1 -0
  848. package/lib/commonjs/values/index.js +58 -0
  849. package/lib/commonjs/values/index.js.map +1 -0
  850. package/lib/commonjs/values/types.js +2 -0
  851. package/lib/commonjs/values/types.js.map +1 -0
  852. package/lib/commonjs/views/SkiaView.js +163 -0
  853. package/lib/commonjs/views/SkiaView.js.map +1 -0
  854. package/lib/commonjs/views/index.js +58 -0
  855. package/lib/commonjs/views/index.js.map +1 -0
  856. package/lib/commonjs/views/types.js +16 -0
  857. package/lib/commonjs/views/types.js.map +1 -0
  858. package/lib/commonjs/views/useDrawCallback.js +23 -0
  859. package/lib/commonjs/views/useDrawCallback.js.map +1 -0
  860. package/lib/commonjs/views/useTouchHandler.js +75 -0
  861. package/lib/commonjs/views/useTouchHandler.js.map +1 -0
  862. package/lib/module/external/index.js +2 -0
  863. package/lib/module/external/index.js.map +1 -0
  864. package/lib/module/external/reanimated/index.js +2 -0
  865. package/lib/module/external/reanimated/index.js.map +1 -0
  866. package/lib/module/external/reanimated/useSharedValueEffect.js +81 -0
  867. package/lib/module/external/reanimated/useSharedValueEffect.js.map +1 -0
  868. package/lib/module/index.js +7 -0
  869. package/lib/module/index.js.map +1 -0
  870. package/lib/module/renderer/Canvas.js +149 -0
  871. package/lib/module/renderer/Canvas.js.map +1 -0
  872. package/lib/module/renderer/DependencyManager.js +60 -0
  873. package/lib/module/renderer/DependencyManager.js.map +1 -0
  874. package/lib/module/renderer/DrawingContext.js +2 -0
  875. package/lib/module/renderer/DrawingContext.js.map +1 -0
  876. package/lib/module/renderer/HostConfig.js +259 -0
  877. package/lib/module/renderer/HostConfig.js.map +1 -0
  878. package/lib/module/renderer/components/Blend.js +28 -0
  879. package/lib/module/renderer/components/Blend.js.map +1 -0
  880. package/lib/module/renderer/components/Compose.js +24 -0
  881. package/lib/module/renderer/components/Compose.js.map +1 -0
  882. package/lib/module/renderer/components/Defs.js +16 -0
  883. package/lib/module/renderer/components/Defs.js.map +1 -0
  884. package/lib/module/renderer/components/Group.js +58 -0
  885. package/lib/module/renderer/components/Group.js.map +1 -0
  886. package/lib/module/renderer/components/Mask.js +40 -0
  887. package/lib/module/renderer/components/Mask.js.map +1 -0
  888. package/lib/module/renderer/components/Paint.js +36 -0
  889. package/lib/module/renderer/components/Paint.js.map +1 -0
  890. package/lib/module/renderer/components/backdrop/BackdropBlur.js +19 -0
  891. package/lib/module/renderer/components/backdrop/BackdropBlur.js.map +1 -0
  892. package/lib/module/renderer/components/backdrop/BackdropFilter.js +39 -0
  893. package/lib/module/renderer/components/backdrop/BackdropFilter.js.map +1 -0
  894. package/lib/module/renderer/components/backdrop/index.js +3 -0
  895. package/lib/module/renderer/components/backdrop/index.js.map +1 -0
  896. package/lib/module/renderer/components/colorFilters/BlendColor.js +21 -0
  897. package/lib/module/renderer/components/colorFilters/BlendColor.js.map +1 -0
  898. package/lib/module/renderer/components/colorFilters/Compose.js +14 -0
  899. package/lib/module/renderer/components/colorFilters/Compose.js.map +1 -0
  900. package/lib/module/renderer/components/colorFilters/Lerp.js +21 -0
  901. package/lib/module/renderer/components/colorFilters/Lerp.js.map +1 -0
  902. package/lib/module/renderer/components/colorFilters/LinearToSRGBGamma.js +17 -0
  903. package/lib/module/renderer/components/colorFilters/LinearToSRGBGamma.js.map +1 -0
  904. package/lib/module/renderer/components/colorFilters/LumaColorFilter.js +17 -0
  905. package/lib/module/renderer/components/colorFilters/LumaColorFilter.js.map +1 -0
  906. package/lib/module/renderer/components/colorFilters/Matrix.js +20 -0
  907. package/lib/module/renderer/components/colorFilters/Matrix.js.map +1 -0
  908. package/lib/module/renderer/components/colorFilters/SRGBToLinearGamma.js +17 -0
  909. package/lib/module/renderer/components/colorFilters/SRGBToLinearGamma.js.map +1 -0
  910. package/lib/module/renderer/components/colorFilters/index.js +7 -0
  911. package/lib/module/renderer/components/colorFilters/index.js.map +1 -0
  912. package/lib/module/renderer/components/image/BoxFit.js +145 -0
  913. package/lib/module/renderer/components/image/BoxFit.js.map +1 -0
  914. package/lib/module/renderer/components/image/Image.js +39 -0
  915. package/lib/module/renderer/components/image/Image.js.map +1 -0
  916. package/lib/module/renderer/components/image/ImageSVG.js +30 -0
  917. package/lib/module/renderer/components/image/ImageSVG.js.map +1 -0
  918. package/lib/module/renderer/components/image/ImageShader.js +66 -0
  919. package/lib/module/renderer/components/image/ImageShader.js.map +1 -0
  920. package/lib/module/renderer/components/image/index.js +5 -0
  921. package/lib/module/renderer/components/image/index.js.map +1 -0
  922. package/lib/module/renderer/components/imageFilters/Blur.js +25 -0
  923. package/lib/module/renderer/components/imageFilters/Blur.js.map +1 -0
  924. package/lib/module/renderer/components/imageFilters/DisplacementMap.js +32 -0
  925. package/lib/module/renderer/components/imageFilters/DisplacementMap.js.map +1 -0
  926. package/lib/module/renderer/components/imageFilters/DropShadow.js +28 -0
  927. package/lib/module/renderer/components/imageFilters/DropShadow.js.map +1 -0
  928. package/lib/module/renderer/components/imageFilters/InnerShadow.js +38 -0
  929. package/lib/module/renderer/components/imageFilters/InnerShadow.js.map +1 -0
  930. package/lib/module/renderer/components/imageFilters/Morphology.js +26 -0
  931. package/lib/module/renderer/components/imageFilters/Morphology.js.map +1 -0
  932. package/lib/module/renderer/components/imageFilters/Offset.js +23 -0
  933. package/lib/module/renderer/components/imageFilters/Offset.js.map +1 -0
  934. package/lib/module/renderer/components/imageFilters/getInput.js +23 -0
  935. package/lib/module/renderer/components/imageFilters/getInput.js.map +1 -0
  936. package/lib/module/renderer/components/imageFilters/index.js +7 -0
  937. package/lib/module/renderer/components/imageFilters/index.js.map +1 -0
  938. package/lib/module/renderer/components/index.js +17 -0
  939. package/lib/module/renderer/components/index.js.map +1 -0
  940. package/lib/module/renderer/components/maskFilters/Blur.js +25 -0
  941. package/lib/module/renderer/components/maskFilters/Blur.js.map +1 -0
  942. package/lib/module/renderer/components/maskFilters/index.js +2 -0
  943. package/lib/module/renderer/components/maskFilters/index.js.map +1 -0
  944. package/lib/module/renderer/components/pathEffects/Corner.js +29 -0
  945. package/lib/module/renderer/components/pathEffects/Corner.js.map +1 -0
  946. package/lib/module/renderer/components/pathEffects/Dash.js +26 -0
  947. package/lib/module/renderer/components/pathEffects/Dash.js.map +1 -0
  948. package/lib/module/renderer/components/pathEffects/Discrete.js +30 -0
  949. package/lib/module/renderer/components/pathEffects/Discrete.js.map +1 -0
  950. package/lib/module/renderer/components/pathEffects/Line2D.js +30 -0
  951. package/lib/module/renderer/components/pathEffects/Line2D.js.map +1 -0
  952. package/lib/module/renderer/components/pathEffects/Path1D.js +34 -0
  953. package/lib/module/renderer/components/pathEffects/Path1D.js.map +1 -0
  954. package/lib/module/renderer/components/pathEffects/Path2D.js +31 -0
  955. package/lib/module/renderer/components/pathEffects/Path2D.js.map +1 -0
  956. package/lib/module/renderer/components/pathEffects/Sum.js +16 -0
  957. package/lib/module/renderer/components/pathEffects/Sum.js.map +1 -0
  958. package/lib/module/renderer/components/pathEffects/index.js +8 -0
  959. package/lib/module/renderer/components/pathEffects/index.js.map +1 -0
  960. package/lib/module/renderer/components/shaders/Color.js +17 -0
  961. package/lib/module/renderer/components/shaders/Color.js.map +1 -0
  962. package/lib/module/renderer/components/shaders/FractalNoise.js +27 -0
  963. package/lib/module/renderer/components/shaders/FractalNoise.js.map +1 -0
  964. package/lib/module/renderer/components/shaders/Gradient.js +20 -0
  965. package/lib/module/renderer/components/shaders/Gradient.js.map +1 -0
  966. package/lib/module/renderer/components/shaders/LinearGradient.js +27 -0
  967. package/lib/module/renderer/components/shaders/LinearGradient.js.map +1 -0
  968. package/lib/module/renderer/components/shaders/RadialGradient.js +27 -0
  969. package/lib/module/renderer/components/shaders/RadialGradient.js.map +1 -0
  970. package/lib/module/renderer/components/shaders/Shader.js +64 -0
  971. package/lib/module/renderer/components/shaders/Shader.js.map +1 -0
  972. package/lib/module/renderer/components/shaders/ShaderLib.js +45 -0
  973. package/lib/module/renderer/components/shaders/ShaderLib.js.map +1 -0
  974. package/lib/module/renderer/components/shaders/SweepGradient.js +28 -0
  975. package/lib/module/renderer/components/shaders/SweepGradient.js.map +1 -0
  976. package/lib/module/renderer/components/shaders/Turbulence.js +27 -0
  977. package/lib/module/renderer/components/shaders/Turbulence.js.map +1 -0
  978. package/lib/module/renderer/components/shaders/TwoPointConicalGradient.js +29 -0
  979. package/lib/module/renderer/components/shaders/TwoPointConicalGradient.js.map +1 -0
  980. package/lib/module/renderer/components/shaders/index.js +10 -0
  981. package/lib/module/renderer/components/shaders/index.js.map +1 -0
  982. package/lib/module/renderer/components/shapes/Circle.js +26 -0
  983. package/lib/module/renderer/components/shapes/Circle.js.map +1 -0
  984. package/lib/module/renderer/components/shapes/DiffRect.js +21 -0
  985. package/lib/module/renderer/components/shapes/DiffRect.js.map +1 -0
  986. package/lib/module/renderer/components/shapes/Fill.js +17 -0
  987. package/lib/module/renderer/components/shapes/Fill.js.map +1 -0
  988. package/lib/module/renderer/components/shapes/FitBox.js +22 -0
  989. package/lib/module/renderer/components/shapes/FitBox.js.map +1 -0
  990. package/lib/module/renderer/components/shapes/Line.js +21 -0
  991. package/lib/module/renderer/components/shapes/Line.js.map +1 -0
  992. package/lib/module/renderer/components/shapes/Oval.js +23 -0
  993. package/lib/module/renderer/components/shapes/Oval.js.map +1 -0
  994. package/lib/module/renderer/components/shapes/Patch.js +35 -0
  995. package/lib/module/renderer/components/shapes/Patch.js.map +1 -0
  996. package/lib/module/renderer/components/shapes/Path.js +43 -0
  997. package/lib/module/renderer/components/shapes/Path.js.map +1 -0
  998. package/lib/module/renderer/components/shapes/Points.js +27 -0
  999. package/lib/module/renderer/components/shapes/Points.js.map +1 -0
  1000. package/lib/module/renderer/components/shapes/Rect.js +19 -0
  1001. package/lib/module/renderer/components/shapes/Rect.js.map +1 -0
  1002. package/lib/module/renderer/components/shapes/RoundedRect.js +22 -0
  1003. package/lib/module/renderer/components/shapes/RoundedRect.js.map +1 -0
  1004. package/lib/module/renderer/components/shapes/Vertices.js +36 -0
  1005. package/lib/module/renderer/components/shapes/Vertices.js.map +1 -0
  1006. package/lib/module/renderer/components/shapes/index.js +13 -0
  1007. package/lib/module/renderer/components/shapes/index.js.map +1 -0
  1008. package/lib/module/renderer/components/text/Glyphs.js +45 -0
  1009. package/lib/module/renderer/components/text/Glyphs.js.map +1 -0
  1010. package/lib/module/renderer/components/text/Text.js +30 -0
  1011. package/lib/module/renderer/components/text/Text.js.map +1 -0
  1012. package/lib/module/renderer/components/text/TextBlob.js +26 -0
  1013. package/lib/module/renderer/components/text/TextBlob.js.map +1 -0
  1014. package/lib/module/renderer/components/text/TextPath.js +76 -0
  1015. package/lib/module/renderer/components/text/TextPath.js.map +1 -0
  1016. package/lib/module/renderer/components/text/index.js +5 -0
  1017. package/lib/module/renderer/components/text/index.js.map +1 -0
  1018. package/lib/module/renderer/index.js +4 -0
  1019. package/lib/module/renderer/index.js.map +1 -0
  1020. package/lib/module/renderer/nodes/Container.js +18 -0
  1021. package/lib/module/renderer/nodes/Container.js.map +1 -0
  1022. package/lib/module/renderer/nodes/Declaration.js +33 -0
  1023. package/lib/module/renderer/nodes/Declaration.js.map +1 -0
  1024. package/lib/module/renderer/nodes/Drawing.js +53 -0
  1025. package/lib/module/renderer/nodes/Drawing.js.map +1 -0
  1026. package/lib/module/renderer/nodes/Node.js +67 -0
  1027. package/lib/module/renderer/nodes/Node.js.map +1 -0
  1028. package/lib/module/renderer/nodes/index.js +5 -0
  1029. package/lib/module/renderer/nodes/index.js.map +1 -0
  1030. package/lib/module/renderer/processors/Animations/Animations.js +36 -0
  1031. package/lib/module/renderer/processors/Animations/Animations.js.map +1 -0
  1032. package/lib/module/renderer/processors/Animations/index.js +2 -0
  1033. package/lib/module/renderer/processors/Animations/index.js.map +1 -0
  1034. package/lib/module/renderer/processors/Circles.js +16 -0
  1035. package/lib/module/renderer/processors/Circles.js.map +1 -0
  1036. package/lib/module/renderer/processors/Clips.js +13 -0
  1037. package/lib/module/renderer/processors/Clips.js.map +1 -0
  1038. package/lib/module/renderer/processors/Font.js +26 -0
  1039. package/lib/module/renderer/processors/Font.js.map +1 -0
  1040. package/lib/module/renderer/processors/Paint.js +75 -0
  1041. package/lib/module/renderer/processors/Paint.js.map +1 -0
  1042. package/lib/module/renderer/processors/Paths.js +13 -0
  1043. package/lib/module/renderer/processors/Paths.js.map +1 -0
  1044. package/lib/module/renderer/processors/Radius.js +9 -0
  1045. package/lib/module/renderer/processors/Radius.js.map +1 -0
  1046. package/lib/module/renderer/processors/Rects.js +55 -0
  1047. package/lib/module/renderer/processors/Rects.js.map +1 -0
  1048. package/lib/module/renderer/processors/Transform.js +41 -0
  1049. package/lib/module/renderer/processors/Transform.js.map +1 -0
  1050. package/lib/module/renderer/processors/index.js +11 -0
  1051. package/lib/module/renderer/processors/index.js.map +1 -0
  1052. package/lib/module/renderer/processors/math/Coordinates.js +19 -0
  1053. package/lib/module/renderer/processors/math/Coordinates.js.map +1 -0
  1054. package/lib/module/renderer/processors/math/Math.js +2 -0
  1055. package/lib/module/renderer/processors/math/Math.js.map +1 -0
  1056. package/lib/module/renderer/processors/math/Matrix3.js +71 -0
  1057. package/lib/module/renderer/processors/math/Matrix3.js.map +1 -0
  1058. package/lib/module/renderer/processors/math/Transforms.js +12 -0
  1059. package/lib/module/renderer/processors/math/Transforms.js.map +1 -0
  1060. package/lib/module/renderer/processors/math/Vector.js +30 -0
  1061. package/lib/module/renderer/processors/math/Vector.js.map +1 -0
  1062. package/lib/module/renderer/processors/math/index.js +6 -0
  1063. package/lib/module/renderer/processors/math/index.js.map +1 -0
  1064. package/lib/module/renderer/typeddash.js +5 -0
  1065. package/lib/module/renderer/typeddash.js.map +1 -0
  1066. package/lib/module/skia/Canvas.js +14 -0
  1067. package/lib/module/skia/Canvas.js.map +1 -0
  1068. package/lib/module/skia/Color.js +48 -0
  1069. package/lib/module/skia/Color.js.map +1 -0
  1070. package/lib/module/skia/ColorFilter/ColorFilter.js +2 -0
  1071. package/lib/module/skia/ColorFilter/ColorFilter.js.map +1 -0
  1072. package/lib/module/skia/ColorFilter/ColorFilterFactory.js +2 -0
  1073. package/lib/module/skia/ColorFilter/ColorFilterFactory.js.map +1 -0
  1074. package/lib/module/skia/ColorFilter/index.js +3 -0
  1075. package/lib/module/skia/ColorFilter/index.js.map +1 -0
  1076. package/lib/module/skia/ContourMeasure.js +2 -0
  1077. package/lib/module/skia/ContourMeasure.js.map +1 -0
  1078. package/lib/module/skia/Data/Data.js +35 -0
  1079. package/lib/module/skia/Data/Data.js.map +1 -0
  1080. package/lib/module/skia/Data/DataFactory.js +2 -0
  1081. package/lib/module/skia/Data/DataFactory.js.map +1 -0
  1082. package/lib/module/skia/Data/index.js +3 -0
  1083. package/lib/module/skia/Data/index.js.map +1 -0
  1084. package/lib/module/skia/Font/Font.js +68 -0
  1085. package/lib/module/skia/Font/Font.js.map +1 -0
  1086. package/lib/module/skia/Font/index.js +3 -0
  1087. package/lib/module/skia/Font/index.js.map +1 -0
  1088. package/lib/module/skia/Font/useFont.js +24 -0
  1089. package/lib/module/skia/Font/useFont.js.map +1 -0
  1090. package/lib/module/skia/FontMgr/FontMgr.js +2 -0
  1091. package/lib/module/skia/FontMgr/FontMgr.js.map +1 -0
  1092. package/lib/module/skia/FontMgr/FontMgrFactory.js +2 -0
  1093. package/lib/module/skia/FontMgr/FontMgrFactory.js.map +1 -0
  1094. package/lib/module/skia/FontMgr/index.js +2 -0
  1095. package/lib/module/skia/FontMgr/index.js.map +1 -0
  1096. package/lib/module/skia/Image/Image.js +23 -0
  1097. package/lib/module/skia/Image/Image.js.map +1 -0
  1098. package/lib/module/skia/Image/ImageFactory.js +37 -0
  1099. package/lib/module/skia/Image/ImageFactory.js.map +1 -0
  1100. package/lib/module/skia/Image/index.js +4 -0
  1101. package/lib/module/skia/Image/index.js.map +1 -0
  1102. package/lib/module/skia/Image/useImage.js +8 -0
  1103. package/lib/module/skia/Image/useImage.js.map +1 -0
  1104. package/lib/module/skia/ImageFilter/ImageFilter.js +11 -0
  1105. package/lib/module/skia/ImageFilter/ImageFilter.js.map +1 -0
  1106. package/lib/module/skia/ImageFilter/ImageFilterFactory.js +9 -0
  1107. package/lib/module/skia/ImageFilter/ImageFilterFactory.js.map +1 -0
  1108. package/lib/module/skia/ImageFilter/index.js +3 -0
  1109. package/lib/module/skia/ImageFilter/index.js.map +1 -0
  1110. package/lib/module/skia/JsiInstance.js +2 -0
  1111. package/lib/module/skia/JsiInstance.js.map +1 -0
  1112. package/lib/module/skia/MaskFilter.js +11 -0
  1113. package/lib/module/skia/MaskFilter.js.map +1 -0
  1114. package/lib/module/skia/Matrix.js +14 -0
  1115. package/lib/module/skia/Matrix.js.map +1 -0
  1116. package/lib/module/skia/NativeSetup.js +17 -0
  1117. package/lib/module/skia/NativeSetup.js.map +1 -0
  1118. package/lib/module/skia/Paint/BlendMode.js +61 -0
  1119. package/lib/module/skia/Paint/BlendMode.js.map +1 -0
  1120. package/lib/module/skia/Paint/Paint.js +25 -0
  1121. package/lib/module/skia/Paint/Paint.js.map +1 -0
  1122. package/lib/module/skia/Paint/index.js +4 -0
  1123. package/lib/module/skia/Paint/index.js.map +1 -0
  1124. package/lib/module/skia/Paint/usePaint.js +17 -0
  1125. package/lib/module/skia/Paint/usePaint.js.map +1 -0
  1126. package/lib/module/skia/Path/Path.js +24 -0
  1127. package/lib/module/skia/Path/Path.js.map +1 -0
  1128. package/lib/module/skia/Path/PathFactory.js +2 -0
  1129. package/lib/module/skia/Path/PathFactory.js.map +1 -0
  1130. package/lib/module/skia/Path/index.js +4 -0
  1131. package/lib/module/skia/Path/index.js.map +1 -0
  1132. package/lib/module/skia/Path/usePath.js +44 -0
  1133. package/lib/module/skia/Path/usePath.js.map +1 -0
  1134. package/lib/module/skia/PathEffect.js +9 -0
  1135. package/lib/module/skia/PathEffect.js.map +1 -0
  1136. package/lib/module/skia/Point.js +8 -0
  1137. package/lib/module/skia/Point.js.map +1 -0
  1138. package/lib/module/skia/RRect.js +2 -0
  1139. package/lib/module/skia/RRect.js.map +1 -0
  1140. package/lib/module/skia/RSXform.js +2 -0
  1141. package/lib/module/skia/RSXform.js.map +1 -0
  1142. package/lib/module/skia/Rect.js +2 -0
  1143. package/lib/module/skia/Rect.js.map +1 -0
  1144. package/lib/module/skia/RuntimeEffect/RuntimeEffect.js +2 -0
  1145. package/lib/module/skia/RuntimeEffect/RuntimeEffect.js.map +1 -0
  1146. package/lib/module/skia/RuntimeEffect/RuntimeEffectFactory.js +2 -0
  1147. package/lib/module/skia/RuntimeEffect/RuntimeEffectFactory.js.map +1 -0
  1148. package/lib/module/skia/RuntimeEffect/index.js +3 -0
  1149. package/lib/module/skia/RuntimeEffect/index.js.map +1 -0
  1150. package/lib/module/skia/SVG/SVG.js +2 -0
  1151. package/lib/module/skia/SVG/SVG.js.map +1 -0
  1152. package/lib/module/skia/SVG/SVGFactory.js +2 -0
  1153. package/lib/module/skia/SVG/SVGFactory.js.map +1 -0
  1154. package/lib/module/skia/SVG/index.js +4 -0
  1155. package/lib/module/skia/SVG/index.js.map +1 -0
  1156. package/lib/module/skia/SVG/useSvg.js +4 -0
  1157. package/lib/module/skia/SVG/useSvg.js.map +1 -0
  1158. package/lib/module/skia/Shader/Shader.js +2 -0
  1159. package/lib/module/skia/Shader/Shader.js.map +1 -0
  1160. package/lib/module/skia/Shader/ShaderFactory.js +2 -0
  1161. package/lib/module/skia/Shader/ShaderFactory.js.map +1 -0
  1162. package/lib/module/skia/Shader/index.js +4 -0
  1163. package/lib/module/skia/Shader/index.js.map +1 -0
  1164. package/lib/module/skia/Shader/useShader.js +4 -0
  1165. package/lib/module/skia/Shader/useShader.js.map +1 -0
  1166. package/lib/module/skia/Skia.js +39 -0
  1167. package/lib/module/skia/Skia.js.map +1 -0
  1168. package/lib/module/skia/Surface/Surface.js +2 -0
  1169. package/lib/module/skia/Surface/Surface.js.map +1 -0
  1170. package/lib/module/skia/Surface/SurfaceFactory.js +2 -0
  1171. package/lib/module/skia/Surface/SurfaceFactory.js.map +1 -0
  1172. package/lib/module/skia/Surface/index.js +3 -0
  1173. package/lib/module/skia/Surface/index.js.map +1 -0
  1174. package/lib/module/skia/TextBlob.js +2 -0
  1175. package/lib/module/skia/TextBlob.js.map +1 -0
  1176. package/lib/module/skia/Typeface/Typeface.js +2 -0
  1177. package/lib/module/skia/Typeface/Typeface.js.map +1 -0
  1178. package/lib/module/skia/Typeface/TypefaceFactory.js +2 -0
  1179. package/lib/module/skia/Typeface/TypefaceFactory.js.map +1 -0
  1180. package/lib/module/skia/Typeface/index.js +4 -0
  1181. package/lib/module/skia/Typeface/index.js.map +1 -0
  1182. package/lib/module/skia/Typeface/useTypeface.js +8 -0
  1183. package/lib/module/skia/Typeface/useTypeface.js.map +1 -0
  1184. package/lib/module/skia/Vertices/Vertices.js +8 -0
  1185. package/lib/module/skia/Vertices/Vertices.js.map +1 -0
  1186. package/lib/module/skia/Vertices/index.js +2 -0
  1187. package/lib/module/skia/Vertices/index.js.map +1 -0
  1188. package/lib/module/skia/index.js +23 -0
  1189. package/lib/module/skia/index.js.map +1 -0
  1190. package/lib/module/values/animation/decay/decay.js +33 -0
  1191. package/lib/module/values/animation/decay/decay.js.map +1 -0
  1192. package/lib/module/values/animation/decay/index.js +2 -0
  1193. package/lib/module/values/animation/decay/index.js.map +1 -0
  1194. package/lib/module/values/animation/decay/runDecay.js +38 -0
  1195. package/lib/module/values/animation/decay/runDecay.js.map +1 -0
  1196. package/lib/module/values/animation/decay/types.js +2 -0
  1197. package/lib/module/values/animation/decay/types.js.map +1 -0
  1198. package/lib/module/values/animation/functions/index.js +3 -0
  1199. package/lib/module/values/animation/functions/index.js.map +1 -0
  1200. package/lib/module/values/animation/functions/interpolate.js +132 -0
  1201. package/lib/module/values/animation/functions/interpolate.js.map +1 -0
  1202. package/lib/module/values/animation/functions/interpolateColors.js +32 -0
  1203. package/lib/module/values/animation/functions/interpolateColors.js.map +1 -0
  1204. package/lib/module/values/animation/index.js +5 -0
  1205. package/lib/module/values/animation/index.js.map +1 -0
  1206. package/lib/module/values/animation/spring/Spring.js +69 -0
  1207. package/lib/module/values/animation/spring/Spring.js.map +1 -0
  1208. package/lib/module/values/animation/spring/functions/index.js +2 -0
  1209. package/lib/module/values/animation/spring/functions/index.js.map +1 -0
  1210. package/lib/module/values/animation/spring/functions/spring.js +85 -0
  1211. package/lib/module/values/animation/spring/functions/spring.js.map +1 -0
  1212. package/lib/module/values/animation/spring/index.js +4 -0
  1213. package/lib/module/values/animation/spring/index.js.map +1 -0
  1214. package/lib/module/values/animation/spring/runSpring.js +21 -0
  1215. package/lib/module/values/animation/spring/runSpring.js.map +1 -0
  1216. package/lib/module/values/animation/spring/types.js +2 -0
  1217. package/lib/module/values/animation/spring/types.js.map +1 -0
  1218. package/lib/module/values/animation/spring/useSpring.js +13 -0
  1219. package/lib/module/values/animation/spring/useSpring.js.map +1 -0
  1220. package/lib/module/values/animation/timing/Easing.js +98 -0
  1221. package/lib/module/values/animation/timing/Easing.js.map +1 -0
  1222. package/lib/module/values/animation/timing/createTiming.js +49 -0
  1223. package/lib/module/values/animation/timing/createTiming.js.map +1 -0
  1224. package/lib/module/values/animation/timing/functions/bezier.js +141 -0
  1225. package/lib/module/values/animation/timing/functions/bezier.js.map +1 -0
  1226. package/lib/module/values/animation/timing/functions/getResolvedParams.js +48 -0
  1227. package/lib/module/values/animation/timing/functions/getResolvedParams.js.map +1 -0
  1228. package/lib/module/values/animation/timing/functions/index.js +5 -0
  1229. package/lib/module/values/animation/timing/functions/index.js.map +1 -0
  1230. package/lib/module/values/animation/timing/functions/timing.js +41 -0
  1231. package/lib/module/values/animation/timing/functions/timing.js.map +1 -0
  1232. package/lib/module/values/animation/timing/functions/types.js +2 -0
  1233. package/lib/module/values/animation/timing/functions/types.js.map +1 -0
  1234. package/lib/module/values/animation/timing/index.js +5 -0
  1235. package/lib/module/values/animation/timing/index.js.map +1 -0
  1236. package/lib/module/values/animation/timing/runTiming.js +23 -0
  1237. package/lib/module/values/animation/timing/runTiming.js.map +1 -0
  1238. package/lib/module/values/animation/timing/useLoop.js +13 -0
  1239. package/lib/module/values/animation/timing/useLoop.js.map +1 -0
  1240. package/lib/module/values/animation/timing/useTiming.js +54 -0
  1241. package/lib/module/values/animation/timing/useTiming.js.map +1 -0
  1242. package/lib/module/values/animation/types.js +2 -0
  1243. package/lib/module/values/animation/types.js.map +1 -0
  1244. package/lib/module/values/api.js +11 -0
  1245. package/lib/module/values/api.js.map +1 -0
  1246. package/lib/module/values/hooks/index.js +5 -0
  1247. package/lib/module/values/hooks/index.js.map +1 -0
  1248. package/lib/module/values/hooks/useClockValue.js +17 -0
  1249. package/lib/module/values/hooks/useClockValue.js.map +1 -0
  1250. package/lib/module/values/hooks/useDerivedValue.js +14 -0
  1251. package/lib/module/values/hooks/useDerivedValue.js.map +1 -0
  1252. package/lib/module/values/hooks/useValue.js +13 -0
  1253. package/lib/module/values/hooks/useValue.js.map +1 -0
  1254. package/lib/module/values/hooks/useValueEffect.js +13 -0
  1255. package/lib/module/values/hooks/useValueEffect.js.map +1 -0
  1256. package/lib/module/values/index.js +5 -0
  1257. package/lib/module/values/index.js.map +1 -0
  1258. package/lib/module/values/types.js +2 -0
  1259. package/lib/module/values/types.js.map +1 -0
  1260. package/lib/module/views/SkiaView.js +149 -0
  1261. package/lib/module/views/SkiaView.js.map +1 -0
  1262. package/lib/module/views/index.js +5 -0
  1263. package/lib/module/views/index.js.map +1 -0
  1264. package/lib/module/views/types.js +9 -0
  1265. package/lib/module/views/types.js.map +1 -0
  1266. package/lib/module/views/useDrawCallback.js +14 -0
  1267. package/lib/module/views/useDrawCallback.js.map +1 -0
  1268. package/lib/module/views/useTouchHandler.js +64 -0
  1269. package/lib/module/views/useTouchHandler.js.map +1 -0
  1270. package/lib/typescript/index.d.ts +1 -0
  1271. package/lib/typescript/scripts/install-npm.d.ts +1 -0
  1272. package/lib/typescript/src/external/index.d.ts +1 -0
  1273. package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
  1274. package/lib/typescript/src/external/reanimated/useSharedValueEffect.d.ts +11 -0
  1275. package/lib/typescript/src/index.d.ts +6 -0
  1276. package/lib/typescript/src/renderer/Canvas.d.ts +26 -0
  1277. package/lib/typescript/src/renderer/DependencyManager.d.ts +21 -0
  1278. package/lib/typescript/src/renderer/DrawingContext.d.ts +13 -0
  1279. package/lib/typescript/src/renderer/HostConfig.d.ts +27 -0
  1280. package/lib/typescript/src/renderer/components/Blend.d.ts +9 -0
  1281. package/lib/typescript/src/renderer/components/Compose.d.ts +6 -0
  1282. package/lib/typescript/src/renderer/components/Defs.d.ts +5 -0
  1283. package/lib/typescript/src/renderer/components/Group.d.ts +9 -0
  1284. package/lib/typescript/src/renderer/components/Mask.d.ts +15 -0
  1285. package/lib/typescript/src/renderer/components/Paint.d.ts +9 -0
  1286. package/lib/typescript/src/renderer/components/backdrop/BackdropBlur.d.ts +8 -0
  1287. package/lib/typescript/src/renderer/components/backdrop/BackdropFilter.d.ts +7 -0
  1288. package/lib/typescript/src/renderer/components/backdrop/index.d.ts +2 -0
  1289. package/lib/typescript/src/renderer/components/colorFilters/BlendColor.d.ts +10 -0
  1290. package/lib/typescript/src/renderer/components/colorFilters/Compose.d.ts +3 -0
  1291. package/lib/typescript/src/renderer/components/colorFilters/Lerp.d.ts +7 -0
  1292. package/lib/typescript/src/renderer/components/colorFilters/LinearToSRGBGamma.d.ts +5 -0
  1293. package/lib/typescript/src/renderer/components/colorFilters/LumaColorFilter.d.ts +5 -0
  1294. package/lib/typescript/src/renderer/components/colorFilters/Matrix.d.ts +9 -0
  1295. package/lib/typescript/src/renderer/components/colorFilters/SRGBToLinearGamma.d.ts +5 -0
  1296. package/lib/typescript/src/renderer/components/colorFilters/index.d.ts +6 -0
  1297. package/lib/typescript/src/renderer/components/image/BoxFit.d.ts +23 -0
  1298. package/lib/typescript/src/renderer/components/image/Image.d.ts +19 -0
  1299. package/lib/typescript/src/renderer/components/image/ImageSVG.d.ts +7 -0
  1300. package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +26 -0
  1301. package/lib/typescript/src/renderer/components/image/index.d.ts +4 -0
  1302. package/lib/typescript/src/renderer/components/imageFilters/Blur.d.ts +15 -0
  1303. package/lib/typescript/src/renderer/components/imageFilters/DisplacementMap.d.ts +10 -0
  1304. package/lib/typescript/src/renderer/components/imageFilters/DropShadow.d.ts +11 -0
  1305. package/lib/typescript/src/renderer/components/imageFilters/InnerShadow.d.ts +12 -0
  1306. package/lib/typescript/src/renderer/components/imageFilters/Morphology.d.ts +13 -0
  1307. package/lib/typescript/src/renderer/components/imageFilters/Offset.d.ts +14 -0
  1308. package/lib/typescript/src/renderer/components/imageFilters/getInput.d.ts +2 -0
  1309. package/lib/typescript/src/renderer/components/imageFilters/index.d.ts +6 -0
  1310. package/lib/typescript/src/renderer/components/index.d.ts +16 -0
  1311. package/lib/typescript/src/renderer/components/maskFilters/Blur.d.ts +16 -0
  1312. package/lib/typescript/src/renderer/components/maskFilters/index.d.ts +1 -0
  1313. package/lib/typescript/src/renderer/components/pathEffects/Corner.d.ts +7 -0
  1314. package/lib/typescript/src/renderer/components/pathEffects/Dash.d.ts +8 -0
  1315. package/lib/typescript/src/renderer/components/pathEffects/Discrete.d.ts +14 -0
  1316. package/lib/typescript/src/renderer/components/pathEffects/Line2D.d.ts +9 -0
  1317. package/lib/typescript/src/renderer/components/pathEffects/Path1D.d.ts +13 -0
  1318. package/lib/typescript/src/renderer/components/pathEffects/Path2D.d.ts +10 -0
  1319. package/lib/typescript/src/renderer/components/pathEffects/Sum.d.ts +6 -0
  1320. package/lib/typescript/src/renderer/components/pathEffects/index.d.ts +7 -0
  1321. package/lib/typescript/src/renderer/components/shaders/Color.d.ts +7 -0
  1322. package/lib/typescript/src/renderer/components/shaders/FractalNoise.d.ts +18 -0
  1323. package/lib/typescript/src/renderer/components/shaders/Gradient.d.ts +17 -0
  1324. package/lib/typescript/src/renderer/components/shaders/LinearGradient.d.ts +8 -0
  1325. package/lib/typescript/src/renderer/components/shaders/RadialGradient.d.ts +8 -0
  1326. package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +21 -0
  1327. package/lib/typescript/src/renderer/components/shaders/ShaderLib.d.ts +4 -0
  1328. package/lib/typescript/src/renderer/components/shaders/SweepGradient.d.ts +9 -0
  1329. package/lib/typescript/src/renderer/components/shaders/Turbulence.d.ts +18 -0
  1330. package/lib/typescript/src/renderer/components/shaders/TwoPointConicalGradient.d.ts +10 -0
  1331. package/lib/typescript/src/renderer/components/shaders/index.d.ts +9 -0
  1332. package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +12 -0
  1333. package/lib/typescript/src/renderer/components/shapes/DiffRect.d.ts +9 -0
  1334. package/lib/typescript/src/renderer/components/shapes/Fill.d.ts +5 -0
  1335. package/lib/typescript/src/renderer/components/shapes/FitBox.d.ts +16 -0
  1336. package/lib/typescript/src/renderer/components/shapes/Line.d.ts +7 -0
  1337. package/lib/typescript/src/renderer/components/shapes/Oval.d.ts +10 -0
  1338. package/lib/typescript/src/renderer/components/shapes/Patch.d.ts +21 -0
  1339. package/lib/typescript/src/renderer/components/shapes/Path.d.ts +21 -0
  1340. package/lib/typescript/src/renderer/components/shapes/Points.d.ts +15 -0
  1341. package/lib/typescript/src/renderer/components/shapes/Rect.d.ts +4 -0
  1342. package/lib/typescript/src/renderer/components/shapes/RoundedRect.d.ts +9 -0
  1343. package/lib/typescript/src/renderer/components/shapes/Vertices.d.ts +18 -0
  1344. package/lib/typescript/src/renderer/components/shapes/index.d.ts +12 -0
  1345. package/lib/typescript/src/renderer/components/text/Glyphs.d.ts +20 -0
  1346. package/lib/typescript/src/renderer/components/text/Text.d.ts +15 -0
  1347. package/lib/typescript/src/renderer/components/text/TextBlob.d.ts +15 -0
  1348. package/lib/typescript/src/renderer/components/text/TextPath.d.ts +15 -0
  1349. package/lib/typescript/src/renderer/components/text/index.d.ts +4 -0
  1350. package/lib/typescript/src/renderer/index.d.ts +3 -0
  1351. package/lib/typescript/src/renderer/nodes/Container.d.ts +8 -0
  1352. package/lib/typescript/src/renderer/nodes/Declaration.d.ts +19 -0
  1353. package/lib/typescript/src/renderer/nodes/Drawing.d.ts +21 -0
  1354. package/lib/typescript/src/renderer/nodes/Node.d.ts +23 -0
  1355. package/lib/typescript/src/renderer/nodes/index.d.ts +4 -0
  1356. package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +9 -0
  1357. package/lib/typescript/src/renderer/processors/Animations/index.d.ts +1 -0
  1358. package/lib/typescript/src/renderer/processors/Circles.d.ts +13 -0
  1359. package/lib/typescript/src/renderer/processors/Clips.d.ts +5 -0
  1360. package/lib/typescript/src/renderer/processors/Font.d.ts +12 -0
  1361. package/lib/typescript/src/renderer/processors/Paint.d.ts +21 -0
  1362. package/lib/typescript/src/renderer/processors/Paths.d.ts +4 -0
  1363. package/lib/typescript/src/renderer/processors/Radius.d.ts +3 -0
  1364. package/lib/typescript/src/renderer/processors/Rects.d.ts +61 -0
  1365. package/lib/typescript/src/renderer/processors/Transform.d.ts +91 -0
  1366. package/lib/typescript/src/renderer/processors/index.d.ts +10 -0
  1367. package/lib/typescript/src/renderer/processors/math/Coordinates.d.ts +29 -0
  1368. package/lib/typescript/src/renderer/processors/math/Math.d.ts +1 -0
  1369. package/lib/typescript/src/renderer/processors/math/Matrix3.d.ts +13 -0
  1370. package/lib/typescript/src/renderer/processors/math/Transforms.d.ts +5 -0
  1371. package/lib/typescript/src/renderer/processors/math/Vector.d.ts +35 -0
  1372. package/lib/typescript/src/renderer/processors/math/index.d.ts +5 -0
  1373. package/lib/typescript/src/renderer/typeddash.d.ts +2 -0
  1374. package/lib/typescript/src/skia/Canvas.d.ts +375 -0
  1375. package/lib/typescript/src/skia/Color.d.ts +10 -0
  1376. package/lib/typescript/src/skia/ColorFilter/ColorFilter.d.ts +3 -0
  1377. package/lib/typescript/src/skia/ColorFilter/ColorFilterFactory.d.ts +43 -0
  1378. package/lib/typescript/src/skia/ColorFilter/index.d.ts +2 -0
  1379. package/lib/typescript/src/skia/ContourMeasure.d.ts +42 -0
  1380. package/lib/typescript/src/skia/Data/Data.d.ts +9 -0
  1381. package/lib/typescript/src/skia/Data/DataFactory.d.ts +18 -0
  1382. package/lib/typescript/src/skia/Data/index.d.ts +2 -0
  1383. package/lib/typescript/src/skia/Font/Font.d.ts +187 -0
  1384. package/lib/typescript/src/skia/Font/index.d.ts +2 -0
  1385. package/lib/typescript/src/skia/Font/useFont.d.ts +6 -0
  1386. package/lib/typescript/src/skia/FontMgr/FontMgr.d.ts +18 -0
  1387. package/lib/typescript/src/skia/FontMgr/FontMgrFactory.d.ts +4 -0
  1388. package/lib/typescript/src/skia/FontMgr/index.d.ts +1 -0
  1389. package/lib/typescript/src/skia/Image/Image.d.ts +75 -0
  1390. package/lib/typescript/src/skia/Image/ImageFactory.d.ts +62 -0
  1391. package/lib/typescript/src/skia/Image/index.d.ts +3 -0
  1392. package/lib/typescript/src/skia/Image/useImage.d.ts +5 -0
  1393. package/lib/typescript/src/skia/ImageFilter/ImageFilter.d.ts +23 -0
  1394. package/lib/typescript/src/skia/ImageFilter/ImageFilterFactory.d.ts +114 -0
  1395. package/lib/typescript/src/skia/ImageFilter/index.d.ts +2 -0
  1396. package/lib/typescript/src/skia/JsiInstance.d.ts +3 -0
  1397. package/lib/typescript/src/skia/MaskFilter.d.ts +21 -0
  1398. package/lib/typescript/src/skia/Matrix.d.ts +22 -0
  1399. package/lib/typescript/src/skia/NativeSetup.d.ts +1 -0
  1400. package/lib/typescript/src/skia/Paint/BlendMode.d.ts +58 -0
  1401. package/lib/typescript/src/skia/Paint/Paint.d.ts +127 -0
  1402. package/lib/typescript/src/skia/Paint/index.d.ts +3 -0
  1403. package/lib/typescript/src/skia/Paint/usePaint.d.ts +6 -0
  1404. package/lib/typescript/src/skia/Path/Path.d.ts +443 -0
  1405. package/lib/typescript/src/skia/Path/PathFactory.d.ts +18 -0
  1406. package/lib/typescript/src/skia/Path/index.d.ts +3 -0
  1407. package/lib/typescript/src/skia/Path/usePath.d.ts +22 -0
  1408. package/lib/typescript/src/skia/PathEffect.d.ts +75 -0
  1409. package/lib/typescript/src/skia/Point.d.ts +9 -0
  1410. package/lib/typescript/src/skia/RRect.d.ts +6 -0
  1411. package/lib/typescript/src/skia/RSXform.d.ts +2 -0
  1412. package/lib/typescript/src/skia/Rect.d.ts +6 -0
  1413. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffect.d.ts +47 -0
  1414. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffectFactory.d.ts +10 -0
  1415. package/lib/typescript/src/skia/RuntimeEffect/index.d.ts +2 -0
  1416. package/lib/typescript/src/skia/SVG/SVG.d.ts +2 -0
  1417. package/lib/typescript/src/skia/SVG/SVGFactory.d.ts +6 -0
  1418. package/lib/typescript/src/skia/SVG/index.d.ts +3 -0
  1419. package/lib/typescript/src/skia/SVG/useSvg.d.ts +2 -0
  1420. package/lib/typescript/src/skia/Shader/Shader.d.ts +3 -0
  1421. package/lib/typescript/src/skia/Shader/ShaderFactory.d.ts +104 -0
  1422. package/lib/typescript/src/skia/Shader/index.d.ts +3 -0
  1423. package/lib/typescript/src/skia/Shader/useShader.d.ts +1 -0
  1424. package/lib/typescript/src/skia/Skia.d.ts +101 -0
  1425. package/lib/typescript/src/skia/Surface/Surface.d.ts +25 -0
  1426. package/lib/typescript/src/skia/Surface/SurfaceFactory.d.ts +11 -0
  1427. package/lib/typescript/src/skia/Surface/index.d.ts +2 -0
  1428. package/lib/typescript/src/skia/TextBlob.d.ts +44 -0
  1429. package/lib/typescript/src/skia/Typeface/Typeface.d.ts +5 -0
  1430. package/lib/typescript/src/skia/Typeface/TypefaceFactory.d.ts +5 -0
  1431. package/lib/typescript/src/skia/Typeface/index.d.ts +3 -0
  1432. package/lib/typescript/src/skia/Typeface/useTypeface.d.ts +5 -0
  1433. package/lib/typescript/src/skia/Vertices/Vertices.d.ts +17 -0
  1434. package/lib/typescript/src/skia/Vertices/index.d.ts +1 -0
  1435. package/lib/typescript/src/skia/index.d.ts +22 -0
  1436. package/lib/typescript/src/values/animation/decay/decay.d.ts +2 -0
  1437. package/lib/typescript/src/values/animation/decay/index.d.ts +1 -0
  1438. package/lib/typescript/src/values/animation/decay/runDecay.d.ts +10 -0
  1439. package/lib/typescript/src/values/animation/decay/types.d.ts +21 -0
  1440. package/lib/typescript/src/values/animation/functions/index.d.ts +2 -0
  1441. package/lib/typescript/src/values/animation/functions/interpolate.d.ts +7 -0
  1442. package/lib/typescript/src/values/animation/functions/interpolateColors.d.ts +3 -0
  1443. package/lib/typescript/src/values/animation/index.d.ts +4 -0
  1444. package/lib/typescript/src/values/animation/spring/Spring.d.ts +65 -0
  1445. package/lib/typescript/src/values/animation/spring/functions/index.d.ts +1 -0
  1446. package/lib/typescript/src/values/animation/spring/functions/spring.d.ts +10 -0
  1447. package/lib/typescript/src/values/animation/spring/index.d.ts +3 -0
  1448. package/lib/typescript/src/values/animation/spring/runSpring.d.ts +16 -0
  1449. package/lib/typescript/src/values/animation/spring/types.d.ts +6 -0
  1450. package/lib/typescript/src/values/animation/spring/useSpring.d.ts +10 -0
  1451. package/lib/typescript/src/values/animation/timing/Easing.d.ts +19 -0
  1452. package/lib/typescript/src/values/animation/timing/createTiming.d.ts +17 -0
  1453. package/lib/typescript/src/values/animation/timing/functions/bezier.d.ts +1 -0
  1454. package/lib/typescript/src/values/animation/timing/functions/getResolvedParams.d.ts +7 -0
  1455. package/lib/typescript/src/values/animation/timing/functions/index.d.ts +4 -0
  1456. package/lib/typescript/src/values/animation/timing/functions/timing.d.ts +17 -0
  1457. package/lib/typescript/src/values/animation/timing/functions/types.d.ts +7 -0
  1458. package/lib/typescript/src/values/animation/timing/index.d.ts +4 -0
  1459. package/lib/typescript/src/values/animation/timing/runTiming.d.ts +16 -0
  1460. package/lib/typescript/src/values/animation/timing/useLoop.d.ts +8 -0
  1461. package/lib/typescript/src/values/animation/timing/useTiming.d.ts +10 -0
  1462. package/lib/typescript/src/values/animation/types.d.ts +18 -0
  1463. package/lib/typescript/src/values/api.d.ts +29 -0
  1464. package/lib/typescript/src/values/hooks/index.d.ts +4 -0
  1465. package/lib/typescript/src/values/hooks/useClockValue.d.ts +6 -0
  1466. package/lib/typescript/src/values/hooks/useDerivedValue.d.ts +8 -0
  1467. package/lib/typescript/src/values/hooks/useValue.d.ts +7 -0
  1468. package/lib/typescript/src/values/hooks/useValueEffect.d.ts +7 -0
  1469. package/lib/typescript/src/values/index.d.ts +4 -0
  1470. package/lib/typescript/src/values/types.d.ts +36 -0
  1471. package/lib/typescript/src/views/SkiaView.d.ts +55 -0
  1472. package/lib/typescript/src/views/index.d.ts +4 -0
  1473. package/lib/typescript/src/views/types.d.ts +67 -0
  1474. package/lib/typescript/src/views/useDrawCallback.d.ts +8 -0
  1475. package/lib/typescript/src/views/useTouchHandler.d.ts +12 -0
  1476. package/libs/android/arm64-v8a/libskia.a +0 -0
  1477. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  1478. package/libs/android/arm64-v8a/libsvg.a +0 -0
  1479. package/libs/android/armeabi-v7a/libskia.a +0 -0
  1480. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  1481. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  1482. package/libs/android/x86/libskia.a +0 -0
  1483. package/libs/android/x86/libskshaper.a +0 -0
  1484. package/libs/android/x86/libsvg.a +0 -0
  1485. package/libs/android/x86_64/libskia.a +0 -0
  1486. package/libs/android/x86_64/libskshaper.a +0 -0
  1487. package/libs/android/x86_64/libsvg.a +0 -0
  1488. package/libs/ios/libskia.xcframework/Info.plist +42 -0
  1489. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  1490. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  1491. package/libs/ios/libskshaper.xcframework/Info.plist +42 -0
  1492. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  1493. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  1494. package/libs/ios/libsvg.xcframework/Info.plist +42 -0
  1495. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  1496. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  1497. package/package.json +100 -0
  1498. package/react-native-skia.podspec +71 -0
  1499. package/scripts/install-npm.js +23 -0
  1500. package/src/external/index.ts +1 -0
  1501. package/src/external/reanimated/index.ts +1 -0
  1502. package/src/external/reanimated/useSharedValueEffect.ts +81 -0
  1503. package/src/index.ts +7 -0
  1504. package/src/renderer/Canvas.tsx +190 -0
  1505. package/src/renderer/DependencyManager.tsx +59 -0
  1506. package/src/renderer/DrawingContext.ts +16 -0
  1507. package/src/renderer/HostConfig.ts +321 -0
  1508. package/src/renderer/components/Blend.tsx +28 -0
  1509. package/src/renderer/components/Compose.tsx +28 -0
  1510. package/src/renderer/components/Defs.tsx +19 -0
  1511. package/src/renderer/components/Group.tsx +61 -0
  1512. package/src/renderer/components/Mask.tsx +43 -0
  1513. package/src/renderer/components/Paint.tsx +59 -0
  1514. package/src/renderer/components/backdrop/BackdropBlur.tsx +23 -0
  1515. package/src/renderer/components/backdrop/BackdropFilter.tsx +47 -0
  1516. package/src/renderer/components/backdrop/index.ts +2 -0
  1517. package/src/renderer/components/colorFilters/BlendColor.tsx +30 -0
  1518. package/src/renderer/components/colorFilters/Compose.ts +17 -0
  1519. package/src/renderer/components/colorFilters/Lerp.tsx +27 -0
  1520. package/src/renderer/components/colorFilters/LinearToSRGBGamma.tsx +21 -0
  1521. package/src/renderer/components/colorFilters/LumaColorFilter.tsx +19 -0
  1522. package/src/renderer/components/colorFilters/Matrix.tsx +47 -0
  1523. package/src/renderer/components/colorFilters/SRGBToLinearGamma.tsx +21 -0
  1524. package/src/renderer/components/colorFilters/index.ts +6 -0
  1525. package/src/renderer/components/image/BoxFit.ts +131 -0
  1526. package/src/renderer/components/image/Image.tsx +50 -0
  1527. package/src/renderer/components/image/ImageSVG.tsx +24 -0
  1528. package/src/renderer/components/image/ImageShader.tsx +81 -0
  1529. package/src/renderer/components/image/index.ts +4 -0
  1530. package/src/renderer/components/imageFilters/Blur.tsx +35 -0
  1531. package/src/renderer/components/imageFilters/DisplacementMap.tsx +35 -0
  1532. package/src/renderer/components/imageFilters/DropShadow.tsx +31 -0
  1533. package/src/renderer/components/imageFilters/InnerShadow.tsx +50 -0
  1534. package/src/renderer/components/imageFilters/Morphology.tsx +34 -0
  1535. package/src/renderer/components/imageFilters/Offset.tsx +27 -0
  1536. package/src/renderer/components/imageFilters/getInput.ts +19 -0
  1537. package/src/renderer/components/imageFilters/index.ts +6 -0
  1538. package/src/renderer/components/index.ts +17 -0
  1539. package/src/renderer/components/maskFilters/Blur.tsx +33 -0
  1540. package/src/renderer/components/maskFilters/index.ts +1 -0
  1541. package/src/renderer/components/pathEffects/Corner.tsx +32 -0
  1542. package/src/renderer/components/pathEffects/Dash.tsx +28 -0
  1543. package/src/renderer/components/pathEffects/Discrete.tsx +35 -0
  1544. package/src/renderer/components/pathEffects/Line2D.tsx +34 -0
  1545. package/src/renderer/components/pathEffects/Path1D.tsx +44 -0
  1546. package/src/renderer/components/pathEffects/Path2D.tsx +36 -0
  1547. package/src/renderer/components/pathEffects/Sum.tsx +20 -0
  1548. package/src/renderer/components/pathEffects/index.ts +7 -0
  1549. package/src/renderer/components/shaders/Color.tsx +18 -0
  1550. package/src/renderer/components/shaders/FractalNoise.tsx +37 -0
  1551. package/src/renderer/components/shaders/Gradient.ts +29 -0
  1552. package/src/renderer/components/shaders/LinearGradient.tsx +33 -0
  1553. package/src/renderer/components/shaders/RadialGradient.tsx +33 -0
  1554. package/src/renderer/components/shaders/Shader.tsx +84 -0
  1555. package/src/renderer/components/shaders/ShaderLib.ts +46 -0
  1556. package/src/renderer/components/shaders/SweepGradient.tsx +36 -0
  1557. package/src/renderer/components/shaders/Turbulence.tsx +37 -0
  1558. package/src/renderer/components/shaders/TwoPointConicalGradient.tsx +39 -0
  1559. package/src/renderer/components/shaders/index.ts +9 -0
  1560. package/src/renderer/components/shapes/Circle.tsx +25 -0
  1561. package/src/renderer/components/shapes/DiffRect.tsx +21 -0
  1562. package/src/renderer/components/shapes/Fill.tsx +15 -0
  1563. package/src/renderer/components/shapes/FitBox.tsx +26 -0
  1564. package/src/renderer/components/shapes/Line.tsx +16 -0
  1565. package/src/renderer/components/shapes/Oval.tsx +25 -0
  1566. package/src/renderer/components/shapes/Patch.tsx +68 -0
  1567. package/src/renderer/components/shapes/Path.tsx +49 -0
  1568. package/src/renderer/components/shapes/Points.tsx +28 -0
  1569. package/src/renderer/components/shapes/Rect.tsx +20 -0
  1570. package/src/renderer/components/shapes/RoundedRect.tsx +25 -0
  1571. package/src/renderer/components/shapes/Vertices.tsx +44 -0
  1572. package/src/renderer/components/shapes/index.ts +12 -0
  1573. package/src/renderer/components/text/Glyphs.tsx +49 -0
  1574. package/src/renderer/components/text/Text.tsx +32 -0
  1575. package/src/renderer/components/text/TextBlob.tsx +26 -0
  1576. package/src/renderer/components/text/TextPath.tsx +70 -0
  1577. package/src/renderer/components/text/index.ts +4 -0
  1578. package/src/renderer/index.ts +3 -0
  1579. package/src/renderer/nodes/Container.tsx +17 -0
  1580. package/src/renderer/nodes/Declaration.tsx +53 -0
  1581. package/src/renderer/nodes/Drawing.tsx +76 -0
  1582. package/src/renderer/nodes/Node.ts +60 -0
  1583. package/src/renderer/nodes/index.ts +4 -0
  1584. package/src/renderer/processors/Animations/Animations.ts +48 -0
  1585. package/src/renderer/processors/Animations/index.ts +1 -0
  1586. package/src/renderer/processors/Circles.ts +25 -0
  1587. package/src/renderer/processors/Clips.ts +19 -0
  1588. package/src/renderer/processors/Font.ts +25 -0
  1589. package/src/renderer/processors/Paint.ts +105 -0
  1590. package/src/renderer/processors/Paths.ts +19 -0
  1591. package/src/renderer/processors/Radius.ts +11 -0
  1592. package/src/renderer/processors/Rects.ts +86 -0
  1593. package/src/renderer/processors/Transform.ts +44 -0
  1594. package/src/renderer/processors/index.ts +10 -0
  1595. package/src/renderer/processors/math/Coordinates.ts +32 -0
  1596. package/src/renderer/processors/math/Math.ts +2 -0
  1597. package/src/renderer/processors/math/Matrix3.ts +150 -0
  1598. package/src/renderer/processors/math/Transforms.ts +7 -0
  1599. package/src/renderer/processors/math/Vector.ts +37 -0
  1600. package/src/renderer/processors/math/index.ts +5 -0
  1601. package/src/renderer/typeddash.ts +5 -0
  1602. package/src/skia/Canvas.ts +488 -0
  1603. package/src/skia/Color.ts +51 -0
  1604. package/src/skia/ColorFilter/ColorFilter.ts +7 -0
  1605. package/src/skia/ColorFilter/ColorFilterFactory.ts +52 -0
  1606. package/src/skia/ColorFilter/index.ts +2 -0
  1607. package/src/skia/ContourMeasure.tsx +49 -0
  1608. package/src/skia/Data/Data.ts +61 -0
  1609. package/src/skia/Data/DataFactory.ts +19 -0
  1610. package/src/skia/Data/index.ts +2 -0
  1611. package/src/skia/Font/Font.ts +230 -0
  1612. package/src/skia/Font/index.ts +2 -0
  1613. package/src/skia/Font/useFont.ts +27 -0
  1614. package/src/skia/FontMgr/FontMgr.ts +24 -0
  1615. package/src/skia/FontMgr/FontMgrFactory.ts +17 -0
  1616. package/src/skia/FontMgr/index.ts +1 -0
  1617. package/src/skia/Image/Image.ts +96 -0
  1618. package/src/skia/Image/ImageFactory.ts +78 -0
  1619. package/src/skia/Image/index.ts +3 -0
  1620. package/src/skia/Image/useImage.ts +9 -0
  1621. package/src/skia/ImageFilter/ImageFilter.ts +31 -0
  1622. package/src/skia/ImageFilter/ImageFilterFactory.ts +172 -0
  1623. package/src/skia/ImageFilter/index.ts +2 -0
  1624. package/src/skia/JsiInstance.ts +3 -0
  1625. package/src/skia/MaskFilter.ts +27 -0
  1626. package/src/skia/Matrix.ts +23 -0
  1627. package/src/skia/NativeSetup.ts +18 -0
  1628. package/src/skia/Paint/BlendMode.ts +61 -0
  1629. package/src/skia/Paint/Paint.ts +153 -0
  1630. package/src/skia/Paint/index.ts +3 -0
  1631. package/src/skia/Paint/usePaint.ts +23 -0
  1632. package/src/skia/Path/Path.ts +538 -0
  1633. package/src/skia/Path/PathFactory.ts +20 -0
  1634. package/src/skia/Path/index.ts +3 -0
  1635. package/src/skia/Path/usePath.ts +54 -0
  1636. package/src/skia/PathEffect.ts +93 -0
  1637. package/src/skia/Point.ts +10 -0
  1638. package/src/skia/RRect.ts +7 -0
  1639. package/src/skia/RSXform.ts +3 -0
  1640. package/src/skia/Rect.ts +6 -0
  1641. package/src/skia/RuntimeEffect/RuntimeEffect.ts +63 -0
  1642. package/src/skia/RuntimeEffect/RuntimeEffectFactory.ts +12 -0
  1643. package/src/skia/RuntimeEffect/index.ts +2 -0
  1644. package/src/skia/SVG/SVG.ts +3 -0
  1645. package/src/skia/SVG/SVGFactory.ts +8 -0
  1646. package/src/skia/SVG/index.ts +3 -0
  1647. package/src/skia/SVG/useSvg.ts +6 -0
  1648. package/src/skia/Shader/Shader.ts +6 -0
  1649. package/src/skia/Shader/ShaderFactory.ts +169 -0
  1650. package/src/skia/Shader/index.ts +3 -0
  1651. package/src/skia/Shader/useShader.ts +6 -0
  1652. package/src/skia/Skia.ts +120 -0
  1653. package/src/skia/Surface/Surface.ts +27 -0
  1654. package/src/skia/Surface/SurfaceFactory.ts +12 -0
  1655. package/src/skia/Surface/index.ts +2 -0
  1656. package/src/skia/TextBlob.ts +52 -0
  1657. package/src/skia/Typeface/Typeface.ts +6 -0
  1658. package/src/skia/Typeface/TypefaceFactory.ts +7 -0
  1659. package/src/skia/Typeface/index.ts +3 -0
  1660. package/src/skia/Typeface/useTypeface.ts +9 -0
  1661. package/src/skia/Vertices/Vertices.tsx +20 -0
  1662. package/src/skia/Vertices/index.ts +1 -0
  1663. package/src/skia/index.ts +22 -0
  1664. package/src/values/animation/decay/decay.ts +35 -0
  1665. package/src/values/animation/decay/index.ts +1 -0
  1666. package/src/values/animation/decay/runDecay.ts +37 -0
  1667. package/src/values/animation/decay/types.ts +24 -0
  1668. package/src/values/animation/functions/index.ts +2 -0
  1669. package/src/values/animation/functions/interpolate.ts +169 -0
  1670. package/src/values/animation/functions/interpolateColors.ts +62 -0
  1671. package/src/values/animation/index.ts +4 -0
  1672. package/src/values/animation/spring/Spring.ts +61 -0
  1673. package/src/values/animation/spring/functions/index.ts +1 -0
  1674. package/src/values/animation/spring/functions/spring.ts +86 -0
  1675. package/src/values/animation/spring/index.ts +3 -0
  1676. package/src/values/animation/spring/runSpring.ts +37 -0
  1677. package/src/values/animation/spring/types.ts +6 -0
  1678. package/src/values/animation/spring/useSpring.ts +28 -0
  1679. package/src/values/animation/timing/Easing.ts +102 -0
  1680. package/src/values/animation/timing/createTiming.ts +62 -0
  1681. package/src/values/animation/timing/functions/__tests__/timing.spec.ts +29 -0
  1682. package/src/values/animation/timing/functions/bezier.ts +165 -0
  1683. package/src/values/animation/timing/functions/getResolvedParams.ts +50 -0
  1684. package/src/values/animation/timing/functions/index.ts +4 -0
  1685. package/src/values/animation/timing/functions/timing.ts +44 -0
  1686. package/src/values/animation/timing/functions/types.ts +8 -0
  1687. package/src/values/animation/timing/index.ts +4 -0
  1688. package/src/values/animation/timing/runTiming.ts +33 -0
  1689. package/src/values/animation/timing/useLoop.ts +18 -0
  1690. package/src/values/animation/timing/useTiming.ts +68 -0
  1691. package/src/values/animation/types.ts +23 -0
  1692. package/src/values/api.ts +49 -0
  1693. package/src/values/hooks/index.ts +4 -0
  1694. package/src/values/hooks/useClockValue.ts +18 -0
  1695. package/src/values/hooks/useDerivedValue.ts +18 -0
  1696. package/src/values/hooks/useValue.ts +14 -0
  1697. package/src/values/hooks/useValueEffect.ts +18 -0
  1698. package/src/values/index.ts +4 -0
  1699. package/src/values/types.ts +40 -0
  1700. package/src/views/SkiaView.tsx +161 -0
  1701. package/src/views/index.ts +4 -0
  1702. package/src/views/types.ts +80 -0
  1703. package/src/views/useDrawCallback.ts +19 -0
  1704. package/src/views/useTouchHandler.ts +80 -0
@@ -0,0 +1,1891 @@
1
+ /*
2
+ * Copyright 2006 The Android Open Source Project
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef SkPath_DEFINED
9
+ #define SkPath_DEFINED
10
+
11
+ #include "include/core/SkMatrix.h"
12
+ #include "include/core/SkPathTypes.h"
13
+ #include "include/private/SkPathRef.h"
14
+ #include "include/private/SkTo.h"
15
+
16
+ #include <initializer_list>
17
+
18
+ class SkAutoPathBoundsUpdate;
19
+ class SkData;
20
+ class SkRRect;
21
+ class SkWStream;
22
+
23
+ // WIP -- define this locally, and fix call-sites to use SkPathBuilder (skbug.com/9000)
24
+ //#define SK_HIDE_PATH_EDIT_METHODS
25
+
26
+ /** \class SkPath
27
+ SkPath contain geometry. SkPath may be empty, or contain one or more verbs that
28
+ outline a figure. SkPath always starts with a move verb to a Cartesian coordinate,
29
+ and may be followed by additional verbs that add lines or curves.
30
+ Adding a close verb makes the geometry into a continuous loop, a closed contour.
31
+ SkPath may contain any number of contours, each beginning with a move verb.
32
+
33
+ SkPath contours may contain only a move verb, or may also contain lines,
34
+ quadratic beziers, conics, and cubic beziers. SkPath contours may be open or
35
+ closed.
36
+
37
+ When used to draw a filled area, SkPath describes whether the fill is inside or
38
+ outside the geometry. SkPath also describes the winding rule used to fill
39
+ overlapping contours.
40
+
41
+ Internally, SkPath lazily computes metrics likes bounds and convexity. Call
42
+ SkPath::updateBoundsCache to make SkPath thread safe.
43
+ */
44
+ class SK_API SkPath {
45
+ public:
46
+ /**
47
+ * Create a new path with the specified segments.
48
+ *
49
+ * The points and weights arrays are read in order, based on the sequence of verbs.
50
+ *
51
+ * Move 1 point
52
+ * Line 1 point
53
+ * Quad 2 points
54
+ * Conic 2 points and 1 weight
55
+ * Cubic 3 points
56
+ * Close 0 points
57
+ *
58
+ * If an illegal sequence of verbs is encountered, or the specified number of points
59
+ * or weights is not sufficient given the verbs, an empty Path is returned.
60
+ *
61
+ * A legal sequence of verbs consists of any number of Contours. A contour always begins
62
+ * with a Move verb, followed by 0 or more segments: Line, Quad, Conic, Cubic, followed
63
+ * by an optional Close.
64
+ */
65
+ static SkPath Make(const SkPoint[], int pointCount,
66
+ const uint8_t[], int verbCount,
67
+ const SkScalar[], int conicWeightCount,
68
+ SkPathFillType, bool isVolatile = false);
69
+
70
+ static SkPath Rect(const SkRect&, SkPathDirection = SkPathDirection::kCW,
71
+ unsigned startIndex = 0);
72
+ static SkPath Oval(const SkRect&, SkPathDirection = SkPathDirection::kCW);
73
+ static SkPath Oval(const SkRect&, SkPathDirection, unsigned startIndex);
74
+ static SkPath Circle(SkScalar center_x, SkScalar center_y, SkScalar radius,
75
+ SkPathDirection dir = SkPathDirection::kCW);
76
+ static SkPath RRect(const SkRRect&, SkPathDirection dir = SkPathDirection::kCW);
77
+ static SkPath RRect(const SkRRect&, SkPathDirection, unsigned startIndex);
78
+ static SkPath RRect(const SkRect& bounds, SkScalar rx, SkScalar ry,
79
+ SkPathDirection dir = SkPathDirection::kCW);
80
+
81
+ static SkPath Polygon(const SkPoint pts[], int count, bool isClosed,
82
+ SkPathFillType = SkPathFillType::kWinding,
83
+ bool isVolatile = false);
84
+
85
+ static SkPath Polygon(const std::initializer_list<SkPoint>& list, bool isClosed,
86
+ SkPathFillType fillType = SkPathFillType::kWinding,
87
+ bool isVolatile = false) {
88
+ return Polygon(list.begin(), SkToInt(list.size()), isClosed, fillType, isVolatile);
89
+ }
90
+
91
+ static SkPath Line(const SkPoint a, const SkPoint b) {
92
+ return Polygon({a, b}, false);
93
+ }
94
+
95
+ /** Constructs an empty SkPath. By default, SkPath has no verbs, no SkPoint, and no weights.
96
+ FillType is set to kWinding.
97
+
98
+ @return empty SkPath
99
+
100
+ example: https://fiddle.skia.org/c/@Path_empty_constructor
101
+ */
102
+ SkPath();
103
+
104
+ /** Constructs a copy of an existing path.
105
+ Copy constructor makes two paths identical by value. Internally, path and
106
+ the returned result share pointer values. The underlying verb array, SkPoint array
107
+ and weights are copied when modified.
108
+
109
+ Creating a SkPath copy is very efficient and never allocates memory.
110
+ SkPath are always copied by value from the interface; the underlying shared
111
+ pointers are not exposed.
112
+
113
+ @param path SkPath to copy by value
114
+ @return copy of SkPath
115
+
116
+ example: https://fiddle.skia.org/c/@Path_copy_const_SkPath
117
+ */
118
+ SkPath(const SkPath& path);
119
+
120
+ /** Releases ownership of any shared data and deletes data if SkPath is sole owner.
121
+
122
+ example: https://fiddle.skia.org/c/@Path_destructor
123
+ */
124
+ ~SkPath();
125
+
126
+ /** Constructs a copy of an existing path.
127
+ SkPath assignment makes two paths identical by value. Internally, assignment
128
+ shares pointer values. The underlying verb array, SkPoint array and weights
129
+ are copied when modified.
130
+
131
+ Copying SkPath by assignment is very efficient and never allocates memory.
132
+ SkPath are always copied by value from the interface; the underlying shared
133
+ pointers are not exposed.
134
+
135
+ @param path verb array, SkPoint array, weights, and SkPath::FillType to copy
136
+ @return SkPath copied by value
137
+
138
+ example: https://fiddle.skia.org/c/@Path_copy_operator
139
+ */
140
+ SkPath& operator=(const SkPath& path);
141
+
142
+ /** Compares a and b; returns true if SkPath::FillType, verb array, SkPoint array, and weights
143
+ are equivalent.
144
+
145
+ @param a SkPath to compare
146
+ @param b SkPath to compare
147
+ @return true if SkPath pair are equivalent
148
+ */
149
+ friend SK_API bool operator==(const SkPath& a, const SkPath& b);
150
+
151
+ /** Compares a and b; returns true if SkPath::FillType, verb array, SkPoint array, and weights
152
+ are not equivalent.
153
+
154
+ @param a SkPath to compare
155
+ @param b SkPath to compare
156
+ @return true if SkPath pair are not equivalent
157
+ */
158
+ friend bool operator!=(const SkPath& a, const SkPath& b) {
159
+ return !(a == b);
160
+ }
161
+
162
+ /** Returns true if SkPath contain equal verbs and equal weights.
163
+ If SkPath contain one or more conics, the weights must match.
164
+
165
+ conicTo() may add different verbs depending on conic weight, so it is not
166
+ trivial to interpolate a pair of SkPath containing conics with different
167
+ conic weight values.
168
+
169
+ @param compare SkPath to compare
170
+ @return true if SkPath verb array and weights are equivalent
171
+
172
+ example: https://fiddle.skia.org/c/@Path_isInterpolatable
173
+ */
174
+ bool isInterpolatable(const SkPath& compare) const;
175
+
176
+ /** Interpolates between SkPath with SkPoint array of equal size.
177
+ Copy verb array and weights to out, and set out SkPoint array to a weighted
178
+ average of this SkPoint array and ending SkPoint array, using the formula:
179
+ (Path Point * weight) + ending Point * (1 - weight).
180
+
181
+ weight is most useful when between zero (ending SkPoint array) and
182
+ one (this Point_Array); will work with values outside of this
183
+ range.
184
+
185
+ interpolate() returns false and leaves out unchanged if SkPoint array is not
186
+ the same size as ending SkPoint array. Call isInterpolatable() to check SkPath
187
+ compatibility prior to calling interpolate().
188
+
189
+ @param ending SkPoint array averaged with this SkPoint array
190
+ @param weight contribution of this SkPoint array, and
191
+ one minus contribution of ending SkPoint array
192
+ @param out SkPath replaced by interpolated averages
193
+ @return true if SkPath contain same number of SkPoint
194
+
195
+ example: https://fiddle.skia.org/c/@Path_interpolate
196
+ */
197
+ bool interpolate(const SkPath& ending, SkScalar weight, SkPath* out) const;
198
+
199
+ /** Returns SkPathFillType, the rule used to fill SkPath.
200
+
201
+ @return current SkPathFillType setting
202
+ */
203
+ SkPathFillType getFillType() const { return (SkPathFillType)fFillType; }
204
+
205
+ /** Sets FillType, the rule used to fill SkPath. While there is no check
206
+ that ft is legal, values outside of FillType are not supported.
207
+ */
208
+ void setFillType(SkPathFillType ft) {
209
+ fFillType = SkToU8(ft);
210
+ }
211
+
212
+ /** Returns if FillType describes area outside SkPath geometry. The inverse fill area
213
+ extends indefinitely.
214
+
215
+ @return true if FillType is kInverseWinding or kInverseEvenOdd
216
+ */
217
+ bool isInverseFillType() const { return SkPathFillType_IsInverse(this->getFillType()); }
218
+
219
+ /** Replaces FillType with its inverse. The inverse of FillType describes the area
220
+ unmodified by the original FillType.
221
+ */
222
+ void toggleInverseFillType() {
223
+ fFillType ^= 2;
224
+ }
225
+
226
+ /** Returns true if the path is convex. If necessary, it will first compute the convexity.
227
+ */
228
+ bool isConvex() const {
229
+ return SkPathConvexity::kConvex == this->getConvexity();
230
+ }
231
+
232
+ /** Returns true if this path is recognized as an oval or circle.
233
+
234
+ bounds receives bounds of oval.
235
+
236
+ bounds is unmodified if oval is not found.
237
+
238
+ @param bounds storage for bounding SkRect of oval; may be nullptr
239
+ @return true if SkPath is recognized as an oval or circle
240
+
241
+ example: https://fiddle.skia.org/c/@Path_isOval
242
+ */
243
+ bool isOval(SkRect* bounds) const;
244
+
245
+ /** Returns true if path is representable as SkRRect.
246
+ Returns false if path is representable as oval, circle, or SkRect.
247
+
248
+ rrect receives bounds of SkRRect.
249
+
250
+ rrect is unmodified if SkRRect is not found.
251
+
252
+ @param rrect storage for bounding SkRect of SkRRect; may be nullptr
253
+ @return true if SkPath contains only SkRRect
254
+
255
+ example: https://fiddle.skia.org/c/@Path_isRRect
256
+ */
257
+ bool isRRect(SkRRect* rrect) const;
258
+
259
+ /** Sets SkPath to its initial state.
260
+ Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
261
+ Internal storage associated with SkPath is released.
262
+
263
+ @return reference to SkPath
264
+
265
+ example: https://fiddle.skia.org/c/@Path_reset
266
+ */
267
+ SkPath& reset();
268
+
269
+ /** Sets SkPath to its initial state, preserving internal storage.
270
+ Removes verb array, SkPoint array, and weights, and sets FillType to kWinding.
271
+ Internal storage associated with SkPath is retained.
272
+
273
+ Use rewind() instead of reset() if SkPath storage will be reused and performance
274
+ is critical.
275
+
276
+ @return reference to SkPath
277
+
278
+ example: https://fiddle.skia.org/c/@Path_rewind
279
+ */
280
+ SkPath& rewind();
281
+
282
+ /** Returns if SkPath is empty.
283
+ Empty SkPath may have FillType but has no SkPoint, SkPath::Verb, or conic weight.
284
+ SkPath() constructs empty SkPath; reset() and rewind() make SkPath empty.
285
+
286
+ @return true if the path contains no SkPath::Verb array
287
+ */
288
+ bool isEmpty() const {
289
+ SkDEBUGCODE(this->validate();)
290
+ return 0 == fPathRef->countVerbs();
291
+ }
292
+
293
+ /** Returns if contour is closed.
294
+ Contour is closed if SkPath SkPath::Verb array was last modified by close(). When stroked,
295
+ closed contour draws SkPaint::Join instead of SkPaint::Cap at first and last SkPoint.
296
+
297
+ @return true if the last contour ends with a kClose_Verb
298
+
299
+ example: https://fiddle.skia.org/c/@Path_isLastContourClosed
300
+ */
301
+ bool isLastContourClosed() const;
302
+
303
+ /** Returns true for finite SkPoint array values between negative SK_ScalarMax and
304
+ positive SK_ScalarMax. Returns false for any SkPoint array value of
305
+ SK_ScalarInfinity, SK_ScalarNegativeInfinity, or SK_ScalarNaN.
306
+
307
+ @return true if all SkPoint values are finite
308
+ */
309
+ bool isFinite() const {
310
+ SkDEBUGCODE(this->validate();)
311
+ return fPathRef->isFinite();
312
+ }
313
+
314
+ /** Returns true if the path is volatile; it will not be altered or discarded
315
+ by the caller after it is drawn. SkPath by default have volatile set false, allowing
316
+ SkSurface to attach a cache of data which speeds repeated drawing. If true, SkSurface
317
+ may not speed repeated drawing.
318
+
319
+ @return true if caller will alter SkPath after drawing
320
+ */
321
+ bool isVolatile() const {
322
+ return SkToBool(fIsVolatile);
323
+ }
324
+
325
+ /** Specifies whether SkPath is volatile; whether it will be altered or discarded
326
+ by the caller after it is drawn. SkPath by default have volatile set false, allowing
327
+ SkBaseDevice to attach a cache of data which speeds repeated drawing.
328
+
329
+ Mark temporary paths, discarded or modified after use, as volatile
330
+ to inform SkBaseDevice that the path need not be cached.
331
+
332
+ Mark animating SkPath volatile to improve performance.
333
+ Mark unchanging SkPath non-volatile to improve repeated rendering.
334
+
335
+ raster surface SkPath draws are affected by volatile for some shadows.
336
+ GPU surface SkPath draws are affected by volatile for some shadows and concave geometries.
337
+
338
+ @param isVolatile true if caller will alter SkPath after drawing
339
+ @return reference to SkPath
340
+ */
341
+ SkPath& setIsVolatile(bool isVolatile) {
342
+ fIsVolatile = isVolatile;
343
+ return *this;
344
+ }
345
+
346
+ /** Tests if line between SkPoint pair is degenerate.
347
+ Line with no length or that moves a very short distance is degenerate; it is
348
+ treated as a point.
349
+
350
+ exact changes the equality test. If true, returns true only if p1 equals p2.
351
+ If false, returns true if p1 equals or nearly equals p2.
352
+
353
+ @param p1 line start point
354
+ @param p2 line end point
355
+ @param exact if false, allow nearly equals
356
+ @return true if line is degenerate; its length is effectively zero
357
+
358
+ example: https://fiddle.skia.org/c/@Path_IsLineDegenerate
359
+ */
360
+ static bool IsLineDegenerate(const SkPoint& p1, const SkPoint& p2, bool exact);
361
+
362
+ /** Tests if quad is degenerate.
363
+ Quad with no length or that moves a very short distance is degenerate; it is
364
+ treated as a point.
365
+
366
+ @param p1 quad start point
367
+ @param p2 quad control point
368
+ @param p3 quad end point
369
+ @param exact if true, returns true only if p1, p2, and p3 are equal;
370
+ if false, returns true if p1, p2, and p3 are equal or nearly equal
371
+ @return true if quad is degenerate; its length is effectively zero
372
+ */
373
+ static bool IsQuadDegenerate(const SkPoint& p1, const SkPoint& p2,
374
+ const SkPoint& p3, bool exact);
375
+
376
+ /** Tests if cubic is degenerate.
377
+ Cubic with no length or that moves a very short distance is degenerate; it is
378
+ treated as a point.
379
+
380
+ @param p1 cubic start point
381
+ @param p2 cubic control point 1
382
+ @param p3 cubic control point 2
383
+ @param p4 cubic end point
384
+ @param exact if true, returns true only if p1, p2, p3, and p4 are equal;
385
+ if false, returns true if p1, p2, p3, and p4 are equal or nearly equal
386
+ @return true if cubic is degenerate; its length is effectively zero
387
+ */
388
+ static bool IsCubicDegenerate(const SkPoint& p1, const SkPoint& p2,
389
+ const SkPoint& p3, const SkPoint& p4, bool exact);
390
+
391
+ /** Returns true if SkPath contains only one line;
392
+ SkPath::Verb array has two entries: kMove_Verb, kLine_Verb.
393
+ If SkPath contains one line and line is not nullptr, line is set to
394
+ line start point and line end point.
395
+ Returns false if SkPath is not one line; line is unaltered.
396
+
397
+ @param line storage for line. May be nullptr
398
+ @return true if SkPath contains exactly one line
399
+
400
+ example: https://fiddle.skia.org/c/@Path_isLine
401
+ */
402
+ bool isLine(SkPoint line[2]) const;
403
+
404
+ /** Returns the number of points in SkPath.
405
+ SkPoint count is initially zero.
406
+
407
+ @return SkPath SkPoint array length
408
+
409
+ example: https://fiddle.skia.org/c/@Path_countPoints
410
+ */
411
+ int countPoints() const;
412
+
413
+ /** Returns SkPoint at index in SkPoint array. Valid range for index is
414
+ 0 to countPoints() - 1.
415
+ Returns (0, 0) if index is out of range.
416
+
417
+ @param index SkPoint array element selector
418
+ @return SkPoint array value or (0, 0)
419
+
420
+ example: https://fiddle.skia.org/c/@Path_getPoint
421
+ */
422
+ SkPoint getPoint(int index) const;
423
+
424
+ /** Returns number of points in SkPath. Up to max points are copied.
425
+ points may be nullptr; then, max must be zero.
426
+ If max is greater than number of points, excess points storage is unaltered.
427
+
428
+ @param points storage for SkPath SkPoint array. May be nullptr
429
+ @param max maximum to copy; must be greater than or equal to zero
430
+ @return SkPath SkPoint array length
431
+
432
+ example: https://fiddle.skia.org/c/@Path_getPoints
433
+ */
434
+ int getPoints(SkPoint points[], int max) const;
435
+
436
+ /** Returns the number of verbs: kMove_Verb, kLine_Verb, kQuad_Verb, kConic_Verb,
437
+ kCubic_Verb, and kClose_Verb; added to SkPath.
438
+
439
+ @return length of verb array
440
+
441
+ example: https://fiddle.skia.org/c/@Path_countVerbs
442
+ */
443
+ int countVerbs() const;
444
+
445
+ /** Returns the number of verbs in the path. Up to max verbs are copied. The
446
+ verbs are copied as one byte per verb.
447
+
448
+ @param verbs storage for verbs, may be nullptr
449
+ @param max maximum number to copy into verbs
450
+ @return the actual number of verbs in the path
451
+
452
+ example: https://fiddle.skia.org/c/@Path_getVerbs
453
+ */
454
+ int getVerbs(uint8_t verbs[], int max) const;
455
+
456
+ /** Returns the approximate byte size of the SkPath in memory.
457
+
458
+ @return approximate size
459
+ */
460
+ size_t approximateBytesUsed() const;
461
+
462
+ /** Exchanges the verb array, SkPoint array, weights, and SkPath::FillType with other.
463
+ Cached state is also exchanged. swap() internally exchanges pointers, so
464
+ it is lightweight and does not allocate memory.
465
+
466
+ swap() usage has largely been replaced by operator=(const SkPath& path).
467
+ SkPath do not copy their content on assignment until they are written to,
468
+ making assignment as efficient as swap().
469
+
470
+ @param other SkPath exchanged by value
471
+
472
+ example: https://fiddle.skia.org/c/@Path_swap
473
+ */
474
+ void swap(SkPath& other);
475
+
476
+ /** Returns minimum and maximum axes values of SkPoint array.
477
+ Returns (0, 0, 0, 0) if SkPath contains no points. Returned bounds width and height may
478
+ be larger or smaller than area affected when SkPath is drawn.
479
+
480
+ SkRect returned includes all SkPoint added to SkPath, including SkPoint associated with
481
+ kMove_Verb that define empty contours.
482
+
483
+ @return bounds of all SkPoint in SkPoint array
484
+ */
485
+ const SkRect& getBounds() const {
486
+ return fPathRef->getBounds();
487
+ }
488
+
489
+ /** Updates internal bounds so that subsequent calls to getBounds() are instantaneous.
490
+ Unaltered copies of SkPath may also access cached bounds through getBounds().
491
+
492
+ For now, identical to calling getBounds() and ignoring the returned value.
493
+
494
+ Call to prepare SkPath subsequently drawn from multiple threads,
495
+ to avoid a race condition where each draw separately computes the bounds.
496
+ */
497
+ void updateBoundsCache() const {
498
+ // for now, just calling getBounds() is sufficient
499
+ this->getBounds();
500
+ }
501
+
502
+ /** Returns minimum and maximum axes values of the lines and curves in SkPath.
503
+ Returns (0, 0, 0, 0) if SkPath contains no points.
504
+ Returned bounds width and height may be larger or smaller than area affected
505
+ when SkPath is drawn.
506
+
507
+ Includes SkPoint associated with kMove_Verb that define empty
508
+ contours.
509
+
510
+ Behaves identically to getBounds() when SkPath contains
511
+ only lines. If SkPath contains curves, computed bounds includes
512
+ the maximum extent of the quad, conic, or cubic; is slower than getBounds();
513
+ and unlike getBounds(), does not cache the result.
514
+
515
+ @return tight bounds of curves in SkPath
516
+
517
+ example: https://fiddle.skia.org/c/@Path_computeTightBounds
518
+ */
519
+ SkRect computeTightBounds() const;
520
+
521
+ /** Returns true if rect is contained by SkPath.
522
+ May return false when rect is contained by SkPath.
523
+
524
+ For now, only returns true if SkPath has one contour and is convex.
525
+ rect may share points and edges with SkPath and be contained.
526
+ Returns true if rect is empty, that is, it has zero width or height; and
527
+ the SkPoint or line described by rect is contained by SkPath.
528
+
529
+ @param rect SkRect, line, or SkPoint checked for containment
530
+ @return true if rect is contained
531
+
532
+ example: https://fiddle.skia.org/c/@Path_conservativelyContainsRect
533
+ */
534
+ bool conservativelyContainsRect(const SkRect& rect) const;
535
+
536
+ /** Grows SkPath verb array and SkPoint array to contain extraPtCount additional SkPoint.
537
+ May improve performance and use less memory by
538
+ reducing the number and size of allocations when creating SkPath.
539
+
540
+ @param extraPtCount number of additional SkPoint to allocate
541
+
542
+ example: https://fiddle.skia.org/c/@Path_incReserve
543
+ */
544
+ void incReserve(int extraPtCount);
545
+
546
+ #ifdef SK_HIDE_PATH_EDIT_METHODS
547
+ private:
548
+ #endif
549
+
550
+ /** Adds beginning of contour at SkPoint (x, y).
551
+
552
+ @param x x-axis value of contour start
553
+ @param y y-axis value of contour start
554
+ @return reference to SkPath
555
+
556
+ example: https://fiddle.skia.org/c/@Path_moveTo
557
+ */
558
+ SkPath& moveTo(SkScalar x, SkScalar y);
559
+
560
+ /** Adds beginning of contour at SkPoint p.
561
+
562
+ @param p contour start
563
+ @return reference to SkPath
564
+ */
565
+ SkPath& moveTo(const SkPoint& p) {
566
+ return this->moveTo(p.fX, p.fY);
567
+ }
568
+
569
+ /** Adds beginning of contour relative to last point.
570
+ If SkPath is empty, starts contour at (dx, dy).
571
+ Otherwise, start contour at last point offset by (dx, dy).
572
+ Function name stands for "relative move to".
573
+
574
+ @param dx offset from last point to contour start on x-axis
575
+ @param dy offset from last point to contour start on y-axis
576
+ @return reference to SkPath
577
+
578
+ example: https://fiddle.skia.org/c/@Path_rMoveTo
579
+ */
580
+ SkPath& rMoveTo(SkScalar dx, SkScalar dy);
581
+
582
+ /** Adds line from last point to (x, y). If SkPath is empty, or last SkPath::Verb is
583
+ kClose_Verb, last point is set to (0, 0) before adding line.
584
+
585
+ lineTo() appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed.
586
+ lineTo() then appends kLine_Verb to verb array and (x, y) to SkPoint array.
587
+
588
+ @param x end of added line on x-axis
589
+ @param y end of added line on y-axis
590
+ @return reference to SkPath
591
+
592
+ example: https://fiddle.skia.org/c/@Path_lineTo
593
+ */
594
+ SkPath& lineTo(SkScalar x, SkScalar y);
595
+
596
+ /** Adds line from last point to SkPoint p. If SkPath is empty, or last SkPath::Verb is
597
+ kClose_Verb, last point is set to (0, 0) before adding line.
598
+
599
+ lineTo() first appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed.
600
+ lineTo() then appends kLine_Verb to verb array and SkPoint p to SkPoint array.
601
+
602
+ @param p end SkPoint of added line
603
+ @return reference to SkPath
604
+ */
605
+ SkPath& lineTo(const SkPoint& p) {
606
+ return this->lineTo(p.fX, p.fY);
607
+ }
608
+
609
+ /** Adds line from last point to vector (dx, dy). If SkPath is empty, or last SkPath::Verb is
610
+ kClose_Verb, last point is set to (0, 0) before adding line.
611
+
612
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed;
613
+ then appends kLine_Verb to verb array and line end to SkPoint array.
614
+ Line end is last point plus vector (dx, dy).
615
+ Function name stands for "relative line to".
616
+
617
+ @param dx offset from last point to line end on x-axis
618
+ @param dy offset from last point to line end on y-axis
619
+ @return reference to SkPath
620
+
621
+ example: https://fiddle.skia.org/c/@Path_rLineTo
622
+ example: https://fiddle.skia.org/c/@Quad_a
623
+ example: https://fiddle.skia.org/c/@Quad_b
624
+ */
625
+ SkPath& rLineTo(SkScalar dx, SkScalar dy);
626
+
627
+ /** Adds quad from last point towards (x1, y1), to (x2, y2).
628
+ If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to (0, 0)
629
+ before adding quad.
630
+
631
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed;
632
+ then appends kQuad_Verb to verb array; and (x1, y1), (x2, y2)
633
+ to SkPoint array.
634
+
635
+ @param x1 control SkPoint of quad on x-axis
636
+ @param y1 control SkPoint of quad on y-axis
637
+ @param x2 end SkPoint of quad on x-axis
638
+ @param y2 end SkPoint of quad on y-axis
639
+ @return reference to SkPath
640
+
641
+ example: https://fiddle.skia.org/c/@Path_quadTo
642
+ */
643
+ SkPath& quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2);
644
+
645
+ /** Adds quad from last point towards SkPoint p1, to SkPoint p2.
646
+ If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to (0, 0)
647
+ before adding quad.
648
+
649
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed;
650
+ then appends kQuad_Verb to verb array; and SkPoint p1, p2
651
+ to SkPoint array.
652
+
653
+ @param p1 control SkPoint of added quad
654
+ @param p2 end SkPoint of added quad
655
+ @return reference to SkPath
656
+ */
657
+ SkPath& quadTo(const SkPoint& p1, const SkPoint& p2) {
658
+ return this->quadTo(p1.fX, p1.fY, p2.fX, p2.fY);
659
+ }
660
+
661
+ /** Adds quad from last point towards vector (dx1, dy1), to vector (dx2, dy2).
662
+ If SkPath is empty, or last SkPath::Verb
663
+ is kClose_Verb, last point is set to (0, 0) before adding quad.
664
+
665
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array,
666
+ if needed; then appends kQuad_Verb to verb array; and appends quad
667
+ control and quad end to SkPoint array.
668
+ Quad control is last point plus vector (dx1, dy1).
669
+ Quad end is last point plus vector (dx2, dy2).
670
+ Function name stands for "relative quad to".
671
+
672
+ @param dx1 offset from last point to quad control on x-axis
673
+ @param dy1 offset from last point to quad control on y-axis
674
+ @param dx2 offset from last point to quad end on x-axis
675
+ @param dy2 offset from last point to quad end on y-axis
676
+ @return reference to SkPath
677
+
678
+ example: https://fiddle.skia.org/c/@Conic_Weight_a
679
+ example: https://fiddle.skia.org/c/@Conic_Weight_b
680
+ example: https://fiddle.skia.org/c/@Conic_Weight_c
681
+ example: https://fiddle.skia.org/c/@Path_rQuadTo
682
+ */
683
+ SkPath& rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2);
684
+
685
+ /** Adds conic from last point towards (x1, y1), to (x2, y2), weighted by w.
686
+ If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to (0, 0)
687
+ before adding conic.
688
+
689
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed.
690
+
691
+ If w is finite and not one, appends kConic_Verb to verb array;
692
+ and (x1, y1), (x2, y2) to SkPoint array; and w to conic weights.
693
+
694
+ If w is one, appends kQuad_Verb to verb array, and
695
+ (x1, y1), (x2, y2) to SkPoint array.
696
+
697
+ If w is not finite, appends kLine_Verb twice to verb array, and
698
+ (x1, y1), (x2, y2) to SkPoint array.
699
+
700
+ @param x1 control SkPoint of conic on x-axis
701
+ @param y1 control SkPoint of conic on y-axis
702
+ @param x2 end SkPoint of conic on x-axis
703
+ @param y2 end SkPoint of conic on y-axis
704
+ @param w weight of added conic
705
+ @return reference to SkPath
706
+ */
707
+ SkPath& conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
708
+ SkScalar w);
709
+
710
+ /** Adds conic from last point towards SkPoint p1, to SkPoint p2, weighted by w.
711
+ If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to (0, 0)
712
+ before adding conic.
713
+
714
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed.
715
+
716
+ If w is finite and not one, appends kConic_Verb to verb array;
717
+ and SkPoint p1, p2 to SkPoint array; and w to conic weights.
718
+
719
+ If w is one, appends kQuad_Verb to verb array, and SkPoint p1, p2
720
+ to SkPoint array.
721
+
722
+ If w is not finite, appends kLine_Verb twice to verb array, and
723
+ SkPoint p1, p2 to SkPoint array.
724
+
725
+ @param p1 control SkPoint of added conic
726
+ @param p2 end SkPoint of added conic
727
+ @param w weight of added conic
728
+ @return reference to SkPath
729
+ */
730
+ SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w) {
731
+ return this->conicTo(p1.fX, p1.fY, p2.fX, p2.fY, w);
732
+ }
733
+
734
+ /** Adds conic from last point towards vector (dx1, dy1), to vector (dx2, dy2),
735
+ weighted by w. If SkPath is empty, or last SkPath::Verb
736
+ is kClose_Verb, last point is set to (0, 0) before adding conic.
737
+
738
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array,
739
+ if needed.
740
+
741
+ If w is finite and not one, next appends kConic_Verb to verb array,
742
+ and w is recorded as conic weight; otherwise, if w is one, appends
743
+ kQuad_Verb to verb array; or if w is not finite, appends kLine_Verb
744
+ twice to verb array.
745
+
746
+ In all cases appends SkPoint control and end to SkPoint array.
747
+ control is last point plus vector (dx1, dy1).
748
+ end is last point plus vector (dx2, dy2).
749
+
750
+ Function name stands for "relative conic to".
751
+
752
+ @param dx1 offset from last point to conic control on x-axis
753
+ @param dy1 offset from last point to conic control on y-axis
754
+ @param dx2 offset from last point to conic end on x-axis
755
+ @param dy2 offset from last point to conic end on y-axis
756
+ @param w weight of added conic
757
+ @return reference to SkPath
758
+ */
759
+ SkPath& rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
760
+ SkScalar w);
761
+
762
+ /** Adds cubic from last point towards (x1, y1), then towards (x2, y2), ending at
763
+ (x3, y3). If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to
764
+ (0, 0) before adding cubic.
765
+
766
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed;
767
+ then appends kCubic_Verb to verb array; and (x1, y1), (x2, y2), (x3, y3)
768
+ to SkPoint array.
769
+
770
+ @param x1 first control SkPoint of cubic on x-axis
771
+ @param y1 first control SkPoint of cubic on y-axis
772
+ @param x2 second control SkPoint of cubic on x-axis
773
+ @param y2 second control SkPoint of cubic on y-axis
774
+ @param x3 end SkPoint of cubic on x-axis
775
+ @param y3 end SkPoint of cubic on y-axis
776
+ @return reference to SkPath
777
+ */
778
+ SkPath& cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
779
+ SkScalar x3, SkScalar y3);
780
+
781
+ /** Adds cubic from last point towards SkPoint p1, then towards SkPoint p2, ending at
782
+ SkPoint p3. If SkPath is empty, or last SkPath::Verb is kClose_Verb, last point is set to
783
+ (0, 0) before adding cubic.
784
+
785
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array, if needed;
786
+ then appends kCubic_Verb to verb array; and SkPoint p1, p2, p3
787
+ to SkPoint array.
788
+
789
+ @param p1 first control SkPoint of cubic
790
+ @param p2 second control SkPoint of cubic
791
+ @param p3 end SkPoint of cubic
792
+ @return reference to SkPath
793
+ */
794
+ SkPath& cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3) {
795
+ return this->cubicTo(p1.fX, p1.fY, p2.fX, p2.fY, p3.fX, p3.fY);
796
+ }
797
+
798
+ /** Adds cubic from last point towards vector (dx1, dy1), then towards
799
+ vector (dx2, dy2), to vector (dx3, dy3).
800
+ If SkPath is empty, or last SkPath::Verb
801
+ is kClose_Verb, last point is set to (0, 0) before adding cubic.
802
+
803
+ Appends kMove_Verb to verb array and (0, 0) to SkPoint array,
804
+ if needed; then appends kCubic_Verb to verb array; and appends cubic
805
+ control and cubic end to SkPoint array.
806
+ Cubic control is last point plus vector (dx1, dy1).
807
+ Cubic end is last point plus vector (dx2, dy2).
808
+ Function name stands for "relative cubic to".
809
+
810
+ @param dx1 offset from last point to first cubic control on x-axis
811
+ @param dy1 offset from last point to first cubic control on y-axis
812
+ @param dx2 offset from last point to second cubic control on x-axis
813
+ @param dy2 offset from last point to second cubic control on y-axis
814
+ @param dx3 offset from last point to cubic end on x-axis
815
+ @param dy3 offset from last point to cubic end on y-axis
816
+ @return reference to SkPath
817
+ */
818
+ SkPath& rCubicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
819
+ SkScalar dx3, SkScalar dy3);
820
+
821
+ /** Appends arc to SkPath. Arc added is part of ellipse
822
+ bounded by oval, from startAngle through sweepAngle. Both startAngle and
823
+ sweepAngle are measured in degrees, where zero degrees is aligned with the
824
+ positive x-axis, and positive sweeps extends arc clockwise.
825
+
826
+ arcTo() adds line connecting SkPath last SkPoint to initial arc SkPoint if forceMoveTo
827
+ is false and SkPath is not empty. Otherwise, added contour begins with first point
828
+ of arc. Angles greater than -360 and less than 360 are treated modulo 360.
829
+
830
+ @param oval bounds of ellipse containing arc
831
+ @param startAngle starting angle of arc in degrees
832
+ @param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360
833
+ @param forceMoveTo true to start a new contour with arc
834
+ @return reference to SkPath
835
+
836
+ example: https://fiddle.skia.org/c/@Path_arcTo
837
+ */
838
+ SkPath& arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo);
839
+
840
+ /** Appends arc to SkPath, after appending line if needed. Arc is implemented by conic
841
+ weighted to describe part of circle. Arc is contained by tangent from
842
+ last SkPath point to (x1, y1), and tangent from (x1, y1) to (x2, y2). Arc
843
+ is part of circle sized to radius, positioned so it touches both tangent lines.
844
+
845
+ If last Path Point does not start Arc, arcTo appends connecting Line to Path.
846
+ The length of Vector from (x1, y1) to (x2, y2) does not affect Arc.
847
+
848
+ Arc sweep is always less than 180 degrees. If radius is zero, or if
849
+ tangents are nearly parallel, arcTo appends Line from last Path Point to (x1, y1).
850
+
851
+ arcTo appends at most one Line and one conic.
852
+ arcTo implements the functionality of PostScript arct and HTML Canvas arcTo.
853
+
854
+ @param x1 x-axis value common to pair of tangents
855
+ @param y1 y-axis value common to pair of tangents
856
+ @param x2 x-axis value end of second tangent
857
+ @param y2 y-axis value end of second tangent
858
+ @param radius distance from arc to circle center
859
+ @return reference to SkPath
860
+
861
+ example: https://fiddle.skia.org/c/@Path_arcTo_2_a
862
+ example: https://fiddle.skia.org/c/@Path_arcTo_2_b
863
+ example: https://fiddle.skia.org/c/@Path_arcTo_2_c
864
+ */
865
+ SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius);
866
+
867
+ /** Appends arc to SkPath, after appending line if needed. Arc is implemented by conic
868
+ weighted to describe part of circle. Arc is contained by tangent from
869
+ last SkPath point to p1, and tangent from p1 to p2. Arc
870
+ is part of circle sized to radius, positioned so it touches both tangent lines.
871
+
872
+ If last SkPath SkPoint does not start arc, arcTo() appends connecting line to SkPath.
873
+ The length of vector from p1 to p2 does not affect arc.
874
+
875
+ Arc sweep is always less than 180 degrees. If radius is zero, or if
876
+ tangents are nearly parallel, arcTo() appends line from last SkPath SkPoint to p1.
877
+
878
+ arcTo() appends at most one line and one conic.
879
+ arcTo() implements the functionality of PostScript arct and HTML Canvas arcTo.
880
+
881
+ @param p1 SkPoint common to pair of tangents
882
+ @param p2 end of second tangent
883
+ @param radius distance from arc to circle center
884
+ @return reference to SkPath
885
+ */
886
+ SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius) {
887
+ return this->arcTo(p1.fX, p1.fY, p2.fX, p2.fY, radius);
888
+ }
889
+
890
+ /** \enum SkPath::ArcSize
891
+ Four oval parts with radii (rx, ry) start at last SkPath SkPoint and ends at (x, y).
892
+ ArcSize and Direction select one of the four oval parts.
893
+ */
894
+ enum ArcSize {
895
+ kSmall_ArcSize, //!< smaller of arc pair
896
+ kLarge_ArcSize, //!< larger of arc pair
897
+ };
898
+
899
+ /** Appends arc to SkPath. Arc is implemented by one or more conics weighted to
900
+ describe part of oval with radii (rx, ry) rotated by xAxisRotate degrees. Arc
901
+ curves from last SkPath SkPoint to (x, y), choosing one of four possible routes:
902
+ clockwise or counterclockwise, and smaller or larger.
903
+
904
+ Arc sweep is always less than 360 degrees. arcTo() appends line to (x, y) if
905
+ either radii are zero, or if last SkPath SkPoint equals (x, y). arcTo() scales radii
906
+ (rx, ry) to fit last SkPath SkPoint and (x, y) if both are greater than zero but
907
+ too small.
908
+
909
+ arcTo() appends up to four conic curves.
910
+ arcTo() implements the functionality of SVG arc, although SVG sweep-flag value
911
+ is opposite the integer value of sweep; SVG sweep-flag uses 1 for clockwise,
912
+ while kCW_Direction cast to int is zero.
913
+
914
+ @param rx radius on x-axis before x-axis rotation
915
+ @param ry radius on y-axis before x-axis rotation
916
+ @param xAxisRotate x-axis rotation in degrees; positive values are clockwise
917
+ @param largeArc chooses smaller or larger arc
918
+ @param sweep chooses clockwise or counterclockwise arc
919
+ @param x end of arc
920
+ @param y end of arc
921
+ @return reference to SkPath
922
+ */
923
+ SkPath& arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
924
+ SkPathDirection sweep, SkScalar x, SkScalar y);
925
+
926
+ /** Appends arc to SkPath. Arc is implemented by one or more conic weighted to describe
927
+ part of oval with radii (r.fX, r.fY) rotated by xAxisRotate degrees. Arc curves
928
+ from last SkPath SkPoint to (xy.fX, xy.fY), choosing one of four possible routes:
929
+ clockwise or counterclockwise,
930
+ and smaller or larger.
931
+
932
+ Arc sweep is always less than 360 degrees. arcTo() appends line to xy if either
933
+ radii are zero, or if last SkPath SkPoint equals (xy.fX, xy.fY). arcTo() scales radii r to
934
+ fit last SkPath SkPoint and xy if both are greater than zero but too small to describe
935
+ an arc.
936
+
937
+ arcTo() appends up to four conic curves.
938
+ arcTo() implements the functionality of SVG arc, although SVG sweep-flag value is
939
+ opposite the integer value of sweep; SVG sweep-flag uses 1 for clockwise, while
940
+ kCW_Direction cast to int is zero.
941
+
942
+ @param r radii on axes before x-axis rotation
943
+ @param xAxisRotate x-axis rotation in degrees; positive values are clockwise
944
+ @param largeArc chooses smaller or larger arc
945
+ @param sweep chooses clockwise or counterclockwise arc
946
+ @param xy end of arc
947
+ @return reference to SkPath
948
+ */
949
+ SkPath& arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, SkPathDirection sweep,
950
+ const SkPoint xy) {
951
+ return this->arcTo(r.fX, r.fY, xAxisRotate, largeArc, sweep, xy.fX, xy.fY);
952
+ }
953
+
954
+ /** Appends arc to SkPath, relative to last SkPath SkPoint. Arc is implemented by one or
955
+ more conic, weighted to describe part of oval with radii (rx, ry) rotated by
956
+ xAxisRotate degrees. Arc curves from last SkPath SkPoint to relative end SkPoint:
957
+ (dx, dy), choosing one of four possible routes: clockwise or
958
+ counterclockwise, and smaller or larger. If SkPath is empty, the start arc SkPoint
959
+ is (0, 0).
960
+
961
+ Arc sweep is always less than 360 degrees. arcTo() appends line to end SkPoint
962
+ if either radii are zero, or if last SkPath SkPoint equals end SkPoint.
963
+ arcTo() scales radii (rx, ry) to fit last SkPath SkPoint and end SkPoint if both are
964
+ greater than zero but too small to describe an arc.
965
+
966
+ arcTo() appends up to four conic curves.
967
+ arcTo() implements the functionality of svg arc, although SVG "sweep-flag" value is
968
+ opposite the integer value of sweep; SVG "sweep-flag" uses 1 for clockwise, while
969
+ kCW_Direction cast to int is zero.
970
+
971
+ @param rx radius before x-axis rotation
972
+ @param ry radius before x-axis rotation
973
+ @param xAxisRotate x-axis rotation in degrees; positive values are clockwise
974
+ @param largeArc chooses smaller or larger arc
975
+ @param sweep chooses clockwise or counterclockwise arc
976
+ @param dx x-axis offset end of arc from last SkPath SkPoint
977
+ @param dy y-axis offset end of arc from last SkPath SkPoint
978
+ @return reference to SkPath
979
+ */
980
+ SkPath& rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
981
+ SkPathDirection sweep, SkScalar dx, SkScalar dy);
982
+
983
+ /** Appends kClose_Verb to SkPath. A closed contour connects the first and last SkPoint
984
+ with line, forming a continuous loop. Open and closed contour draw the same
985
+ with SkPaint::kFill_Style. With SkPaint::kStroke_Style, open contour draws
986
+ SkPaint::Cap at contour start and end; closed contour draws
987
+ SkPaint::Join at contour start and end.
988
+
989
+ close() has no effect if SkPath is empty or last SkPath SkPath::Verb is kClose_Verb.
990
+
991
+ @return reference to SkPath
992
+
993
+ example: https://fiddle.skia.org/c/@Path_close
994
+ */
995
+ SkPath& close();
996
+
997
+ #ifdef SK_HIDE_PATH_EDIT_METHODS
998
+ public:
999
+ #endif
1000
+
1001
+ /** Approximates conic with quad array. Conic is constructed from start SkPoint p0,
1002
+ control SkPoint p1, end SkPoint p2, and weight w.
1003
+ Quad array is stored in pts; this storage is supplied by caller.
1004
+ Maximum quad count is 2 to the pow2.
1005
+ Every third point in array shares last SkPoint of previous quad and first SkPoint of
1006
+ next quad. Maximum pts storage size is given by:
1007
+ (1 + 2 * (1 << pow2)) * sizeof(SkPoint).
1008
+
1009
+ Returns quad count used the approximation, which may be smaller
1010
+ than the number requested.
1011
+
1012
+ conic weight determines the amount of influence conic control point has on the curve.
1013
+ w less than one represents an elliptical section. w greater than one represents
1014
+ a hyperbolic section. w equal to one represents a parabolic section.
1015
+
1016
+ Two quad curves are sufficient to approximate an elliptical conic with a sweep
1017
+ of up to 90 degrees; in this case, set pow2 to one.
1018
+
1019
+ @param p0 conic start SkPoint
1020
+ @param p1 conic control SkPoint
1021
+ @param p2 conic end SkPoint
1022
+ @param w conic weight
1023
+ @param pts storage for quad array
1024
+ @param pow2 quad count, as power of two, normally 0 to 5 (1 to 32 quad curves)
1025
+ @return number of quad curves written to pts
1026
+ */
1027
+ static int ConvertConicToQuads(const SkPoint& p0, const SkPoint& p1, const SkPoint& p2,
1028
+ SkScalar w, SkPoint pts[], int pow2);
1029
+
1030
+ /** Returns true if SkPath is equivalent to SkRect when filled.
1031
+ If false: rect, isClosed, and direction are unchanged.
1032
+ If true: rect, isClosed, and direction are written to if not nullptr.
1033
+
1034
+ rect may be smaller than the SkPath bounds. SkPath bounds may include kMove_Verb points
1035
+ that do not alter the area drawn by the returned rect.
1036
+
1037
+ @param rect storage for bounds of SkRect; may be nullptr
1038
+ @param isClosed storage set to true if SkPath is closed; may be nullptr
1039
+ @param direction storage set to SkRect direction; may be nullptr
1040
+ @return true if SkPath contains SkRect
1041
+
1042
+ example: https://fiddle.skia.org/c/@Path_isRect
1043
+ */
1044
+ bool isRect(SkRect* rect, bool* isClosed = nullptr, SkPathDirection* direction = nullptr) const;
1045
+
1046
+ #ifdef SK_HIDE_PATH_EDIT_METHODS
1047
+ private:
1048
+ #endif
1049
+
1050
+ /** Adds a new contour to the path, defined by the rect, and wound in the
1051
+ specified direction. The verbs added to the path will be:
1052
+
1053
+ kMove, kLine, kLine, kLine, kClose
1054
+
1055
+ start specifies which corner to begin the contour:
1056
+ 0: upper-left corner
1057
+ 1: upper-right corner
1058
+ 2: lower-right corner
1059
+ 3: lower-left corner
1060
+
1061
+ This start point also acts as the implied beginning of the subsequent,
1062
+ contour, if it does not have an explicit moveTo(). e.g.
1063
+
1064
+ path.addRect(...)
1065
+ // if we don't say moveTo() here, we will use the rect's start point
1066
+ path.lineTo(...)
1067
+
1068
+ @param rect SkRect to add as a closed contour
1069
+ @param dir SkPath::Direction to orient the new contour
1070
+ @param start initial corner of SkRect to add
1071
+ @return reference to SkPath
1072
+
1073
+ example: https://fiddle.skia.org/c/@Path_addRect_2
1074
+ */
1075
+ SkPath& addRect(const SkRect& rect, SkPathDirection dir, unsigned start);
1076
+
1077
+ SkPath& addRect(const SkRect& rect, SkPathDirection dir = SkPathDirection::kCW) {
1078
+ return this->addRect(rect, dir, 0);
1079
+ }
1080
+
1081
+ SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
1082
+ SkPathDirection dir = SkPathDirection::kCW) {
1083
+ return this->addRect({left, top, right, bottom}, dir, 0);
1084
+ }
1085
+
1086
+ /** Adds oval to path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
1087
+ Oval is upright ellipse bounded by SkRect oval with radii equal to half oval width
1088
+ and half oval height. Oval begins at (oval.fRight, oval.centerY()) and continues
1089
+ clockwise if dir is kCW_Direction, counterclockwise if dir is kCCW_Direction.
1090
+
1091
+ @param oval bounds of ellipse added
1092
+ @param dir SkPath::Direction to wind ellipse
1093
+ @return reference to SkPath
1094
+
1095
+ example: https://fiddle.skia.org/c/@Path_addOval
1096
+ */
1097
+ SkPath& addOval(const SkRect& oval, SkPathDirection dir = SkPathDirection::kCW);
1098
+
1099
+ /** Adds oval to SkPath, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
1100
+ Oval is upright ellipse bounded by SkRect oval with radii equal to half oval width
1101
+ and half oval height. Oval begins at start and continues
1102
+ clockwise if dir is kCW_Direction, counterclockwise if dir is kCCW_Direction.
1103
+
1104
+ @param oval bounds of ellipse added
1105
+ @param dir SkPath::Direction to wind ellipse
1106
+ @param start index of initial point of ellipse
1107
+ @return reference to SkPath
1108
+
1109
+ example: https://fiddle.skia.org/c/@Path_addOval_2
1110
+ */
1111
+ SkPath& addOval(const SkRect& oval, SkPathDirection dir, unsigned start);
1112
+
1113
+ /** Adds circle centered at (x, y) of size radius to SkPath, appending kMove_Verb,
1114
+ four kConic_Verb, and kClose_Verb. Circle begins at: (x + radius, y), continuing
1115
+ clockwise if dir is kCW_Direction, and counterclockwise if dir is kCCW_Direction.
1116
+
1117
+ Has no effect if radius is zero or negative.
1118
+
1119
+ @param x center of circle
1120
+ @param y center of circle
1121
+ @param radius distance from center to edge
1122
+ @param dir SkPath::Direction to wind circle
1123
+ @return reference to SkPath
1124
+ */
1125
+ SkPath& addCircle(SkScalar x, SkScalar y, SkScalar radius,
1126
+ SkPathDirection dir = SkPathDirection::kCW);
1127
+
1128
+ /** Appends arc to SkPath, as the start of new contour. Arc added is part of ellipse
1129
+ bounded by oval, from startAngle through sweepAngle. Both startAngle and
1130
+ sweepAngle are measured in degrees, where zero degrees is aligned with the
1131
+ positive x-axis, and positive sweeps extends arc clockwise.
1132
+
1133
+ If sweepAngle <= -360, or sweepAngle >= 360; and startAngle modulo 90 is nearly
1134
+ zero, append oval instead of arc. Otherwise, sweepAngle values are treated
1135
+ modulo 360, and arc may or may not draw depending on numeric rounding.
1136
+
1137
+ @param oval bounds of ellipse containing arc
1138
+ @param startAngle starting angle of arc in degrees
1139
+ @param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360
1140
+ @return reference to SkPath
1141
+
1142
+ example: https://fiddle.skia.org/c/@Path_addArc
1143
+ */
1144
+ SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle);
1145
+
1146
+ /** Appends SkRRect to SkPath, creating a new closed contour. SkRRect has bounds
1147
+ equal to rect; each corner is 90 degrees of an ellipse with radii (rx, ry). If
1148
+ dir is kCW_Direction, SkRRect starts at top-left of the lower-left corner and
1149
+ winds clockwise. If dir is kCCW_Direction, SkRRect starts at the bottom-left
1150
+ of the upper-left corner and winds counterclockwise.
1151
+
1152
+ If either rx or ry is too large, rx and ry are scaled uniformly until the
1153
+ corners fit. If rx or ry is less than or equal to zero, addRoundRect() appends
1154
+ SkRect rect to SkPath.
1155
+
1156
+ After appending, SkPath may be empty, or may contain: SkRect, oval, or SkRRect.
1157
+
1158
+ @param rect bounds of SkRRect
1159
+ @param rx x-axis radius of rounded corners on the SkRRect
1160
+ @param ry y-axis radius of rounded corners on the SkRRect
1161
+ @param dir SkPath::Direction to wind SkRRect
1162
+ @return reference to SkPath
1163
+ */
1164
+ SkPath& addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
1165
+ SkPathDirection dir = SkPathDirection::kCW);
1166
+
1167
+ /** Appends SkRRect to SkPath, creating a new closed contour. SkRRect has bounds
1168
+ equal to rect; each corner is 90 degrees of an ellipse with radii from the
1169
+ array.
1170
+
1171
+ @param rect bounds of SkRRect
1172
+ @param radii array of 8 SkScalar values, a radius pair for each corner
1173
+ @param dir SkPath::Direction to wind SkRRect
1174
+ @return reference to SkPath
1175
+ */
1176
+ SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
1177
+ SkPathDirection dir = SkPathDirection::kCW);
1178
+
1179
+ /** Adds rrect to SkPath, creating a new closed contour. If
1180
+ dir is kCW_Direction, rrect starts at top-left of the lower-left corner and
1181
+ winds clockwise. If dir is kCCW_Direction, rrect starts at the bottom-left
1182
+ of the upper-left corner and winds counterclockwise.
1183
+
1184
+ After appending, SkPath may be empty, or may contain: SkRect, oval, or SkRRect.
1185
+
1186
+ @param rrect bounds and radii of rounded rectangle
1187
+ @param dir SkPath::Direction to wind SkRRect
1188
+ @return reference to SkPath
1189
+
1190
+ example: https://fiddle.skia.org/c/@Path_addRRect
1191
+ */
1192
+ SkPath& addRRect(const SkRRect& rrect, SkPathDirection dir = SkPathDirection::kCW);
1193
+
1194
+ /** Adds rrect to SkPath, creating a new closed contour. If dir is kCW_Direction, rrect
1195
+ winds clockwise; if dir is kCCW_Direction, rrect winds counterclockwise.
1196
+ start determines the first point of rrect to add.
1197
+
1198
+ @param rrect bounds and radii of rounded rectangle
1199
+ @param dir SkPath::Direction to wind SkRRect
1200
+ @param start index of initial point of SkRRect
1201
+ @return reference to SkPath
1202
+
1203
+ example: https://fiddle.skia.org/c/@Path_addRRect_2
1204
+ */
1205
+ SkPath& addRRect(const SkRRect& rrect, SkPathDirection dir, unsigned start);
1206
+
1207
+ /** Adds contour created from line array, adding (count - 1) line segments.
1208
+ Contour added starts at pts[0], then adds a line for every additional SkPoint
1209
+ in pts array. If close is true, appends kClose_Verb to SkPath, connecting
1210
+ pts[count - 1] and pts[0].
1211
+
1212
+ If count is zero, append kMove_Verb to path.
1213
+ Has no effect if count is less than one.
1214
+
1215
+ @param pts array of line sharing end and start SkPoint
1216
+ @param count length of SkPoint array
1217
+ @param close true to add line connecting contour end and start
1218
+ @return reference to SkPath
1219
+
1220
+ example: https://fiddle.skia.org/c/@Path_addPoly
1221
+ */
1222
+ SkPath& addPoly(const SkPoint pts[], int count, bool close);
1223
+
1224
+ /** Adds contour created from list. Contour added starts at list[0], then adds a line
1225
+ for every additional SkPoint in list. If close is true, appends kClose_Verb to SkPath,
1226
+ connecting last and first SkPoint in list.
1227
+
1228
+ If list is empty, append kMove_Verb to path.
1229
+
1230
+ @param list array of SkPoint
1231
+ @param close true to add line connecting contour end and start
1232
+ @return reference to SkPath
1233
+ */
1234
+ SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close) {
1235
+ return this->addPoly(list.begin(), SkToInt(list.size()), close);
1236
+ }
1237
+
1238
+ #ifdef SK_HIDE_PATH_EDIT_METHODS
1239
+ public:
1240
+ #endif
1241
+
1242
+ /** \enum SkPath::AddPathMode
1243
+ AddPathMode chooses how addPath() appends. Adding one SkPath to another can extend
1244
+ the last contour or start a new contour.
1245
+ */
1246
+ enum AddPathMode {
1247
+ kAppend_AddPathMode, //!< appended to destination unaltered
1248
+ kExtend_AddPathMode, //!< add line if prior contour is not closed
1249
+ };
1250
+
1251
+ /** Appends src to SkPath, offset by (dx, dy).
1252
+
1253
+ If mode is kAppend_AddPathMode, src verb array, SkPoint array, and conic weights are
1254
+ added unaltered. If mode is kExtend_AddPathMode, add line before appending
1255
+ verbs, SkPoint, and conic weights.
1256
+
1257
+ @param src SkPath verbs, SkPoint, and conic weights to add
1258
+ @param dx offset added to src SkPoint array x-axis coordinates
1259
+ @param dy offset added to src SkPoint array y-axis coordinates
1260
+ @param mode kAppend_AddPathMode or kExtend_AddPathMode
1261
+ @return reference to SkPath
1262
+ */
1263
+ SkPath& addPath(const SkPath& src, SkScalar dx, SkScalar dy,
1264
+ AddPathMode mode = kAppend_AddPathMode);
1265
+
1266
+ /** Appends src to SkPath.
1267
+
1268
+ If mode is kAppend_AddPathMode, src verb array, SkPoint array, and conic weights are
1269
+ added unaltered. If mode is kExtend_AddPathMode, add line before appending
1270
+ verbs, SkPoint, and conic weights.
1271
+
1272
+ @param src SkPath verbs, SkPoint, and conic weights to add
1273
+ @param mode kAppend_AddPathMode or kExtend_AddPathMode
1274
+ @return reference to SkPath
1275
+ */
1276
+ SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode) {
1277
+ SkMatrix m;
1278
+ m.reset();
1279
+ return this->addPath(src, m, mode);
1280
+ }
1281
+
1282
+ /** Appends src to SkPath, transformed by matrix. Transformed curves may have different
1283
+ verbs, SkPoint, and conic weights.
1284
+
1285
+ If mode is kAppend_AddPathMode, src verb array, SkPoint array, and conic weights are
1286
+ added unaltered. If mode is kExtend_AddPathMode, add line before appending
1287
+ verbs, SkPoint, and conic weights.
1288
+
1289
+ @param src SkPath verbs, SkPoint, and conic weights to add
1290
+ @param matrix transform applied to src
1291
+ @param mode kAppend_AddPathMode or kExtend_AddPathMode
1292
+ @return reference to SkPath
1293
+ */
1294
+ SkPath& addPath(const SkPath& src, const SkMatrix& matrix,
1295
+ AddPathMode mode = kAppend_AddPathMode);
1296
+
1297
+ /** Appends src to SkPath, from back to front.
1298
+ Reversed src always appends a new contour to SkPath.
1299
+
1300
+ @param src SkPath verbs, SkPoint, and conic weights to add
1301
+ @return reference to SkPath
1302
+
1303
+ example: https://fiddle.skia.org/c/@Path_reverseAddPath
1304
+ */
1305
+ SkPath& reverseAddPath(const SkPath& src);
1306
+
1307
+ /** Offsets SkPoint array by (dx, dy). Offset SkPath replaces dst.
1308
+ If dst is nullptr, SkPath is replaced by offset data.
1309
+
1310
+ @param dx offset added to SkPoint array x-axis coordinates
1311
+ @param dy offset added to SkPoint array y-axis coordinates
1312
+ @param dst overwritten, translated copy of SkPath; may be nullptr
1313
+
1314
+ example: https://fiddle.skia.org/c/@Path_offset
1315
+ */
1316
+ void offset(SkScalar dx, SkScalar dy, SkPath* dst) const;
1317
+
1318
+ /** Offsets SkPoint array by (dx, dy). SkPath is replaced by offset data.
1319
+
1320
+ @param dx offset added to SkPoint array x-axis coordinates
1321
+ @param dy offset added to SkPoint array y-axis coordinates
1322
+ */
1323
+ void offset(SkScalar dx, SkScalar dy) {
1324
+ this->offset(dx, dy, this);
1325
+ }
1326
+
1327
+ /** Transforms verb array, SkPoint array, and weight by matrix.
1328
+ transform may change verbs and increase their number.
1329
+ Transformed SkPath replaces dst; if dst is nullptr, original data
1330
+ is replaced.
1331
+
1332
+ @param matrix SkMatrix to apply to SkPath
1333
+ @param dst overwritten, transformed copy of SkPath; may be nullptr
1334
+ @param pc whether to apply perspective clipping
1335
+
1336
+ example: https://fiddle.skia.org/c/@Path_transform
1337
+ */
1338
+ void transform(const SkMatrix& matrix, SkPath* dst,
1339
+ SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) const;
1340
+
1341
+ /** Transforms verb array, SkPoint array, and weight by matrix.
1342
+ transform may change verbs and increase their number.
1343
+ SkPath is replaced by transformed data.
1344
+
1345
+ @param matrix SkMatrix to apply to SkPath
1346
+ @param pc whether to apply perspective clipping
1347
+ */
1348
+ void transform(const SkMatrix& matrix,
1349
+ SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) {
1350
+ this->transform(matrix, this, pc);
1351
+ }
1352
+
1353
+ SkPath makeTransform(const SkMatrix& m,
1354
+ SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) const {
1355
+ SkPath dst;
1356
+ this->transform(m, &dst, pc);
1357
+ return dst;
1358
+ }
1359
+
1360
+ SkPath makeScale(SkScalar sx, SkScalar sy) {
1361
+ return this->makeTransform(SkMatrix::Scale(sx, sy), SkApplyPerspectiveClip::kNo);
1362
+ }
1363
+
1364
+ /** Returns last point on SkPath in lastPt. Returns false if SkPoint array is empty,
1365
+ storing (0, 0) if lastPt is not nullptr.
1366
+
1367
+ @param lastPt storage for final SkPoint in SkPoint array; may be nullptr
1368
+ @return true if SkPoint array contains one or more SkPoint
1369
+
1370
+ example: https://fiddle.skia.org/c/@Path_getLastPt
1371
+ */
1372
+ bool getLastPt(SkPoint* lastPt) const;
1373
+
1374
+ /** Sets last point to (x, y). If SkPoint array is empty, append kMove_Verb to
1375
+ verb array and append (x, y) to SkPoint array.
1376
+
1377
+ @param x set x-axis value of last point
1378
+ @param y set y-axis value of last point
1379
+
1380
+ example: https://fiddle.skia.org/c/@Path_setLastPt
1381
+ */
1382
+ void setLastPt(SkScalar x, SkScalar y);
1383
+
1384
+ /** Sets the last point on the path. If SkPoint array is empty, append kMove_Verb to
1385
+ verb array and append p to SkPoint array.
1386
+
1387
+ @param p set value of last point
1388
+ */
1389
+ void setLastPt(const SkPoint& p) {
1390
+ this->setLastPt(p.fX, p.fY);
1391
+ }
1392
+
1393
+ /** \enum SkPath::SegmentMask
1394
+ SegmentMask constants correspond to each drawing Verb type in SkPath; for
1395
+ instance, if SkPath only contains lines, only the kLine_SegmentMask bit is set.
1396
+ */
1397
+ enum SegmentMask {
1398
+ kLine_SegmentMask = kLine_SkPathSegmentMask,
1399
+ kQuad_SegmentMask = kQuad_SkPathSegmentMask,
1400
+ kConic_SegmentMask = kConic_SkPathSegmentMask,
1401
+ kCubic_SegmentMask = kCubic_SkPathSegmentMask,
1402
+ };
1403
+
1404
+ /** Returns a mask, where each set bit corresponds to a SegmentMask constant
1405
+ if SkPath contains one or more verbs of that type.
1406
+ Returns zero if SkPath contains no lines, or curves: quads, conics, or cubics.
1407
+
1408
+ getSegmentMasks() returns a cached result; it is very fast.
1409
+
1410
+ @return SegmentMask bits or zero
1411
+ */
1412
+ uint32_t getSegmentMasks() const { return fPathRef->getSegmentMasks(); }
1413
+
1414
+ /** \enum SkPath::Verb
1415
+ Verb instructs SkPath how to interpret one or more SkPoint and optional conic weight;
1416
+ manage contour, and terminate SkPath.
1417
+ */
1418
+ enum Verb {
1419
+ kMove_Verb = static_cast<int>(SkPathVerb::kMove),
1420
+ kLine_Verb = static_cast<int>(SkPathVerb::kLine),
1421
+ kQuad_Verb = static_cast<int>(SkPathVerb::kQuad),
1422
+ kConic_Verb = static_cast<int>(SkPathVerb::kConic),
1423
+ kCubic_Verb = static_cast<int>(SkPathVerb::kCubic),
1424
+ kClose_Verb = static_cast<int>(SkPathVerb::kClose),
1425
+ kDone_Verb = kClose_Verb + 1
1426
+ };
1427
+
1428
+ /** \class SkPath::Iter
1429
+ Iterates through verb array, and associated SkPoint array and conic weight.
1430
+ Provides options to treat open contours as closed, and to ignore
1431
+ degenerate data.
1432
+ */
1433
+ class SK_API Iter {
1434
+ public:
1435
+
1436
+ /** Initializes SkPath::Iter with an empty SkPath. next() on SkPath::Iter returns
1437
+ kDone_Verb.
1438
+ Call setPath to initialize SkPath::Iter at a later time.
1439
+
1440
+ @return SkPath::Iter of empty SkPath
1441
+
1442
+ example: https://fiddle.skia.org/c/@Path_Iter_Iter
1443
+ */
1444
+ Iter();
1445
+
1446
+ /** Sets SkPath::Iter to return elements of verb array, SkPoint array, and conic weight in
1447
+ path. If forceClose is true, SkPath::Iter will add kLine_Verb and kClose_Verb after each
1448
+ open contour. path is not altered.
1449
+
1450
+ @param path SkPath to iterate
1451
+ @param forceClose true if open contours generate kClose_Verb
1452
+ @return SkPath::Iter of path
1453
+
1454
+ example: https://fiddle.skia.org/c/@Path_Iter_const_SkPath
1455
+ */
1456
+ Iter(const SkPath& path, bool forceClose);
1457
+
1458
+ /** Sets SkPath::Iter to return elements of verb array, SkPoint array, and conic weight in
1459
+ path. If forceClose is true, SkPath::Iter will add kLine_Verb and kClose_Verb after each
1460
+ open contour. path is not altered.
1461
+
1462
+ @param path SkPath to iterate
1463
+ @param forceClose true if open contours generate kClose_Verb
1464
+
1465
+ example: https://fiddle.skia.org/c/@Path_Iter_setPath
1466
+ */
1467
+ void setPath(const SkPath& path, bool forceClose);
1468
+
1469
+ /** Returns next SkPath::Verb in verb array, and advances SkPath::Iter.
1470
+ When verb array is exhausted, returns kDone_Verb.
1471
+
1472
+ Zero to four SkPoint are stored in pts, depending on the returned SkPath::Verb.
1473
+
1474
+ @param pts storage for SkPoint data describing returned SkPath::Verb
1475
+ @return next SkPath::Verb from verb array
1476
+
1477
+ example: https://fiddle.skia.org/c/@Path_RawIter_next
1478
+ */
1479
+ Verb next(SkPoint pts[4]);
1480
+
1481
+ /** Returns conic weight if next() returned kConic_Verb.
1482
+
1483
+ If next() has not been called, or next() did not return kConic_Verb,
1484
+ result is undefined.
1485
+
1486
+ @return conic weight for conic SkPoint returned by next()
1487
+ */
1488
+ SkScalar conicWeight() const { return *fConicWeights; }
1489
+
1490
+ /** Returns true if last kLine_Verb returned by next() was generated
1491
+ by kClose_Verb. When true, the end point returned by next() is
1492
+ also the start point of contour.
1493
+
1494
+ If next() has not been called, or next() did not return kLine_Verb,
1495
+ result is undefined.
1496
+
1497
+ @return true if last kLine_Verb was generated by kClose_Verb
1498
+ */
1499
+ bool isCloseLine() const { return SkToBool(fCloseLine); }
1500
+
1501
+ /** Returns true if subsequent calls to next() return kClose_Verb before returning
1502
+ kMove_Verb. if true, contour SkPath::Iter is processing may end with kClose_Verb, or
1503
+ SkPath::Iter may have been initialized with force close set to true.
1504
+
1505
+ @return true if contour is closed
1506
+
1507
+ example: https://fiddle.skia.org/c/@Path_Iter_isClosedContour
1508
+ */
1509
+ bool isClosedContour() const;
1510
+
1511
+ private:
1512
+ const SkPoint* fPts;
1513
+ const uint8_t* fVerbs;
1514
+ const uint8_t* fVerbStop;
1515
+ const SkScalar* fConicWeights;
1516
+ SkPoint fMoveTo;
1517
+ SkPoint fLastPt;
1518
+ bool fForceClose;
1519
+ bool fNeedClose;
1520
+ bool fCloseLine;
1521
+
1522
+ Verb autoClose(SkPoint pts[2]);
1523
+ };
1524
+
1525
+ private:
1526
+ /** \class SkPath::RangeIter
1527
+ Iterates through a raw range of path verbs, points, and conics. All values are returned
1528
+ unaltered.
1529
+
1530
+ NOTE: This class will be moved into SkPathPriv once RangeIter is removed.
1531
+ */
1532
+ class RangeIter {
1533
+ public:
1534
+ RangeIter() = default;
1535
+ RangeIter(const uint8_t* verbs, const SkPoint* points, const SkScalar* weights)
1536
+ : fVerb(verbs), fPoints(points), fWeights(weights) {
1537
+ SkDEBUGCODE(fInitialPoints = fPoints;)
1538
+ }
1539
+ bool operator!=(const RangeIter& that) const {
1540
+ return fVerb != that.fVerb;
1541
+ }
1542
+ bool operator==(const RangeIter& that) const {
1543
+ return fVerb == that.fVerb;
1544
+ }
1545
+ RangeIter& operator++() {
1546
+ auto verb = static_cast<SkPathVerb>(*fVerb++);
1547
+ fPoints += pts_advance_after_verb(verb);
1548
+ if (verb == SkPathVerb::kConic) {
1549
+ ++fWeights;
1550
+ }
1551
+ return *this;
1552
+ }
1553
+ RangeIter operator++(int) {
1554
+ RangeIter copy = *this;
1555
+ this->operator++();
1556
+ return copy;
1557
+ }
1558
+ SkPathVerb peekVerb() const {
1559
+ return static_cast<SkPathVerb>(*fVerb);
1560
+ }
1561
+ std::tuple<SkPathVerb, const SkPoint*, const SkScalar*> operator*() const {
1562
+ SkPathVerb verb = this->peekVerb();
1563
+ // We provide the starting point for beziers by peeking backwards from the current
1564
+ // point, which works fine as long as there is always a kMove before any geometry.
1565
+ // (SkPath::injectMoveToIfNeeded should have guaranteed this to be the case.)
1566
+ int backset = pts_backset_for_verb(verb);
1567
+ SkASSERT(fPoints + backset >= fInitialPoints);
1568
+ return {verb, fPoints + backset, fWeights};
1569
+ }
1570
+ private:
1571
+ constexpr static int pts_advance_after_verb(SkPathVerb verb) {
1572
+ switch (verb) {
1573
+ case SkPathVerb::kMove: return 1;
1574
+ case SkPathVerb::kLine: return 1;
1575
+ case SkPathVerb::kQuad: return 2;
1576
+ case SkPathVerb::kConic: return 2;
1577
+ case SkPathVerb::kCubic: return 3;
1578
+ case SkPathVerb::kClose: return 0;
1579
+ }
1580
+ SkUNREACHABLE;
1581
+ }
1582
+ constexpr static int pts_backset_for_verb(SkPathVerb verb) {
1583
+ switch (verb) {
1584
+ case SkPathVerb::kMove: return 0;
1585
+ case SkPathVerb::kLine: return -1;
1586
+ case SkPathVerb::kQuad: return -1;
1587
+ case SkPathVerb::kConic: return -1;
1588
+ case SkPathVerb::kCubic: return -1;
1589
+ case SkPathVerb::kClose: return -1;
1590
+ }
1591
+ SkUNREACHABLE;
1592
+ }
1593
+ const uint8_t* fVerb = nullptr;
1594
+ const SkPoint* fPoints = nullptr;
1595
+ const SkScalar* fWeights = nullptr;
1596
+ SkDEBUGCODE(const SkPoint* fInitialPoints = nullptr;)
1597
+ };
1598
+ public:
1599
+
1600
+ /** \class SkPath::RawIter
1601
+ Use Iter instead. This class will soon be removed and RangeIter will be made private.
1602
+ */
1603
+ class SK_API RawIter {
1604
+ public:
1605
+
1606
+ /** Initializes RawIter with an empty SkPath. next() on RawIter returns kDone_Verb.
1607
+ Call setPath to initialize SkPath::Iter at a later time.
1608
+
1609
+ @return RawIter of empty SkPath
1610
+ */
1611
+ RawIter() {}
1612
+
1613
+ /** Sets RawIter to return elements of verb array, SkPoint array, and conic weight in path.
1614
+
1615
+ @param path SkPath to iterate
1616
+ @return RawIter of path
1617
+ */
1618
+ RawIter(const SkPath& path) {
1619
+ setPath(path);
1620
+ }
1621
+
1622
+ /** Sets SkPath::Iter to return elements of verb array, SkPoint array, and conic weight in
1623
+ path.
1624
+
1625
+ @param path SkPath to iterate
1626
+ */
1627
+ void setPath(const SkPath&);
1628
+
1629
+ /** Returns next SkPath::Verb in verb array, and advances RawIter.
1630
+ When verb array is exhausted, returns kDone_Verb.
1631
+ Zero to four SkPoint are stored in pts, depending on the returned SkPath::Verb.
1632
+
1633
+ @param pts storage for SkPoint data describing returned SkPath::Verb
1634
+ @return next SkPath::Verb from verb array
1635
+ */
1636
+ Verb next(SkPoint[4]);
1637
+
1638
+ /** Returns next SkPath::Verb, but does not advance RawIter.
1639
+
1640
+ @return next SkPath::Verb from verb array
1641
+ */
1642
+ Verb peek() const {
1643
+ return (fIter != fEnd) ? static_cast<Verb>(std::get<0>(*fIter)) : kDone_Verb;
1644
+ }
1645
+
1646
+ /** Returns conic weight if next() returned kConic_Verb.
1647
+
1648
+ If next() has not been called, or next() did not return kConic_Verb,
1649
+ result is undefined.
1650
+
1651
+ @return conic weight for conic SkPoint returned by next()
1652
+ */
1653
+ SkScalar conicWeight() const {
1654
+ return fConicWeight;
1655
+ }
1656
+
1657
+ private:
1658
+ RangeIter fIter;
1659
+ RangeIter fEnd;
1660
+ SkScalar fConicWeight = 0;
1661
+ friend class SkPath;
1662
+
1663
+ };
1664
+
1665
+ /** Returns true if the point (x, y) is contained by SkPath, taking into
1666
+ account FillType.
1667
+
1668
+ @param x x-axis value of containment test
1669
+ @param y y-axis value of containment test
1670
+ @return true if SkPoint is in SkPath
1671
+
1672
+ example: https://fiddle.skia.org/c/@Path_contains
1673
+ */
1674
+ bool contains(SkScalar x, SkScalar y) const;
1675
+
1676
+ /** Writes text representation of SkPath to stream. If stream is nullptr, writes to
1677
+ standard output. Set dumpAsHex true to generate exact binary representations
1678
+ of floating point numbers used in SkPoint array and conic weights.
1679
+
1680
+ @param stream writable SkWStream receiving SkPath text representation; may be nullptr
1681
+ @param dumpAsHex true if SkScalar values are written as hexadecimal
1682
+
1683
+ example: https://fiddle.skia.org/c/@Path_dump
1684
+ */
1685
+ void dump(SkWStream* stream, bool dumpAsHex) const;
1686
+
1687
+ void dump() const { this->dump(nullptr, false); }
1688
+ void dumpHex() const { this->dump(nullptr, true); }
1689
+
1690
+ // Like dump(), but outputs for the SkPath::Make() factory
1691
+ void dumpArrays(SkWStream* stream, bool dumpAsHex) const;
1692
+ void dumpArrays() const { this->dumpArrays(nullptr, false); }
1693
+
1694
+ /** Writes SkPath to buffer, returning the number of bytes written.
1695
+ Pass nullptr to obtain the storage size.
1696
+
1697
+ Writes SkPath::FillType, verb array, SkPoint array, conic weight, and
1698
+ additionally writes computed information like SkPath::Convexity and bounds.
1699
+
1700
+ Use only be used in concert with readFromMemory();
1701
+ the format used for SkPath in memory is not guaranteed.
1702
+
1703
+ @param buffer storage for SkPath; may be nullptr
1704
+ @return size of storage required for SkPath; always a multiple of 4
1705
+
1706
+ example: https://fiddle.skia.org/c/@Path_writeToMemory
1707
+ */
1708
+ size_t writeToMemory(void* buffer) const;
1709
+
1710
+ /** Writes SkPath to buffer, returning the buffer written to, wrapped in SkData.
1711
+
1712
+ serialize() writes SkPath::FillType, verb array, SkPoint array, conic weight, and
1713
+ additionally writes computed information like SkPath::Convexity and bounds.
1714
+
1715
+ serialize() should only be used in concert with readFromMemory().
1716
+ The format used for SkPath in memory is not guaranteed.
1717
+
1718
+ @return SkPath data wrapped in SkData buffer
1719
+
1720
+ example: https://fiddle.skia.org/c/@Path_serialize
1721
+ */
1722
+ sk_sp<SkData> serialize() const;
1723
+
1724
+ /** Initializes SkPath from buffer of size length. Returns zero if the buffer is
1725
+ data is inconsistent, or the length is too small.
1726
+
1727
+ Reads SkPath::FillType, verb array, SkPoint array, conic weight, and
1728
+ additionally reads computed information like SkPath::Convexity and bounds.
1729
+
1730
+ Used only in concert with writeToMemory();
1731
+ the format used for SkPath in memory is not guaranteed.
1732
+
1733
+ @param buffer storage for SkPath
1734
+ @param length buffer size in bytes; must be multiple of 4
1735
+ @return number of bytes read, or zero on failure
1736
+
1737
+ example: https://fiddle.skia.org/c/@Path_readFromMemory
1738
+ */
1739
+ size_t readFromMemory(const void* buffer, size_t length);
1740
+
1741
+ /** (See Skia bug 1762.)
1742
+ Returns a non-zero, globally unique value. A different value is returned
1743
+ if verb array, SkPoint array, or conic weight changes.
1744
+
1745
+ Setting SkPath::FillType does not change generation identifier.
1746
+
1747
+ Each time the path is modified, a different generation identifier will be returned.
1748
+ SkPath::FillType does affect generation identifier on Android framework.
1749
+
1750
+ @return non-zero, globally unique value
1751
+
1752
+ example: https://fiddle.skia.org/c/@Path_getGenerationID
1753
+ */
1754
+ uint32_t getGenerationID() const;
1755
+
1756
+ /** Returns if SkPath data is consistent. Corrupt SkPath data is detected if
1757
+ internal values are out of range or internal storage does not match
1758
+ array dimensions.
1759
+
1760
+ @return true if SkPath data is consistent
1761
+ */
1762
+ bool isValid() const { return this->isValidImpl() && fPathRef->isValid(); }
1763
+
1764
+ private:
1765
+ SkPath(sk_sp<SkPathRef>, SkPathFillType, bool isVolatile, SkPathConvexity,
1766
+ SkPathFirstDirection firstDirection);
1767
+
1768
+ sk_sp<SkPathRef> fPathRef;
1769
+ int fLastMoveToIndex;
1770
+ mutable std::atomic<uint8_t> fConvexity; // SkPathConvexity
1771
+ mutable std::atomic<uint8_t> fFirstDirection; // SkPathFirstDirection
1772
+ uint8_t fFillType : 2;
1773
+ uint8_t fIsVolatile : 1;
1774
+
1775
+ /** Resets all fields other than fPathRef to their initial 'empty' values.
1776
+ * Assumes the caller has already emptied fPathRef.
1777
+ * On Android increments fGenerationID without reseting it.
1778
+ */
1779
+ void resetFields();
1780
+
1781
+ /** Sets all fields other than fPathRef to the values in 'that'.
1782
+ * Assumes the caller has already set fPathRef.
1783
+ * Doesn't change fGenerationID or fSourcePath on Android.
1784
+ */
1785
+ void copyFields(const SkPath& that);
1786
+
1787
+ size_t writeToMemoryAsRRect(void* buffer) const;
1788
+ size_t readAsRRect(const void*, size_t);
1789
+ size_t readFromMemory_EQ4Or5(const void*, size_t);
1790
+
1791
+ friend class Iter;
1792
+ friend class SkPathPriv;
1793
+ friend class SkPathStroker;
1794
+
1795
+ /* Append, in reverse order, the first contour of path, ignoring path's
1796
+ last point. If no moveTo() call has been made for this contour, the
1797
+ first point is automatically set to (0,0).
1798
+ */
1799
+ SkPath& reversePathTo(const SkPath&);
1800
+
1801
+ // called before we add points for lineTo, quadTo, cubicTo, checking to see
1802
+ // if we need to inject a leading moveTo first
1803
+ //
1804
+ // SkPath path; path.lineTo(...); <--- need a leading moveTo(0, 0)
1805
+ // SkPath path; ... path.close(); path.lineTo(...) <-- need a moveTo(previous moveTo)
1806
+ //
1807
+ inline void injectMoveToIfNeeded();
1808
+
1809
+ inline bool hasOnlyMoveTos() const;
1810
+
1811
+ SkPathConvexity computeConvexity() const;
1812
+
1813
+ /** Asserts if SkPath data is inconsistent.
1814
+ Debugging check intended for internal use only.
1815
+ */
1816
+ SkDEBUGCODE(void validate() const { SkASSERT(this->isValidImpl()); } )
1817
+ bool isValidImpl() const;
1818
+ SkDEBUGCODE(void validateRef() const { fPathRef->validate(); } )
1819
+
1820
+ // called by stroker to see if all points (in the last contour) are equal and worthy of a cap
1821
+ bool isZeroLengthSincePoint(int startPtIndex) const;
1822
+
1823
+ /** Returns if the path can return a bound at no cost (true) or will have to
1824
+ perform some computation (false).
1825
+ */
1826
+ bool hasComputedBounds() const {
1827
+ SkDEBUGCODE(this->validate();)
1828
+ return fPathRef->hasComputedBounds();
1829
+ }
1830
+
1831
+
1832
+ // 'rect' needs to be sorted
1833
+ void setBounds(const SkRect& rect) {
1834
+ SkPathRef::Editor ed(&fPathRef);
1835
+
1836
+ ed.setBounds(rect);
1837
+ }
1838
+
1839
+ void setPt(int index, SkScalar x, SkScalar y);
1840
+
1841
+ SkPath& dirtyAfterEdit();
1842
+
1843
+ // Bottlenecks for working with fConvexity and fFirstDirection.
1844
+ // Notice the setters are const... these are mutable atomic fields.
1845
+ void setConvexity(SkPathConvexity) const;
1846
+
1847
+ void setFirstDirection(SkPathFirstDirection) const;
1848
+ SkPathFirstDirection getFirstDirection() const;
1849
+
1850
+ /** Returns the comvexity type, computing if needed. Never returns kUnknown.
1851
+ @return path's convexity type (convex or concave)
1852
+ */
1853
+ SkPathConvexity getConvexity() const;
1854
+
1855
+ SkPathConvexity getConvexityOrUnknown() const {
1856
+ return (SkPathConvexity)fConvexity.load(std::memory_order_relaxed);
1857
+ }
1858
+
1859
+ // Compares the cached value with a freshly computed one (computeConvexity())
1860
+ bool isConvexityAccurate() const;
1861
+
1862
+ /** Stores a convexity type for this path. This is what will be returned if
1863
+ * getConvexityOrUnknown() is called. If you pass kUnknown, then if getContexityType()
1864
+ * is called, the real convexity will be computed.
1865
+ *
1866
+ * example: https://fiddle.skia.org/c/@Path_setConvexity
1867
+ */
1868
+ void setConvexity(SkPathConvexity convexity);
1869
+
1870
+ /** Shrinks SkPath verb array and SkPoint array storage to discard unused capacity.
1871
+ * May reduce the heap overhead for SkPath known to be fully constructed.
1872
+ *
1873
+ * NOTE: This may relocate the underlying buffers, and thus any Iterators referencing
1874
+ * this path should be discarded after calling shrinkToFit().
1875
+ */
1876
+ void shrinkToFit();
1877
+
1878
+ friend class SkAutoPathBoundsUpdate;
1879
+ friend class SkAutoDisableOvalCheck;
1880
+ friend class SkAutoDisableDirectionCheck;
1881
+ friend class SkPathBuilder;
1882
+ friend class SkPathEdgeIter;
1883
+ friend class SkPathWriter;
1884
+ friend class SkOpBuilder;
1885
+ friend class SkBench_AddPathTest; // perf test reversePathTo
1886
+ friend class PathTest_Private; // unit test reversePathTo
1887
+ friend class ForceIsRRect_Private; // unit test isRRect
1888
+ friend class FuzzPath; // for legacy access to validateRef
1889
+ };
1890
+
1891
+ #endif