@shopify/react-native-skia 1.3.13 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 {