@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
@@ -6,6 +6,7 @@
6
6
  #include <stack>
7
7
  #include <string>
8
8
  #include <tuple>
9
+ #include <vector>
9
10
  #include "modules/skparagraph/include/FontCollection.h"
10
11
  #include "modules/skparagraph/include/Paragraph.h"
11
12
  #include "modules/skparagraph/include/ParagraphStyle.h"
@@ -60,6 +61,7 @@ public:
60
61
  virtual SkSpan<char> getText() = 0;
61
62
  virtual const ParagraphStyle& getParagraphStyle() const = 0;
62
63
 
64
+ #if !defined(SK_DISABLE_LEGACY_CLIENT_UNICODE) && defined(SK_UNICODE_CLIENT_IMPLEMENTATION)
63
65
  // Mainly, support for "Client" unicode
64
66
  virtual void setWordsUtf8(std::vector<SkUnicode::Position> wordsUtf8) = 0;
65
67
  virtual void setWordsUtf16(std::vector<SkUnicode::Position> wordsUtf16) = 0;
@@ -70,15 +72,27 @@ public:
70
72
  virtual void setLineBreaksUtf8(std::vector<SkUnicode::LineBreakBefore> lineBreaksUtf8) = 0;
71
73
  virtual void setLineBreaksUtf16(std::vector<SkUnicode::LineBreakBefore> lineBreaksUtf16) = 0;
72
74
 
73
- virtual void SetUnicode(std::unique_ptr<SkUnicode> unicode) = 0;
75
+ virtual std::tuple<std::vector<SkUnicode::Position>,
76
+ std::vector<SkUnicode::Position>,
77
+ std::vector<SkUnicode::LineBreakBefore>>
78
+ getClientICUData() const = 0;
79
+
80
+ virtual void SetUnicode(sk_sp<SkUnicode> unicode) = 0;
81
+ #endif
74
82
 
75
83
  // Resets this builder to its initial state, discarding any text, styles, placeholders that have
76
84
  // been added, but keeping the initial ParagraphStyle.
77
85
  virtual void Reset() = 0;
78
86
 
79
87
  // Just until we fix all the google3 code
88
+ static std::unique_ptr<ParagraphBuilder> make(const ParagraphStyle& style,
89
+ sk_sp<FontCollection> fontCollection,
90
+ sk_sp<SkUnicode> unicode);
91
+
92
+ #if !defined(SK_DISABLE_LEGACY_PARAGRAPH_UNICODE)
80
93
  static std::unique_ptr<ParagraphBuilder> make(const ParagraphStyle& style,
81
94
  sk_sp<FontCollection> fontCollection);
95
+ #endif
82
96
  };
83
97
  } // namespace textlayout
84
98
  } // namespace skia
@@ -22,14 +22,14 @@ namespace skia {
22
22
  namespace textlayout {
23
23
 
24
24
  static inline bool nearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZero) {
25
- if (SkScalarIsFinite(x)) {
25
+ if (SkIsFinite(x)) {
26
26
  return SkScalarNearlyZero(x, tolerance);
27
27
  }
28
28
  return false;
29
29
  }
30
30
 
31
31
  static inline bool nearlyEqual(SkScalar x, SkScalar y, SkScalar tolerance = SK_ScalarNearlyZero) {
32
- if (SkScalarIsFinite(x) && SkScalarIsFinite(x)) {
32
+ if (SkIsFinite(x, y)) {
33
33
  return SkScalarNearlyEqual(x, y, tolerance);
34
34
  }
35
35
  // Inf == Inf, anything else is false
@@ -46,7 +46,7 @@ public:
46
46
 
47
47
  sk_sp<SkFontStyleSet> onMatchFamily(const char familyName[]) const override;
48
48
 
49
- sk_sp<SkFontStyleSet> onCreateStyleSet(int) const override { return nullptr; }
49
+ sk_sp<SkFontStyleSet> onCreateStyleSet(int) const override;
50
50
  sk_sp<SkTypeface> onMatchFamilyStyle(const char familyName[], const SkFontStyle& pattern) const override;
51
51
  sk_sp<SkTypeface> onMatchFamilyStyleCharacter(const char[], const SkFontStyle&,
52
52
  const char*[], int,
@@ -66,9 +66,7 @@ public:
66
66
  return nullptr;
67
67
  }
68
68
 
69
- sk_sp<SkTypeface> onLegacyMakeTypeface(const char[], SkFontStyle) const override {
70
- return nullptr;
71
- }
69
+ sk_sp<SkTypeface> onLegacyMakeTypeface(const char[], SkFontStyle) const override;
72
70
 
73
71
  private:
74
72
  skia_private::THashMap<SkString, sk_sp<TypefaceFontStyleSet>> fRegisteredFamilies;
@@ -260,7 +260,7 @@ private:
260
260
  using INHERITED = ResourceProviderProxyBase;
261
261
  };
262
262
 
263
- class DataURIResourceProviderProxy final : public ResourceProviderProxyBase {
263
+ class SK_API DataURIResourceProviderProxy final : public ResourceProviderProxyBase {
264
264
  public:
265
265
  // If font data is supplied via base64 encoding, this needs a provided SkFontMgr to process
266
266
  // that font data into an SkTypeface. To decode images, clients must call SkCodecs::Register()
@@ -0,0 +1,316 @@
1
+ /*
2
+ * Copyright 2016 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 SkShaper_DEFINED
9
+ #define SkShaper_DEFINED
10
+
11
+ #include "include/core/SkFont.h"
12
+ #include "include/core/SkFourByteTag.h"
13
+ #include "include/core/SkPoint.h"
14
+ #include "include/core/SkRefCnt.h"
15
+ #include "include/core/SkScalar.h"
16
+ #include "include/core/SkString.h"
17
+ #include "include/core/SkTextBlob.h"
18
+ #include "include/core/SkTypes.h"
19
+
20
+ #include <cstddef>
21
+ #include <cstdint>
22
+ #include <memory>
23
+ #include <type_traits>
24
+
25
+ class SkFontStyle;
26
+
27
+ #if defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
28
+ class SkFontMgr;
29
+ #else
30
+ #include "include/core/SkFontMgr.h"
31
+ #endif
32
+
33
+ #if !defined(SKSHAPER_IMPLEMENTATION)
34
+ #define SKSHAPER_IMPLEMENTATION 0
35
+ #endif
36
+
37
+ #if !defined(SKSHAPER_API)
38
+ #if defined(SKSHAPER_DLL)
39
+ #if defined(_MSC_VER)
40
+ #if SKSHAPER_IMPLEMENTATION
41
+ #define SKSHAPER_API __declspec(dllexport)
42
+ #else
43
+ #define SKSHAPER_API __declspec(dllimport)
44
+ #endif
45
+ #else
46
+ #define SKSHAPER_API __attribute__((visibility("default")))
47
+ #endif
48
+ #else
49
+ #define SKSHAPER_API
50
+ #endif
51
+ #endif
52
+
53
+ class SKSHAPER_API SkShaper {
54
+ public:
55
+ #if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
56
+ static std::unique_ptr<SkShaper> MakePrimitive();
57
+
58
+ #if defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
59
+ static std::unique_ptr<SkShaper> MakeShaperDrivenWrapper(sk_sp<SkFontMgr> fallback);
60
+ static std::unique_ptr<SkShaper> MakeShapeThenWrap(sk_sp<SkFontMgr> fallback);
61
+ static void PurgeHarfBuzzCache();
62
+ #endif
63
+
64
+ #if defined(SK_SHAPER_CORETEXT_AVAILABLE)
65
+ static std::unique_ptr<SkShaper> MakeCoreText();
66
+ #endif
67
+
68
+ static std::unique_ptr<SkShaper> Make(sk_sp<SkFontMgr> fallback = nullptr);
69
+ static void PurgeCaches();
70
+ #endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
71
+
72
+ SkShaper();
73
+ virtual ~SkShaper();
74
+
75
+ class RunIterator {
76
+ public:
77
+ virtual ~RunIterator() = default;
78
+ /** Set state to that of current run and move iterator to end of that run. */
79
+ virtual void consume() = 0;
80
+ /** Offset to one past the last (utf8) element in the current run. */
81
+ virtual size_t endOfCurrentRun() const = 0;
82
+ /** Return true if consume should no longer be called. */
83
+ virtual bool atEnd() const = 0;
84
+ };
85
+ class FontRunIterator : public RunIterator {
86
+ public:
87
+ virtual const SkFont& currentFont() const = 0;
88
+ };
89
+ class BiDiRunIterator : public RunIterator {
90
+ public:
91
+ /** The unicode bidi embedding level (even ltr, odd rtl) */
92
+ virtual uint8_t currentLevel() const = 0;
93
+ };
94
+ class ScriptRunIterator : public RunIterator {
95
+ public:
96
+ /** Should be iso15924 codes. */
97
+ virtual SkFourByteTag currentScript() const = 0;
98
+ };
99
+ class LanguageRunIterator : public RunIterator {
100
+ public:
101
+ /** Should be BCP-47, c locale names may also work. */
102
+ virtual const char* currentLanguage() const = 0;
103
+ };
104
+ struct Feature {
105
+ SkFourByteTag tag;
106
+ uint32_t value;
107
+ size_t start; // Offset to the start (utf8) element of the run.
108
+ size_t end; // Offset to one past the last (utf8) element of the run.
109
+ };
110
+
111
+ private:
112
+ template <typename RunIteratorSubclass>
113
+ class TrivialRunIterator : public RunIteratorSubclass {
114
+ public:
115
+ static_assert(std::is_base_of<RunIterator, RunIteratorSubclass>::value, "");
116
+ TrivialRunIterator(size_t utf8Bytes) : fEnd(utf8Bytes), fAtEnd(fEnd == 0) {}
117
+ void consume() override { SkASSERT(!fAtEnd); fAtEnd = true; }
118
+ size_t endOfCurrentRun() const override { return fAtEnd ? fEnd : 0; }
119
+ bool atEnd() const override { return fAtEnd; }
120
+ private:
121
+ size_t fEnd;
122
+ bool fAtEnd;
123
+ };
124
+
125
+ public:
126
+ static std::unique_ptr<FontRunIterator>
127
+ MakeFontMgrRunIterator(const char* utf8, size_t utf8Bytes,
128
+ const SkFont& font, sk_sp<SkFontMgr> fallback);
129
+ static std::unique_ptr<SkShaper::FontRunIterator>
130
+ MakeFontMgrRunIterator(const char* utf8, size_t utf8Bytes,
131
+ const SkFont& font, sk_sp<SkFontMgr> fallback,
132
+ const char* requestName, SkFontStyle requestStyle,
133
+ const SkShaper::LanguageRunIterator*);
134
+ class TrivialFontRunIterator : public TrivialRunIterator<FontRunIterator> {
135
+ public:
136
+ TrivialFontRunIterator(const SkFont& font, size_t utf8Bytes)
137
+ : TrivialRunIterator(utf8Bytes), fFont(font) {}
138
+ const SkFont& currentFont() const override { return fFont; }
139
+ private:
140
+ SkFont fFont;
141
+ };
142
+
143
+ #if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
144
+ static std::unique_ptr<BiDiRunIterator>
145
+ MakeBiDiRunIterator(const char* utf8, size_t utf8Bytes, uint8_t bidiLevel);
146
+ #if defined(SK_SHAPER_UNICODE_AVAILABLE)
147
+ static std::unique_ptr<BiDiRunIterator>
148
+ MakeIcuBiDiRunIterator(const char* utf8, size_t utf8Bytes, uint8_t bidiLevel);
149
+ #endif // defined(SK_SHAPER_UNICODE_AVAILABLE)
150
+ #endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
151
+
152
+ class TrivialBiDiRunIterator : public TrivialRunIterator<BiDiRunIterator> {
153
+ public:
154
+ TrivialBiDiRunIterator(uint8_t bidiLevel, size_t utf8Bytes)
155
+ : TrivialRunIterator(utf8Bytes), fBidiLevel(bidiLevel) {}
156
+ uint8_t currentLevel() const override { return fBidiLevel; }
157
+ private:
158
+ uint8_t fBidiLevel;
159
+ };
160
+
161
+ #if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
162
+ static std::unique_ptr<ScriptRunIterator>
163
+ MakeScriptRunIterator(const char* utf8, size_t utf8Bytes, SkFourByteTag script);
164
+ #if defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
165
+ static std::unique_ptr<ScriptRunIterator>
166
+ MakeSkUnicodeHbScriptRunIterator(const char* utf8, size_t utf8Bytes);
167
+ static std::unique_ptr<ScriptRunIterator>
168
+ MakeSkUnicodeHbScriptRunIterator(const char* utf8, size_t utf8Bytes, SkFourByteTag script);
169
+ // Still used in some cases
170
+ static std::unique_ptr<ScriptRunIterator>
171
+ MakeHbIcuScriptRunIterator(const char* utf8, size_t utf8Bytes);
172
+ #endif // defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
173
+ #endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
174
+
175
+ class TrivialScriptRunIterator : public TrivialRunIterator<ScriptRunIterator> {
176
+ public:
177
+ TrivialScriptRunIterator(SkFourByteTag script, size_t utf8Bytes)
178
+ : TrivialRunIterator(utf8Bytes), fScript(script) {}
179
+ SkFourByteTag currentScript() const override { return fScript; }
180
+ private:
181
+ SkFourByteTag fScript;
182
+ };
183
+
184
+ static std::unique_ptr<LanguageRunIterator>
185
+ MakeStdLanguageRunIterator(const char* utf8, size_t utf8Bytes);
186
+ class TrivialLanguageRunIterator : public TrivialRunIterator<LanguageRunIterator> {
187
+ public:
188
+ TrivialLanguageRunIterator(const char* language, size_t utf8Bytes)
189
+ : TrivialRunIterator(utf8Bytes), fLanguage(language) {}
190
+ const char* currentLanguage() const override { return fLanguage.c_str(); }
191
+ private:
192
+ SkString fLanguage;
193
+ };
194
+
195
+ class RunHandler {
196
+ public:
197
+ virtual ~RunHandler() = default;
198
+
199
+ struct Range {
200
+ constexpr Range() : fBegin(0), fSize(0) {}
201
+ constexpr Range(size_t begin, size_t size) : fBegin(begin), fSize(size) {}
202
+ size_t fBegin;
203
+ size_t fSize;
204
+ constexpr size_t begin() const { return fBegin; }
205
+ constexpr size_t end() const { return begin() + size(); }
206
+ constexpr size_t size() const { return fSize; }
207
+ };
208
+
209
+ struct RunInfo {
210
+ const SkFont& fFont;
211
+ uint8_t fBidiLevel;
212
+ SkVector fAdvance;
213
+ size_t glyphCount;
214
+ Range utf8Range;
215
+ };
216
+
217
+ struct Buffer {
218
+ SkGlyphID* glyphs; // required
219
+ SkPoint* positions; // required, if (!offsets) put glyphs[i] at positions[i]
220
+ // if ( offsets) positions[i+1]-positions[i] are advances
221
+ SkPoint* offsets; // optional, if ( offsets) put glyphs[i] at positions[i]+offsets[i]
222
+ uint32_t* clusters; // optional, utf8+clusters[i] starts run which produced glyphs[i]
223
+ SkPoint point; // offset to add to all positions
224
+ };
225
+
226
+ /** Called when beginning a line. */
227
+ virtual void beginLine() = 0;
228
+
229
+ /** Called once for each run in a line. Can compute baselines and offsets. */
230
+ virtual void runInfo(const RunInfo&) = 0;
231
+
232
+ /** Called after all runInfo calls for a line. */
233
+ virtual void commitRunInfo() = 0;
234
+
235
+ /** Called for each run in a line after commitRunInfo. The buffer will be filled out. */
236
+ virtual Buffer runBuffer(const RunInfo&) = 0;
237
+
238
+ /** Called after each runBuffer is filled out. */
239
+ virtual void commitRunBuffer(const RunInfo&) = 0;
240
+
241
+ /** Called when ending a line. */
242
+ virtual void commitLine() = 0;
243
+ };
244
+
245
+ #if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
246
+ virtual void shape(const char* utf8, size_t utf8Bytes,
247
+ const SkFont& srcFont,
248
+ bool leftToRight,
249
+ SkScalar width,
250
+ RunHandler*) const = 0;
251
+
252
+ virtual void shape(const char* utf8, size_t utf8Bytes,
253
+ FontRunIterator&,
254
+ BiDiRunIterator&,
255
+ ScriptRunIterator&,
256
+ LanguageRunIterator&,
257
+ SkScalar width,
258
+ RunHandler*) const = 0;
259
+ #endif
260
+ virtual void shape(const char* utf8,
261
+ size_t utf8Bytes,
262
+ FontRunIterator&,
263
+ BiDiRunIterator&,
264
+ ScriptRunIterator&,
265
+ LanguageRunIterator&,
266
+ const Feature* features,
267
+ size_t featuresSize,
268
+ SkScalar width,
269
+ RunHandler*) const = 0;
270
+
271
+ private:
272
+ SkShaper(const SkShaper&) = delete;
273
+ SkShaper& operator=(const SkShaper&) = delete;
274
+ };
275
+
276
+ /**
277
+ * Helper for shaping text directly into a SkTextBlob.
278
+ */
279
+ class SKSHAPER_API SkTextBlobBuilderRunHandler final : public SkShaper::RunHandler {
280
+ public:
281
+ SkTextBlobBuilderRunHandler(const char* utf8Text, SkPoint offset)
282
+ : fUtf8Text(utf8Text)
283
+ , fOffset(offset) {}
284
+ sk_sp<SkTextBlob> makeBlob();
285
+ SkPoint endPoint() { return fOffset; }
286
+
287
+ void beginLine() override;
288
+ void runInfo(const RunInfo&) override;
289
+ void commitRunInfo() override;
290
+ Buffer runBuffer(const RunInfo&) override;
291
+ void commitRunBuffer(const RunInfo&) override;
292
+ void commitLine() override;
293
+
294
+ private:
295
+ SkTextBlobBuilder fBuilder;
296
+ char const * const fUtf8Text;
297
+ uint32_t* fClusters;
298
+ int fClusterOffset;
299
+ int fGlyphCount;
300
+ SkScalar fMaxRunAscent;
301
+ SkScalar fMaxRunDescent;
302
+ SkScalar fMaxRunLeading;
303
+ SkPoint fCurrentPosition;
304
+ SkPoint fOffset;
305
+ };
306
+
307
+ namespace SkShapers::Primitive {
308
+ SKSHAPER_API std::unique_ptr<SkShaper> PrimitiveText();
309
+
310
+ SKSHAPER_API std::unique_ptr<SkShaper::BiDiRunIterator> TrivialBiDiRunIterator
311
+ (size_t utf8Bytes, uint8_t bidiLevel);
312
+ SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> TrivialScriptRunIterator
313
+ (size_t utf8Bytes, SkFourByteTag scriptTag);
314
+ } // namespace SkShapers
315
+
316
+ #endif // SkShaper_DEFINED
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright 2024 Google LLC
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 SkShaper_coretext_DEFINED
9
+ #define SkShaper_coretext_DEFINED
10
+
11
+ #include "modules/skshaper/include/SkShaper.h"
12
+
13
+ #include <memory>
14
+
15
+ namespace SkShapers::CT {
16
+ SKSHAPER_API std::unique_ptr<SkShaper> CoreText();
17
+ }
18
+
19
+ #endif
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright 2024 Google LLC
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
+ #ifndef SkShaperFactory_DEFINED
8
+ #define SkShaperFactory_DEFINED
9
+
10
+ #include "include/core/SkFourByteTag.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkTypes.h"
13
+ #include "modules/skshaper/include/SkShaper.h"
14
+
15
+ #include <cstddef>
16
+ #include <cstdint>
17
+ #include <memory>
18
+
19
+ class SkFontMgr;
20
+ class SkUnicode;
21
+
22
+ namespace SkShapers {
23
+
24
+ class SKSHAPER_API Factory : public SkRefCnt {
25
+ public:
26
+ virtual std::unique_ptr<SkShaper> makeShaper(sk_sp<SkFontMgr> fallback) = 0;
27
+ virtual std::unique_ptr<SkShaper::BiDiRunIterator> makeBidiRunIterator(
28
+ const char* utf8, size_t utf8Bytes, uint8_t bidiLevel) = 0;
29
+ virtual std::unique_ptr<SkShaper::ScriptRunIterator> makeScriptRunIterator(
30
+ const char* utf8, size_t utf8Bytes, SkFourByteTag script) = 0;
31
+
32
+ virtual SkUnicode* getUnicode() = 0;
33
+ };
34
+
35
+ namespace Primitive {
36
+ SKSHAPER_API sk_sp<Factory> Factory();
37
+ }
38
+
39
+ } // namespace SkShapers
40
+
41
+ #endif // SkShaperFactory_DEFINED
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright 2024 Google LLC
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 SkShaper_harfbuzz_DEFINED
9
+ #define SkShaper_harfbuzz_DEFINED
10
+
11
+ #include "include/core/SkFourByteTag.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/core/SkTypes.h"
14
+ #include "modules/skshaper/include/SkShaper.h"
15
+
16
+ #include <cstddef>
17
+ #include <memory>
18
+
19
+ class SkFontMgr;
20
+ class SkUnicode;
21
+
22
+ namespace SkShapers::HB {
23
+ SKSHAPER_API std::unique_ptr<SkShaper> ShaperDrivenWrapper(sk_sp<SkUnicode> unicode,
24
+ sk_sp<SkFontMgr> fallback);
25
+ SKSHAPER_API std::unique_ptr<SkShaper> ShapeThenWrap(sk_sp<SkUnicode> unicode,
26
+ sk_sp<SkFontMgr> fallback);
27
+ SKSHAPER_API std::unique_ptr<SkShaper> ShapeDontWrapOrReorder(sk_sp<SkUnicode> unicode,
28
+ sk_sp<SkFontMgr> fallback);
29
+
30
+ SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> ScriptRunIterator(const char* utf8,
31
+ size_t utf8Bytes);
32
+ SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> ScriptRunIterator(const char* utf8,
33
+ size_t utf8Bytes,
34
+ SkFourByteTag script);
35
+
36
+ SKSHAPER_API void PurgeCaches();
37
+ } // namespace SkShapers::HB
38
+
39
+ #endif
@@ -0,0 +1,28 @@
1
+ /*
2
+ * Copyright 2024 Google LLC
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 SkShaper_skunicode_DEFINED
9
+ #define SkShaper_skunicode_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "modules/skshaper/include/SkShaper.h"
13
+
14
+ #include <cstddef>
15
+ #include <cstdint>
16
+ #include <memory>
17
+
18
+ class SkUnicode;
19
+
20
+ namespace SkShapers::unicode {
21
+ SKSHAPER_API std::unique_ptr<SkShaper::BiDiRunIterator> BidiRunIterator(sk_sp<SkUnicode> unicode,
22
+ const char* utf8,
23
+ size_t utf8Bytes,
24
+ uint8_t bidiLevel);
25
+
26
+ } // namespace SkShapers::unicode
27
+
28
+ #endif
@@ -6,18 +6,19 @@
6
6
  */
7
7
  #ifndef SkUnicode_DEFINED
8
8
  #define SkUnicode_DEFINED
9
+ #include "include/core/SkRefCnt.h"
9
10
  #include "include/core/SkSpan.h"
10
11
  #include "include/core/SkString.h"
11
12
  #include "include/core/SkTypes.h"
12
13
  #include "include/private/base/SkTArray.h"
13
14
  #include "include/private/base/SkTo.h"
14
15
  #include "src/base/SkUTF.h"
15
-
16
16
  #include <cstddef>
17
17
  #include <cstdint>
18
18
  #include <memory>
19
19
  #include <string>
20
20
  #include <vector>
21
+ namespace sknonstd { template <typename T> struct is_bitmask_enum; }
21
22
 
22
23
  #if !defined(SKUNICODE_IMPLEMENTATION)
23
24
  #define SKUNICODE_IMPLEMENTATION 0
@@ -39,10 +40,6 @@
39
40
  #endif
40
41
  #endif
41
42
 
42
- namespace sknonstd {
43
- template <typename T> struct is_bitmask_enum;
44
- }
45
-
46
43
  class SKUNICODE_API SkBidiIterator {
47
44
  public:
48
45
  typedef int32_t Position;
@@ -77,7 +74,7 @@ public:
77
74
  virtual bool setText(const char16_t utftext16[], int utf16Units) = 0;
78
75
  };
79
76
 
80
- class SKUNICODE_API SkUnicode {
77
+ class SKUNICODE_API SkUnicode : public SkRefCnt {
81
78
  public:
82
79
  enum CodeUnitFlags {
83
80
  kNoCodeUnitFlag = 0x00,
@@ -120,9 +117,11 @@ class SKUNICODE_API SkUnicode {
120
117
  LineBreakType breakType;
121
118
  };
122
119
 
123
- virtual ~SkUnicode() = default;
120
+ ~SkUnicode() override = default;
124
121
 
122
+ // deprecated
125
123
  virtual SkString toUpper(const SkString&) = 0;
124
+ virtual SkString toUpper(const SkString&, const char* locale) = 0;
126
125
 
127
126
  virtual bool isControl(SkUnichar utf8) = 0;
128
127
  virtual bool isWhitespace(SkUnichar utf8) = 0;
@@ -299,22 +298,6 @@ class SKUNICODE_API SkUnicode {
299
298
  }
300
299
 
301
300
  virtual void reorderVisual(const BidiLevel runLevels[], int levelsCount, int32_t logicalFromVisual[]) = 0;
302
-
303
- virtual std::unique_ptr<SkUnicode> copy() = 0;
304
-
305
- static std::unique_ptr<SkUnicode> Make();
306
-
307
- static std::unique_ptr<SkUnicode> MakeIcuBasedUnicode();
308
-
309
- static std::unique_ptr<SkUnicode> MakeClientBasedUnicode(
310
- SkSpan<char> text,
311
- std::vector<SkUnicode::Position> words,
312
- std::vector<SkUnicode::Position> graphemeBreaks,
313
- std::vector<SkUnicode::LineBreakBefore> lineBreaks);
314
-
315
- static std::unique_ptr<SkUnicode> MakeLibgraphemeBasedUnicode();
316
-
317
- static std::unique_ptr<SkUnicode> MakeIcu4xBasedUnicode();
318
301
  };
319
302
 
320
303
  namespace sknonstd {
@@ -9,9 +9,6 @@
9
9
  #define SkSVGAttribute_DEFINED
10
10
 
11
11
  #include "modules/svg/include/SkSVGTypes.h"
12
- #include "src/base/SkTLazy.h"
13
-
14
- class SkSVGRenderContext;
15
12
 
16
13
  enum class SkSVGAttribute {
17
14
  kClipRule,
@@ -8,12 +8,22 @@
8
8
  #ifndef SkSVGAttributeParser_DEFINED
9
9
  #define SkSVGAttributeParser_DEFINED
10
10
 
11
- #include <vector>
12
-
11
+ #include "include/core/SkColor.h"
12
+ #include "include/core/SkScalar.h"
13
+ #include "include/core/SkTypes.h"
13
14
  #include "include/private/base/SkNoncopyable.h"
14
15
  #include "modules/svg/include/SkSVGTypes.h"
16
+
15
17
  #include "src/base/SkTLazy.h"
16
18
 
19
+ #include <cstdint>
20
+ #include <cstring>
21
+ #include <tuple>
22
+ #include <vector>
23
+
24
+ class SkMatrix;
25
+ class SkString;
26
+
17
27
  class SkSVGAttributeParser : public SkNoncopyable {
18
28
  public:
19
29
  SkSVGAttributeParser(const char[]);
@@ -8,9 +8,22 @@
8
8
  #ifndef SkSVGCircle_DEFINED
9
9
  #define SkSVGCircle_DEFINED
10
10
 
11
+ #include "include/core/SkPath.h"
12
+ #include "include/core/SkRect.h"
13
+ #include "include/core/SkRefCnt.h"
14
+ #include "include/core/SkScalar.h"
15
+ #include "include/private/base/SkAPI.h"
16
+ #include "modules/svg/include/SkSVGNode.h"
11
17
  #include "modules/svg/include/SkSVGShape.h"
12
18
  #include "modules/svg/include/SkSVGTypes.h"
13
19
 
20
+ #include <tuple>
21
+
22
+ class SkCanvas;
23
+ class SkPaint;
24
+ class SkSVGLengthContext;
25
+ class SkSVGRenderContext;
26
+ enum class SkPathFillType;
14
27
  struct SkPoint;
15
28
 
16
29
  class SK_API SkSVGCircle final : public SkSVGShape {