@shopify/react-native-skia 1.3.13 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. package/android/CMakeLists.txt +9 -4
  2. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
  3. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
  4. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
  5. package/cpp/api/JsiSkApi.h +2 -0
  6. package/cpp/api/JsiSkPath.h +29 -19
  7. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  8. package/cpp/api/JsiSkiaContext.h +79 -0
  9. package/cpp/rnskia/RNSkPlatformContext.h +4 -0
  10. package/cpp/rnskia/SkiaContext.h +22 -0
  11. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
  12. package/cpp/skia/include/android/SkImageAndroid.h +1 -1
  13. package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
  14. package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
  15. package/cpp/skia/include/codec/SkCodec.h +28 -5
  16. package/cpp/skia/include/core/SkArc.h +69 -0
  17. package/cpp/skia/include/core/SkBitmap.h +10 -0
  18. package/cpp/skia/include/core/SkBlender.h +2 -3
  19. package/cpp/skia/include/core/SkCanvas.h +86 -16
  20. package/cpp/skia/include/core/SkCapabilities.h +0 -4
  21. package/cpp/skia/include/core/SkColorFilter.h +4 -4
  22. package/cpp/skia/include/core/SkColorPriv.h +5 -7
  23. package/cpp/skia/include/core/SkColorType.h +2 -0
  24. package/cpp/skia/include/core/SkFlattenable.h +1 -1
  25. package/cpp/skia/include/core/SkFontArguments.h +3 -1
  26. package/cpp/skia/include/core/SkFontParameters.h +3 -2
  27. package/cpp/skia/include/core/SkFourByteTag.h +19 -0
  28. package/cpp/skia/include/core/SkImage.h +41 -1
  29. package/cpp/skia/include/core/SkImageGenerator.h +0 -5
  30. package/cpp/skia/include/core/SkImageInfo.h +20 -0
  31. package/cpp/skia/include/core/SkM44.h +1 -1
  32. package/cpp/skia/include/core/SkMatrix.h +2 -1
  33. package/cpp/skia/include/core/SkMilestone.h +1 -1
  34. package/cpp/skia/include/core/SkPaint.h +1 -1
  35. package/cpp/skia/include/core/SkPath.h +20 -6
  36. package/cpp/skia/include/core/SkPathMeasure.h +1 -0
  37. package/cpp/skia/include/core/SkPicture.h +5 -5
  38. package/cpp/skia/include/core/SkPoint3.h +2 -12
  39. package/cpp/skia/include/core/SkRRect.h +5 -0
  40. package/cpp/skia/include/core/SkRect.h +5 -16
  41. package/cpp/skia/include/core/SkRefCnt.h +2 -0
  42. package/cpp/skia/include/core/SkScalar.h +20 -32
  43. package/cpp/skia/include/core/SkShader.h +17 -0
  44. package/cpp/skia/include/core/SkSize.h +2 -1
  45. package/cpp/skia/include/core/SkStream.h +2 -3
  46. package/cpp/skia/include/core/SkStrokeRec.h +6 -1
  47. package/cpp/skia/include/core/SkSurface.h +13 -4
  48. package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
  49. package/cpp/skia/include/core/SkSwizzle.h +3 -1
  50. package/cpp/skia/include/core/SkTypeface.h +1 -0
  51. package/cpp/skia/include/core/SkTypes.h +1 -19
  52. package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
  53. package/cpp/skia/include/core/SkVertices.h +4 -2
  54. package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
  55. package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
  56. package/cpp/skia/include/effects/SkImageFilters.h +49 -23
  57. package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
  58. package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
  59. package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
  60. package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
  61. package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
  62. package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
  63. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
  64. package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
  65. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
  66. package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
  67. package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
  68. package/cpp/skia/include/gpu/GrTypes.h +2 -238
  69. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
  70. package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
  71. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
  72. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
  73. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
  74. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
  75. package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
  76. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
  77. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
  78. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
  79. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
  80. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
  81. package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
  82. package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
  83. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
  85. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
  86. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
  87. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
  88. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
  89. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
  90. package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
  91. package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
  92. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
  93. package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
  94. package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
  95. package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
  96. package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
  97. package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
  98. package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
  99. package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
  100. package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
  101. package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
  102. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
  103. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
  104. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
  105. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
  106. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
  107. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
  108. package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
  109. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
  110. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
  111. package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
  112. package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
  113. package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
  114. package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
  115. package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
  116. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
  117. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
  118. package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
  119. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
  120. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
  121. package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
  122. package/cpp/skia/include/gpu/graphite/Context.h +122 -44
  123. package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
  124. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
  125. package/cpp/skia/include/gpu/graphite/Image.h +56 -54
  126. package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
  127. package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
  128. package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
  129. package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
  130. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
  131. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
  132. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
  133. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
  134. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
  135. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
  136. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
  137. package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
  138. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
  139. package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
  140. package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
  141. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
  142. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
  143. package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
  144. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
  145. package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
  146. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
  147. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
  148. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
  149. package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
  150. package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
  151. package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
  152. package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
  153. package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
  154. package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
  155. package/cpp/skia/include/private/SkExif.h +28 -75
  156. package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
  157. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
  158. package/cpp/skia/include/private/SkPathRef.h +52 -44
  159. package/cpp/skia/include/private/SkXmp.h +13 -4
  160. package/cpp/skia/include/private/base/SkASAN.h +56 -0
  161. package/cpp/skia/include/private/base/SkAlign.h +5 -0
  162. package/cpp/skia/include/private/base/SkContainers.h +10 -2
  163. package/cpp/skia/include/private/base/SkFeatures.h +22 -1
  164. package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
  165. package/cpp/skia/include/private/base/SkMacros.h +67 -0
  166. package/cpp/skia/include/private/base/SkMalloc.h +8 -0
  167. package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
  168. package/cpp/skia/include/private/base/SkTArray.h +108 -23
  169. package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
  170. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
  171. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
  172. package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
  173. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
  174. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
  175. package/cpp/skia/include/private/chromium/Slug.h +5 -11
  176. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
  177. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
  178. package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
  179. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
  180. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
  181. package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
  182. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
  183. package/cpp/skia/include/utils/SkParse.h +0 -1
  184. package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
  185. package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
  186. package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
  187. package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
  188. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
  189. package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
  190. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
  191. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  192. package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
  193. package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
  194. package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
  195. package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
  196. package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
  197. package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
  198. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
  199. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
  200. package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
  201. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
  202. package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
  203. package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
  204. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
  205. package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
  206. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
  207. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
  208. package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
  209. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
  210. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
  211. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
  212. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
  213. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
  214. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
  215. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
  216. package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
  217. package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
  218. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
  219. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
  220. package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
  221. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
  222. package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
  223. package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
  224. package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
  225. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
  226. package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
  227. package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
  228. package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
  229. package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
  230. package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
  231. package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
  232. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
  233. package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
  234. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
  235. package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
  236. package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
  237. package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
  238. package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
  239. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
  240. package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
  241. package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
  242. package/cpp/skia/src/base/SkMathPriv.h +337 -0
  243. package/cpp/skia/src/base/SkTLazy.h +208 -0
  244. package/cpp/skia/src/core/SkTHash.h +58 -7
  245. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
  246. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
  247. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
  248. package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
  249. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
  250. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
  251. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  252. package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
  253. package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
  254. package/lib/commonjs/skia/types/Skia.d.ts +6 -1
  255. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  256. package/lib/commonjs/skia/web/JsiSkia.js +4 -1
  257. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  258. package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
  259. package/lib/commonjs/web/WithSkiaWeb.js +3 -2
  260. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  261. package/lib/module/renderer/HostConfig.js.map +1 -1
  262. package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
  263. package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
  264. package/lib/module/skia/types/Skia.d.ts +6 -1
  265. package/lib/module/skia/types/Skia.js.map +1 -1
  266. package/lib/module/skia/web/JsiSkia.js +4 -1
  267. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  268. package/lib/module/web/WithSkiaWeb.d.ts +11 -4
  269. package/lib/module/web/WithSkiaWeb.js +3 -2
  270. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  271. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
  272. package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
  273. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  274. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
  275. package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
  276. package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
  277. package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
  278. package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
  279. package/libs/android/arm64-v8a/libskia.a +0 -0
  280. package/libs/android/arm64-v8a/libskottie.a +0 -0
  281. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  282. package/libs/android/arm64-v8a/libsksg.a +0 -0
  283. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  284. package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
  285. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  286. package/libs/android/arm64-v8a/libsvg.a +0 -0
  287. package/libs/android/armeabi-v7a/libskia.a +0 -0
  288. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  289. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  290. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  291. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  292. package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
  293. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  294. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  295. package/libs/android/x86/libskia.a +0 -0
  296. package/libs/android/x86/libskottie.a +0 -0
  297. package/libs/android/x86/libskparagraph.a +0 -0
  298. package/libs/android/x86/libsksg.a +0 -0
  299. package/libs/android/x86/libskshaper.a +0 -0
  300. package/libs/android/x86/libskunicode_core.a +0 -0
  301. package/libs/android/x86/libskunicode_icu.a +0 -0
  302. package/libs/android/x86/libsvg.a +0 -0
  303. package/libs/android/x86_64/libskia.a +0 -0
  304. package/libs/android/x86_64/libskottie.a +0 -0
  305. package/libs/android/x86_64/libskparagraph.a +0 -0
  306. package/libs/android/x86_64/libsksg.a +0 -0
  307. package/libs/android/x86_64/libskshaper.a +0 -0
  308. package/libs/android/x86_64/libskunicode_core.a +0 -0
  309. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  310. package/libs/android/x86_64/libsvg.a +0 -0
  311. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  312. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  313. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  314. package/libs/ios/libskottie.xcframework/Info.plist +5 -5
  315. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  316. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  317. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  318. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  319. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  320. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  321. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  322. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  323. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  324. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  325. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  326. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  327. package/package.json +3 -5
  328. package/react-native-skia.podspec +2 -1
  329. package/src/renderer/HostConfig.ts +5 -1
  330. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
  331. package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
  332. package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
  333. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
  334. package/src/skia/types/Paragraph/TextStyle.ts +2 -2
  335. package/src/skia/types/Skia.ts +7 -1
  336. package/src/skia/web/JsiSkia.ts +3 -0
  337. package/src/web/WithSkiaWeb.tsx +17 -6
  338. package/cpp/skia/include/core/SkDrawLooper.h +0 -135
  339. package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
  340. package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
  341. package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
  342. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
  343. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
  344. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
  345. package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
  346. package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
  347. package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
  348. package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
  349. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
  350. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
  351. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
  352. package/cpp/skia/src/core/SkPathEnums.h +0 -25
  353. package/cpp/skia/src/core/SkPathPriv.h +0 -540
  354. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  355. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  356. package/libs/android/x86/libskunicode.a +0 -0
  357. package/libs/android/x86_64/libskunicode.a +0 -0
  358. package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
  359. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  360. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  361. /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -1,540 +0,0 @@
1
- /*
2
- * Copyright 2015 Google Inc.
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 SkPathPriv_DEFINED
9
- #define SkPathPriv_DEFINED
10
-
11
- #include "include/core/SkPath.h"
12
- #include "include/core/SkPathBuilder.h"
13
- #include "include/core/SkPathTypes.h"
14
- #include "include/core/SkPoint.h"
15
- #include "include/core/SkRect.h"
16
- #include "include/core/SkRefCnt.h"
17
- #include "include/core/SkScalar.h"
18
- #include "include/core/SkTypes.h"
19
- #include "include/private/SkIDChangeListener.h"
20
- #include "include/private/SkPathRef.h"
21
- #include "include/private/base/SkDebug.h"
22
- #include "src/core/SkPathEnums.h"
23
-
24
- #include <cstdint>
25
- #include <iterator>
26
- #include <utility>
27
-
28
- class SkMatrix;
29
- class SkRRect;
30
-
31
- static_assert(0 == static_cast<int>(SkPathFillType::kWinding), "fill_type_mismatch");
32
- static_assert(1 == static_cast<int>(SkPathFillType::kEvenOdd), "fill_type_mismatch");
33
- static_assert(2 == static_cast<int>(SkPathFillType::kInverseWinding), "fill_type_mismatch");
34
- static_assert(3 == static_cast<int>(SkPathFillType::kInverseEvenOdd), "fill_type_mismatch");
35
-
36
- class SkPathPriv {
37
- public:
38
- // skbug.com/9906: Not a perfect solution for W plane clipping, but 1/16384 is a
39
- // reasonable limit (roughly 5e-5)
40
- inline static constexpr SkScalar kW0PlaneDistance = 1.f / (1 << 14);
41
-
42
- static SkPathFirstDirection AsFirstDirection(SkPathDirection dir) {
43
- // since we agree numerically for the values in Direction, we can just cast.
44
- return (SkPathFirstDirection)dir;
45
- }
46
-
47
- /**
48
- * Return the opposite of the specified direction. kUnknown is its own
49
- * opposite.
50
- */
51
- static SkPathFirstDirection OppositeFirstDirection(SkPathFirstDirection dir) {
52
- static const SkPathFirstDirection gOppositeDir[] = {
53
- SkPathFirstDirection::kCCW, SkPathFirstDirection::kCW, SkPathFirstDirection::kUnknown,
54
- };
55
- return gOppositeDir[(unsigned)dir];
56
- }
57
-
58
- /**
59
- * Tries to compute the direction of the outer-most non-degenerate
60
- * contour. If it can be computed, return that direction. If it cannot be determined,
61
- * or the contour is known to be convex, return kUnknown. If the direction was determined,
62
- * it is cached to make subsequent calls return quickly.
63
- */
64
- static SkPathFirstDirection ComputeFirstDirection(const SkPath&);
65
-
66
- static bool IsClosedSingleContour(const SkPath& path) {
67
- int verbCount = path.countVerbs();
68
- if (verbCount == 0)
69
- return false;
70
- int moveCount = 0;
71
- auto verbs = path.fPathRef->verbsBegin();
72
- for (int i = 0; i < verbCount; i++) {
73
- switch (verbs[i]) {
74
- case SkPath::Verb::kMove_Verb:
75
- moveCount += 1;
76
- if (moveCount > 1) {
77
- return false;
78
- }
79
- break;
80
- case SkPath::Verb::kClose_Verb:
81
- if (i == verbCount - 1) {
82
- return true;
83
- }
84
- return false;
85
- default: break;
86
- }
87
- }
88
- return false;
89
- }
90
-
91
- // In some scenarios (e.g. fill or convexity checking all but the last leading move to are
92
- // irrelevant to behavior). SkPath::injectMoveToIfNeeded should ensure that this is always at
93
- // least 1.
94
- static int LeadingMoveToCount(const SkPath& path) {
95
- int verbCount = path.countVerbs();
96
- auto verbs = path.fPathRef->verbsBegin();
97
- for (int i = 0; i < verbCount; i++) {
98
- if (verbs[i] != SkPath::Verb::kMove_Verb) {
99
- return i;
100
- }
101
- }
102
- return verbCount; // path is all move verbs
103
- }
104
-
105
- static void AddGenIDChangeListener(const SkPath& path, sk_sp<SkIDChangeListener> listener) {
106
- path.fPathRef->addGenIDChangeListener(std::move(listener));
107
- }
108
-
109
- /**
110
- * This returns true for a rect that has a move followed by 3 or 4 lines and a close. If
111
- * 'isSimpleFill' is true, an uncloseed rect will also be accepted as long as it starts and
112
- * ends at the same corner. This does not permit degenerate line or point rectangles.
113
- */
114
- static bool IsSimpleRect(const SkPath& path, bool isSimpleFill, SkRect* rect,
115
- SkPathDirection* direction, unsigned* start);
116
-
117
- /**
118
- * Creates a path from arc params using the semantics of SkCanvas::drawArc. This function
119
- * assumes empty ovals and zero sweeps have already been filtered out.
120
- */
121
- static void CreateDrawArcPath(SkPath* path, const SkRect& oval, SkScalar startAngle,
122
- SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect);
123
-
124
- /**
125
- * Determines whether an arc produced by CreateDrawArcPath will be convex. Assumes a non-empty
126
- * oval.
127
- */
128
- static bool DrawArcIsConvex(SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect);
129
-
130
- static void ShrinkToFit(SkPath* path) {
131
- path->shrinkToFit();
132
- }
133
-
134
- /**
135
- * Returns a C++11-iterable object that traverses a path's verbs in order. e.g:
136
- *
137
- * for (SkPath::Verb verb : SkPathPriv::Verbs(path)) {
138
- * ...
139
- * }
140
- */
141
- struct Verbs {
142
- public:
143
- Verbs(const SkPath& path) : fPathRef(path.fPathRef.get()) {}
144
- struct Iter {
145
- void operator++() { fVerb++; }
146
- bool operator!=(const Iter& b) { return fVerb != b.fVerb; }
147
- SkPath::Verb operator*() { return static_cast<SkPath::Verb>(*fVerb); }
148
- const uint8_t* fVerb;
149
- };
150
- Iter begin() { return Iter{fPathRef->verbsBegin()}; }
151
- Iter end() { return Iter{fPathRef->verbsEnd()}; }
152
- private:
153
- Verbs(const Verbs&) = delete;
154
- Verbs& operator=(const Verbs&) = delete;
155
- SkPathRef* fPathRef;
156
- };
157
-
158
- /**
159
- * Iterates through a raw range of path verbs, points, and conics. All values are returned
160
- * unaltered.
161
- *
162
- * NOTE: This class's definition will be moved into SkPathPriv once RangeIter is removed.
163
- */
164
- using RangeIter = SkPath::RangeIter;
165
-
166
- /**
167
- * Iterable object for traversing verbs, points, and conic weights in a path:
168
- *
169
- * for (auto [verb, pts, weights] : SkPathPriv::Iterate(skPath)) {
170
- * ...
171
- * }
172
- */
173
- struct Iterate {
174
- public:
175
- Iterate(const SkPath& path)
176
- : Iterate(path.fPathRef->verbsBegin(),
177
- // Don't allow iteration through non-finite points.
178
- (!path.isFinite()) ? path.fPathRef->verbsBegin()
179
- : path.fPathRef->verbsEnd(),
180
- path.fPathRef->points(), path.fPathRef->conicWeights()) {
181
- }
182
- Iterate(const uint8_t* verbsBegin, const uint8_t* verbsEnd, const SkPoint* points,
183
- const SkScalar* weights)
184
- : fVerbsBegin(verbsBegin), fVerbsEnd(verbsEnd), fPoints(points), fWeights(weights) {
185
- }
186
- SkPath::RangeIter begin() { return {fVerbsBegin, fPoints, fWeights}; }
187
- SkPath::RangeIter end() { return {fVerbsEnd, nullptr, nullptr}; }
188
- private:
189
- const uint8_t* fVerbsBegin;
190
- const uint8_t* fVerbsEnd;
191
- const SkPoint* fPoints;
192
- const SkScalar* fWeights;
193
- };
194
-
195
- /**
196
- * Returns a pointer to the verb data.
197
- */
198
- static const uint8_t* VerbData(const SkPath& path) {
199
- return path.fPathRef->verbsBegin();
200
- }
201
-
202
- /** Returns a raw pointer to the path points */
203
- static const SkPoint* PointData(const SkPath& path) {
204
- return path.fPathRef->points();
205
- }
206
-
207
- /** Returns the number of conic weights in the path */
208
- static int ConicWeightCnt(const SkPath& path) {
209
- return path.fPathRef->countWeights();
210
- }
211
-
212
- /** Returns a raw pointer to the path conic weights. */
213
- static const SkScalar* ConicWeightData(const SkPath& path) {
214
- return path.fPathRef->conicWeights();
215
- }
216
-
217
- /** Returns true if the underlying SkPathRef has one single owner. */
218
- static bool TestingOnly_unique(const SkPath& path) {
219
- return path.fPathRef->unique();
220
- }
221
-
222
- // Won't be needed once we can make path's immutable (with their bounds always computed)
223
- static bool HasComputedBounds(const SkPath& path) {
224
- return path.hasComputedBounds();
225
- }
226
-
227
- /** Returns true if constructed by addCircle(), addOval(); and in some cases,
228
- addRoundRect(), addRRect(). SkPath constructed with conicTo() or rConicTo() will not
229
- return true though SkPath draws oval.
230
-
231
- rect receives bounds of oval.
232
- dir receives SkPathDirection of oval: kCW_Direction if clockwise, kCCW_Direction if
233
- counterclockwise.
234
- start receives start of oval: 0 for top, 1 for right, 2 for bottom, 3 for left.
235
-
236
- rect, dir, and start are unmodified if oval is not found.
237
-
238
- Triggers performance optimizations on some GPU surface implementations.
239
-
240
- @param rect storage for bounding SkRect of oval; may be nullptr
241
- @param dir storage for SkPathDirection; may be nullptr
242
- @param start storage for start of oval; may be nullptr
243
- @return true if SkPath was constructed by method that reduces to oval
244
- */
245
- static bool IsOval(const SkPath& path, SkRect* rect, SkPathDirection* dir, unsigned* start) {
246
- bool isCCW = false;
247
- bool result = path.fPathRef->isOval(rect, &isCCW, start);
248
- if (dir && result) {
249
- *dir = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
250
- }
251
- return result;
252
- }
253
-
254
- /** Returns true if constructed by addRoundRect(), addRRect(); and if construction
255
- is not empty, not SkRect, and not oval. SkPath constructed with other calls
256
- will not return true though SkPath draws SkRRect.
257
-
258
- rrect receives bounds of SkRRect.
259
- dir receives SkPathDirection of oval: kCW_Direction if clockwise, kCCW_Direction if
260
- counterclockwise.
261
- start receives start of SkRRect: 0 for top, 1 for right, 2 for bottom, 3 for left.
262
-
263
- rrect, dir, and start are unmodified if SkRRect is not found.
264
-
265
- Triggers performance optimizations on some GPU surface implementations.
266
-
267
- @param rrect storage for bounding SkRect of SkRRect; may be nullptr
268
- @param dir storage for SkPathDirection; may be nullptr
269
- @param start storage for start of SkRRect; may be nullptr
270
- @return true if SkPath contains only SkRRect
271
- */
272
- static bool IsRRect(const SkPath& path, SkRRect* rrect, SkPathDirection* dir,
273
- unsigned* start) {
274
- bool isCCW = false;
275
- bool result = path.fPathRef->isRRect(rrect, &isCCW, start);
276
- if (dir && result) {
277
- *dir = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
278
- }
279
- return result;
280
- }
281
-
282
- /**
283
- * Sometimes in the drawing pipeline, we have to perform math on path coordinates, even after
284
- * the path is in device-coordinates. Tessellation and clipping are two examples. Usually this
285
- * is pretty modest, but it can involve subtracting/adding coordinates, or multiplying by
286
- * small constants (e.g. 2,3,4). To try to preflight issues where these optionations could turn
287
- * finite path values into infinities (or NaNs), we allow the upper drawing code to reject
288
- * the path if its bounds (in device coordinates) is too close to max float.
289
- */
290
- static bool TooBigForMath(const SkRect& bounds) {
291
- // This value is just a guess. smaller is safer, but we don't want to reject largish paths
292
- // that we don't have to.
293
- constexpr SkScalar scale_down_to_allow_for_small_multiplies = 0.25f;
294
- constexpr SkScalar max = SK_ScalarMax * scale_down_to_allow_for_small_multiplies;
295
-
296
- // use ! expression so we return true if bounds contains NaN
297
- return !(bounds.fLeft >= -max && bounds.fTop >= -max &&
298
- bounds.fRight <= max && bounds.fBottom <= max);
299
- }
300
- static bool TooBigForMath(const SkPath& path) {
301
- return TooBigForMath(path.getBounds());
302
- }
303
-
304
- // Returns number of valid points for each SkPath::Iter verb
305
- static int PtsInIter(unsigned verb) {
306
- static const uint8_t gPtsInVerb[] = {
307
- 1, // kMove pts[0]
308
- 2, // kLine pts[0..1]
309
- 3, // kQuad pts[0..2]
310
- 3, // kConic pts[0..2]
311
- 4, // kCubic pts[0..3]
312
- 0, // kClose
313
- 0 // kDone
314
- };
315
-
316
- SkASSERT(verb < std::size(gPtsInVerb));
317
- return gPtsInVerb[verb];
318
- }
319
-
320
- // Returns number of valid points for each verb, not including the "starter"
321
- // point that the Iterator adds for line/quad/conic/cubic
322
- static int PtsInVerb(unsigned verb) {
323
- static const uint8_t gPtsInVerb[] = {
324
- 1, // kMove pts[0]
325
- 1, // kLine pts[0..1]
326
- 2, // kQuad pts[0..2]
327
- 2, // kConic pts[0..2]
328
- 3, // kCubic pts[0..3]
329
- 0, // kClose
330
- 0 // kDone
331
- };
332
-
333
- SkASSERT(verb < std::size(gPtsInVerb));
334
- return gPtsInVerb[verb];
335
- }
336
-
337
- static bool IsAxisAligned(const SkPath& path);
338
-
339
- static bool AllPointsEq(const SkPoint pts[], int count) {
340
- for (int i = 1; i < count; ++i) {
341
- if (pts[0] != pts[i]) {
342
- return false;
343
- }
344
- }
345
- return true;
346
- }
347
-
348
- static int LastMoveToIndex(const SkPath& path) { return path.fLastMoveToIndex; }
349
-
350
- static bool IsRectContour(const SkPath&, bool allowPartial, int* currVerb,
351
- const SkPoint** ptsPtr, bool* isClosed, SkPathDirection* direction,
352
- SkRect* rect);
353
-
354
- /** Returns true if SkPath is equivalent to nested SkRect pair when filled.
355
- If false, rect and dirs are unchanged.
356
- If true, rect and dirs are written to if not nullptr:
357
- setting rect[0] to outer SkRect, and rect[1] to inner SkRect;
358
- setting dirs[0] to SkPathDirection of outer SkRect, and dirs[1] to SkPathDirection of
359
- inner SkRect.
360
-
361
- @param rect storage for SkRect pair; may be nullptr
362
- @param dirs storage for SkPathDirection pair; may be nullptr
363
- @return true if SkPath contains nested SkRect pair
364
- */
365
- static bool IsNestedFillRects(const SkPath&, SkRect rect[2],
366
- SkPathDirection dirs[2] = nullptr);
367
-
368
- static bool IsInverseFillType(SkPathFillType fill) {
369
- return (static_cast<int>(fill) & 2) != 0;
370
- }
371
-
372
- /** Returns equivalent SkPath::FillType representing SkPath fill inside its bounds.
373
- .
374
-
375
- @param fill one of: kWinding_FillType, kEvenOdd_FillType,
376
- kInverseWinding_FillType, kInverseEvenOdd_FillType
377
- @return fill, or kWinding_FillType or kEvenOdd_FillType if fill is inverted
378
- */
379
- static SkPathFillType ConvertToNonInverseFillType(SkPathFillType fill) {
380
- return (SkPathFillType)(static_cast<int>(fill) & 1);
381
- }
382
-
383
- /**
384
- * If needed (to not blow-up under a perspective matrix), clip the path, returning the
385
- * answer in "result", and return true.
386
- *
387
- * Note result might be empty (if the path was completely clipped out).
388
- *
389
- * If no clipping is needed, returns false and "result" is left unchanged.
390
- */
391
- static bool PerspectiveClip(const SkPath& src, const SkMatrix&, SkPath* result);
392
-
393
- /**
394
- * Gets the number of GenIDChangeListeners. If another thread has access to this path then
395
- * this may be stale before return and only indicates that the count was the return value
396
- * at some point during the execution of the function.
397
- */
398
- static int GenIDChangeListenersCount(const SkPath&);
399
-
400
- static void UpdatePathPoint(SkPath* path, int index, const SkPoint& pt) {
401
- SkASSERT(index < path->countPoints());
402
- SkPathRef::Editor ed(&path->fPathRef);
403
- ed.writablePoints()[index] = pt;
404
- path->dirtyAfterEdit();
405
- }
406
-
407
- static SkPathConvexity GetConvexity(const SkPath& path) {
408
- return path.getConvexity();
409
- }
410
- static SkPathConvexity GetConvexityOrUnknown(const SkPath& path) {
411
- return path.getConvexityOrUnknown();
412
- }
413
- static void SetConvexity(const SkPath& path, SkPathConvexity c) {
414
- path.setConvexity(c);
415
- }
416
- static void ForceComputeConvexity(const SkPath& path) {
417
- path.setConvexity(SkPathConvexity::kUnknown);
418
- (void)path.isConvex();
419
- }
420
-
421
- static void ReverseAddPath(SkPathBuilder* builder, const SkPath& reverseMe) {
422
- builder->privateReverseAddPath(reverseMe);
423
- }
424
-
425
- static SkPath MakePath(const SkPathVerbAnalysis& analysis,
426
- const SkPoint points[],
427
- const uint8_t verbs[],
428
- int verbCount,
429
- const SkScalar conics[],
430
- SkPathFillType fillType,
431
- bool isVolatile) {
432
- return SkPath::MakeInternal(analysis, points, verbs, verbCount, conics, fillType,
433
- isVolatile);
434
- }
435
- };
436
-
437
- // Lightweight variant of SkPath::Iter that only returns segments (e.g. lines/conics).
438
- // Does not return kMove or kClose.
439
- // Always "auto-closes" each contour.
440
- // Roughly the same as SkPath::Iter(path, true), but does not return moves or closes
441
- //
442
- class SkPathEdgeIter {
443
- const uint8_t* fVerbs;
444
- const uint8_t* fVerbsStop;
445
- const SkPoint* fPts;
446
- const SkPoint* fMoveToPtr;
447
- const SkScalar* fConicWeights;
448
- SkPoint fScratch[2]; // for auto-close lines
449
- bool fNeedsCloseLine;
450
- bool fNextIsNewContour;
451
- SkDEBUGCODE(bool fIsConic;)
452
-
453
- enum {
454
- kIllegalEdgeValue = 99
455
- };
456
-
457
- public:
458
- SkPathEdgeIter(const SkPath& path);
459
-
460
- SkScalar conicWeight() const {
461
- SkASSERT(fIsConic);
462
- return *fConicWeights;
463
- }
464
-
465
- enum class Edge {
466
- kLine = SkPath::kLine_Verb,
467
- kQuad = SkPath::kQuad_Verb,
468
- kConic = SkPath::kConic_Verb,
469
- kCubic = SkPath::kCubic_Verb,
470
- };
471
-
472
- static SkPath::Verb EdgeToVerb(Edge e) {
473
- return SkPath::Verb(e);
474
- }
475
-
476
- struct Result {
477
- const SkPoint* fPts; // points for the segment, or null if done
478
- Edge fEdge;
479
- bool fIsNewContour;
480
-
481
- // Returns true when it holds an Edge, false when the path is done.
482
- explicit operator bool() { return fPts != nullptr; }
483
- };
484
-
485
- Result next() {
486
- auto closeline = [&]() {
487
- fScratch[0] = fPts[-1];
488
- fScratch[1] = *fMoveToPtr;
489
- fNeedsCloseLine = false;
490
- fNextIsNewContour = true;
491
- return Result{ fScratch, Edge::kLine, false };
492
- };
493
-
494
- for (;;) {
495
- SkASSERT(fVerbs <= fVerbsStop);
496
- if (fVerbs == fVerbsStop) {
497
- return fNeedsCloseLine
498
- ? closeline()
499
- : Result{ nullptr, Edge(kIllegalEdgeValue), false };
500
- }
501
-
502
- SkDEBUGCODE(fIsConic = false;)
503
-
504
- const auto v = *fVerbs++;
505
- switch (v) {
506
- case SkPath::kMove_Verb: {
507
- if (fNeedsCloseLine) {
508
- auto res = closeline();
509
- fMoveToPtr = fPts++;
510
- return res;
511
- }
512
- fMoveToPtr = fPts++;
513
- fNextIsNewContour = true;
514
- } break;
515
- case SkPath::kClose_Verb:
516
- if (fNeedsCloseLine) return closeline();
517
- break;
518
- default: {
519
- // Actual edge.
520
- const int pts_count = (v+2) / 2,
521
- cws_count = (v & (v-1)) / 2;
522
- SkASSERT(pts_count == SkPathPriv::PtsInIter(v) - 1);
523
-
524
- fNeedsCloseLine = true;
525
- fPts += pts_count;
526
- fConicWeights += cws_count;
527
-
528
- SkDEBUGCODE(fIsConic = (v == SkPath::kConic_Verb);)
529
- SkASSERT(fIsConic == (cws_count > 0));
530
-
531
- bool isNewContour = fNextIsNewContour;
532
- fNextIsNewContour = false;
533
- return { &fPts[-(pts_count + 1)], Edge(v), isNewContour };
534
- }
535
- }
536
- }
537
- }
538
- };
539
-
540
- #endif
Binary file
Binary file
@@ -1,46 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>AvailableLibraries</key>
6
- <array>
7
- <dict>
8
- <key>BinaryPath</key>
9
- <string>libskunicode.a</string>
10
- <key>LibraryIdentifier</key>
11
- <string>ios-arm64_arm64e_x86_64-simulator</string>
12
- <key>LibraryPath</key>
13
- <string>libskunicode.a</string>
14
- <key>SupportedArchitectures</key>
15
- <array>
16
- <string>arm64</string>
17
- <string>arm64e</string>
18
- <string>x86_64</string>
19
- </array>
20
- <key>SupportedPlatform</key>
21
- <string>ios</string>
22
- <key>SupportedPlatformVariant</key>
23
- <string>simulator</string>
24
- </dict>
25
- <dict>
26
- <key>BinaryPath</key>
27
- <string>libskunicode.a</string>
28
- <key>LibraryIdentifier</key>
29
- <string>ios-arm64_arm64e</string>
30
- <key>LibraryPath</key>
31
- <string>libskunicode.a</string>
32
- <key>SupportedArchitectures</key>
33
- <array>
34
- <string>arm64</string>
35
- <string>arm64e</string>
36
- </array>
37
- <key>SupportedPlatform</key>
38
- <string>ios</string>
39
- </dict>
40
- </array>
41
- <key>CFBundlePackageType</key>
42
- <string>XFWK</string>
43
- <key>XCFrameworkFormatVersion</key>
44
- <string>1.0</string>
45
- </dict>
46
- </plist>