@shopify/react-native-skia 0.1.158 → 0.1.159

Sign up to get free protection for your applications and to get access to all the features.
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: