@shopify/react-native-skia 0.1.158 → 0.1.160

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 +222 -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 +293 -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 +384 -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 +79 -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 +62 -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 +171 -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 +41 -55
  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 +24 -66
  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 +15 -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 +25 -66
  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 +15 -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 +5 -2
  371. package/src/dom/nodes/JsiSkDOM.ts +170 -56
  372. package/src/dom/nodes/RenderNode.ts +1 -1
  373. package/src/renderer/Canvas.tsx +37 -57
  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 +9 -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
@@ -27,233 +27,233 @@ class JsiSkDOM {
27
27
  }
28
28
 
29
29
  Layer(props) {
30
- return new _LayerNode.LayerNode(this.ctx, props ?? {});
30
+ return global.SkiaDomApi && global.SkiaDomApi.LayerNode ? global.SkiaDomApi.LayerNode(props ?? {}) : new _LayerNode.LayerNode(this.ctx, props ?? {});
31
31
  }
32
32
 
33
33
  Group(props) {
34
- return new _GroupNode.GroupNode(this.ctx, props ?? {});
34
+ return global.SkiaDomApi && global.SkiaDomApi.GroupNode ? global.SkiaDomApi.GroupNode(props ?? {}) : new _GroupNode.GroupNode(this.ctx, props ?? {});
35
35
  }
36
36
 
37
37
  Paint(props) {
38
- return new _PaintNode.PaintNode(this.ctx, props);
38
+ return global.SkiaDomApi && global.SkiaDomApi.PaintNode ? global.SkiaDomApi.PaintNode(props ?? {}) : new _PaintNode.PaintNode(this.ctx, props);
39
39
  } // Drawings
40
40
 
41
41
 
42
42
  Fill(props) {
43
- return new _drawings.FillNode(this.ctx, props);
43
+ return global.SkiaDomApi && global.SkiaDomApi.FillNode ? global.SkiaDomApi.FillNode(props ?? {}) : new _drawings.FillNode(this.ctx, props);
44
44
  }
45
45
 
46
46
  Image(props) {
47
- return new _drawings.ImageNode(this.ctx, props);
47
+ return global.SkiaDomApi && global.SkiaDomApi.ImageNode ? global.SkiaDomApi.ImageNode(props ?? {}) : new _drawings.ImageNode(this.ctx, props);
48
48
  }
49
49
 
50
50
  Circle(props) {
51
- return new _drawings.CircleNode(this.ctx, props);
51
+ return global.SkiaDomApi && global.SkiaDomApi.CircleNode ? global.SkiaDomApi.CircleNode(props ?? {}) : new _drawings.CircleNode(this.ctx, props);
52
52
  }
53
53
 
54
54
  Path(props) {
55
- return new _drawings.PathNode(this.ctx, props);
55
+ return global.SkiaDomApi && global.SkiaDomApi.PathNode ? global.SkiaDomApi.PathNode(props ?? {}) : new _drawings.PathNode(this.ctx, props);
56
56
  }
57
57
 
58
58
  CustomDrawing(props) {
59
- return new _drawings.CustomDrawingNode(this.ctx, props);
59
+ return global.SkiaDomApi && global.SkiaDomApi.CustomDrawingNode ? global.SkiaDomApi.CustomDrawingNode(props ?? {}) : new _drawings.CustomDrawingNode(this.ctx, props);
60
60
  }
61
61
 
62
62
  Line(props) {
63
- return new _drawings.LineNode(this.ctx, props);
63
+ return global.SkiaDomApi && global.SkiaDomApi.LineNode ? global.SkiaDomApi.LineNode(props ?? {}) : new _drawings.LineNode(this.ctx, props);
64
64
  }
65
65
 
66
66
  Oval(props) {
67
- return new _drawings.OvalNode(this.ctx, props);
67
+ return global.SkiaDomApi && global.SkiaDomApi.OvalNode ? global.SkiaDomApi.OvalNode(props ?? {}) : new _drawings.OvalNode(this.ctx, props);
68
68
  }
69
69
 
70
70
  Patch(props) {
71
- return new _drawings.PatchNode(this.ctx, props);
71
+ return global.SkiaDomApi && global.SkiaDomApi.PatchNode ? global.SkiaDomApi.PatchNode(props ?? {}) : new _drawings.PatchNode(this.ctx, props);
72
72
  }
73
73
 
74
74
  Points(props) {
75
- return new _drawings.PointsNode(this.ctx, props);
75
+ return global.SkiaDomApi && global.SkiaDomApi.PointsNode ? global.SkiaDomApi.PointsNode(props ?? {}) : new _drawings.PointsNode(this.ctx, props);
76
76
  }
77
77
 
78
78
  Rect(props) {
79
- return new _drawings.RectNode(this.ctx, props);
79
+ return global.SkiaDomApi && global.SkiaDomApi.RectNode ? global.SkiaDomApi.RectNode(props) : new _drawings.RectNode(this.ctx, props);
80
80
  }
81
81
 
82
82
  RRect(props) {
83
- return new _drawings.RRectNode(this.ctx, props);
83
+ return global.SkiaDomApi && global.SkiaDomApi.RRectNode ? global.SkiaDomApi.RRectNode(props) : new _drawings.RRectNode(this.ctx, props);
84
84
  }
85
85
 
86
86
  Vertices(props) {
87
- return new _drawings.VerticesNode(this.ctx, props);
87
+ return global.SkiaDomApi && global.SkiaDomApi.VerticesNode ? global.SkiaDomApi.VerticesNode(props) : new _drawings.VerticesNode(this.ctx, props);
88
88
  }
89
89
 
90
90
  Text(props) {
91
- return new _drawings.TextNode(this.ctx, props);
91
+ return global.SkiaDomApi && global.SkiaDomApi.TextNode ? global.SkiaDomApi.TextNode(props) : new _drawings.TextNode(this.ctx, props);
92
92
  }
93
93
 
94
94
  TextPath(props) {
95
- return new _drawings.TextPathNode(this.ctx, props);
95
+ return global.SkiaDomApi && global.SkiaDomApi.TextPathNode ? global.SkiaDomApi.TextPathNode(props) : new _drawings.TextPathNode(this.ctx, props);
96
96
  }
97
97
 
98
98
  TextBlob(props) {
99
- return new _drawings.TextBlobNode(this.ctx, props);
99
+ return global.SkiaDomApi && global.SkiaDomApi.TextBlobNode ? global.SkiaDomApi.TextBlobNode(props) : new _drawings.TextBlobNode(this.ctx, props);
100
100
  }
101
101
 
102
102
  Glyphs(props) {
103
- return new _drawings.GlyphsNode(this.ctx, props);
103
+ return global.SkiaDomApi && global.SkiaDomApi.GlyphsNode ? global.SkiaDomApi.GlyphsNode(props) : new _drawings.GlyphsNode(this.ctx, props);
104
104
  }
105
105
 
106
106
  DiffRect(props) {
107
- return new _drawings.DiffRectNode(this.ctx, props);
107
+ return global.SkiaDomApi && global.SkiaDomApi.DiffRectNode ? global.SkiaDomApi.DiffRectNode(props) : new _drawings.DiffRectNode(this.ctx, props);
108
108
  }
109
109
 
110
110
  Picture(props) {
111
- return new _drawings.PictureNode(this.ctx, props);
111
+ return global.SkiaDomApi && global.SkiaDomApi.PictureNode ? global.SkiaDomApi.PictureNode(props) : new _drawings.PictureNode(this.ctx, props);
112
112
  }
113
113
 
114
114
  ImageSVG(props) {
115
- return new _drawings.ImageSVGNode(this.ctx, props);
115
+ return global.SkiaDomApi && global.SkiaDomApi.ImageSVGNode ? global.SkiaDomApi.ImageSVGNode(props) : new _drawings.ImageSVGNode(this.ctx, props);
116
116
  } // BlurMaskFilters
117
117
 
118
118
 
119
119
  BlurMaskFilter(props) {
120
- return new _paint.BlurMaskFilterNode(this.ctx, props);
120
+ return global.SkiaDomApi && global.SkiaDomApi.BlurMaskFilterNode ? global.SkiaDomApi.BlurMaskFilterNode(props) : new _paint.BlurMaskFilterNode(this.ctx, props);
121
121
  } // ImageFilters
122
122
 
123
123
 
124
124
  BlendImageFilter(props) {
125
- return new _paint.BlendImageFilterNode(this.ctx, props);
125
+ return global.SkiaDomApi && global.SkiaDomApi.BlendImageFilterNode ? global.SkiaDomApi.BlendImageFilterNode(props) : new _paint.BlendImageFilterNode(this.ctx, props);
126
126
  }
127
127
 
128
128
  DropShadowImageFilter(props) {
129
- return new _paint.DropShadowImageFilterNode(this.ctx, props);
129
+ return global.SkiaDomApi && global.SkiaDomApi.DropShadowImageFilterNode ? global.SkiaDomApi.DropShadowImageFilterNode(props) : new _paint.DropShadowImageFilterNode(this.ctx, props);
130
130
  }
131
131
 
132
132
  DisplacementMapImageFilter(props) {
133
- return new _paint.DisplacementMapImageFilterNode(this.ctx, props);
133
+ return global.SkiaDomApi && global.SkiaDomApi.DisplacementMapImageFilterNode ? global.SkiaDomApi.DisplacementMapImageFilterNode(props) : new _paint.DisplacementMapImageFilterNode(this.ctx, props);
134
134
  }
135
135
 
136
136
  BlurImageFilter(props) {
137
- return new _paint.BlurImageFilterNode(this.ctx, props);
137
+ return global.SkiaDomApi && global.SkiaDomApi.BlurImageFilterNode ? global.SkiaDomApi.BlurImageFilterNode(props) : new _paint.BlurImageFilterNode(this.ctx, props);
138
138
  }
139
139
 
140
140
  OffsetImageFilter(props) {
141
- return new _paint.OffsetImageFilterNode(this.ctx, props);
141
+ return global.SkiaDomApi && global.SkiaDomApi.OffsetImageFilterNode ? global.SkiaDomApi.OffsetImageFilterNode(props) : new _paint.OffsetImageFilterNode(this.ctx, props);
142
142
  }
143
143
 
144
144
  MorphologyImageFilter(props) {
145
- return new _ImageFilters.MorphologyImageFilterNode(this.ctx, props);
145
+ return global.SkiaDomApi && global.SkiaDomApi.MorphologyImageFilterNode ? global.SkiaDomApi.MorphologyImageFilterNode(props) : new _ImageFilters.MorphologyImageFilterNode(this.ctx, props);
146
146
  }
147
147
 
148
148
  RuntimeShaderImageFilter(props) {
149
- return new _paint.RuntimeShaderImageFilterNode(this.ctx, props);
149
+ return global.SkiaDomApi && global.SkiaDomApi.RuntimeShaderImageFilterNode ? global.SkiaDomApi.RuntimeShaderImageFilterNode(props) : new _paint.RuntimeShaderImageFilterNode(this.ctx, props);
150
150
  } // Color Filters
151
151
 
152
152
 
153
153
  MatrixColorFilter(props) {
154
- return new _ColorFilters.MatrixColorFilterNode(this.ctx, props);
154
+ return global.SkiaDomApi && global.SkiaDomApi.MatrixColorFilterNode ? global.SkiaDomApi.MatrixColorFilterNode(props) : new _ColorFilters.MatrixColorFilterNode(this.ctx, props);
155
155
  }
156
156
 
157
157
  BlendColorFilter(props) {
158
- return new _ColorFilters.BlendColorFilterNode(this.ctx, props);
158
+ return global.SkiaDomApi && global.SkiaDomApi.BlendColorFilterNode ? global.SkiaDomApi.BlendColorFilterNode(props) : new _ColorFilters.BlendColorFilterNode(this.ctx, props);
159
159
  }
160
160
 
161
161
  LumaColorFilter() {
162
- return new _ColorFilters.LumaColorFilterNode(this.ctx);
162
+ return global.SkiaDomApi && global.SkiaDomApi.LumaColorFilterNode ? global.SkiaDomApi.LumaColorFilterNode() : new _ColorFilters.LumaColorFilterNode(this.ctx);
163
163
  }
164
164
 
165
165
  LinearToSRGBGammaColorFilter() {
166
- return new _ColorFilters.LinearToSRGBGammaColorFilterNode(this.ctx);
166
+ return global.SkiaDomApi && global.SkiaDomApi.LinearToSRGBGammaColorFilterNode ? global.SkiaDomApi.LinearToSRGBGammaColorFilterNode() : new _ColorFilters.LinearToSRGBGammaColorFilterNode(this.ctx);
167
167
  }
168
168
 
169
169
  SRGBToLinearGammaColorFilter() {
170
- return new _ColorFilters.SRGBToLinearGammaColorFilterNode(this.ctx);
170
+ return global.SkiaDomApi && global.SkiaDomApi.SRGBToLinearGammaColorFilterNode ? global.SkiaDomApi.SRGBToLinearGammaColorFilterNode() : new _ColorFilters.SRGBToLinearGammaColorFilterNode(this.ctx);
171
171
  }
172
172
 
173
173
  LerpColorFilter(props) {
174
- return new _ColorFilters.LerpColorFilterNode(this.ctx, props);
174
+ return global.SkiaDomApi && global.SkiaDomApi.LerpColorFilterNode ? global.SkiaDomApi.LerpColorFilterNode(props) : new _ColorFilters.LerpColorFilterNode(this.ctx, props);
175
175
  } // Shaders
176
176
 
177
177
 
178
178
  Shader(props) {
179
- return new _Shaders.ShaderNode(this.ctx, props);
179
+ return global.SkiaDomApi && global.SkiaDomApi.ShaderNode ? global.SkiaDomApi.ShaderNode(props) : new _Shaders.ShaderNode(this.ctx, props);
180
180
  }
181
181
 
182
182
  ImageShader(props) {
183
- return new _Shaders.ImageShaderNode(this.ctx, props);
183
+ return global.SkiaDomApi && global.SkiaDomApi.ImageShaderNode ? global.SkiaDomApi.ImageShaderNode(props) : new _Shaders.ImageShaderNode(this.ctx, props);
184
184
  }
185
185
 
186
186
  ColorShader(props) {
187
- return new _Shaders.ColorNode(this.ctx, props);
187
+ return global.SkiaDomApi && global.SkiaDomApi.ColorShaderNode ? global.SkiaDomApi.ColorShaderNode(props) : new _Shaders.ColorNode(this.ctx, props);
188
188
  }
189
189
 
190
190
  SweepGradient(props) {
191
- return new _Shaders.SweepGradientNode(this.ctx, props);
191
+ return global.SkiaDomApi && global.SkiaDomApi.SweepGradientNode ? global.SkiaDomApi.SweepGradientNode(props) : new _Shaders.SweepGradientNode(this.ctx, props);
192
192
  }
193
193
 
194
194
  Turbulence(props) {
195
- return new _Shaders.TurbulenceNode(this.ctx, props);
195
+ return global.SkiaDomApi && global.SkiaDomApi.TurbulenceNode ? global.SkiaDomApi.TurbulenceNode(props) : new _Shaders.TurbulenceNode(this.ctx, props);
196
196
  }
197
197
 
198
198
  FractalNoise(props) {
199
- return new _Shaders.FractalNoiseNode(this.ctx, props);
199
+ return global.SkiaDomApi && global.SkiaDomApi.FractalNoiseNode ? global.SkiaDomApi.FractalNoiseNode(props) : new _Shaders.FractalNoiseNode(this.ctx, props);
200
200
  }
201
201
 
202
202
  LinearGradient(props) {
203
- return new _Shaders.LinearGradientNode(this.ctx, props);
203
+ return global.SkiaDomApi && global.SkiaDomApi.LinearGradientNode ? global.SkiaDomApi.LinearGradientNode(props) : new _Shaders.LinearGradientNode(this.ctx, props);
204
204
  }
205
205
 
206
206
  RadialGradient(props) {
207
- return new _Shaders.RadialGradientNode(this.ctx, props);
207
+ return global.SkiaDomApi && global.SkiaDomApi.RadialGradientNode ? global.SkiaDomApi.RadialGradientNode(props) : new _Shaders.RadialGradientNode(this.ctx, props);
208
208
  }
209
209
 
210
210
  TwoPointConicalGradient(props) {
211
- return new _Shaders.TwoPointConicalGradientNode(this.ctx, props);
211
+ return global.SkiaDomApi && global.SkiaDomApi.TwoPointConicalGradientNode ? global.SkiaDomApi.TwoPointConicalGradientNode(props) : new _Shaders.TwoPointConicalGradientNode(this.ctx, props);
212
212
  } // Path Effects
213
213
 
214
214
 
215
215
  CornerPathEffect(props) {
216
- return new _paint.CornerPathEffectNode(this.ctx, props);
216
+ return global.SkiaDomApi && global.SkiaDomApi.CornerPathEffectNode ? global.SkiaDomApi.CornerPathEffectNode(props) : new _paint.CornerPathEffectNode(this.ctx, props);
217
217
  }
218
218
 
219
219
  DiscretePathEffect(props) {
220
- return new _paint.DiscretePathEffectNode(this.ctx, props);
220
+ return global.SkiaDomApi && global.SkiaDomApi.DiscretePathEffectNode ? global.SkiaDomApi.DiscretePathEffectNode(props) : new _paint.DiscretePathEffectNode(this.ctx, props);
221
221
  }
222
222
 
223
223
  DashPathEffect(props) {
224
- return new _paint.DashPathEffectNode(this.ctx, props);
224
+ return global.SkiaDomApi && global.SkiaDomApi.DashPathEffectNode ? global.SkiaDomApi.DashPathEffectNode(props) : new _paint.DashPathEffectNode(this.ctx, props);
225
225
  }
226
226
 
227
227
  Path1DPathEffect(props) {
228
- return new _paint.Path1DPathEffectNode(this.ctx, props);
228
+ return global.SkiaDomApi && global.SkiaDomApi.Path1DPathEffectNode ? global.SkiaDomApi.Path1DPathEffectNode(props) : new _paint.Path1DPathEffectNode(this.ctx, props);
229
229
  }
230
230
 
231
231
  Path2DPathEffect(props) {
232
- return new _paint.Path2DPathEffectNode(this.ctx, props);
232
+ return global.SkiaDomApi && global.SkiaDomApi.Path2DPathEffectNode ? global.SkiaDomApi.Path2DPathEffectNode(props) : new _paint.Path2DPathEffectNode(this.ctx, props);
233
233
  }
234
234
 
235
235
  SumPathEffect() {
236
- return new _paint.SumPathEffectNode(this.ctx);
236
+ return global.SkiaDomApi && global.SkiaDomApi.SumPathEffectNode ? global.SkiaDomApi.SumPathEffectNode() : new _paint.SumPathEffectNode(this.ctx);
237
237
  }
238
238
 
239
239
  Line2DPathEffect(props) {
240
- return new _paint.Line2DPathEffectNode(this.ctx, props);
240
+ return global.SkiaDomApi && global.SkiaDomApi.Line2DPathEffectNode ? global.SkiaDomApi.Line2DPathEffectNode(props) : new _paint.Line2DPathEffectNode(this.ctx, props);
241
241
  }
242
242
 
243
243
  Blend(props) {
244
- return new _paint.BlendNode(this.ctx, props);
244
+ return global.SkiaDomApi && global.SkiaDomApi.BlendNode ? global.SkiaDomApi.BlendNode(props) : new _paint.BlendNode(this.ctx, props);
245
245
  }
246
246
 
247
247
  BackdropFilter(props) {
248
- return new _drawings.BackdropFilterNode(this.ctx, props);
248
+ return global.SkiaDomApi && global.SkiaDomApi.BackdropFilterNode ? global.SkiaDomApi.BackdropFilterNode(props) : new _drawings.BackdropFilterNode(this.ctx, props);
249
249
  }
250
250
 
251
251
  Box(props) {
252
- return new _drawings.BoxNode(this.ctx, props);
252
+ return global.SkiaDomApi && global.SkiaDomApi.BoxNode ? global.SkiaDomApi.BoxNode(props) : new _drawings.BoxNode(this.ctx, props);
253
253
  }
254
254
 
255
255
  BoxShadow(props) {
256
- return new _drawings.BoxShadowNode(this.ctx, props);
256
+ return global.SkiaDomApi && global.SkiaDomApi.BoxShadowNode ? global.SkiaDomApi.BoxShadowNode(props) : new _drawings.BoxShadowNode(this.ctx, props);
257
257
  }
258
258
 
259
259
  }
@@ -1 +1 @@
1
- {"version":3,"names":["JsiSkDOM","constructor","ctx","Layer","props","LayerNode","Group","GroupNode","Paint","PaintNode","Fill","FillNode","Image","ImageNode","Circle","CircleNode","Path","PathNode","CustomDrawing","CustomDrawingNode","Line","LineNode","Oval","OvalNode","Patch","PatchNode","Points","PointsNode","Rect","RectNode","RRect","RRectNode","Vertices","VerticesNode","Text","TextNode","TextPath","TextPathNode","TextBlob","TextBlobNode","Glyphs","GlyphsNode","DiffRect","DiffRectNode","Picture","PictureNode","ImageSVG","ImageSVGNode","BlurMaskFilter","BlurMaskFilterNode","BlendImageFilter","BlendImageFilterNode","DropShadowImageFilter","DropShadowImageFilterNode","DisplacementMapImageFilter","DisplacementMapImageFilterNode","BlurImageFilter","BlurImageFilterNode","OffsetImageFilter","OffsetImageFilterNode","MorphologyImageFilter","MorphologyImageFilterNode","RuntimeShaderImageFilter","RuntimeShaderImageFilterNode","MatrixColorFilter","MatrixColorFilterNode","BlendColorFilter","BlendColorFilterNode","LumaColorFilter","LumaColorFilterNode","LinearToSRGBGammaColorFilter","LinearToSRGBGammaColorFilterNode","SRGBToLinearGammaColorFilter","SRGBToLinearGammaColorFilterNode","LerpColorFilter","LerpColorFilterNode","Shader","ShaderNode","ImageShader","ImageShaderNode","ColorShader","ColorNode","SweepGradient","SweepGradientNode","Turbulence","TurbulenceNode","FractalNoise","FractalNoiseNode","LinearGradient","LinearGradientNode","RadialGradient","RadialGradientNode","TwoPointConicalGradient","TwoPointConicalGradientNode","CornerPathEffect","CornerPathEffectNode","DiscretePathEffect","DiscretePathEffectNode","DashPathEffect","DashPathEffectNode","Path1DPathEffect","Path1DPathEffectNode","Path2DPathEffect","Path2DPathEffectNode","SumPathEffect","SumPathEffectNode","Line2DPathEffect","Line2DPathEffectNode","Blend","BlendNode","BackdropFilter","BackdropFilterNode","Box","BoxNode","BoxShadow","BoxShadowNode"],"sources":["JsiSkDOM.ts"],"sourcesContent":["import type {\n PathProps,\n SkDOM,\n GroupProps,\n ImageProps,\n BlurImageFilterProps,\n MatrixColorFilterProps,\n CircleProps,\n BlurMaskFilterProps,\n LinearGradientProps,\n PaintProps,\n ShaderProps,\n ImageShaderProps,\n CustomDrawingNodeProps,\n LineProps,\n OvalProps,\n PatchProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n VerticesProps,\n TextProps,\n DiffRectProps,\n OffsetImageFilterProps,\n BlendColorFilterProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n FractalNoiseProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n DrawingNodeProps,\n BoxProps,\n BoxShadowProps,\n ChildrenProps,\n} from \"../types\";\nimport type {\n BlendImageFilterProps,\n BlendProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../types/ImageFilters\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../types/PathEffects\";\n\nimport {\n FillNode,\n ImageNode,\n CircleNode,\n PathNode,\n LineNode,\n PatchNode,\n PointsNode,\n RectNode,\n RRectNode,\n VerticesNode,\n TextNode,\n OvalNode,\n CustomDrawingNode,\n TextPathNode,\n TextBlobNode,\n GlyphsNode,\n DiffRectNode,\n PictureNode,\n ImageSVGNode,\n BackdropFilterNode,\n BoxNode,\n BoxShadowNode,\n} from \"./drawings\";\nimport {\n BlendImageFilterNode,\n BlurImageFilterNode,\n BlurMaskFilterNode,\n DisplacementMapImageFilterNode,\n DropShadowImageFilterNode,\n OffsetImageFilterNode,\n RuntimeShaderImageFilterNode,\n CornerPathEffectNode,\n DiscretePathEffectNode,\n DashPathEffectNode,\n Path1DPathEffectNode,\n Path2DPathEffectNode,\n SumPathEffectNode,\n Line2DPathEffectNode,\n BlendNode,\n} from \"./paint\";\nimport {\n MatrixColorFilterNode,\n LumaColorFilterNode,\n LinearToSRGBGammaColorFilterNode,\n SRGBToLinearGammaColorFilterNode,\n BlendColorFilterNode,\n LerpColorFilterNode,\n} from \"./paint/ColorFilters\";\nimport {\n LinearGradientNode,\n ShaderNode,\n ImageShaderNode,\n TwoPointConicalGradientNode,\n TurbulenceNode,\n SweepGradientNode,\n RadialGradientNode,\n FractalNoiseNode,\n ColorNode,\n} from \"./paint/Shaders\";\nimport { MorphologyImageFilterNode } from \"./paint/ImageFilters\";\nimport { GroupNode } from \"./GroupNode\";\nimport { PaintNode } from \"./PaintNode\";\nimport type { NodeContext } from \"./Node\";\nimport { LayerNode } from \"./LayerNode\";\n\nexport class JsiSkDOM implements SkDOM {\n constructor(private ctx: NodeContext) {}\n\n Layer(props?: ChildrenProps) {\n return new LayerNode(this.ctx, props ?? {});\n }\n\n Group(props?: GroupProps) {\n return new GroupNode(this.ctx, props ?? {});\n }\n\n Paint(props: PaintProps) {\n return new PaintNode(this.ctx, props);\n }\n\n // Drawings\n Fill(props?: DrawingNodeProps) {\n return new FillNode(this.ctx, props);\n }\n\n Image(props: ImageProps) {\n return new ImageNode(this.ctx, props);\n }\n\n Circle(props: CircleProps) {\n return new CircleNode(this.ctx, props);\n }\n\n Path(props: PathProps) {\n return new PathNode(this.ctx, props);\n }\n\n CustomDrawing(props: CustomDrawingNodeProps) {\n return new CustomDrawingNode(this.ctx, props);\n }\n\n Line(props: LineProps) {\n return new LineNode(this.ctx, props);\n }\n\n Oval(props: OvalProps) {\n return new OvalNode(this.ctx, props);\n }\n\n Patch(props: PatchProps) {\n return new PatchNode(this.ctx, props);\n }\n\n Points(props: PointsProps) {\n return new PointsNode(this.ctx, props);\n }\n\n Rect(props: RectProps) {\n return new RectNode(this.ctx, props);\n }\n\n RRect(props: RoundedRectProps) {\n return new RRectNode(this.ctx, props);\n }\n\n Vertices(props: VerticesProps) {\n return new VerticesNode(this.ctx, props);\n }\n\n Text(props: TextProps) {\n return new TextNode(this.ctx, props);\n }\n\n TextPath(props: TextPathProps) {\n return new TextPathNode(this.ctx, props);\n }\n\n TextBlob(props: TextBlobProps) {\n return new TextBlobNode(this.ctx, props);\n }\n\n Glyphs(props: GlyphsProps) {\n return new GlyphsNode(this.ctx, props);\n }\n\n DiffRect(props: DiffRectProps) {\n return new DiffRectNode(this.ctx, props);\n }\n\n Picture(props: PictureProps) {\n return new PictureNode(this.ctx, props);\n }\n\n ImageSVG(props: ImageSVGProps) {\n return new ImageSVGNode(this.ctx, props);\n }\n\n // BlurMaskFilters\n BlurMaskFilter(props: BlurMaskFilterProps) {\n return new BlurMaskFilterNode(this.ctx, props);\n }\n\n // ImageFilters\n BlendImageFilter(props: BlendImageFilterProps) {\n return new BlendImageFilterNode(this.ctx, props);\n }\n\n DropShadowImageFilter(props: DropShadowImageFilterProps) {\n return new DropShadowImageFilterNode(this.ctx, props);\n }\n\n DisplacementMapImageFilter(props: DisplacementMapImageFilterProps) {\n return new DisplacementMapImageFilterNode(this.ctx, props);\n }\n\n BlurImageFilter(props: BlurImageFilterProps) {\n return new BlurImageFilterNode(this.ctx, props);\n }\n\n OffsetImageFilter(props: OffsetImageFilterProps) {\n return new OffsetImageFilterNode(this.ctx, props);\n }\n\n MorphologyImageFilter(props: MorphologyImageFilterProps) {\n return new MorphologyImageFilterNode(this.ctx, props);\n }\n\n RuntimeShaderImageFilter(props: RuntimeShaderImageFilterProps) {\n return new RuntimeShaderImageFilterNode(this.ctx, props);\n }\n\n // Color Filters\n MatrixColorFilter(props: MatrixColorFilterProps) {\n return new MatrixColorFilterNode(this.ctx, props);\n }\n\n BlendColorFilter(props: BlendColorFilterProps) {\n return new BlendColorFilterNode(this.ctx, props);\n }\n\n LumaColorFilter() {\n return new LumaColorFilterNode(this.ctx);\n }\n\n LinearToSRGBGammaColorFilter() {\n return new LinearToSRGBGammaColorFilterNode(this.ctx);\n }\n\n SRGBToLinearGammaColorFilter() {\n return new SRGBToLinearGammaColorFilterNode(this.ctx);\n }\n\n LerpColorFilter(props: LerpColorFilterProps) {\n return new LerpColorFilterNode(this.ctx, props);\n }\n\n // Shaders\n Shader(props: ShaderProps) {\n return new ShaderNode(this.ctx, props);\n }\n\n ImageShader(props: ImageShaderProps) {\n return new ImageShaderNode(this.ctx, props);\n }\n\n ColorShader(props: ColorProps) {\n return new ColorNode(this.ctx, props);\n }\n\n SweepGradient(props: SweepGradientProps) {\n return new SweepGradientNode(this.ctx, props);\n }\n\n Turbulence(props: TurbulenceProps) {\n return new TurbulenceNode(this.ctx, props);\n }\n\n FractalNoise(props: FractalNoiseProps) {\n return new FractalNoiseNode(this.ctx, props);\n }\n\n LinearGradient(props: LinearGradientProps) {\n return new LinearGradientNode(this.ctx, props);\n }\n\n RadialGradient(props: RadialGradientProps) {\n return new RadialGradientNode(this.ctx, props);\n }\n\n TwoPointConicalGradient(props: TwoPointConicalGradientProps) {\n return new TwoPointConicalGradientNode(this.ctx, props);\n }\n\n // Path Effects\n CornerPathEffect(props: CornerPathEffectProps) {\n return new CornerPathEffectNode(this.ctx, props);\n }\n\n DiscretePathEffect(props: DiscretePathEffectProps) {\n return new DiscretePathEffectNode(this.ctx, props);\n }\n\n DashPathEffect(props: DashPathEffectProps) {\n return new DashPathEffectNode(this.ctx, props);\n }\n\n Path1DPathEffect(props: Path1DPathEffectProps) {\n return new Path1DPathEffectNode(this.ctx, props);\n }\n\n Path2DPathEffect(props: Path2DPathEffectProps) {\n return new Path2DPathEffectNode(this.ctx, props);\n }\n\n SumPathEffect() {\n return new SumPathEffectNode(this.ctx);\n }\n\n Line2DPathEffect(props: Line2DPathEffectProps) {\n return new Line2DPathEffectNode(this.ctx, props);\n }\n\n Blend(props: BlendProps) {\n return new BlendNode(this.ctx, props);\n }\n\n BackdropFilter(props: ChildrenProps) {\n return new BackdropFilterNode(this.ctx, props);\n }\n\n Box(props: BoxProps) {\n return new BoxNode(this.ctx, props);\n }\n\n BoxShadow(props: BoxShadowProps) {\n return new BoxShadowNode(this.ctx, props);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["JsiSkDOM","constructor","ctx","Layer","props","global","SkiaDomApi","LayerNode","Group","GroupNode","Paint","PaintNode","Fill","FillNode","Image","ImageNode","Circle","CircleNode","Path","PathNode","CustomDrawing","CustomDrawingNode","Line","LineNode","Oval","OvalNode","Patch","PatchNode","Points","PointsNode","Rect","RectNode","RRect","RRectNode","Vertices","VerticesNode","Text","TextNode","TextPath","TextPathNode","TextBlob","TextBlobNode","Glyphs","GlyphsNode","DiffRect","DiffRectNode","Picture","PictureNode","ImageSVG","ImageSVGNode","BlurMaskFilter","BlurMaskFilterNode","BlendImageFilter","BlendImageFilterNode","DropShadowImageFilter","DropShadowImageFilterNode","DisplacementMapImageFilter","DisplacementMapImageFilterNode","BlurImageFilter","BlurImageFilterNode","OffsetImageFilter","OffsetImageFilterNode","MorphologyImageFilter","MorphologyImageFilterNode","RuntimeShaderImageFilter","RuntimeShaderImageFilterNode","MatrixColorFilter","MatrixColorFilterNode","BlendColorFilter","BlendColorFilterNode","LumaColorFilter","LumaColorFilterNode","LinearToSRGBGammaColorFilter","LinearToSRGBGammaColorFilterNode","SRGBToLinearGammaColorFilter","SRGBToLinearGammaColorFilterNode","LerpColorFilter","LerpColorFilterNode","Shader","ShaderNode","ImageShader","ImageShaderNode","ColorShader","ColorShaderNode","ColorNode","SweepGradient","SweepGradientNode","Turbulence","TurbulenceNode","FractalNoise","FractalNoiseNode","LinearGradient","LinearGradientNode","RadialGradient","RadialGradientNode","TwoPointConicalGradient","TwoPointConicalGradientNode","CornerPathEffect","CornerPathEffectNode","DiscretePathEffect","DiscretePathEffectNode","DashPathEffect","DashPathEffectNode","Path1DPathEffect","Path1DPathEffectNode","Path2DPathEffect","Path2DPathEffectNode","SumPathEffect","SumPathEffectNode","Line2DPathEffect","Line2DPathEffectNode","Blend","BlendNode","BackdropFilter","BackdropFilterNode","Box","BoxNode","BoxShadow","BoxShadowNode"],"sources":["JsiSkDOM.ts"],"sourcesContent":["import type {\n PathProps,\n SkDOM,\n GroupProps,\n ImageProps,\n BlurImageFilterProps,\n MatrixColorFilterProps,\n CircleProps,\n BlurMaskFilterProps,\n LinearGradientProps,\n PaintProps,\n ShaderProps,\n ImageShaderProps,\n CustomDrawingNodeProps,\n LineProps,\n OvalProps,\n PatchProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n VerticesProps,\n TextProps,\n DiffRectProps,\n OffsetImageFilterProps,\n BlendColorFilterProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n FractalNoiseProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n DrawingNodeProps,\n BoxProps,\n BoxShadowProps,\n ChildrenProps,\n} from \"../types\";\nimport type {\n BlendImageFilterProps,\n BlendProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../types/ImageFilters\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../types/PathEffects\";\n\nimport {\n FillNode,\n ImageNode,\n CircleNode,\n PathNode,\n LineNode,\n PatchNode,\n PointsNode,\n RectNode,\n RRectNode,\n VerticesNode,\n TextNode,\n OvalNode,\n CustomDrawingNode,\n TextPathNode,\n TextBlobNode,\n GlyphsNode,\n DiffRectNode,\n PictureNode,\n ImageSVGNode,\n BackdropFilterNode,\n BoxNode,\n BoxShadowNode,\n} from \"./drawings\";\nimport {\n BlendImageFilterNode,\n BlurImageFilterNode,\n BlurMaskFilterNode,\n DisplacementMapImageFilterNode,\n DropShadowImageFilterNode,\n OffsetImageFilterNode,\n RuntimeShaderImageFilterNode,\n CornerPathEffectNode,\n DiscretePathEffectNode,\n DashPathEffectNode,\n Path1DPathEffectNode,\n Path2DPathEffectNode,\n SumPathEffectNode,\n Line2DPathEffectNode,\n BlendNode,\n} from \"./paint\";\nimport {\n MatrixColorFilterNode,\n LumaColorFilterNode,\n LinearToSRGBGammaColorFilterNode,\n SRGBToLinearGammaColorFilterNode,\n BlendColorFilterNode,\n LerpColorFilterNode,\n} from \"./paint/ColorFilters\";\nimport {\n LinearGradientNode,\n ShaderNode,\n ImageShaderNode,\n TwoPointConicalGradientNode,\n TurbulenceNode,\n SweepGradientNode,\n RadialGradientNode,\n FractalNoiseNode,\n ColorNode,\n} from \"./paint/Shaders\";\nimport { MorphologyImageFilterNode } from \"./paint/ImageFilters\";\nimport { GroupNode } from \"./GroupNode\";\nimport { PaintNode } from \"./PaintNode\";\nimport type { NodeContext } from \"./Node\";\nimport { LayerNode } from \"./LayerNode\";\n\nexport class JsiSkDOM implements SkDOM {\n constructor(private ctx: NodeContext) {}\n\n Layer(props?: ChildrenProps) {\n return global.SkiaDomApi && global.SkiaDomApi.LayerNode\n ? global.SkiaDomApi.LayerNode(props ?? {})\n : new LayerNode(this.ctx, props ?? {});\n }\n\n Group(props?: GroupProps) {\n return global.SkiaDomApi && global.SkiaDomApi.GroupNode\n ? global.SkiaDomApi.GroupNode(props ?? {})\n : new GroupNode(this.ctx, props ?? {});\n }\n\n Paint(props: PaintProps) {\n return global.SkiaDomApi && global.SkiaDomApi.PaintNode\n ? global.SkiaDomApi.PaintNode(props ?? {})\n : new PaintNode(this.ctx, props);\n }\n\n // Drawings\n Fill(props?: DrawingNodeProps) {\n return global.SkiaDomApi && global.SkiaDomApi.FillNode\n ? global.SkiaDomApi.FillNode(props ?? {})\n : new FillNode(this.ctx, props);\n }\n\n Image(props: ImageProps) {\n return global.SkiaDomApi && global.SkiaDomApi.ImageNode\n ? global.SkiaDomApi.ImageNode(props ?? {})\n : new ImageNode(this.ctx, props);\n }\n\n Circle(props: CircleProps) {\n return global.SkiaDomApi && global.SkiaDomApi.CircleNode\n ? global.SkiaDomApi.CircleNode(props ?? {})\n : new CircleNode(this.ctx, props);\n }\n\n Path(props: PathProps) {\n return global.SkiaDomApi && global.SkiaDomApi.PathNode\n ? global.SkiaDomApi.PathNode(props ?? {})\n : new PathNode(this.ctx, props);\n }\n\n CustomDrawing(props: CustomDrawingNodeProps) {\n return global.SkiaDomApi && global.SkiaDomApi.CustomDrawingNode\n ? global.SkiaDomApi.CustomDrawingNode(props ?? {})\n : new CustomDrawingNode(this.ctx, props);\n }\n\n Line(props: LineProps) {\n return global.SkiaDomApi && global.SkiaDomApi.LineNode\n ? global.SkiaDomApi.LineNode(props ?? {})\n : new LineNode(this.ctx, props);\n }\n\n Oval(props: OvalProps) {\n return global.SkiaDomApi && global.SkiaDomApi.OvalNode\n ? global.SkiaDomApi.OvalNode(props ?? {})\n : new OvalNode(this.ctx, props);\n }\n\n Patch(props: PatchProps) {\n return global.SkiaDomApi && global.SkiaDomApi.PatchNode\n ? global.SkiaDomApi.PatchNode(props ?? {})\n : new PatchNode(this.ctx, props);\n }\n\n Points(props: PointsProps) {\n return global.SkiaDomApi && global.SkiaDomApi.PointsNode\n ? global.SkiaDomApi.PointsNode(props ?? {})\n : new PointsNode(this.ctx, props);\n }\n\n Rect(props: RectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.RectNode\n ? global.SkiaDomApi.RectNode(props)\n : new RectNode(this.ctx, props);\n }\n\n RRect(props: RoundedRectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.RRectNode\n ? global.SkiaDomApi.RRectNode(props)\n : new RRectNode(this.ctx, props);\n }\n\n Vertices(props: VerticesProps) {\n return global.SkiaDomApi && global.SkiaDomApi.VerticesNode\n ? global.SkiaDomApi.VerticesNode(props)\n : new VerticesNode(this.ctx, props);\n }\n\n Text(props: TextProps) {\n return global.SkiaDomApi && global.SkiaDomApi.TextNode\n ? global.SkiaDomApi.TextNode(props)\n : new TextNode(this.ctx, props);\n }\n\n TextPath(props: TextPathProps) {\n return global.SkiaDomApi && global.SkiaDomApi.TextPathNode\n ? global.SkiaDomApi.TextPathNode(props)\n : new TextPathNode(this.ctx, props);\n }\n\n TextBlob(props: TextBlobProps) {\n return global.SkiaDomApi && global.SkiaDomApi.TextBlobNode\n ? global.SkiaDomApi.TextBlobNode(props)\n : new TextBlobNode(this.ctx, props);\n }\n\n Glyphs(props: GlyphsProps) {\n return global.SkiaDomApi && global.SkiaDomApi.GlyphsNode\n ? global.SkiaDomApi.GlyphsNode(props)\n : new GlyphsNode(this.ctx, props);\n }\n\n DiffRect(props: DiffRectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.DiffRectNode\n ? global.SkiaDomApi.DiffRectNode(props)\n : new DiffRectNode(this.ctx, props);\n }\n\n Picture(props: PictureProps) {\n return global.SkiaDomApi && global.SkiaDomApi.PictureNode\n ? global.SkiaDomApi.PictureNode(props)\n : new PictureNode(this.ctx, props);\n }\n\n ImageSVG(props: ImageSVGProps) {\n return global.SkiaDomApi && global.SkiaDomApi.ImageSVGNode\n ? global.SkiaDomApi.ImageSVGNode(props)\n : new ImageSVGNode(this.ctx, props);\n }\n\n // BlurMaskFilters\n BlurMaskFilter(props: BlurMaskFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BlurMaskFilterNode\n ? global.SkiaDomApi.BlurMaskFilterNode(props)\n : new BlurMaskFilterNode(this.ctx, props);\n }\n\n // ImageFilters\n BlendImageFilter(props: BlendImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BlendImageFilterNode\n ? global.SkiaDomApi.BlendImageFilterNode(props)\n : new BlendImageFilterNode(this.ctx, props);\n }\n\n DropShadowImageFilter(props: DropShadowImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.DropShadowImageFilterNode\n ? global.SkiaDomApi.DropShadowImageFilterNode(props)\n : new DropShadowImageFilterNode(this.ctx, props);\n }\n\n DisplacementMapImageFilter(props: DisplacementMapImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.DisplacementMapImageFilterNode\n ? global.SkiaDomApi.DisplacementMapImageFilterNode(props)\n : new DisplacementMapImageFilterNode(this.ctx, props);\n }\n\n BlurImageFilter(props: BlurImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BlurImageFilterNode\n ? global.SkiaDomApi.BlurImageFilterNode(props)\n : new BlurImageFilterNode(this.ctx, props);\n }\n\n OffsetImageFilter(props: OffsetImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.OffsetImageFilterNode\n ? global.SkiaDomApi.OffsetImageFilterNode(props)\n : new OffsetImageFilterNode(this.ctx, props);\n }\n\n MorphologyImageFilter(props: MorphologyImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.MorphologyImageFilterNode\n ? global.SkiaDomApi.MorphologyImageFilterNode(props)\n : new MorphologyImageFilterNode(this.ctx, props);\n }\n\n RuntimeShaderImageFilter(props: RuntimeShaderImageFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.RuntimeShaderImageFilterNode\n ? global.SkiaDomApi.RuntimeShaderImageFilterNode(props)\n : new RuntimeShaderImageFilterNode(this.ctx, props);\n }\n\n // Color Filters\n MatrixColorFilter(props: MatrixColorFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.MatrixColorFilterNode\n ? global.SkiaDomApi.MatrixColorFilterNode(props)\n : new MatrixColorFilterNode(this.ctx, props);\n }\n\n BlendColorFilter(props: BlendColorFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BlendColorFilterNode\n ? global.SkiaDomApi.BlendColorFilterNode(props)\n : new BlendColorFilterNode(this.ctx, props);\n }\n\n LumaColorFilter() {\n return global.SkiaDomApi && global.SkiaDomApi.LumaColorFilterNode\n ? global.SkiaDomApi.LumaColorFilterNode()\n : new LumaColorFilterNode(this.ctx);\n }\n\n LinearToSRGBGammaColorFilter() {\n return global.SkiaDomApi &&\n global.SkiaDomApi.LinearToSRGBGammaColorFilterNode\n ? global.SkiaDomApi.LinearToSRGBGammaColorFilterNode()\n : new LinearToSRGBGammaColorFilterNode(this.ctx);\n }\n\n SRGBToLinearGammaColorFilter() {\n return global.SkiaDomApi &&\n global.SkiaDomApi.SRGBToLinearGammaColorFilterNode\n ? global.SkiaDomApi.SRGBToLinearGammaColorFilterNode()\n : new SRGBToLinearGammaColorFilterNode(this.ctx);\n }\n\n LerpColorFilter(props: LerpColorFilterProps) {\n return global.SkiaDomApi && global.SkiaDomApi.LerpColorFilterNode\n ? global.SkiaDomApi.LerpColorFilterNode(props)\n : new LerpColorFilterNode(this.ctx, props);\n }\n\n // Shaders\n Shader(props: ShaderProps) {\n return global.SkiaDomApi && global.SkiaDomApi.ShaderNode\n ? global.SkiaDomApi.ShaderNode(props)\n : new ShaderNode(this.ctx, props);\n }\n\n ImageShader(props: ImageShaderProps) {\n return global.SkiaDomApi && global.SkiaDomApi.ImageShaderNode\n ? global.SkiaDomApi.ImageShaderNode(props)\n : new ImageShaderNode(this.ctx, props);\n }\n\n ColorShader(props: ColorProps) {\n return global.SkiaDomApi && global.SkiaDomApi.ColorShaderNode\n ? global.SkiaDomApi.ColorShaderNode(props)\n : new ColorNode(this.ctx, props);\n }\n\n SweepGradient(props: SweepGradientProps) {\n return global.SkiaDomApi && global.SkiaDomApi.SweepGradientNode\n ? global.SkiaDomApi.SweepGradientNode(props)\n : new SweepGradientNode(this.ctx, props);\n }\n\n Turbulence(props: TurbulenceProps) {\n return global.SkiaDomApi && global.SkiaDomApi.TurbulenceNode\n ? global.SkiaDomApi.TurbulenceNode(props)\n : new TurbulenceNode(this.ctx, props);\n }\n\n FractalNoise(props: FractalNoiseProps) {\n return global.SkiaDomApi && global.SkiaDomApi.FractalNoiseNode\n ? global.SkiaDomApi.FractalNoiseNode(props)\n : new FractalNoiseNode(this.ctx, props);\n }\n\n LinearGradient(props: LinearGradientProps) {\n return global.SkiaDomApi && global.SkiaDomApi.LinearGradientNode\n ? global.SkiaDomApi.LinearGradientNode(props)\n : new LinearGradientNode(this.ctx, props);\n }\n\n RadialGradient(props: RadialGradientProps) {\n return global.SkiaDomApi && global.SkiaDomApi.RadialGradientNode\n ? global.SkiaDomApi.RadialGradientNode(props)\n : new RadialGradientNode(this.ctx, props);\n }\n\n TwoPointConicalGradient(props: TwoPointConicalGradientProps) {\n return global.SkiaDomApi && global.SkiaDomApi.TwoPointConicalGradientNode\n ? global.SkiaDomApi.TwoPointConicalGradientNode(props)\n : new TwoPointConicalGradientNode(this.ctx, props);\n }\n\n // Path Effects\n CornerPathEffect(props: CornerPathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.CornerPathEffectNode\n ? global.SkiaDomApi.CornerPathEffectNode(props)\n : new CornerPathEffectNode(this.ctx, props);\n }\n\n DiscretePathEffect(props: DiscretePathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.DiscretePathEffectNode\n ? global.SkiaDomApi.DiscretePathEffectNode(props)\n : new DiscretePathEffectNode(this.ctx, props);\n }\n\n DashPathEffect(props: DashPathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.DashPathEffectNode\n ? global.SkiaDomApi.DashPathEffectNode(props)\n : new DashPathEffectNode(this.ctx, props);\n }\n\n Path1DPathEffect(props: Path1DPathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.Path1DPathEffectNode\n ? global.SkiaDomApi.Path1DPathEffectNode(props)\n : new Path1DPathEffectNode(this.ctx, props);\n }\n\n Path2DPathEffect(props: Path2DPathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.Path2DPathEffectNode\n ? global.SkiaDomApi.Path2DPathEffectNode(props)\n : new Path2DPathEffectNode(this.ctx, props);\n }\n\n SumPathEffect() {\n return global.SkiaDomApi && global.SkiaDomApi.SumPathEffectNode\n ? global.SkiaDomApi.SumPathEffectNode()\n : new SumPathEffectNode(this.ctx);\n }\n\n Line2DPathEffect(props: Line2DPathEffectProps) {\n return global.SkiaDomApi && global.SkiaDomApi.Line2DPathEffectNode\n ? global.SkiaDomApi.Line2DPathEffectNode(props)\n : new Line2DPathEffectNode(this.ctx, props);\n }\n\n Blend(props: BlendProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BlendNode\n ? global.SkiaDomApi.BlendNode(props)\n : new BlendNode(this.ctx, props);\n }\n\n BackdropFilter(props: ChildrenProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BackdropFilterNode\n ? global.SkiaDomApi.BackdropFilterNode(props)\n : new BackdropFilterNode(this.ctx, props);\n }\n\n Box(props: BoxProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BoxNode\n ? global.SkiaDomApi.BoxNode(props)\n : new BoxNode(this.ctx, props);\n }\n\n BoxShadow(props: BoxShadowProps) {\n return global.SkiaDomApi && global.SkiaDomApi.BoxShadowNode\n ? global.SkiaDomApi.BoxShadowNode(props)\n : new BoxShadowNode(this.ctx, props);\n }\n}\n"],"mappings":"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"}
@@ -275,7 +275,7 @@ const concatPaint = (parent, _ref, opacity) => {
275
275
  paint.setColor(color);
276
276
  } else {
277
277
  const cl = paint.getColor();
278
- cl[3] *= opacity;
278
+ cl[3] = opacity;
279
279
  paint.setColor(cl);
280
280
  }
281
281
 
@@ -1 +1 @@
1
- {"version":3,"names":["paintProps","JsiRenderNode","JsiNode","constructor","ctx","type","props","matrix","Skia","Matrix","onPropChange","setProps","paintCache","setProp","key","value","hasChanged","includes","identity","clipPath","undefined","clipRect","clipRRect","computeMatrix","computeClip","addChild","child","JsiDeclarationNode","setInvalidate","insertChildBefore","before","clip","isPathDef","processPath","isRRect","processTransformProps","getPaintCtx","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","opacity","antiAlias","Color","BlendMode","enumKey","PaintStyle","StrokeJoin","StrokeCap","_children","forEach","isColorFilter","cf","materialize","colorFilter","ColorFilter","MakeCompose","isShader","shader","isPathEffect","pe","pathEffect","PathEffect","isImageFilter","filter","imageFilter","ImageFilter","isMaskFilter","maskFilter","render","parentCtx","invertClip","layer","transform","canvas","parent","paint","paintCtx","concatPaint","hasTransform","hasClip","shouldSave","op","ClipOp","Difference","Intersect","saveLayer","save","concat","renderNode","restore","alpha","copy","setShader","setColor","cl","getColor","setStrokeWidth","setAntiAlias","setBlendMode","setColorFilter","setImageFilter","setMaskFilter","setPathEffect","setAlphaf","setStrokeCap","setStrokeJoin","setStrokeMiter","setStyle"],"sources":["RenderNode.ts"],"sourcesContent":["import type {\n SkMatrix,\n SkRect,\n SkRRect,\n SkPath,\n SkPaint,\n} from \"../../skia/types\";\nimport {\n StrokeCap,\n StrokeJoin,\n PaintStyle,\n BlendMode,\n ClipOp,\n isRRect,\n} from \"../../skia/types\";\nimport type {\n RenderNode,\n GroupProps,\n DrawingContext,\n NodeType,\n Node,\n} from \"../types\";\n\nimport { isPathDef, processPath, processTransformProps } from \"./datatypes\";\nimport type { NodeContext } from \"./Node\";\nimport { JsiNode, JsiDeclarationNode } from \"./Node\";\nimport type { PaintContext } from \"./PaintContext\";\nimport { enumKey } from \"./datatypes/Enum\";\n\nconst paintProps = [\n \"color\",\n \"strokeWidth\",\n \"blendMode\",\n \"strokeCap\",\n \"strokeJoin\",\n \"strokeMiter\",\n \"style\",\n \"antiAlias\",\n \"opacity\",\n];\n\ninterface PaintCache {\n parent: SkPaint;\n child: SkPaint;\n}\n\nexport abstract class JsiRenderNode<P extends GroupProps>\n extends JsiNode<P>\n implements RenderNode<P>\n{\n paintCache: PaintCache | null = null;\n matrix: SkMatrix;\n clipRect?: SkRect;\n clipRRect?: SkRRect;\n clipPath?: SkPath;\n\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n this.matrix = this.Skia.Matrix();\n this.onPropChange();\n }\n\n setProps(props: P) {\n super.setProps(props);\n this.onPropChange();\n this.paintCache = null;\n }\n\n setProp<K extends keyof P>(key: K, value: P[K]) {\n const hasChanged = super.setProp(key, value);\n if (hasChanged) {\n this.onPropChange();\n if (paintProps.includes(key as string)) {\n this.paintCache = null;\n }\n }\n return hasChanged;\n }\n\n protected onPropChange() {\n this.matrix.identity();\n this.clipPath = undefined;\n this.clipRect = undefined;\n this.clipRRect = undefined;\n this.computeMatrix();\n this.computeClip();\n }\n\n addChild(child: Node<unknown>) {\n if (child instanceof JsiDeclarationNode) {\n child.setInvalidate(() => (this.paintCache = null));\n }\n super.addChild(child);\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>) {\n if (child instanceof JsiDeclarationNode) {\n child.setInvalidate(() => (this.paintCache = null));\n }\n super.insertChildBefore(child, before);\n }\n\n private computeClip() {\n const { clip } = this.props;\n if (clip) {\n if (isPathDef(clip)) {\n this.clipPath = processPath(this.Skia, clip);\n } else if (isRRect(clip)) {\n this.clipRRect = clip;\n } else {\n this.clipRect = clip;\n }\n }\n }\n\n private computeMatrix() {\n processTransformProps(this.matrix, this.props);\n }\n\n private getPaintCtx() {\n let ctx: PaintContext | undefined;\n const {\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n opacity,\n antiAlias,\n } = this.props;\n if (\n color !== undefined ||\n strokeWidth !== undefined ||\n blendMode !== undefined ||\n style !== undefined ||\n strokeJoin !== undefined ||\n strokeCap !== undefined ||\n strokeMiter !== undefined ||\n opacity !== undefined ||\n antiAlias !== undefined\n ) {\n ctx = {};\n if (color !== undefined) {\n ctx.color = this.Skia.Color(color);\n }\n if (strokeWidth !== undefined) {\n ctx.strokeWidth = strokeWidth;\n }\n if (blendMode !== undefined) {\n ctx.blendMode = BlendMode[enumKey(blendMode)];\n }\n if (style !== undefined) {\n ctx.style = PaintStyle[enumKey(style)];\n }\n if (strokeJoin !== undefined) {\n ctx.strokeJoin = StrokeJoin[enumKey(strokeJoin)];\n }\n if (strokeCap !== undefined) {\n ctx.strokeCap = StrokeCap[enumKey(strokeCap)];\n }\n if (strokeMiter !== undefined) {\n ctx.strokeMiter = strokeMiter;\n }\n if (opacity !== undefined) {\n ctx.opacity = opacity;\n }\n if (antiAlias !== undefined) {\n ctx.antiAlias = antiAlias;\n }\n }\n this._children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n if (child.isColorFilter()) {\n ctx = ctx || {};\n const cf = child.materialize();\n ctx.colorFilter = ctx.colorFilter\n ? this.Skia.ColorFilter.MakeCompose(cf, ctx.colorFilter)\n : cf;\n } else if (child.isShader()) {\n ctx = ctx || {};\n const shader = child.materialize();\n ctx.shader = shader;\n } else if (child.isPathEffect()) {\n ctx = ctx || {};\n const pe = child.materialize();\n ctx.pathEffect = ctx.pathEffect\n ? this.Skia.PathEffect.MakeCompose(pe, ctx.pathEffect)\n : pe;\n } else if (child.isImageFilter()) {\n ctx = ctx || {};\n const filter = child.materialize();\n ctx.imageFilter = ctx.imageFilter\n ? this.Skia.ImageFilter.MakeCompose(filter, ctx.imageFilter)\n : filter;\n } else if (child.isMaskFilter()) {\n ctx = ctx || {};\n const filter = child.materialize();\n ctx.maskFilter = filter;\n }\n }\n });\n return ctx;\n }\n\n render(parentCtx: DrawingContext) {\n const { invertClip, layer, matrix, transform } = this.props;\n const { canvas } = parentCtx;\n\n const opacity =\n this.props.opacity !== undefined\n ? parentCtx.opacity * this.props.opacity\n : parentCtx.opacity;\n\n if (\n this.paintCache === null ||\n this.paintCache.parent !== parentCtx.paint\n ) {\n const paintCtx = this.getPaintCtx();\n const child = paintCtx\n ? concatPaint(parentCtx.paint, paintCtx, parentCtx.opacity)\n : parentCtx.paint;\n this.paintCache = { parent: parentCtx.paint, child };\n }\n const paint = this.paintCache.child;\n // TODO: can we only recreate a new context here if needed?\n const ctx = { ...parentCtx, opacity, paint };\n const hasTransform = matrix !== undefined || transform !== undefined;\n const hasClip =\n this.clipRect !== undefined ||\n this.clipPath !== undefined ||\n this.clipRRect !== undefined;\n const shouldSave = hasTransform || hasClip || !!layer;\n const op = invertClip ? ClipOp.Difference : ClipOp.Intersect;\n if (shouldSave) {\n if (layer) {\n if (typeof layer === \"boolean\") {\n canvas.saveLayer();\n } else {\n canvas.saveLayer(layer);\n }\n } else {\n canvas.save();\n }\n }\n\n if (this.matrix) {\n canvas.concat(this.matrix);\n }\n if (this.clipRect) {\n canvas.clipRect(this.clipRect, op, true);\n } else if (this.clipRRect) {\n canvas.clipRRect(this.clipRRect, op, true);\n } else if (this.clipPath) {\n canvas.clipPath(this.clipPath, op, true);\n }\n\n this.renderNode(ctx);\n\n if (shouldSave) {\n canvas.restore();\n }\n }\n\n abstract renderNode(ctx: DrawingContext): void;\n}\n\nconst concatPaint = (\n parent: SkPaint,\n {\n color,\n strokeWidth,\n shader,\n antiAlias,\n blendMode,\n colorFilter,\n imageFilter,\n maskFilter,\n pathEffect,\n opacity: alpha,\n strokeCap,\n strokeJoin,\n strokeMiter,\n style,\n }: PaintContext,\n opacity: number\n) => {\n const paint = parent.copy();\n if (color !== undefined) {\n paint.setShader(null);\n color[3] *= opacity;\n paint.setColor(color);\n } else {\n const cl = paint.getColor();\n cl[3] *= opacity;\n paint.setColor(cl);\n }\n if (strokeWidth !== undefined) {\n paint.setStrokeWidth(strokeWidth);\n }\n if (shader !== undefined) {\n paint.setShader(shader);\n }\n if (antiAlias !== undefined) {\n paint.setAntiAlias(antiAlias);\n }\n if (blendMode !== undefined) {\n paint.setBlendMode(blendMode);\n }\n if (colorFilter !== undefined) {\n paint.setColorFilter(colorFilter);\n }\n if (imageFilter !== undefined) {\n paint.setImageFilter(imageFilter);\n }\n if (maskFilter !== undefined) {\n paint.setMaskFilter(maskFilter);\n }\n if (pathEffect !== undefined) {\n paint.setPathEffect(pathEffect);\n }\n if (alpha !== undefined) {\n paint.setAlphaf(alpha * opacity);\n }\n if (strokeCap !== undefined) {\n paint.setStrokeCap(strokeCap);\n }\n if (strokeJoin !== undefined) {\n paint.setStrokeJoin(strokeJoin);\n }\n if (strokeMiter !== undefined) {\n paint.setStrokeMiter(strokeMiter);\n }\n if (style !== undefined) {\n paint.setStyle(style);\n }\n return paint;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["paintProps","JsiRenderNode","JsiNode","constructor","ctx","type","props","matrix","Skia","Matrix","onPropChange","setProps","paintCache","setProp","key","value","hasChanged","includes","identity","clipPath","undefined","clipRect","clipRRect","computeMatrix","computeClip","addChild","child","JsiDeclarationNode","setInvalidate","insertChildBefore","before","clip","isPathDef","processPath","isRRect","processTransformProps","getPaintCtx","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","opacity","antiAlias","Color","BlendMode","enumKey","PaintStyle","StrokeJoin","StrokeCap","_children","forEach","isColorFilter","cf","materialize","colorFilter","ColorFilter","MakeCompose","isShader","shader","isPathEffect","pe","pathEffect","PathEffect","isImageFilter","filter","imageFilter","ImageFilter","isMaskFilter","maskFilter","render","parentCtx","invertClip","layer","transform","canvas","parent","paint","paintCtx","concatPaint","hasTransform","hasClip","shouldSave","op","ClipOp","Difference","Intersect","saveLayer","save","concat","renderNode","restore","alpha","copy","setShader","setColor","cl","getColor","setStrokeWidth","setAntiAlias","setBlendMode","setColorFilter","setImageFilter","setMaskFilter","setPathEffect","setAlphaf","setStrokeCap","setStrokeJoin","setStrokeMiter","setStyle"],"sources":["RenderNode.ts"],"sourcesContent":["import type {\n SkMatrix,\n SkRect,\n SkRRect,\n SkPath,\n SkPaint,\n} from \"../../skia/types\";\nimport {\n StrokeCap,\n StrokeJoin,\n PaintStyle,\n BlendMode,\n ClipOp,\n isRRect,\n} from \"../../skia/types\";\nimport type {\n RenderNode,\n GroupProps,\n DrawingContext,\n NodeType,\n Node,\n} from \"../types\";\n\nimport { isPathDef, processPath, processTransformProps } from \"./datatypes\";\nimport type { NodeContext } from \"./Node\";\nimport { JsiNode, JsiDeclarationNode } from \"./Node\";\nimport type { PaintContext } from \"./PaintContext\";\nimport { enumKey } from \"./datatypes/Enum\";\n\nconst paintProps = [\n \"color\",\n \"strokeWidth\",\n \"blendMode\",\n \"strokeCap\",\n \"strokeJoin\",\n \"strokeMiter\",\n \"style\",\n \"antiAlias\",\n \"opacity\",\n];\n\ninterface PaintCache {\n parent: SkPaint;\n child: SkPaint;\n}\n\nexport abstract class JsiRenderNode<P extends GroupProps>\n extends JsiNode<P>\n implements RenderNode<P>\n{\n paintCache: PaintCache | null = null;\n matrix: SkMatrix;\n clipRect?: SkRect;\n clipRRect?: SkRRect;\n clipPath?: SkPath;\n\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, type, props);\n this.matrix = this.Skia.Matrix();\n this.onPropChange();\n }\n\n setProps(props: P) {\n super.setProps(props);\n this.onPropChange();\n this.paintCache = null;\n }\n\n setProp<K extends keyof P>(key: K, value: P[K]) {\n const hasChanged = super.setProp(key, value);\n if (hasChanged) {\n this.onPropChange();\n if (paintProps.includes(key as string)) {\n this.paintCache = null;\n }\n }\n return hasChanged;\n }\n\n protected onPropChange() {\n this.matrix.identity();\n this.clipPath = undefined;\n this.clipRect = undefined;\n this.clipRRect = undefined;\n this.computeMatrix();\n this.computeClip();\n }\n\n addChild(child: Node<unknown>) {\n if (child instanceof JsiDeclarationNode) {\n child.setInvalidate(() => (this.paintCache = null));\n }\n super.addChild(child);\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>) {\n if (child instanceof JsiDeclarationNode) {\n child.setInvalidate(() => (this.paintCache = null));\n }\n super.insertChildBefore(child, before);\n }\n\n private computeClip() {\n const { clip } = this.props;\n if (clip) {\n if (isPathDef(clip)) {\n this.clipPath = processPath(this.Skia, clip);\n } else if (isRRect(clip)) {\n this.clipRRect = clip;\n } else {\n this.clipRect = clip;\n }\n }\n }\n\n private computeMatrix() {\n processTransformProps(this.matrix, this.props);\n }\n\n private getPaintCtx() {\n let ctx: PaintContext | undefined;\n const {\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n opacity,\n antiAlias,\n } = this.props;\n if (\n color !== undefined ||\n strokeWidth !== undefined ||\n blendMode !== undefined ||\n style !== undefined ||\n strokeJoin !== undefined ||\n strokeCap !== undefined ||\n strokeMiter !== undefined ||\n opacity !== undefined ||\n antiAlias !== undefined\n ) {\n ctx = {};\n if (color !== undefined) {\n ctx.color = this.Skia.Color(color);\n }\n if (strokeWidth !== undefined) {\n ctx.strokeWidth = strokeWidth;\n }\n if (blendMode !== undefined) {\n ctx.blendMode = BlendMode[enumKey(blendMode)];\n }\n if (style !== undefined) {\n ctx.style = PaintStyle[enumKey(style)];\n }\n if (strokeJoin !== undefined) {\n ctx.strokeJoin = StrokeJoin[enumKey(strokeJoin)];\n }\n if (strokeCap !== undefined) {\n ctx.strokeCap = StrokeCap[enumKey(strokeCap)];\n }\n if (strokeMiter !== undefined) {\n ctx.strokeMiter = strokeMiter;\n }\n if (opacity !== undefined) {\n ctx.opacity = opacity;\n }\n if (antiAlias !== undefined) {\n ctx.antiAlias = antiAlias;\n }\n }\n this._children.forEach((child) => {\n if (child instanceof JsiDeclarationNode) {\n if (child.isColorFilter()) {\n ctx = ctx || {};\n const cf = child.materialize();\n ctx.colorFilter = ctx.colorFilter\n ? this.Skia.ColorFilter.MakeCompose(cf, ctx.colorFilter)\n : cf;\n } else if (child.isShader()) {\n ctx = ctx || {};\n const shader = child.materialize();\n ctx.shader = shader;\n } else if (child.isPathEffect()) {\n ctx = ctx || {};\n const pe = child.materialize();\n ctx.pathEffect = ctx.pathEffect\n ? this.Skia.PathEffect.MakeCompose(pe, ctx.pathEffect)\n : pe;\n } else if (child.isImageFilter()) {\n ctx = ctx || {};\n const filter = child.materialize();\n ctx.imageFilter = ctx.imageFilter\n ? this.Skia.ImageFilter.MakeCompose(filter, ctx.imageFilter)\n : filter;\n } else if (child.isMaskFilter()) {\n ctx = ctx || {};\n const filter = child.materialize();\n ctx.maskFilter = filter;\n }\n }\n });\n return ctx;\n }\n\n render(parentCtx: DrawingContext) {\n const { invertClip, layer, matrix, transform } = this.props;\n const { canvas } = parentCtx;\n\n const opacity =\n this.props.opacity !== undefined\n ? parentCtx.opacity * this.props.opacity\n : parentCtx.opacity;\n\n if (\n this.paintCache === null ||\n this.paintCache.parent !== parentCtx.paint\n ) {\n const paintCtx = this.getPaintCtx();\n const child = paintCtx\n ? concatPaint(parentCtx.paint, paintCtx, parentCtx.opacity)\n : parentCtx.paint;\n this.paintCache = { parent: parentCtx.paint, child };\n }\n const paint = this.paintCache.child;\n // TODO: can we only recreate a new context here if needed?\n const ctx = { ...parentCtx, opacity, paint };\n const hasTransform = matrix !== undefined || transform !== undefined;\n const hasClip =\n this.clipRect !== undefined ||\n this.clipPath !== undefined ||\n this.clipRRect !== undefined;\n const shouldSave = hasTransform || hasClip || !!layer;\n const op = invertClip ? ClipOp.Difference : ClipOp.Intersect;\n if (shouldSave) {\n if (layer) {\n if (typeof layer === \"boolean\") {\n canvas.saveLayer();\n } else {\n canvas.saveLayer(layer);\n }\n } else {\n canvas.save();\n }\n }\n\n if (this.matrix) {\n canvas.concat(this.matrix);\n }\n if (this.clipRect) {\n canvas.clipRect(this.clipRect, op, true);\n } else if (this.clipRRect) {\n canvas.clipRRect(this.clipRRect, op, true);\n } else if (this.clipPath) {\n canvas.clipPath(this.clipPath, op, true);\n }\n\n this.renderNode(ctx);\n\n if (shouldSave) {\n canvas.restore();\n }\n }\n\n abstract renderNode(ctx: DrawingContext): void;\n}\n\nconst concatPaint = (\n parent: SkPaint,\n {\n color,\n strokeWidth,\n shader,\n antiAlias,\n blendMode,\n colorFilter,\n imageFilter,\n maskFilter,\n pathEffect,\n opacity: alpha,\n strokeCap,\n strokeJoin,\n strokeMiter,\n style,\n }: PaintContext,\n opacity: number\n) => {\n const paint = parent.copy();\n if (color !== undefined) {\n paint.setShader(null);\n color[3] *= opacity;\n paint.setColor(color);\n } else {\n const cl = paint.getColor();\n cl[3] = opacity;\n paint.setColor(cl);\n }\n if (strokeWidth !== undefined) {\n paint.setStrokeWidth(strokeWidth);\n }\n if (shader !== undefined) {\n paint.setShader(shader);\n }\n if (antiAlias !== undefined) {\n paint.setAntiAlias(antiAlias);\n }\n if (blendMode !== undefined) {\n paint.setBlendMode(blendMode);\n }\n if (colorFilter !== undefined) {\n paint.setColorFilter(colorFilter);\n }\n if (imageFilter !== undefined) {\n paint.setImageFilter(imageFilter);\n }\n if (maskFilter !== undefined) {\n paint.setMaskFilter(maskFilter);\n }\n if (pathEffect !== undefined) {\n paint.setPathEffect(pathEffect);\n }\n if (alpha !== undefined) {\n paint.setAlphaf(alpha * opacity);\n }\n if (strokeCap !== undefined) {\n paint.setStrokeCap(strokeCap);\n }\n if (strokeJoin !== undefined) {\n paint.setStrokeJoin(strokeJoin);\n }\n if (strokeMiter !== undefined) {\n paint.setStrokeMiter(strokeMiter);\n }\n if (style !== undefined) {\n paint.setStyle(style);\n }\n return paint;\n};\n"],"mappings":"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"}