@shopify/react-native-skia 0.1.158 → 0.1.159

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 (403) hide show
  1. package/android/CMakeLists.txt +35 -11
  2. package/android/build.gradle +21 -25
  3. package/android/cpp/jni/JniLoad.cpp +2 -0
  4. package/android/cpp/jni/include/JniSkiaDomView.h +89 -0
  5. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -3
  6. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +4 -3
  7. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +2 -1
  8. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +45 -0
  9. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +64 -0
  10. package/cpp/api/JsiSkHostObjects.h +6 -0
  11. package/cpp/api/JsiSkImageFilterFactory.h +1 -1
  12. package/cpp/api/JsiSkPaint.h +9 -2
  13. package/cpp/api/JsiSkPath.h +1 -0
  14. package/cpp/api/JsiSkRuntimeEffect.h +36 -36
  15. package/cpp/jsi/JsiHostObject.cpp +16 -28
  16. package/cpp/jsi/JsiHostObject.h +127 -7
  17. package/cpp/jsi/JsiValue.cpp +346 -0
  18. package/cpp/jsi/JsiValue.h +222 -0
  19. package/cpp/jsi/JsiValueWrapper.h +33 -5
  20. package/cpp/rnskia/RNSkDomView.cpp +220 -0
  21. package/cpp/rnskia/RNSkDomView.h +140 -0
  22. package/cpp/rnskia/RNSkJsView.cpp +0 -4
  23. package/cpp/rnskia/RNSkJsView.h +6 -4
  24. package/cpp/rnskia/RNSkManager.cpp +7 -0
  25. package/cpp/rnskia/RNSkPictureView.h +5 -8
  26. package/cpp/rnskia/RNSkView.h +113 -5
  27. package/cpp/rnskia/dom/JsiDomApi.h +167 -0
  28. package/cpp/rnskia/dom/base/BaseNodeProp.h +72 -0
  29. package/cpp/rnskia/dom/base/DerivedNodeProp.h +187 -0
  30. package/cpp/rnskia/dom/base/DrawingContext.cpp +227 -0
  31. package/cpp/rnskia/dom/base/DrawingContext.h +136 -0
  32. package/cpp/rnskia/dom/base/JsiDependencyManager.h +294 -0
  33. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +176 -0
  34. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +50 -0
  35. package/cpp/rnskia/dom/base/JsiDomNode.h +361 -0
  36. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +267 -0
  37. package/cpp/rnskia/dom/base/NodeProp.h +130 -0
  38. package/cpp/rnskia/dom/base/NodePropsContainer.h +119 -0
  39. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +38 -0
  40. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +112 -0
  41. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +78 -0
  42. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +104 -0
  43. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +33 -0
  44. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +38 -0
  45. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +192 -0
  46. package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +123 -0
  47. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +42 -0
  48. package/cpp/rnskia/dom/nodes/JsiFillNode.h +22 -0
  49. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +56 -0
  50. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +26 -0
  51. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +415 -0
  52. package/cpp/rnskia/dom/nodes/JsiImageNode.h +34 -0
  53. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +44 -0
  54. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +64 -0
  55. package/cpp/rnskia/dom/nodes/JsiLineNode.h +43 -0
  56. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +34 -0
  57. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +77 -0
  58. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +54 -0
  59. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +315 -0
  60. package/cpp/rnskia/dom/nodes/JsiPathNode.h +181 -0
  61. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +32 -0
  62. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +51 -0
  63. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +34 -0
  64. package/cpp/rnskia/dom/nodes/JsiRectNode.h +34 -0
  65. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +517 -0
  66. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +47 -0
  67. package/cpp/rnskia/dom/nodes/JsiTextNode.h +54 -0
  68. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +32 -0
  69. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +43 -0
  70. package/cpp/rnskia/dom/props/BezierProps.h +63 -0
  71. package/cpp/rnskia/dom/props/BlendModeProp.h +101 -0
  72. package/cpp/rnskia/dom/props/BoxShadowProps.h +61 -0
  73. package/cpp/rnskia/dom/props/CircleProp.h +46 -0
  74. package/cpp/rnskia/dom/props/ClipProp.h +62 -0
  75. package/cpp/rnskia/dom/props/ColorProp.h +80 -0
  76. package/cpp/rnskia/dom/props/DrawingProp.h +33 -0
  77. package/cpp/rnskia/dom/props/FontProp.h +34 -0
  78. package/cpp/rnskia/dom/props/GlyphsProp.h +53 -0
  79. package/cpp/rnskia/dom/props/ImageProps.h +173 -0
  80. package/cpp/rnskia/dom/props/LayerProp.h +50 -0
  81. package/cpp/rnskia/dom/props/MatrixProp.h +33 -0
  82. package/cpp/rnskia/dom/props/NumbersProp.h +63 -0
  83. package/cpp/rnskia/dom/props/PaintProps.h +172 -0
  84. package/cpp/rnskia/dom/props/PathProp.h +55 -0
  85. package/cpp/rnskia/dom/props/PictureProp.h +38 -0
  86. package/cpp/rnskia/dom/props/PointProp.h +72 -0
  87. package/cpp/rnskia/dom/props/PointsProp.h +83 -0
  88. package/cpp/rnskia/dom/props/RRectProp.h +134 -0
  89. package/cpp/rnskia/dom/props/RadiusProp.h +43 -0
  90. package/cpp/rnskia/dom/props/RectProp.h +118 -0
  91. package/cpp/rnskia/dom/props/StrokeProps.h +75 -0
  92. package/cpp/rnskia/dom/props/SvgProp.h +37 -0
  93. package/cpp/rnskia/dom/props/TextBlobProp.h +128 -0
  94. package/cpp/rnskia/dom/props/TileModeProp.h +50 -0
  95. package/cpp/rnskia/dom/props/TransformProp.h +80 -0
  96. package/cpp/rnskia/dom/props/TransformsProps.h +68 -0
  97. package/cpp/rnskia/dom/props/UniformsProp.h +194 -0
  98. package/cpp/rnskia/dom/props/VertexModeProp.h +47 -0
  99. package/cpp/rnskia/dom/props/VerticesProps.h +67 -0
  100. package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -4
  101. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +35 -1
  102. package/cpp/skia/include/codec/SkAndroidCodec.h +17 -1
  103. package/cpp/skia/include/codec/SkCodec.h +8 -5
  104. package/cpp/skia/include/core/SkAnnotation.h +2 -0
  105. package/cpp/skia/include/core/SkBitmap.h +52 -1
  106. package/cpp/skia/include/core/SkBlendMode.h +2 -0
  107. package/cpp/skia/include/core/SkCanvas.h +52 -31
  108. package/cpp/skia/include/core/SkCapabilities.h +44 -0
  109. package/cpp/skia/include/core/SkColor.h +7 -0
  110. package/cpp/skia/include/core/SkColorFilter.h +37 -0
  111. package/cpp/skia/include/core/SkColorSpace.h +1 -1
  112. package/cpp/skia/include/core/SkFont.h +4 -0
  113. package/cpp/skia/include/core/SkFontMgr.h +3 -0
  114. package/cpp/skia/include/core/SkGraphics.h +9 -0
  115. package/cpp/skia/include/core/SkImage.h +77 -17
  116. package/cpp/skia/include/core/SkImageEncoder.h +5 -3
  117. package/cpp/skia/include/core/SkImageGenerator.h +27 -17
  118. package/cpp/skia/include/core/SkM44.h +1 -0
  119. package/cpp/skia/include/core/SkMesh.h +120 -34
  120. package/cpp/skia/include/core/SkMilestone.h +1 -1
  121. package/cpp/skia/include/core/SkOverdrawCanvas.h +2 -1
  122. package/cpp/skia/include/core/SkPaint.h +15 -2
  123. package/cpp/skia/include/core/SkPath.h +4 -0
  124. package/cpp/skia/include/core/SkPathBuilder.h +1 -1
  125. package/cpp/skia/include/core/SkPicture.h +0 -3
  126. package/cpp/skia/include/core/SkPictureRecorder.h +0 -2
  127. package/cpp/skia/include/core/SkPixmap.h +19 -0
  128. package/cpp/skia/include/core/SkRasterHandleAllocator.h +3 -1
  129. package/cpp/skia/include/core/SkRect.h +11 -4
  130. package/cpp/skia/include/core/SkRefCnt.h +13 -1
  131. package/cpp/skia/include/core/SkRegion.h +6 -0
  132. package/cpp/skia/include/core/SkSamplingOptions.h +8 -6
  133. package/cpp/skia/include/core/SkScalar.h +6 -25
  134. package/cpp/skia/include/core/SkShader.h +20 -12
  135. package/cpp/skia/include/core/SkSpan.h +51 -19
  136. package/cpp/skia/include/core/SkStream.h +2 -2
  137. package/cpp/skia/include/core/SkString.h +11 -3
  138. package/cpp/skia/include/core/SkSurface.h +85 -8
  139. package/cpp/skia/include/core/SkTextBlob.h +5 -2
  140. package/cpp/skia/include/core/SkTypes.h +11 -10
  141. package/cpp/skia/include/docs/SkPDFDocument.h +0 -5
  142. package/cpp/skia/include/effects/Sk1DPathEffect.h +6 -1
  143. package/cpp/skia/include/effects/Sk2DPathEffect.h +4 -1
  144. package/cpp/skia/include/effects/SkColorMatrix.h +1 -0
  145. package/cpp/skia/include/effects/SkColorMatrixFilter.h +5 -8
  146. package/cpp/skia/include/effects/SkCornerPathEffect.h +5 -1
  147. package/cpp/skia/include/effects/SkDashPathEffect.h +5 -1
  148. package/cpp/skia/include/effects/SkGradientShader.h +68 -38
  149. package/cpp/skia/include/effects/SkHighContrastFilter.h +5 -1
  150. package/cpp/skia/include/effects/SkImageFilters.h +5 -4
  151. package/cpp/skia/include/effects/SkLumaColorFilter.h +4 -1
  152. package/cpp/skia/include/effects/SkOpPathEffect.h +6 -2
  153. package/cpp/skia/include/effects/SkOverdrawColorFilter.h +5 -2
  154. package/cpp/skia/include/effects/SkRuntimeEffect.h +54 -62
  155. package/cpp/skia/include/effects/SkShaderMaskFilter.h +3 -1
  156. package/cpp/skia/include/effects/SkTableColorFilter.h +8 -21
  157. package/cpp/skia/include/effects/SkTableMaskFilter.h +5 -1
  158. package/cpp/skia/include/effects/SkTrimPathEffect.h +5 -1
  159. package/cpp/skia/include/encode/SkEncoder.h +17 -0
  160. package/cpp/skia/include/encode/SkWebpEncoder.h +17 -0
  161. package/cpp/skia/include/gpu/GpuTypes.h +18 -0
  162. package/cpp/skia/include/gpu/GrBackendSurface.h +38 -17
  163. package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -71
  164. package/cpp/skia/include/gpu/GrContextOptions.h +1 -1
  165. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +10 -9
  166. package/cpp/skia/include/gpu/GrDirectContext.h +42 -22
  167. package/cpp/skia/include/gpu/GrRecordingContext.h +6 -3
  168. package/cpp/skia/include/gpu/GrTypes.h +11 -11
  169. package/cpp/skia/include/gpu/MutableTextureState.h +122 -0
  170. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -0
  171. package/cpp/skia/include/gpu/gl/GrGLInterface.h +1 -0
  172. package/cpp/skia/include/gpu/graphite/BackendTexture.h +7 -0
  173. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +195 -0
  174. package/cpp/skia/include/gpu/graphite/Context.h +47 -55
  175. package/cpp/skia/include/gpu/graphite/ContextOptions.h +85 -0
  176. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +1 -17
  177. package/cpp/skia/include/gpu/graphite/ImageProvider.h +61 -0
  178. package/cpp/skia/include/gpu/graphite/Recorder.h +87 -8
  179. package/cpp/skia/include/gpu/graphite/Recording.h +19 -9
  180. package/cpp/skia/include/gpu/graphite/TextureInfo.h +40 -8
  181. package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +25 -0
  182. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +3 -2
  183. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +69 -0
  184. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +39 -0
  185. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +21 -19
  186. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +2 -50
  187. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +2 -127
  188. package/cpp/skia/include/gpu/vk/GrVkTypes.h +5 -43
  189. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +46 -0
  190. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +67 -0
  191. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +116 -0
  192. package/cpp/skia/include/gpu/vk/VulkanTypes.h +59 -0
  193. package/cpp/skia/include/pathops/SkPathOps.h +1 -1
  194. package/cpp/skia/include/private/SkColorData.h +10 -40
  195. package/cpp/skia/include/private/SkEncodedInfo.h +9 -3
  196. package/cpp/skia/include/private/SkFloatingPoint.h +9 -6
  197. package/cpp/skia/include/private/SkHalf.h +5 -52
  198. package/cpp/skia/include/private/SkMacros.h +1 -1
  199. package/cpp/skia/include/private/SkMalloc.h +4 -0
  200. package/cpp/skia/include/private/SkPathRef.h +10 -10
  201. package/cpp/skia/include/private/SkSLModifiers.h +59 -23
  202. package/cpp/skia/include/private/SkSLProgramKind.h +1 -0
  203. package/cpp/skia/include/private/SkSLSymbol.h +7 -3
  204. package/cpp/skia/include/private/SkStringView.h +4 -0
  205. package/cpp/skia/include/private/SkTArray.h +21 -7
  206. package/cpp/skia/include/private/SkTDArray.h +173 -285
  207. package/cpp/skia/include/private/SkTHash.h +33 -32
  208. package/cpp/skia/include/private/SkTemplates.h +24 -26
  209. package/cpp/skia/include/private/SkVx.h +218 -135
  210. package/cpp/skia/include/private/chromium/GrSlug.h +3 -65
  211. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +6 -3
  212. package/cpp/skia/include/private/chromium/Slug.h +76 -0
  213. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +6 -1
  214. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +5 -39
  215. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +63 -0
  216. package/cpp/skia/include/{gpu/vk/GrVkVulkan.h → private/gpu/vk/SkiaVulkan.h} +2 -2
  217. package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +57 -0
  218. package/cpp/skia/include/sksl/DSL.h +0 -1
  219. package/cpp/skia/include/sksl/DSLBlock.h +4 -18
  220. package/cpp/skia/include/sksl/DSLCase.h +2 -8
  221. package/cpp/skia/include/sksl/DSLCore.h +8 -15
  222. package/cpp/skia/include/sksl/DSLExpression.h +51 -142
  223. package/cpp/skia/include/sksl/DSLFunction.h +7 -15
  224. package/cpp/skia/include/sksl/DSLModifiers.h +5 -2
  225. package/cpp/skia/include/sksl/DSLStatement.h +4 -39
  226. package/cpp/skia/include/sksl/DSLSymbols.h +1 -11
  227. package/cpp/skia/include/sksl/DSLType.h +20 -12
  228. package/cpp/skia/include/sksl/DSLVar.h +56 -146
  229. package/cpp/skia/include/sksl/SkSLErrorReporter.h +2 -15
  230. package/cpp/skia/include/sksl/SkSLOperator.h +62 -59
  231. package/cpp/skia/include/sksl/SkSLPosition.h +2 -0
  232. package/cpp/skia/include/sksl/SkSLVersion.h +27 -0
  233. package/cpp/skia/include/svg/SkSVGCanvas.h +1 -0
  234. package/cpp/skia/include/utils/SkAnimCodecPlayer.h +1 -1
  235. package/cpp/skia/include/utils/SkBase64.h +2 -0
  236. package/cpp/skia/include/utils/SkCustomTypeface.h +24 -11
  237. package/cpp/skia/include/utils/SkEventTracer.h +12 -1
  238. package/cpp/skia/include/utils/SkNWayCanvas.h +11 -4
  239. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +9 -4
  240. package/cpp/skia/include/utils/SkParse.h +3 -0
  241. package/cpp/skia/include/utils/SkShadowUtils.h +2 -0
  242. package/cpp/skia/include/utils/SkTextUtils.h +2 -1
  243. package/cpp/skia/{include/third_party → modules}/skcms/skcms.h +10 -0
  244. package/cpp/skia/modules/skcms/skcms_internal.h +56 -0
  245. package/cpp/skia/modules/skcms/src/Transform_inl.h +1609 -0
  246. package/cpp/skia/modules/skparagraph/include/DartTypes.h +153 -0
  247. package/cpp/skia/modules/skparagraph/include/FontArguments.h +46 -0
  248. package/cpp/skia/modules/skparagraph/include/FontCollection.h +84 -0
  249. package/cpp/skia/modules/skparagraph/include/Metrics.h +98 -0
  250. package/cpp/skia/modules/skparagraph/include/Paragraph.h +111 -0
  251. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +69 -0
  252. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +77 -0
  253. package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +143 -0
  254. package/cpp/skia/modules/skparagraph/include/TextShadow.h +30 -0
  255. package/cpp/skia/modules/skparagraph/include/TextStyle.h +352 -0
  256. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +81 -0
  257. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +1 -1
  258. package/cpp/skia/modules/svg/include/SkSVGTypes.h +3 -3
  259. package/cpp/skia/src/core/SkLRUCache.h +126 -0
  260. package/cpp/skia/src/core/SkTInternalLList.h +302 -0
  261. package/cpp/utils/RNSkTimingInfo.h +1 -0
  262. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +15 -4
  263. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +40 -54
  264. package/ios/RNSkia-iOS/SkiaDomViewManager.h +8 -0
  265. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +51 -0
  266. package/lib/commonjs/dom/nodes/JsiSkDOM.js +56 -56
  267. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  268. package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
  269. package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
  270. package/lib/commonjs/renderer/Canvas.js +19 -63
  271. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  272. package/lib/commonjs/renderer/DependencyManager.js +0 -5
  273. package/lib/commonjs/renderer/DependencyManager.js.map +1 -1
  274. package/lib/commonjs/renderer/HostComponents.js.map +1 -1
  275. package/lib/commonjs/renderer/useCanvas.js +4 -18
  276. package/lib/commonjs/renderer/useCanvas.js.map +1 -1
  277. package/lib/commonjs/views/SkiaBaseWebView.js +7 -0
  278. package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
  279. package/lib/commonjs/views/SkiaDomView.js +152 -0
  280. package/lib/commonjs/views/SkiaDomView.js.map +1 -0
  281. package/lib/commonjs/views/SkiaDomView.web.js +55 -0
  282. package/lib/commonjs/views/SkiaDomView.web.js.map +1 -0
  283. package/lib/commonjs/views/SkiaPictureView.js +16 -2
  284. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  285. package/lib/commonjs/views/SkiaView.js +17 -2
  286. package/lib/commonjs/views/SkiaView.js.map +1 -1
  287. package/lib/commonjs/views/index.js +13 -0
  288. package/lib/commonjs/views/index.js.map +1 -1
  289. package/lib/commonjs/views/types.js.map +1 -1
  290. package/lib/module/dom/nodes/JsiSkDOM.js +56 -56
  291. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  292. package/lib/module/dom/nodes/RenderNode.js +1 -1
  293. package/lib/module/dom/nodes/RenderNode.js.map +1 -1
  294. package/lib/module/renderer/Canvas.js +20 -64
  295. package/lib/module/renderer/Canvas.js.map +1 -1
  296. package/lib/module/renderer/DependencyManager.js +0 -5
  297. package/lib/module/renderer/DependencyManager.js.map +1 -1
  298. package/lib/module/renderer/HostComponents.js.map +1 -1
  299. package/lib/module/renderer/useCanvas.js +2 -13
  300. package/lib/module/renderer/useCanvas.js.map +1 -1
  301. package/lib/module/views/SkiaBaseWebView.js +7 -0
  302. package/lib/module/views/SkiaBaseWebView.js.map +1 -1
  303. package/lib/module/views/SkiaDomView.js +128 -0
  304. package/lib/module/views/SkiaDomView.js.map +1 -0
  305. package/lib/module/views/SkiaDomView.web.js +41 -0
  306. package/lib/module/views/SkiaDomView.web.js.map +1 -0
  307. package/lib/module/views/SkiaPictureView.js +14 -2
  308. package/lib/module/views/SkiaPictureView.js.map +1 -1
  309. package/lib/module/views/SkiaView.js +15 -2
  310. package/lib/module/views/SkiaView.js.map +1 -1
  311. package/lib/module/views/index.js +1 -0
  312. package/lib/module/views/index.js.map +1 -1
  313. package/lib/module/views/types.js.map +1 -1
  314. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +57 -64
  315. package/lib/typescript/src/renderer/Canvas.d.ts +5 -8
  316. package/lib/typescript/src/renderer/DependencyManager.d.ts +0 -2
  317. package/lib/typescript/src/renderer/HostComponents.d.ts +66 -3
  318. package/lib/typescript/src/renderer/useCanvas.d.ts +0 -6
  319. package/lib/typescript/src/views/SkiaBaseWebView.d.ts +4 -0
  320. package/lib/typescript/src/views/SkiaDomView.d.ts +31 -0
  321. package/lib/typescript/src/views/SkiaDomView.web.d.ts +7 -0
  322. package/lib/typescript/src/views/index.d.ts +1 -0
  323. package/lib/typescript/src/views/types.d.ts +12 -2
  324. package/libs/android/arm64-v8a/libskia.a +0 -0
  325. package/libs/android/arm64-v8a/libskottie.a +0 -0
  326. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  327. package/libs/android/arm64-v8a/libsksg.a +0 -0
  328. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  329. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  330. package/libs/android/arm64-v8a/libsvg.a +0 -0
  331. package/libs/android/armeabi-v7a/libskia.a +0 -0
  332. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  333. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  334. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  335. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  336. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  337. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  338. package/libs/android/x86/libskia.a +0 -0
  339. package/libs/android/x86/libskottie.a +0 -0
  340. package/libs/android/x86/libskparagraph.a +0 -0
  341. package/libs/android/x86/libsksg.a +0 -0
  342. package/libs/android/x86/libskshaper.a +0 -0
  343. package/libs/android/x86/libskunicode.a +0 -0
  344. package/libs/android/x86/libsvg.a +0 -0
  345. package/libs/android/x86_64/libskia.a +0 -0
  346. package/libs/android/x86_64/libskottie.a +0 -0
  347. package/libs/android/x86_64/libskparagraph.a +0 -0
  348. package/libs/android/x86_64/libsksg.a +0 -0
  349. package/libs/android/x86_64/libskshaper.a +0 -0
  350. package/libs/android/x86_64/libskunicode.a +0 -0
  351. package/libs/android/x86_64/libsvg.a +0 -0
  352. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  353. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  354. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  355. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  356. package/libs/ios/libskparagraph.xcframework/Info.plist +42 -0
  357. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  358. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  359. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  360. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  361. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  362. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  363. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  364. package/libs/ios/libskunicode.xcframework/Info.plist +42 -0
  365. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  366. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  367. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  368. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  369. package/package.json +5 -3
  370. package/react-native-skia.podspec +3 -1
  371. package/src/dom/nodes/JsiSkDOM.ts +170 -56
  372. package/src/dom/nodes/RenderNode.ts +1 -1
  373. package/src/renderer/Canvas.tsx +32 -56
  374. package/src/renderer/DependencyManager.tsx +0 -5
  375. package/src/renderer/HostComponents.ts +152 -1
  376. package/src/renderer/useCanvas.ts +1 -15
  377. package/src/views/SkiaBaseWebView.tsx +4 -0
  378. package/src/views/SkiaDomView.tsx +120 -0
  379. package/src/views/SkiaDomView.web.tsx +37 -0
  380. package/src/views/SkiaPictureView.tsx +10 -2
  381. package/src/views/SkiaView.tsx +11 -3
  382. package/src/views/index.ts +1 -0
  383. package/src/views/types.ts +19 -2
  384. package/cpp/jsi/JsiSimpleValueWrapper.h +0 -99
  385. package/cpp/skia/include/c/sk_canvas.h +0 -159
  386. package/cpp/skia/include/c/sk_colorspace.h +0 -25
  387. package/cpp/skia/include/c/sk_data.h +0 -65
  388. package/cpp/skia/include/c/sk_image.h +0 -71
  389. package/cpp/skia/include/c/sk_imageinfo.h +0 -62
  390. package/cpp/skia/include/c/sk_maskfilter.h +0 -47
  391. package/cpp/skia/include/c/sk_matrix.h +0 -49
  392. package/cpp/skia/include/c/sk_paint.h +0 -145
  393. package/cpp/skia/include/c/sk_path.h +0 -102
  394. package/cpp/skia/include/c/sk_picture.h +0 -70
  395. package/cpp/skia/include/c/sk_shader.h +0 -143
  396. package/cpp/skia/include/c/sk_surface.h +0 -73
  397. package/cpp/skia/include/c/sk_types.h +0 -278
  398. package/cpp/skia/include/gpu/graphite/SkStuff.h +0 -47
  399. package/cpp/skia/include/private/SkNx.h +0 -430
  400. package/cpp/skia/include/private/SkNx_neon.h +0 -713
  401. package/cpp/skia/include/private/SkNx_sse.h +0 -823
  402. package/cpp/skia/include/sksl/DSLRuntimeEffects.h +0 -32
  403. package/cpp/skia/include/sksl/DSLWrapper.h +0 -77
@@ -8,7 +8,11 @@
8
8
  #ifndef SkCornerPathEffect_DEFINED
9
9
  #define SkCornerPathEffect_DEFINED
10
10
 
11
- #include "include/core/SkPathEffect.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkScalar.h"
13
+ #include "include/core/SkTypes.h"
14
+
15
+ class SkPathEffect;
12
16
 
13
17
  /** \class SkCornerPathEffect
14
18
 
@@ -8,7 +8,11 @@
8
8
  #ifndef SkDashPathEffect_DEFINED
9
9
  #define SkDashPathEffect_DEFINED
10
10
 
11
- #include "include/core/SkPathEffect.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkScalar.h"
13
+ #include "include/core/SkTypes.h"
14
+
15
+ class SkPathEffect;
12
16
 
13
17
  class SK_API SkDashPathEffect {
14
18
  public:
@@ -8,12 +8,11 @@
8
8
  #ifndef SkGradientShader_DEFINED
9
9
  #define SkGradientShader_DEFINED
10
10
 
11
+ #include "include/core/SkColorSpace.h"
11
12
  #include "include/core/SkRefCnt.h"
12
13
  #include "include/core/SkShader.h"
13
14
  #include "include/core/SkTileMode.h"
14
15
 
15
- class SkColorSpace;
16
-
17
16
  /** \class SkGradientShader
18
17
 
19
18
  SkGradientShader hosts factories for creating subclasses of SkShader that
@@ -60,6 +59,16 @@ public:
60
59
  kInterpolateColorsInPremul_Flag = 1 << 0,
61
60
  };
62
61
 
62
+ struct Interpolation {
63
+ enum class InPremul : bool { kNo = false, kYes = true };
64
+
65
+ InPremul fInPremul = InPremul::kNo;
66
+
67
+ static Interpolation FromFlags(uint32_t flags) {
68
+ return {flags & kInterpolateColorsInPremul_Flag ? InPremul::kYes : InPremul::kNo};
69
+ }
70
+ };
71
+
63
72
  /** Returns a shader that generates a linear gradient between the two specified points.
64
73
  <p />
65
74
  @param pts The start and end points for the gradient.
@@ -77,12 +86,7 @@ public:
77
86
  static sk_sp<SkShader> MakeLinear(const SkPoint pts[2],
78
87
  const SkColor colors[], const SkScalar pos[], int count,
79
88
  SkTileMode mode,
80
- uint32_t flags, const SkMatrix* localMatrix);
81
- static sk_sp<SkShader> MakeLinear(const SkPoint pts[2],
82
- const SkColor colors[], const SkScalar pos[], int count,
83
- SkTileMode mode) {
84
- return MakeLinear(pts, colors, pos, count, mode, 0, nullptr);
85
- }
89
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr);
86
90
 
87
91
  /** Returns a shader that generates a linear gradient between the two specified points.
88
92
  <p />
@@ -101,10 +105,15 @@ public:
101
105
  static sk_sp<SkShader> MakeLinear(const SkPoint pts[2],
102
106
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
103
107
  const SkScalar pos[], int count, SkTileMode mode,
104
- uint32_t flags, const SkMatrix* localMatrix);
108
+ const Interpolation& interpolation,
109
+ const SkMatrix* localMatrix);
105
110
  static sk_sp<SkShader> MakeLinear(const SkPoint pts[2],
106
111
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
107
- const SkScalar pos[], int count, SkTileMode mode);
112
+ const SkScalar pos[], int count, SkTileMode mode,
113
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr) {
114
+ return MakeLinear(pts, colors, std::move(colorSpace), pos, count, mode,
115
+ Interpolation::FromFlags(flags), localMatrix);
116
+ }
108
117
 
109
118
  /** Returns a shader that generates a radial gradient given the center and radius.
110
119
  <p />
@@ -122,12 +131,7 @@ public:
122
131
  static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius,
123
132
  const SkColor colors[], const SkScalar pos[], int count,
124
133
  SkTileMode mode,
125
- uint32_t flags, const SkMatrix* localMatrix);
126
- static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius,
127
- const SkColor colors[], const SkScalar pos[], int count,
128
- SkTileMode mode) {
129
- return MakeRadial(center, radius, colors, pos, count, mode, 0, nullptr);
130
- }
134
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr);
131
135
 
132
136
  /** Returns a shader that generates a radial gradient given the center and radius.
133
137
  <p />
@@ -145,10 +149,15 @@ public:
145
149
  static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius,
146
150
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
147
151
  const SkScalar pos[], int count, SkTileMode mode,
148
- uint32_t flags, const SkMatrix* localMatrix);
152
+ const Interpolation& interpolation,
153
+ const SkMatrix* localMatrix);
149
154
  static sk_sp<SkShader> MakeRadial(const SkPoint& center, SkScalar radius,
150
155
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
151
- const SkScalar pos[], int count, SkTileMode mode);
156
+ const SkScalar pos[], int count, SkTileMode mode,
157
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr) {
158
+ return MakeRadial(center, radius, colors, std::move(colorSpace), pos, count, mode,
159
+ Interpolation::FromFlags(flags), localMatrix);
160
+ }
152
161
 
153
162
  /**
154
163
  * Returns a shader that generates a conical gradient given two circles, or
@@ -160,14 +169,8 @@ public:
160
169
  const SkPoint& end, SkScalar endRadius,
161
170
  const SkColor colors[], const SkScalar pos[],
162
171
  int count, SkTileMode mode,
163
- uint32_t flags, const SkMatrix* localMatrix);
164
- static sk_sp<SkShader> MakeTwoPointConical(const SkPoint& start, SkScalar startRadius,
165
- const SkPoint& end, SkScalar endRadius,
166
- const SkColor colors[], const SkScalar pos[],
167
- int count, SkTileMode mode) {
168
- return MakeTwoPointConical(start, startRadius, end, endRadius, colors, pos, count, mode,
169
- 0, nullptr);
170
- }
172
+ uint32_t flags = 0,
173
+ const SkMatrix* localMatrix = nullptr);
171
174
 
172
175
  /**
173
176
  * Returns a shader that generates a conical gradient given two circles, or
@@ -180,14 +183,29 @@ public:
180
183
  const SkColor4f colors[],
181
184
  sk_sp<SkColorSpace> colorSpace, const SkScalar pos[],
182
185
  int count, SkTileMode mode,
183
- uint32_t flags, const SkMatrix* localMatrix);
186
+ const Interpolation& interpolation,
187
+ const SkMatrix* localMatrix);
184
188
  static sk_sp<SkShader> MakeTwoPointConical(const SkPoint& start, SkScalar startRadius,
185
189
  const SkPoint& end, SkScalar endRadius,
186
190
  const SkColor4f colors[],
187
191
  sk_sp<SkColorSpace> colorSpace, const SkScalar pos[],
188
- int count, SkTileMode mode);
192
+ int count, SkTileMode mode,
193
+ uint32_t flags = 0,
194
+ const SkMatrix* localMatrix = nullptr) {
195
+ return MakeTwoPointConical(start, startRadius, end, endRadius, colors,
196
+ std::move(colorSpace), pos, count, mode,
197
+ Interpolation::FromFlags(flags), localMatrix);
198
+ }
189
199
 
190
200
  /** Returns a shader that generates a sweep gradient given a center.
201
+
202
+ The shader accepts negative angles and angles larger than 360, draws
203
+ between 0 and 360 degrees, similar to the CSS conic-gradient
204
+ semantics. 0 degrees means horizontal positive x axis. The start angle
205
+ must be less than the end angle, otherwise a null pointer is
206
+ returned. If color stops do not contain 0 and 1 but are within this
207
+ range, the respective outer color stop is repeated for 0 and 1. Color
208
+ stops less than 0 are clamped to 0, and greater than 1 are clamped to 1.
191
209
  <p />
192
210
  @param cx The X coordinate of the center of the sweep
193
211
  @param cx The Y coordinate of the center of the sweep
@@ -210,16 +228,20 @@ public:
210
228
  uint32_t flags, const SkMatrix* localMatrix);
211
229
  static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy,
212
230
  const SkColor colors[], const SkScalar pos[], int count,
213
- uint32_t flags, const SkMatrix* localMatrix) {
231
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr) {
214
232
  return MakeSweep(cx, cy, colors, pos, count, SkTileMode::kClamp, 0, 360, flags,
215
233
  localMatrix);
216
234
  }
217
- static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy,
218
- const SkColor colors[], const SkScalar pos[], int count) {
219
- return MakeSweep(cx, cy, colors, pos, count, 0, nullptr);
220
- }
221
235
 
222
236
  /** Returns a shader that generates a sweep gradient given a center.
237
+
238
+ The shader accepts negative angles and angles larger than 360, draws
239
+ between 0 and 360 degrees, similar to the CSS conic-gradient
240
+ semantics. 0 degrees means horizontal positive x axis. The start angle
241
+ must be less than the end angle, otherwise a null pointer is
242
+ returned. If color stops do not contain 0 and 1 but are within this
243
+ range, the respective outer color stop is repeated for 0 and 1. Color
244
+ stops less than 0 are clamped to 0, and greater than 1 are clamped to 1.
223
245
  <p />
224
246
  @param cx The X coordinate of the center of the sweep
225
247
  @param cx The Y coordinate of the center of the sweep
@@ -240,16 +262,24 @@ public:
240
262
  const SkScalar pos[], int count,
241
263
  SkTileMode mode,
242
264
  SkScalar startAngle, SkScalar endAngle,
243
- uint32_t flags, const SkMatrix* localMatrix);
265
+ const Interpolation& interpolation,
266
+ const SkMatrix* localMatrix);
244
267
  static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy,
245
268
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
246
269
  const SkScalar pos[], int count,
247
- uint32_t flags, const SkMatrix* localMatrix);
270
+ SkTileMode mode,
271
+ SkScalar startAngle, SkScalar endAngle,
272
+ uint32_t flags, const SkMatrix* localMatrix) {
273
+ return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, mode, startAngle,
274
+ endAngle, Interpolation::FromFlags(flags), localMatrix);
275
+ }
248
276
  static sk_sp<SkShader> MakeSweep(SkScalar cx, SkScalar cy,
249
277
  const SkColor4f colors[], sk_sp<SkColorSpace> colorSpace,
250
- const SkScalar pos[], int count);
251
-
252
- static void RegisterFlattenables();
278
+ const SkScalar pos[], int count,
279
+ uint32_t flags = 0, const SkMatrix* localMatrix = nullptr) {
280
+ return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, SkTileMode::kClamp,
281
+ 0, 360, flags, localMatrix);
282
+ }
253
283
  };
254
284
 
255
285
  #endif
@@ -8,7 +8,11 @@
8
8
  #ifndef SkHighContrastFilter_DEFINED
9
9
  #define SkHighContrastFilter_DEFINED
10
10
 
11
- #include "include/core/SkColorFilter.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkScalar.h"
13
+ #include "include/core/SkTypes.h"
14
+
15
+ class SkColorFilter;
12
16
 
13
17
  /**
14
18
  * Configuration struct for SkHighContrastFilter.
@@ -154,7 +154,8 @@ public:
154
154
  * @param yChannelSelector RGBA channel that encodes the y displacement per pixel.
155
155
  * @param scale Scale applied to displacement extracted from image.
156
156
  * @param displacement The filter defining the displacement image, or null to use source.
157
- * @param color The filter providing the color pixels to be displaced.
157
+ * @param color The filter providing the color pixels to be displaced. If null,
158
+ * it will use the source.
158
159
  * @param cropRect Optional rectangle that crops the color input and output.
159
160
  */
160
161
  static sk_sp<SkImageFilter> DisplacementMap(SkColorChannel xChannelSelector,
@@ -344,13 +345,13 @@ public:
344
345
  * fill the result image
345
346
  * @param childShaderName The name of the child shader defined in the builder that will be
346
347
  * bound to the input param (or the source image if the input param
347
- * is null). If null the builder can have exactly one child shader,
348
+ * is null). If empty, the builder can have exactly one child shader,
348
349
  * which automatically binds the input param.
349
350
  * @param input The image filter that will be provided as input to the runtime
350
351
  * shader. If null the implicit source image is used instead
351
352
  */
352
353
  static sk_sp<SkImageFilter> RuntimeShader(const SkRuntimeShaderBuilder& builder,
353
- const char* childShaderName,
354
+ std::string_view childShaderName,
354
355
  sk_sp<SkImageFilter> input);
355
356
 
356
357
  /**
@@ -369,7 +370,7 @@ public:
369
370
  * @param inputCount How many entries are present in 'childShaderNames' and 'inputs'.
370
371
  */
371
372
  static sk_sp<SkImageFilter> RuntimeShader(const SkRuntimeShaderBuilder& builder,
372
- const char* childShaderNames[],
373
+ std::string_view childShaderNames[],
373
374
  const sk_sp<SkImageFilter> inputs[],
374
375
  int inputCount);
375
376
  #endif // SK_ENABLE_SKSL
@@ -8,7 +8,10 @@
8
8
  #ifndef SkLumaColorFilter_DEFINED
9
9
  #define SkLumaColorFilter_DEFINED
10
10
 
11
- #include "include/core/SkColorFilter.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkTypes.h"
13
+
14
+ class SkColorFilter;
12
15
 
13
16
  /**
14
17
  * SkLumaColorFilter multiplies the luma of its input into the alpha channel,
@@ -8,11 +8,15 @@
8
8
  #ifndef SkOpPathEffect_DEFINED
9
9
  #define SkOpPathEffect_DEFINED
10
10
 
11
- #include "include/core/SkMatrix.h"
12
11
  #include "include/core/SkPaint.h"
13
- #include "include/core/SkPathEffect.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/core/SkScalar.h"
14
+ #include "include/core/SkTypes.h"
14
15
  #include "include/pathops/SkPathOps.h"
15
16
 
17
+ class SkMatrix;
18
+ class SkPathEffect;
19
+
16
20
  class SK_API SkMergePathEffect {
17
21
  public:
18
22
  /* Defers to two other patheffects, and then combines their outputs using the specified op.
@@ -5,8 +5,11 @@
5
5
  * found in the LICENSE file.
6
6
  */
7
7
 
8
- #include "include/core/SkColorFilter.h"
9
- #include "include/core/SkFlattenable.h"
8
+ #include "include/core/SkColor.h"
9
+ #include "include/core/SkRefCnt.h"
10
+ #include "include/core/SkTypes.h"
11
+
12
+ class SkColorFilter;
10
13
 
11
14
  #ifndef SkOverdrawColorFilter_DEFINED
12
15
  #define SkOverdrawColorFilter_DEFINED
@@ -25,6 +25,8 @@
25
25
 
26
26
  #ifdef SK_ENABLE_SKSL
27
27
 
28
+ #include "include/sksl/SkSLVersion.h"
29
+
28
30
  class GrRecordingContext;
29
31
  class SkFilterColorProgram;
30
32
  class SkImage;
@@ -68,20 +70,32 @@ public:
68
70
  };
69
71
 
70
72
  enum Flags {
71
- // Uniform is an declared as an array. 'count' contains array length.
73
+ // Uniform is declared as an array. 'count' contains array length.
72
74
  kArray_Flag = 0x1,
73
75
 
74
76
  // Uniform is declared with layout(color). Colors should be supplied as unpremultiplied,
75
77
  // extended-range (unclamped) sRGB (ie SkColor4f). The uniform will be automatically
76
78
  // transformed to unpremultiplied extended-range working-space colors.
77
79
  kColor_Flag = 0x2,
80
+
81
+ // When used with SkMeshSpecification, indicates that the uniform is present in the
82
+ // vertex shader. Not used with SkRuntimeEffect.
83
+ kVertex_Flag = 0x4,
84
+
85
+ // When used with SkMeshSpecification, indicates that the uniform is present in the
86
+ // fragment shader. Not used with SkRuntimeEffect.
87
+ kFragment_Flag = 0x8,
88
+
89
+ // This flag indicates that the SkSL uniform uses a medium-precision type
90
+ // (i.e., `half` instead of `float`).
91
+ kHalfPrecision_Flag = 0x10,
78
92
  };
79
93
 
80
- SkString name;
81
- size_t offset;
82
- Type type;
83
- int count;
84
- uint32_t flags;
94
+ std::string_view name;
95
+ size_t offset;
96
+ Type type;
97
+ int count;
98
+ uint32_t flags;
85
99
 
86
100
  bool isArray() const { return SkToBool(this->flags & kArray_Flag); }
87
101
  bool isColor() const { return SkToBool(this->flags & kColor_Flag); }
@@ -96,9 +110,9 @@ public:
96
110
  };
97
111
 
98
112
  struct Child {
99
- SkString name;
100
- ChildType type;
101
- int index;
113
+ std::string_view name;
114
+ ChildType type;
115
+ int index;
102
116
  };
103
117
 
104
118
  class Options {
@@ -112,16 +126,16 @@ public:
112
126
  friend class SkRuntimeEffect;
113
127
  friend class SkRuntimeEffectPriv;
114
128
 
129
+ // Public SkSL does not allow access to sk_FragCoord. The semantics of that variable are
130
+ // confusing, and expose clients to implementation details of saveLayer and image filters.
131
+ bool usePrivateRTShaderModule = false;
132
+
133
+ // TODO(skia:11209) - Replace this with a promised SkCapabilities?
115
134
  // This flag lifts the ES2 restrictions on Runtime Effects that are gated by the
116
135
  // `strictES2Mode` check. Be aware that the software renderer and pipeline-stage effect are
117
136
  // still largely ES3-unaware and can still fail or crash if post-ES2 features are used.
118
137
  // This is only intended for use by tests and certain internally created effects.
119
- bool enforceES2Restrictions = true;
120
-
121
- // Similarly: Public SkSL does not allow access to sk_FragCoord. The semantics of that
122
- // variable are confusing, and expose clients to implementation details of saveLayer and
123
- // image filters.
124
- bool usePrivateRTShaderModule = false;
138
+ SkSL::Version maxVersionAllowed = SkSL::Version::k100;
125
139
  };
126
140
 
127
141
  // If the effect is compiled successfully, `effect` will be non-null.
@@ -148,10 +162,6 @@ public:
148
162
 
149
163
  // Shader SkSL requires an entry point that looks like:
150
164
  // vec4 main(vec2 inCoords) { ... }
151
- // -or-
152
- // vec4 main(vec2 inCoords, vec4 inColor) { ... }
153
- //
154
- // Most shaders don't use the input color, so that parameter is optional.
155
165
  static Result MakeForShader(SkString sksl, const Options&);
156
166
  static Result MakeForShader(SkString sksl) {
157
167
  return MakeForShader(std::move(sksl), Options{});
@@ -164,19 +174,6 @@ public:
164
174
  return MakeForBlender(std::move(sksl), Options{});
165
175
  }
166
176
 
167
- // DSL entry points
168
- static Result MakeForColorFilter(std::unique_ptr<SkSL::Program> program, const Options&);
169
- static Result MakeForColorFilter(std::unique_ptr<SkSL::Program> program);
170
-
171
- static Result MakeForShader(std::unique_ptr<SkSL::Program> program, const Options&);
172
- static Result MakeForShader(std::unique_ptr<SkSL::Program> program);
173
- static sk_sp<SkRuntimeEffect> MakeForShader(std::unique_ptr<SkSL::Program> program,
174
- const Options&, SkSL::ErrorReporter* errors);
175
-
176
-
177
- static Result MakeForBlender(std::unique_ptr<SkSL::Program> program, const Options&);
178
- static Result MakeForBlender(std::unique_ptr<SkSL::Program> program);
179
-
180
177
  // Object that allows passing a SkShader, SkColorFilter or SkBlender as a child
181
178
  class ChildPtr {
182
179
  public:
@@ -195,33 +192,38 @@ public:
195
192
  SkBlender* blender() const;
196
193
  SkFlattenable* flattenable() const { return fChild.get(); }
197
194
 
195
+ using sk_is_trivially_relocatable = std::true_type;
196
+
198
197
  private:
199
198
  sk_sp<SkFlattenable> fChild;
199
+
200
+ static_assert(::sk_is_trivially_relocatable<decltype(fChild)>::value);
200
201
  };
201
202
 
202
- sk_sp<SkShader> makeShader(sk_sp<SkData> uniforms,
203
+ sk_sp<SkShader> makeShader(sk_sp<const SkData> uniforms,
203
204
  sk_sp<SkShader> children[],
204
205
  size_t childCount,
205
206
  const SkMatrix* localMatrix = nullptr) const;
206
- sk_sp<SkShader> makeShader(sk_sp<SkData> uniforms,
207
+ sk_sp<SkShader> makeShader(sk_sp<const SkData> uniforms,
207
208
  SkSpan<ChildPtr> children,
208
209
  const SkMatrix* localMatrix = nullptr) const;
209
210
 
210
211
  sk_sp<SkImage> makeImage(GrRecordingContext*,
211
- sk_sp<SkData> uniforms,
212
+ sk_sp<const SkData> uniforms,
212
213
  SkSpan<ChildPtr> children,
213
214
  const SkMatrix* localMatrix,
214
215
  SkImageInfo resultInfo,
215
216
  bool mipmapped) const;
216
217
 
217
- sk_sp<SkColorFilter> makeColorFilter(sk_sp<SkData> uniforms) const;
218
- sk_sp<SkColorFilter> makeColorFilter(sk_sp<SkData> uniforms,
218
+ sk_sp<SkColorFilter> makeColorFilter(sk_sp<const SkData> uniforms) const;
219
+ sk_sp<SkColorFilter> makeColorFilter(sk_sp<const SkData> uniforms,
219
220
  sk_sp<SkColorFilter> children[],
220
221
  size_t childCount) const;
221
- sk_sp<SkColorFilter> makeColorFilter(sk_sp<SkData> uniforms,
222
+ sk_sp<SkColorFilter> makeColorFilter(sk_sp<const SkData> uniforms,
222
223
  SkSpan<ChildPtr> children) const;
223
224
 
224
- sk_sp<SkBlender> makeBlender(sk_sp<SkData> uniforms, SkSpan<ChildPtr> children = {}) const;
225
+ sk_sp<SkBlender> makeBlender(sk_sp<const SkData> uniforms,
226
+ SkSpan<ChildPtr> children = {}) const;
225
227
 
226
228
  /**
227
229
  * Creates a new Runtime Effect patterned after an already-existing one. The new shader behaves
@@ -248,14 +250,19 @@ public:
248
250
  // provide an SkData of this size, containing values for all of those variables.
249
251
  size_t uniformSize() const;
250
252
 
251
- SkSpan<const Uniform> uniforms() const { return SkMakeSpan(fUniforms); }
252
- SkSpan<const Child> children() const { return SkMakeSpan(fChildren); }
253
+ SkSpan<const Uniform> uniforms() const { return SkSpan(fUniforms); }
254
+ SkSpan<const Child> children() const { return SkSpan(fChildren); }
253
255
 
254
256
  // Returns pointer to the named uniform variable's description, or nullptr if not found
255
- const Uniform* findUniform(const char* name) const;
257
+ const Uniform* findUniform(std::string_view name) const;
256
258
 
257
259
  // Returns pointer to the named child's description, or nullptr if not found
258
- const Child* findChild(const char* name) const;
260
+ const Child* findChild(std::string_view name) const;
261
+
262
+ // Allows the runtime effect type to be identified.
263
+ bool allowShader() const { return (fFlags & kAllowShader_Flag); }
264
+ bool allowColorFilter() const { return (fFlags & kAllowColorFilter_Flag); }
265
+ bool allowBlender() const { return (fFlags & kAllowBlender_Flag); }
259
266
 
260
267
  static void RegisterFlattenables();
261
268
  ~SkRuntimeEffect() override;
@@ -283,15 +290,6 @@ private:
283
290
 
284
291
  static Result MakeFromSource(SkString sksl, const Options& options, SkSL::ProgramKind kind);
285
292
 
286
- static Result MakeFromDSL(std::unique_ptr<SkSL::Program> program,
287
- const Options& options,
288
- SkSL::ProgramKind kind);
289
-
290
- static sk_sp<SkRuntimeEffect> MakeFromDSL(std::unique_ptr<SkSL::Program> program,
291
- const Options& options,
292
- SkSL::ProgramKind kind,
293
- SkSL::ErrorReporter* errors);
294
-
295
293
  static Result MakeInternal(std::unique_ptr<SkSL::Program> program,
296
294
  const Options& options,
297
295
  SkSL::ProgramKind kind);
@@ -300,14 +298,11 @@ private:
300
298
 
301
299
  uint32_t hash() const { return fHash; }
302
300
  bool usesSampleCoords() const { return (fFlags & kUsesSampleCoords_Flag); }
303
- bool allowShader() const { return (fFlags & kAllowShader_Flag); }
304
- bool allowColorFilter() const { return (fFlags & kAllowColorFilter_Flag); }
305
- bool allowBlender() const { return (fFlags & kAllowBlender_Flag); }
306
301
  bool samplesOutsideMain() const { return (fFlags & kSamplesOutsideMain_Flag); }
307
302
  bool usesColorTransform() const { return (fFlags & kUsesColorTransform_Flag); }
308
303
  bool alwaysOpaque() const { return (fFlags & kAlwaysOpaque_Flag); }
309
304
 
310
- const SkFilterColorProgram* getFilterColorProgram();
305
+ const SkFilterColorProgram* getFilterColorProgram() const;
311
306
 
312
307
  #if SK_SUPPORT_GPU
313
308
  friend class GrSkSLFP; // fBaseProgram, fSampleUsages
@@ -417,11 +412,8 @@ public:
417
412
 
418
413
  const SkRuntimeEffect* effect() const { return fEffect.get(); }
419
414
 
420
- BuilderUniform uniform(const char* name) { return { this, fEffect->findUniform(name) }; }
421
- BuilderChild child(const char* name) {
422
- const SkRuntimeEffect::Child* child = fEffect->findChild(name);
423
- return { this, child };
424
- }
415
+ BuilderUniform uniform(std::string_view name) { return { this, fEffect->findUniform(name) }; }
416
+ BuilderChild child(std::string_view name) { return { this, fEffect->findChild(name) }; }
425
417
 
426
418
  protected:
427
419
  SkRuntimeEffectBuilder() = delete;
@@ -440,7 +432,7 @@ protected:
440
432
  SkRuntimeEffectBuilder& operator=(SkRuntimeEffectBuilder&&) = delete;
441
433
  SkRuntimeEffectBuilder& operator=(const SkRuntimeEffectBuilder&) = delete;
442
434
 
443
- sk_sp<SkData> uniforms() { return fUniforms; }
435
+ sk_sp<const SkData> uniforms() { return fUniforms; }
444
436
  SkRuntimeEffect::ChildPtr* children() { return fChildren.data(); }
445
437
  size_t numChildren() { return fChildren.size(); }
446
438
 
@@ -8,8 +8,10 @@
8
8
  #ifndef SkShaderMaskFilter_DEFINED
9
9
  #define SkShaderMaskFilter_DEFINED
10
10
 
11
- #include "include/core/SkMaskFilter.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkTypes.h"
12
13
 
14
+ class SkMaskFilter;
13
15
  class SkShader;
14
16
 
15
17
  class SK_API SkShaderMaskFilter {
@@ -10,33 +10,20 @@
10
10
 
11
11
  #include "include/core/SkColorFilter.h"
12
12
 
13
+ // (DEPRECATED) These factory functions are deprecated. Please use the ones in
14
+ // SkColorFilters (i.e., Table and TableARGB).
13
15
  class SK_API SkTableColorFilter {
14
16
  public:
15
- /**
16
- * Create a table colorfilter, copying the table into the filter, and
17
- * applying it to all 4 components.
18
- * a' = table[a];
19
- * r' = table[r];
20
- * g' = table[g];
21
- * b' = table[b];
22
- * Compoents are operated on in unpremultiplied space. If the incomming
23
- * colors are premultiplied, they are temporarily unpremultiplied, then
24
- * the table is applied, and then the result is remultiplied.
25
- */
26
- static sk_sp<SkColorFilter> Make(const uint8_t table[256]);
17
+ static sk_sp<SkColorFilter> Make(const uint8_t table[256]) {
18
+ return SkColorFilters::Table(table);
19
+ }
27
20
 
28
- /**
29
- * Create a table colorfilter, with a different table for each
30
- * component [A, R, G, B]. If a given table is NULL, then it is
31
- * treated as identity, with the component left unchanged. If a table
32
- * is not null, then its contents are copied into the filter.
33
- */
34
21
  static sk_sp<SkColorFilter> MakeARGB(const uint8_t tableA[256],
35
22
  const uint8_t tableR[256],
36
23
  const uint8_t tableG[256],
37
- const uint8_t tableB[256]);
38
-
39
- static void RegisterFlattenables();
24
+ const uint8_t tableB[256]) {
25
+ return SkColorFilters::TableARGB(tableA, tableR, tableG, tableB);
26
+ }
40
27
  };
41
28
 
42
29
  #endif
@@ -8,8 +8,12 @@
8
8
  #ifndef SkTableMaskFilter_DEFINED
9
9
  #define SkTableMaskFilter_DEFINED
10
10
 
11
- #include "include/core/SkMaskFilter.h"
12
11
  #include "include/core/SkScalar.h"
12
+ #include "include/core/SkTypes.h"
13
+
14
+ #include <cstdint>
15
+
16
+ class SkMaskFilter;
13
17
 
14
18
  /** \class SkTableMaskFilter
15
19
 
@@ -8,7 +8,11 @@
8
8
  #ifndef SkTrimPathEffect_DEFINED
9
9
  #define SkTrimPathEffect_DEFINED
10
10
 
11
- #include "include/core/SkPathEffect.h"
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkScalar.h"
13
+ #include "include/core/SkTypes.h"
14
+
15
+ class SkPathEffect;
12
16
 
13
17
  class SK_API SkTrimPathEffect {
14
18
  public: