@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
@@ -8,9 +8,15 @@
8
8
  #ifndef SkSVGClipPath_DEFINED
9
9
  #define SkSVGClipPath_DEFINED
10
10
 
11
+ #include "include/core/SkPath.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
11
14
  #include "modules/svg/include/SkSVGHiddenContainer.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
12
16
  #include "modules/svg/include/SkSVGTypes.h"
13
17
 
18
+ class SkSVGRenderContext;
19
+
14
20
  class SK_API SkSVGClipPath final : public SkSVGHiddenContainer {
15
21
  public:
16
22
  static sk_sp<SkSVGClipPath> Make() {
@@ -8,9 +8,16 @@
8
8
  #ifndef SkSVGContainer_DEFINED
9
9
  #define SkSVGContainer_DEFINED
10
10
 
11
+ #include "include/core/SkPath.h"
12
+ #include "include/core/SkRect.h"
13
+ #include "include/core/SkRefCnt.h"
14
+ #include "include/private/base/SkAPI.h"
11
15
  #include "include/private/base/SkTArray.h"
16
+ #include "modules/svg/include/SkSVGNode.h"
12
17
  #include "modules/svg/include/SkSVGTransformableNode.h"
13
18
 
19
+ class SkSVGRenderContext;
20
+
14
21
  class SK_API SkSVGContainer : public SkSVGTransformableNode {
15
22
  public:
16
23
  void appendChild(sk_sp<SkSVGNode>) override;
@@ -26,7 +33,16 @@ protected:
26
33
 
27
34
  bool hasChildren() const final;
28
35
 
29
- // TODO: add some sort of child iterator, and hide the container.
36
+ template <typename NodeType, typename Func>
37
+ void forEachChild(Func func) const {
38
+ for (const auto& child : fChildren) {
39
+ if (child->tag() == NodeType::tag) {
40
+ func(static_cast<const NodeType*>(child.get()));
41
+ }
42
+ }
43
+ }
44
+
45
+ // TODO: convert remaining direct users to iterators, and make the container private.
30
46
  skia_private::STArray<1, sk_sp<SkSVGNode>, true> fChildren;
31
47
 
32
48
  private:
@@ -11,16 +11,16 @@
11
11
  #include "include/core/SkFontMgr.h"
12
12
  #include "include/core/SkRefCnt.h"
13
13
  #include "include/core/SkSize.h"
14
- #include "include/private/base/SkTemplates.h"
14
+ #include "include/private/base/SkAPI.h"
15
15
  #include "modules/skresources/include/SkResources.h"
16
+ #include "modules/skshaper/include/SkShaper_factory.h"
16
17
  #include "modules/svg/include/SkSVGIDMapper.h"
18
+ #include "modules/svg/include/SkSVGSVG.h"
17
19
 
18
20
  class SkCanvas;
19
- class SkDOM;
20
- class SkStream;
21
21
  class SkSVGNode;
22
+ class SkStream;
22
23
  struct SkSVGPresentationContext;
23
- class SkSVGSVG;
24
24
 
25
25
  class SK_API SkSVGDOM : public SkRefCnt {
26
26
  public:
@@ -39,11 +39,18 @@ public:
39
39
  */
40
40
  Builder& setResourceProvider(sk_sp<skresources::ResourceProvider>);
41
41
 
42
+ /**
43
+ * Specify the callbacks for dealing with shaping text. See also
44
+ * modules/skshaper/utils/FactoryHelpers.h
45
+ */
46
+ Builder& setTextShapingFactory(sk_sp<SkShapers::Factory>);
47
+
42
48
  sk_sp<SkSVGDOM> make(SkStream&) const;
43
49
 
44
50
  private:
45
- sk_sp<SkFontMgr> fFontMgr;
46
- sk_sp<skresources::ResourceProvider> fResourceProvider;
51
+ sk_sp<SkFontMgr> fFontMgr;
52
+ sk_sp<skresources::ResourceProvider> fResourceProvider;
53
+ sk_sp<SkShapers::Factory> fTextShapingFactory;
47
54
  };
48
55
 
49
56
  static sk_sp<SkSVGDOM> MakeFromStream(SkStream& str) {
@@ -89,15 +96,18 @@ public:
89
96
  void renderNode(SkCanvas*, SkSVGPresentationContext&, const char* id) const;
90
97
 
91
98
  private:
92
- SkSVGDOM(sk_sp<SkSVGSVG>, sk_sp<SkFontMgr>, sk_sp<skresources::ResourceProvider>,
93
- SkSVGIDMapper&&);
94
-
95
- const sk_sp<SkSVGSVG> fRoot;
96
- const sk_sp<SkFontMgr> fFontMgr;
97
- const sk_sp<skresources::ResourceProvider> fResourceProvider;
98
- const SkSVGIDMapper fIDMapper;
99
-
100
- SkSize fContainerSize;
99
+ SkSVGDOM(sk_sp<SkSVGSVG>,
100
+ sk_sp<SkFontMgr>,
101
+ sk_sp<skresources::ResourceProvider>,
102
+ SkSVGIDMapper&&,
103
+ sk_sp<SkShapers::Factory>);
104
+
105
+ const sk_sp<SkSVGSVG> fRoot;
106
+ const sk_sp<SkFontMgr> fFontMgr;
107
+ const sk_sp<SkShapers::Factory> fTextShapingFactory;
108
+ const sk_sp<skresources::ResourceProvider> fResourceProvider;
109
+ const SkSVGIDMapper fIDMapper;
110
+ SkSize fContainerSize;
101
111
  };
102
112
 
103
113
  #endif // SkSVGDOM_DEFINED
@@ -8,9 +8,19 @@
8
8
  #ifndef SkSVGEllipse_DEFINED
9
9
  #define SkSVGEllipse_DEFINED
10
10
 
11
+ #include "include/core/SkPath.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
11
15
  #include "modules/svg/include/SkSVGShape.h"
12
16
  #include "modules/svg/include/SkSVGTypes.h"
17
+ #include "src/base/SkTLazy.h"
13
18
 
19
+ class SkCanvas;
20
+ class SkPaint;
21
+ class SkSVGLengthContext;
22
+ class SkSVGRenderContext;
23
+ enum class SkPathFillType;
14
24
  struct SkRect;
15
25
 
16
26
  class SK_API SkSVGEllipse final : public SkSVGShape {
@@ -19,8 +29,9 @@ public:
19
29
 
20
30
  SVG_ATTR(Cx, SkSVGLength, SkSVGLength(0))
21
31
  SVG_ATTR(Cy, SkSVGLength, SkSVGLength(0))
22
- SVG_ATTR(Rx, SkSVGLength, SkSVGLength(0))
23
- SVG_ATTR(Ry, SkSVGLength, SkSVGLength(0))
32
+
33
+ SVG_OPTIONAL_ATTR(Rx, SkSVGLength)
34
+ SVG_OPTIONAL_ATTR(Ry, SkSVGLength)
24
35
 
25
36
  protected:
26
37
  bool parseAndSetAttribute(const char*, const char*) override;
@@ -8,12 +8,19 @@
8
8
  #ifndef SkSVGFe_DEFINED
9
9
  #define SkSVGFe_DEFINED
10
10
 
11
- #include <vector>
12
-
11
+ #include "include/core/SkRect.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
13
14
  #include "modules/svg/include/SkSVGHiddenContainer.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
16
+ #include "modules/svg/include/SkSVGTypes.h"
17
+ #include "src/base/SkTLazy.h"
18
+
19
+ #include <vector>
14
20
 
15
21
  class SkImageFilter;
16
22
  class SkSVGFilterContext;
23
+ class SkSVGRenderContext;
17
24
 
18
25
  class SK_API SkSVGFe : public SkSVGHiddenContainer {
19
26
  public:
@@ -21,12 +28,14 @@ public:
21
28
  switch (node->tag()) {
22
29
  case SkSVGTag::kFeBlend:
23
30
  case SkSVGTag::kFeColorMatrix:
31
+ case SkSVGTag::kFeComponentTransfer:
24
32
  case SkSVGTag::kFeComposite:
25
33
  case SkSVGTag::kFeDiffuseLighting:
26
34
  case SkSVGTag::kFeDisplacementMap:
27
35
  case SkSVGTag::kFeFlood:
28
36
  case SkSVGTag::kFeGaussianBlur:
29
37
  case SkSVGTag::kFeImage:
38
+ case SkSVGTag::kFeMerge:
30
39
  case SkSVGTag::kFeMorphology:
31
40
  case SkSVGTag::kFeOffset:
32
41
  case SkSVGTag::kFeSpecularLighting:
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGFeBlend_DEFINED
9
9
  #define SkSVGFeBlend_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+
14
23
  class SK_API SkSVGFeBlend : public SkSVGFe {
15
24
  public:
16
25
  enum class Mode {
@@ -8,10 +8,19 @@
8
8
  #ifndef SkSVGFeColorMatrix_DEFINED
9
9
  #define SkSVGFeColorMatrix_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
11
12
  #include "include/effects/SkColorMatrix.h"
13
+ #include "include/private/base/SkAPI.h"
12
14
  #include "modules/svg/include/SkSVGFe.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
13
16
  #include "modules/svg/include/SkSVGTypes.h"
14
17
 
18
+ #include <vector>
19
+
20
+ class SkImageFilter;
21
+ class SkSVGFilterContext;
22
+ class SkSVGRenderContext;
23
+
15
24
  class SK_API SkSVGFeColorMatrix final : public SkSVGFe {
16
25
  public:
17
26
  static sk_sp<SkSVGFeColorMatrix> Make() {
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright 2024 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 SkSVGFeComponentTransfer_DEFINED
9
+ #define SkSVGFeComponentTransfer_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+ #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGHiddenContainer.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
16
+ #include "modules/svg/include/SkSVGTypes.h"
17
+
18
+ #include <cstdint>
19
+ #include <vector>
20
+
21
+ class SkImageFilter;
22
+ class SkSVGFilterContext;
23
+ class SkSVGRenderContext;
24
+
25
+ class SkSVGFeFunc final : public SkSVGHiddenContainer {
26
+ public:
27
+ static sk_sp<SkSVGFeFunc> MakeFuncA() {
28
+ return sk_sp<SkSVGFeFunc>(new SkSVGFeFunc(SkSVGTag::kFeFuncA));
29
+ }
30
+
31
+ static sk_sp<SkSVGFeFunc> MakeFuncR() {
32
+ return sk_sp<SkSVGFeFunc>(new SkSVGFeFunc(SkSVGTag::kFeFuncR));
33
+ }
34
+
35
+ static sk_sp<SkSVGFeFunc> MakeFuncG() {
36
+ return sk_sp<SkSVGFeFunc>(new SkSVGFeFunc(SkSVGTag::kFeFuncG));
37
+ }
38
+
39
+ static sk_sp<SkSVGFeFunc> MakeFuncB() {
40
+ return sk_sp<SkSVGFeFunc>(new SkSVGFeFunc(SkSVGTag::kFeFuncB));
41
+ }
42
+
43
+ SVG_ATTR(Amplitude , SkSVGNumberType, 1)
44
+ SVG_ATTR(Exponent , SkSVGNumberType, 1)
45
+ SVG_ATTR(Intercept , SkSVGNumberType, 0)
46
+ SVG_ATTR(Offset , SkSVGNumberType, 0)
47
+ SVG_ATTR(Slope , SkSVGNumberType, 1)
48
+ SVG_ATTR(TableValues, std::vector<SkSVGNumberType>, {})
49
+ SVG_ATTR(Type , SkSVGFeFuncType, SkSVGFeFuncType::kIdentity)
50
+
51
+ std::vector<uint8_t> getTable() const;
52
+
53
+ protected:
54
+ bool parseAndSetAttribute(const char*, const char*) override;
55
+
56
+ private:
57
+ SkSVGFeFunc(SkSVGTag tag) : INHERITED(tag) {}
58
+
59
+ using INHERITED = SkSVGHiddenContainer;
60
+ };
61
+
62
+ class SK_API SkSVGFeComponentTransfer final : public SkSVGFe {
63
+ public:
64
+ static constexpr SkSVGTag tag = SkSVGTag::kFeComponentTransfer;
65
+
66
+ static sk_sp<SkSVGFeComponentTransfer> Make() {
67
+ return sk_sp<SkSVGFeComponentTransfer>(new SkSVGFeComponentTransfer());
68
+ }
69
+
70
+ protected:
71
+ sk_sp<SkImageFilter> onMakeImageFilter(const SkSVGRenderContext&,
72
+ const SkSVGFilterContext&) const override;
73
+
74
+ std::vector<SkSVGFeInputType> getInputs() const override { return {this->getIn()}; }
75
+
76
+ private:
77
+ SkSVGFeComponentTransfer() : INHERITED(tag) {}
78
+
79
+ using INHERITED = SkSVGFe;
80
+ };
81
+
82
+ #endif // SkSVGFeComponentTransfer_DEFINED
@@ -8,10 +8,19 @@
8
8
  #ifndef SkSVGFeComposite_DEFINED
9
9
  #define SkSVGFeComposite_DEFINED
10
10
 
11
- #include "include/core/SkBlendMode.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
12
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
13
15
  #include "modules/svg/include/SkSVGTypes.h"
14
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+ enum class SkBlendMode;
23
+
15
24
  class SK_API SkSVGFeComposite final : public SkSVGFe {
16
25
  public:
17
26
  static sk_sp<SkSVGFeComposite> Make() {
@@ -8,9 +8,19 @@
8
8
  #ifndef SkSVGFeDisplacementMap_DEFINED
9
9
  #define SkSVGFeDisplacementMap_DEFINED
10
10
 
11
+ #include "include/core/SkColor.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
11
14
  #include "modules/svg/include/SkSVGFe.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
12
16
  #include "modules/svg/include/SkSVGTypes.h"
13
17
 
18
+ #include <vector>
19
+
20
+ class SkImageFilter;
21
+ class SkSVGFilterContext;
22
+ class SkSVGRenderContext;
23
+
14
24
  class SK_API SkSVGFeDisplacementMap : public SkSVGFe {
15
25
  public:
16
26
  using ChannelSelector = SkColorChannel;
@@ -8,9 +8,19 @@
8
8
  #ifndef SkSVGFeFlood_DEFINED
9
9
  #define SkSVGFeFlood_DEFINED
10
10
 
11
+ #include "include/core/SkColor.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
11
14
  #include "modules/svg/include/SkSVGFe.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
12
16
  #include "modules/svg/include/SkSVGTypes.h"
13
17
 
18
+ #include <vector>
19
+
20
+ class SkImageFilter;
21
+ class SkSVGFilterContext;
22
+ class SkSVGRenderContext;
23
+
14
24
  class SK_API SkSVGFeFlood : public SkSVGFe {
15
25
  public:
16
26
  static sk_sp<SkSVGFeFlood> Make() { return sk_sp<SkSVGFeFlood>(new SkSVGFeFlood()); }
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGFeGaussianBlur_DEFINED
9
9
  #define SkSVGFeGaussianBlur_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+
14
23
  class SK_API SkSVGFeGaussianBlur : public SkSVGFe {
15
24
  public:
16
25
  struct StdDeviation {
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGFeImage_DEFINED
9
9
  #define SkSVGFeImage_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+
14
23
  class SK_API SkSVGFeImage : public SkSVGFe {
15
24
  public:
16
25
  static sk_sp<SkSVGFeImage> Make() { return sk_sp<SkSVGFeImage>(new SkSVGFeImage()); }
@@ -9,8 +9,13 @@
9
9
  #define SkSVGFeLightSource_DEFINED
10
10
 
11
11
  #include "include/core/SkPoint3.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
14
+ #include "include/private/base/SkDebug.h"
12
15
  #include "modules/svg/include/SkSVGHiddenContainer.h"
16
+ #include "modules/svg/include/SkSVGNode.h"
13
17
  #include "modules/svg/include/SkSVGTypes.h"
18
+ #include "src/base/SkTLazy.h"
14
19
 
15
20
  class SK_API SkSVGFeLightSource : public SkSVGHiddenContainer {
16
21
  public:
@@ -8,12 +8,23 @@
8
8
  #ifndef SkSVGFeLighting_DEFINED
9
9
  #define SkSVGFeLighting_DEFINED
10
10
 
11
+ #include "include/core/SkColor.h"
12
+ #include "include/core/SkPoint3.h"
13
+ #include "include/core/SkRefCnt.h"
14
+ #include "include/private/base/SkAPI.h"
11
15
  #include "modules/svg/include/SkSVGFe.h"
16
+ #include "modules/svg/include/SkSVGNode.h"
12
17
  #include "modules/svg/include/SkSVGTypes.h"
18
+ #include "src/base/SkTLazy.h"
13
19
 
20
+ #include <vector>
21
+
22
+ class SkImageFilter;
14
23
  class SkSVGFeDistantLight;
15
24
  class SkSVGFePointLight;
16
25
  class SkSVGFeSpotLight;
26
+ class SkSVGFilterContext;
27
+ class SkSVGRenderContext;
17
28
 
18
29
  class SK_API SkSVGFeLighting : public SkSVGFe {
19
30
  public:
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright 2024 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 SkSVGFeMerge_DEFINED
9
+ #define SkSVGFeMerge_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+ #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGHiddenContainer.h"
15
+ #include "modules/svg/include/SkSVGNode.h"
16
+ #include "modules/svg/include/SkSVGTypes.h"
17
+
18
+ #include <vector>
19
+
20
+ class SkImageFilter;
21
+ class SkSVGFilterContext;
22
+ class SkSVGRenderContext;
23
+
24
+ // https://www.w3.org/TR/SVG11/filters.html#feMergeNodeElement
25
+ class SK_API SkSVGFeMergeNode : public SkSVGHiddenContainer {
26
+ public:
27
+ static constexpr SkSVGTag tag = SkSVGTag::kFeMergeNode;
28
+
29
+ static sk_sp<SkSVGFeMergeNode> Make() {
30
+ return sk_sp<SkSVGFeMergeNode>(new SkSVGFeMergeNode());
31
+ }
32
+
33
+ SVG_ATTR(In, SkSVGFeInputType, SkSVGFeInputType())
34
+
35
+ protected:
36
+ bool parseAndSetAttribute(const char*, const char*) override;
37
+
38
+ private:
39
+ SkSVGFeMergeNode() : INHERITED(tag) {}
40
+
41
+ using INHERITED = SkSVGHiddenContainer;
42
+ };
43
+
44
+ // https://www.w3.org/TR/SVG11/filters.html#feMergeElement
45
+ class SK_API SkSVGFeMerge : public SkSVGFe {
46
+ public:
47
+ static constexpr SkSVGTag tag = SkSVGTag::kFeMerge;
48
+
49
+ static sk_sp<SkSVGFeMerge> Make() { return sk_sp<SkSVGFeMerge>(new SkSVGFeMerge()); }
50
+
51
+ protected:
52
+ sk_sp<SkImageFilter> onMakeImageFilter(const SkSVGRenderContext&,
53
+ const SkSVGFilterContext&) const override;
54
+
55
+ std::vector<SkSVGFeInputType> getInputs() const override;
56
+
57
+ private:
58
+ SkSVGFeMerge() : INHERITED(tag) {}
59
+
60
+ using INHERITED = SkSVGFe;
61
+ };
62
+
63
+ #endif // SkSVGFeMerge_DEFINED
@@ -8,9 +8,17 @@
8
8
  #ifndef SkSVGFeMorphology_DEFINED
9
9
  #define SkSVGFeMorphology_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
11
12
  #include "modules/svg/include/SkSVGFe.h"
13
+ #include "modules/svg/include/SkSVGNode.h"
12
14
  #include "modules/svg/include/SkSVGTypes.h"
13
15
 
16
+ #include <vector>
17
+
18
+ class SkImageFilter;
19
+ class SkSVGFilterContext;
20
+ class SkSVGRenderContext;
21
+
14
22
  class SkSVGFeMorphology : public SkSVGFe {
15
23
  public:
16
24
  struct Radius {
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGFeOffset_DEFINED
9
9
  #define SkSVGFeOffset_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+
14
23
  class SK_API SkSVGFeOffset : public SkSVGFe {
15
24
  public:
16
25
  static sk_sp<SkSVGFeOffset> Make() { return sk_sp<SkSVGFeOffset>(new SkSVGFeOffset()); }
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGFeTurbulence_DEFINED
9
9
  #define SkSVGFeTurbulence_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGFe.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ #include <vector>
18
+
19
+ class SkImageFilter;
20
+ class SkSVGFilterContext;
21
+ class SkSVGRenderContext;
22
+
14
23
  class SK_API SkSVGFeTurbulence : public SkSVGFe {
15
24
  public:
16
25
  static sk_sp<SkSVGFeTurbulence> Make() {
@@ -8,13 +8,22 @@
8
8
  #ifndef SkSVGFilter_DEFINED
9
9
  #define SkSVGFilter_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
11
13
  #include "modules/svg/include/SkSVGHiddenContainer.h"
14
+ #include "modules/svg/include/SkSVGNode.h"
12
15
  #include "modules/svg/include/SkSVGTypes.h"
13
16
 
17
+ class SkImageFilter;
18
+ class SkSVGRenderContext;
19
+
14
20
  class SK_API SkSVGFilter final : public SkSVGHiddenContainer {
15
21
  public:
16
22
  static sk_sp<SkSVGFilter> Make() { return sk_sp<SkSVGFilter>(new SkSVGFilter()); }
17
23
 
24
+ /** Propagates any inherited presentation attributes in the given context. */
25
+ void applyProperties(SkSVGRenderContext*) const;
26
+
18
27
  sk_sp<SkImageFilter> buildFilterDAG(const SkSVGRenderContext&) const;
19
28
 
20
29
  SVG_ATTR(X, SkSVGLength, SkSVGLength(-10, SkSVGLength::Unit::kPercentage))
@@ -8,14 +8,14 @@
8
8
  #ifndef SkSVGFilterContext_DEFINED
9
9
  #define SkSVGFilterContext_DEFINED
10
10
 
11
+ #include "include/core/SkImageFilter.h"
11
12
  #include "include/core/SkRect.h"
12
13
  #include "include/core/SkRefCnt.h"
13
- #include "include/core/SkString.h"
14
14
  #include "modules/svg/include/SkSVGTypes.h"
15
15
  #include "src/core/SkTHash.h"
16
16
 
17
- class SkImageFilter;
18
- class SkSVGFeInputType;
17
+ #include <tuple>
18
+
19
19
  class SkSVGRenderContext;
20
20
 
21
21
  class SkSVGFilterContext {
@@ -8,13 +8,21 @@
8
8
  #ifndef SkSVGGradient_DEFINED
9
9
  #define SkSVGGradient_DEFINED
10
10
 
11
- #include "include/core/SkShader.h"
11
+ #include "include/core/SkColor.h"
12
+ #include "include/core/SkMatrix.h"
13
+ #include "include/core/SkRefCnt.h"
14
+ #include "include/core/SkScalar.h"
15
+ #include "include/private/base/SkAPI.h"
16
+ #include "include/private/base/SkTArray.h"
12
17
  #include "modules/svg/include/SkSVGHiddenContainer.h"
18
+ #include "modules/svg/include/SkSVGNode.h"
13
19
  #include "modules/svg/include/SkSVGTypes.h"
14
20
 
15
- class SkMatrix;
21
+ class SkPaint;
16
22
  class SkSVGRenderContext;
17
23
  class SkSVGStop;
24
+ class SkShader;
25
+ enum class SkTileMode;
18
26
 
19
27
  class SK_API SkSVGGradient : public SkSVGHiddenContainer {
20
28
  public:
@@ -8,9 +8,18 @@
8
8
  #ifndef SkSVGImage_DEFINED
9
9
  #define SkSVGImage_DEFINED
10
10
 
11
+ #include "include/core/SkImage.h"
12
+ #include "include/core/SkPath.h"
13
+ #include "include/core/SkRect.h"
14
+ #include "include/core/SkRefCnt.h"
15
+ #include "include/private/base/SkAPI.h"
16
+ #include "include/private/base/SkDebug.h"
17
+ #include "modules/svg/include/SkSVGNode.h"
11
18
  #include "modules/svg/include/SkSVGTransformableNode.h"
12
19
  #include "modules/svg/include/SkSVGTypes.h"
13
20
 
21
+ class SkSVGRenderContext;
22
+
14
23
  namespace skresources {
15
24
  class ResourceProvider;
16
25
  }