@shopify/react-native-skia 0.1.172 → 0.1.174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +1 -0
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +5 -0
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +106 -5
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +3 -1
- package/cpp/api/JsiSkSurface.h +7 -1
- package/cpp/api/JsiSkSurfaceFactory.h +15 -2
- package/cpp/rnskia/RNSkDomView.cpp +2 -4
- package/cpp/rnskia/RNSkJsView.cpp +3 -0
- package/cpp/rnskia/RNSkPictureView.h +3 -0
- package/cpp/rnskia/RNSkPlatformContext.h +9 -0
- package/cpp/rnskia/dom/JsiDomApi.h +1 -0
- package/cpp/rnskia/dom/base/ConcatablePaint.cpp +117 -0
- package/cpp/rnskia/dom/base/ConcatablePaint.h +49 -0
- package/cpp/rnskia/dom/base/Declaration.h +88 -0
- package/cpp/rnskia/dom/base/DeclarationContext.h +79 -0
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +25 -9
- package/cpp/rnskia/dom/base/DrawingContext.cpp +32 -186
- package/cpp/rnskia/dom/base/DrawingContext.h +45 -64
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +35 -106
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +28 -9
- package/cpp/rnskia/dom/base/JsiDomNode.h +46 -17
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +81 -67
- package/cpp/rnskia/dom/base/NodeProp.h +12 -2
- package/cpp/rnskia/dom/base/NodePropsContainer.h +15 -16
- package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +22 -11
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +43 -59
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +16 -17
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +6 -5
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +45 -69
- package/cpp/rnskia/dom/nodes/JsiGroupNode.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +121 -161
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +1 -0
- package/cpp/rnskia/dom/nodes/JsiLayerNode.h +28 -18
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +82 -45
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +68 -101
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +3 -2
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +150 -207
- package/cpp/rnskia/dom/props/BezierProps.h +4 -2
- package/cpp/rnskia/dom/props/BlendModeProp.h +4 -2
- package/cpp/rnskia/dom/props/BoxShadowProps.h +8 -10
- package/cpp/rnskia/dom/props/CircleProp.h +6 -5
- package/cpp/rnskia/dom/props/ClipProp.h +6 -4
- package/cpp/rnskia/dom/props/ColorProp.h +8 -4
- package/cpp/rnskia/dom/props/DrawingProp.h +5 -3
- package/cpp/rnskia/dom/props/FontProp.h +4 -2
- package/cpp/rnskia/dom/props/GlyphsProp.h +4 -2
- package/cpp/rnskia/dom/props/ImageProps.h +9 -6
- package/cpp/rnskia/dom/props/LayerProp.h +6 -4
- package/cpp/rnskia/dom/props/MatrixProp.h +4 -2
- package/cpp/rnskia/dom/props/NumbersProp.h +8 -4
- package/cpp/rnskia/dom/props/PaintProps.h +55 -92
- package/cpp/rnskia/dom/props/PathProp.h +4 -2
- package/cpp/rnskia/dom/props/PictureProp.h +4 -2
- package/cpp/rnskia/dom/props/PointProp.h +4 -2
- package/cpp/rnskia/dom/props/PointsProp.h +8 -4
- package/cpp/rnskia/dom/props/RRectProp.h +23 -16
- package/cpp/rnskia/dom/props/RadiusProp.h +4 -2
- package/cpp/rnskia/dom/props/RectProp.h +18 -12
- package/cpp/rnskia/dom/props/StrokeProps.h +8 -4
- package/cpp/rnskia/dom/props/SvgProp.h +4 -2
- package/cpp/rnskia/dom/props/TextBlobProp.h +10 -8
- package/cpp/rnskia/dom/props/TileModeProp.h +4 -2
- package/cpp/rnskia/dom/props/TransformProp.h +4 -2
- package/cpp/rnskia/dom/props/TransformsProps.h +5 -7
- package/cpp/rnskia/dom/props/UniformsProp.h +4 -2
- package/cpp/rnskia/dom/props/VertexModeProp.h +4 -2
- package/cpp/rnskia/dom/props/VerticesProps.h +7 -11
- package/ios/RNSkia-iOS/DisplayLink.mm +22 -24
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +53 -50
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +2 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +56 -25
- package/ios/RNSkia-iOS/SkiaDomViewManager.mm +17 -17
- package/ios/RNSkia-iOS/SkiaDrawViewManager.mm +17 -17
- package/ios/RNSkia-iOS/SkiaManager.mm +12 -10
- package/ios/RNSkia-iOS/SkiaMetalRenderer.h +5 -0
- package/ios/RNSkia-iOS/SkiaMetalRenderer.mm +53 -0
- package/ios/RNSkia-iOS/SkiaPictureViewManager.mm +17 -17
- package/ios/RNSkia-iOS/SkiaUIView.mm +63 -53
- package/ios/RNSkiaModule.mm +5 -7
- package/lib/commonjs/dom/nodes/DrawingNode.js +5 -1
- package/lib/commonjs/dom/nodes/DrawingNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +33 -34
- package/lib/commonjs/dom/nodes/LayerNode.js +13 -6
- package/lib/commonjs/dom/nodes/LayerNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/Node.d.ts +6 -11
- package/lib/commonjs/dom/nodes/Node.js +8 -26
- package/lib/commonjs/dom/nodes/Node.js.map +1 -1
- package/lib/commonjs/dom/nodes/PaintContext.js.map +1 -1
- package/lib/commonjs/dom/nodes/PaintNode.d.ts +3 -3
- package/lib/commonjs/dom/nodes/PaintNode.js +32 -15
- package/lib/commonjs/dom/nodes/PaintNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.d.ts +2 -3
- package/lib/commonjs/dom/nodes/RenderNode.js +19 -187
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/BackdropFilterNode.d.ts +1 -1
- package/lib/commonjs/dom/nodes/drawings/BackdropFilterNode.js +25 -7
- package/lib/commonjs/dom/nodes/drawings/BackdropFilterNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Box.d.ts +3 -1
- package/lib/commonjs/dom/nodes/drawings/Box.js +3 -0
- package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/BlendNode.d.ts +3 -7
- package/lib/commonjs/dom/nodes/paint/BlendNode.js +16 -47
- package/lib/commonjs/dom/nodes/paint/BlendNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/ColorFilters.d.ts +10 -11
- package/lib/commonjs/dom/nodes/paint/ColorFilters.js +29 -43
- package/lib/commonjs/dom/nodes/paint/ColorFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/ImageFilters.d.ts +11 -11
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js +45 -42
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/MaskFilters.d.ts +3 -3
- package/lib/commonjs/dom/nodes/paint/MaskFilters.js +3 -2
- package/lib/commonjs/dom/nodes/paint/MaskFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/PathEffects.d.ts +15 -18
- package/lib/commonjs/dom/nodes/paint/PathEffects.js +30 -72
- package/lib/commonjs/dom/nodes/paint/PathEffects.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/Shaders.d.ts +11 -12
- package/lib/commonjs/dom/nodes/paint/Shaders.js +28 -18
- package/lib/commonjs/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/commonjs/dom/types/DeclarationContext.d.ts +29 -0
- package/lib/commonjs/dom/types/DeclarationContext.js +118 -0
- package/lib/commonjs/dom/types/DeclarationContext.js.map +1 -0
- package/lib/commonjs/dom/types/DrawingContext.d.ts +18 -1
- package/lib/commonjs/dom/types/DrawingContext.js +330 -0
- package/lib/commonjs/dom/types/DrawingContext.js.map +1 -1
- package/lib/commonjs/dom/types/Node.d.ts +4 -10
- package/lib/commonjs/dom/types/Node.js.map +1 -1
- package/lib/commonjs/dom/types/SkDOM.d.ts +22 -23
- package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
- package/lib/commonjs/dom/types/index.d.ts +1 -0
- package/lib/commonjs/dom/types/index.js +13 -0
- package/lib/commonjs/dom/types/index.js.map +1 -1
- package/lib/commonjs/index.d.ts +1 -0
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +3 -3
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/DrawingContext.d.ts +4 -3
- package/lib/commonjs/renderer/DrawingContext.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.d.ts +35 -35
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/HostConfig.js +1 -0
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/renderer/Offscreen.d.ts +2 -0
- package/lib/commonjs/renderer/Offscreen.js +31 -0
- package/lib/commonjs/renderer/Offscreen.js.map +1 -0
- package/lib/commonjs/renderer/Reconciler.js +0 -1
- package/lib/commonjs/renderer/Reconciler.js.map +1 -1
- package/lib/commonjs/skia/types/Surface/Surface.d.ts +4 -0
- package/lib/commonjs/skia/types/Surface/Surface.js.map +1 -1
- package/lib/commonjs/skia/types/Surface/SurfaceFactory.d.ts +6 -0
- package/lib/commonjs/skia/types/Surface/SurfaceFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkDataFactory.js +0 -1
- package/lib/commonjs/skia/web/JsiSkDataFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImage.d.ts +1 -0
- package/lib/commonjs/skia/web/JsiSkImage.js +34 -3
- package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkSurface.d.ts +1 -0
- package/lib/commonjs/skia/web/JsiSkSurface.js +4 -0
- package/lib/commonjs/skia/web/JsiSkSurface.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkSurfaceFactory.d.ts +2 -1
- package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js +21 -1
- package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +14 -8
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/SkiaDomView.web.js +3 -14
- package/lib/commonjs/views/SkiaDomView.web.js.map +1 -1
- package/lib/commonjs/views/SkiaPictureView.web.js +0 -7
- package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
- package/lib/commonjs/views/SkiaView.web.js +0 -7
- package/lib/commonjs/views/SkiaView.web.js.map +1 -1
- package/lib/module/dom/nodes/DrawingNode.js +5 -1
- package/lib/module/dom/nodes/DrawingNode.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +33 -34
- package/lib/module/dom/nodes/LayerNode.js +13 -7
- package/lib/module/dom/nodes/LayerNode.js.map +1 -1
- package/lib/module/dom/nodes/Node.d.ts +6 -11
- package/lib/module/dom/nodes/Node.js +8 -25
- package/lib/module/dom/nodes/Node.js.map +1 -1
- package/lib/module/dom/nodes/PaintContext.js.map +1 -1
- package/lib/module/dom/nodes/PaintNode.d.ts +3 -3
- package/lib/module/dom/nodes/PaintNode.js +32 -15
- package/lib/module/dom/nodes/PaintNode.js.map +1 -1
- package/lib/module/dom/nodes/RenderNode.d.ts +2 -3
- package/lib/module/dom/nodes/RenderNode.js +20 -187
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/BackdropFilterNode.d.ts +1 -1
- package/lib/module/dom/nodes/drawings/BackdropFilterNode.js +23 -4
- package/lib/module/dom/nodes/drawings/BackdropFilterNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Box.d.ts +3 -1
- package/lib/module/dom/nodes/drawings/Box.js +3 -0
- package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/module/dom/nodes/paint/BlendNode.d.ts +3 -7
- package/lib/module/dom/nodes/paint/BlendNode.js +15 -46
- package/lib/module/dom/nodes/paint/BlendNode.js.map +1 -1
- package/lib/module/dom/nodes/paint/ColorFilters.d.ts +10 -11
- package/lib/module/dom/nodes/paint/ColorFilters.js +29 -43
- package/lib/module/dom/nodes/paint/ColorFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/ImageFilters.d.ts +11 -11
- package/lib/module/dom/nodes/paint/ImageFilters.js +48 -41
- package/lib/module/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/MaskFilters.d.ts +3 -3
- package/lib/module/dom/nodes/paint/MaskFilters.js +3 -2
- package/lib/module/dom/nodes/paint/MaskFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/PathEffects.d.ts +15 -18
- package/lib/module/dom/nodes/paint/PathEffects.js +29 -72
- package/lib/module/dom/nodes/paint/PathEffects.js.map +1 -1
- package/lib/module/dom/nodes/paint/Shaders.d.ts +11 -12
- package/lib/module/dom/nodes/paint/Shaders.js +28 -18
- package/lib/module/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/module/dom/types/DeclarationContext.d.ts +29 -0
- package/lib/module/dom/types/DeclarationContext.js +107 -0
- package/lib/module/dom/types/DeclarationContext.js.map +1 -0
- package/lib/module/dom/types/DrawingContext.d.ts +18 -1
- package/lib/module/dom/types/DrawingContext.js +322 -1
- package/lib/module/dom/types/DrawingContext.js.map +1 -1
- package/lib/module/dom/types/Node.d.ts +4 -10
- package/lib/module/dom/types/Node.js.map +1 -1
- package/lib/module/dom/types/SkDOM.d.ts +22 -23
- package/lib/module/dom/types/SkDOM.js.map +1 -1
- package/lib/module/dom/types/index.d.ts +1 -0
- package/lib/module/dom/types/index.js +1 -0
- package/lib/module/dom/types/index.js.map +1 -1
- package/lib/module/index.d.ts +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/renderer/Canvas.js +3 -3
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/DrawingContext.d.ts +4 -3
- package/lib/module/renderer/DrawingContext.js.map +1 -1
- package/lib/module/renderer/HostComponents.d.ts +35 -35
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/HostConfig.js +1 -0
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/renderer/Offscreen.d.ts +2 -0
- package/lib/module/renderer/Offscreen.js +19 -0
- package/lib/module/renderer/Offscreen.js.map +1 -0
- package/lib/module/renderer/Reconciler.js +0 -1
- package/lib/module/renderer/Reconciler.js.map +1 -1
- package/lib/module/skia/types/Surface/Surface.d.ts +4 -0
- package/lib/module/skia/types/Surface/Surface.js.map +1 -1
- package/lib/module/skia/types/Surface/SurfaceFactory.d.ts +6 -0
- package/lib/module/skia/types/Surface/SurfaceFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkDataFactory.js +0 -1
- package/lib/module/skia/web/JsiSkDataFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkImage.d.ts +1 -0
- package/lib/module/skia/web/JsiSkImage.js +31 -3
- package/lib/module/skia/web/JsiSkImage.js.map +1 -1
- package/lib/module/skia/web/JsiSkSurface.d.ts +1 -0
- package/lib/module/skia/web/JsiSkSurface.js +4 -0
- package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
- package/lib/module/skia/web/JsiSkSurfaceFactory.d.ts +2 -1
- package/lib/module/skia/web/JsiSkSurfaceFactory.js +21 -1
- package/lib/module/skia/web/JsiSkSurfaceFactory.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +14 -8
- package/lib/module/views/SkiaBaseWebView.js.map +1 -1
- package/lib/module/views/SkiaDomView.web.js +2 -11
- package/lib/module/views/SkiaDomView.web.js.map +1 -1
- package/lib/module/views/SkiaPictureView.web.js +0 -5
- package/lib/module/views/SkiaPictureView.web.js.map +1 -1
- package/lib/module/views/SkiaView.web.js +0 -5
- package/lib/module/views/SkiaView.web.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +33 -34
- package/lib/typescript/src/dom/nodes/Node.d.ts +6 -11
- package/lib/typescript/src/dom/nodes/PaintNode.d.ts +3 -3
- package/lib/typescript/src/dom/nodes/RenderNode.d.ts +2 -3
- package/lib/typescript/src/dom/nodes/drawings/BackdropFilterNode.d.ts +1 -1
- package/lib/typescript/src/dom/nodes/drawings/Box.d.ts +3 -1
- package/lib/typescript/src/dom/nodes/paint/BlendNode.d.ts +3 -7
- package/lib/typescript/src/dom/nodes/paint/ColorFilters.d.ts +10 -11
- package/lib/typescript/src/dom/nodes/paint/ImageFilters.d.ts +11 -11
- package/lib/typescript/src/dom/nodes/paint/MaskFilters.d.ts +3 -3
- package/lib/typescript/src/dom/nodes/paint/PathEffects.d.ts +15 -18
- package/lib/typescript/src/dom/nodes/paint/Shaders.d.ts +11 -12
- package/lib/typescript/src/dom/types/DeclarationContext.d.ts +29 -0
- package/lib/typescript/src/dom/types/DrawingContext.d.ts +18 -1
- package/lib/typescript/src/dom/types/Node.d.ts +4 -10
- package/lib/typescript/src/dom/types/SkDOM.d.ts +22 -23
- package/lib/typescript/src/dom/types/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/renderer/DrawingContext.d.ts +4 -3
- package/lib/typescript/src/renderer/HostComponents.d.ts +35 -35
- package/lib/typescript/src/renderer/Offscreen.d.ts +2 -0
- package/lib/typescript/src/skia/types/Surface/Surface.d.ts +4 -0
- package/lib/typescript/src/skia/types/Surface/SurfaceFactory.d.ts +6 -0
- package/lib/typescript/src/skia/web/JsiSkImage.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkSurface.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkSurfaceFactory.d.ts +2 -1
- package/package.json +1 -1
- package/src/dom/nodes/DrawingNode.ts +5 -1
- package/src/dom/nodes/LayerNode.ts +13 -11
- package/src/dom/nodes/Node.ts +18 -41
- package/src/dom/nodes/PaintContext.ts +1 -0
- package/src/dom/nodes/PaintNode.ts +28 -18
- package/src/dom/nodes/RenderNode.ts +25 -183
- package/src/dom/nodes/drawings/BackdropFilterNode.ts +18 -11
- package/src/dom/nodes/drawings/Box.ts +6 -4
- package/src/dom/nodes/paint/BlendNode.ts +16 -63
- package/src/dom/nodes/paint/ColorFilters.ts +32 -55
- package/src/dom/nodes/paint/ImageFilters.ts +58 -53
- package/src/dom/nodes/paint/MaskFilters.ts +5 -7
- package/src/dom/nodes/paint/PathEffects.ts +37 -90
- package/src/dom/nodes/paint/Shaders.ts +31 -29
- package/src/dom/types/DeclarationContext.ts +105 -0
- package/src/dom/types/DrawingContext.ts +304 -1
- package/src/dom/types/Node.ts +4 -20
- package/src/dom/types/SkDOM.ts +22 -43
- package/src/dom/types/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/renderer/Canvas.tsx +3 -3
- package/src/renderer/DrawingContext.ts +4 -5
- package/src/renderer/HostComponents.ts +34 -53
- package/src/renderer/HostConfig.ts +1 -0
- package/src/renderer/Offscreen.tsx +24 -0
- package/src/renderer/Reconciler.tsx +0 -1
- package/src/skia/types/Surface/Surface.ts +5 -0
- package/src/skia/types/Surface/SurfaceFactory.ts +7 -0
- package/src/skia/web/JsiSkDataFactory.ts +0 -1
- package/src/skia/web/JsiSkImage.ts +26 -2
- package/src/skia/web/JsiSkSurface.ts +4 -0
- package/src/skia/web/JsiSkSurfaceFactory.ts +21 -2
- package/src/views/SkiaBaseWebView.tsx +9 -2
- package/src/views/SkiaDomView.web.tsx +2 -13
- package/src/views/SkiaPictureView.web.tsx +0 -7
- package/src/views/SkiaView.web.tsx +0 -7
|
@@ -35,32 +35,23 @@ class ImageFilterDeclaration extends _Node.JsiDeclarationNode {
|
|
|
35
35
|
super(ctx, _types2.DeclarationType.ImageFilter, type, props);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!child) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return this.getMandatoryChildInstance(index);
|
|
38
|
+
input(ctx) {
|
|
39
|
+
return ctx.imageFilters.pop() ?? null;
|
|
46
40
|
}
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
composeAndPush(ctx, imgf1) {
|
|
43
|
+
ctx.save();
|
|
44
|
+
this.decorateChildren(ctx);
|
|
45
|
+
let imgf2 = ctx.imageFilters.popAllAsOne();
|
|
46
|
+
const cf = ctx.colorFilters.popAllAsOne();
|
|
47
|
+
ctx.restore();
|
|
50
48
|
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
return child.materialize();
|
|
54
|
-
} else if (child.isShader()) {
|
|
55
|
-
return this.Skia.ImageFilter.MakeShader(child.materialize(), null);
|
|
56
|
-
} else if (child.declarationType === _types2.DeclarationType.ColorFilter) {
|
|
57
|
-
return this.Skia.ImageFilter.MakeColorFilter(child.materialize(), null);
|
|
58
|
-
} else {
|
|
59
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
60
|
-
}
|
|
61
|
-
} else {
|
|
62
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
49
|
+
if (cf) {
|
|
50
|
+
imgf2 = this.Skia.ImageFilter.MakeCompose(imgf2 ?? null, this.Skia.ImageFilter.MakeColorFilter(cf, null));
|
|
63
51
|
}
|
|
52
|
+
|
|
53
|
+
const imgf = imgf2 ? this.Skia.ImageFilter.MakeCompose(imgf1, imgf2) : imgf1;
|
|
54
|
+
ctx.imageFilters.push(imgf);
|
|
64
55
|
}
|
|
65
56
|
|
|
66
57
|
}
|
|
@@ -72,12 +63,14 @@ class OffsetImageFilterNode extends ImageFilterDeclaration {
|
|
|
72
63
|
super(ctx, _types2.NodeType.OffsetImageFilter, props);
|
|
73
64
|
}
|
|
74
65
|
|
|
75
|
-
|
|
66
|
+
decorate(ctx) {
|
|
67
|
+
this.decorateChildren(ctx);
|
|
76
68
|
const {
|
|
77
69
|
x,
|
|
78
70
|
y
|
|
79
71
|
} = this.props;
|
|
80
|
-
|
|
72
|
+
const imgf = this.Skia.ImageFilter.MakeOffset(x, y, null);
|
|
73
|
+
this.composeAndPush(ctx, imgf);
|
|
81
74
|
}
|
|
82
75
|
|
|
83
76
|
}
|
|
@@ -89,13 +82,14 @@ class DisplacementMapImageFilterNode extends ImageFilterDeclaration {
|
|
|
89
82
|
super(ctx, _types2.NodeType.DisplacementMapImageFilter, props);
|
|
90
83
|
}
|
|
91
84
|
|
|
92
|
-
|
|
85
|
+
decorate(ctx) {
|
|
93
86
|
const {
|
|
94
87
|
channelX,
|
|
95
88
|
channelY,
|
|
96
89
|
scale
|
|
97
90
|
} = this.props;
|
|
98
|
-
|
|
91
|
+
const imgf = this.Skia.ImageFilter.MakeDisplacementMap(_types.ColorChannel[(0, _datatypes.enumKey)(channelX)], _types.ColorChannel[(0, _datatypes.enumKey)(channelY)], scale, ctx.imageFilters.pop(), this.input(ctx));
|
|
92
|
+
this.composeAndPush(ctx, imgf);
|
|
99
93
|
}
|
|
100
94
|
|
|
101
95
|
}
|
|
@@ -107,13 +101,14 @@ class BlurImageFilterNode extends ImageFilterDeclaration {
|
|
|
107
101
|
super(ctx, _types2.NodeType.BlurImageFilter, props);
|
|
108
102
|
}
|
|
109
103
|
|
|
110
|
-
|
|
104
|
+
decorate(ctx) {
|
|
111
105
|
const {
|
|
112
106
|
mode,
|
|
113
107
|
blur
|
|
114
108
|
} = this.props;
|
|
115
109
|
const sigma = (0, _datatypes.processRadius)(this.Skia, blur);
|
|
116
|
-
|
|
110
|
+
const imgf = this.Skia.ImageFilter.MakeBlur(sigma.x, sigma.y, _types.TileMode[(0, _datatypes.enumKey)(mode)], this.input(ctx));
|
|
111
|
+
this.composeAndPush(ctx, imgf);
|
|
117
112
|
}
|
|
118
113
|
|
|
119
114
|
}
|
|
@@ -125,7 +120,7 @@ class DropShadowImageFilterNode extends ImageFilterDeclaration {
|
|
|
125
120
|
super(ctx, _types2.NodeType.DropShadowImageFilter, props);
|
|
126
121
|
}
|
|
127
122
|
|
|
128
|
-
|
|
123
|
+
decorate(ctx) {
|
|
129
124
|
const {
|
|
130
125
|
dx,
|
|
131
126
|
dy,
|
|
@@ -135,7 +130,6 @@ class DropShadowImageFilterNode extends ImageFilterDeclaration {
|
|
|
135
130
|
inner
|
|
136
131
|
} = this.props;
|
|
137
132
|
const color = this.Skia.Color(cl);
|
|
138
|
-
const input = this.getOptionalChildInstance(0);
|
|
139
133
|
let factory;
|
|
140
134
|
|
|
141
135
|
if (inner) {
|
|
@@ -144,7 +138,8 @@ class DropShadowImageFilterNode extends ImageFilterDeclaration {
|
|
|
144
138
|
factory = shadowOnly ? this.Skia.ImageFilter.MakeDropShadowOnly.bind(this.Skia.ImageFilter) : this.Skia.ImageFilter.MakeDropShadow.bind(this.Skia.ImageFilter);
|
|
145
139
|
}
|
|
146
140
|
|
|
147
|
-
|
|
141
|
+
const imgf = factory(dx, dy, blur, blur, color, this.input(ctx));
|
|
142
|
+
this.composeAndPush(ctx, imgf);
|
|
148
143
|
}
|
|
149
144
|
|
|
150
145
|
}
|
|
@@ -163,18 +158,20 @@ class MorphologyImageFilterNode extends ImageFilterDeclaration {
|
|
|
163
158
|
super(ctx, _types2.NodeType.MorphologyImageFilter, props);
|
|
164
159
|
}
|
|
165
160
|
|
|
166
|
-
|
|
161
|
+
decorate(ctx) {
|
|
167
162
|
const {
|
|
168
163
|
operator
|
|
169
164
|
} = this.props;
|
|
170
165
|
const r = (0, _datatypes.processRadius)(this.Skia, this.props.radius);
|
|
171
|
-
|
|
166
|
+
let imgf;
|
|
172
167
|
|
|
173
168
|
if (MorphologyOperator[(0, _datatypes.enumKey)(operator)] === MorphologyOperator.Erode) {
|
|
174
|
-
|
|
169
|
+
imgf = this.Skia.ImageFilter.MakeErode(r.x, r.y, this.input(ctx));
|
|
170
|
+
} else {
|
|
171
|
+
imgf = this.Skia.ImageFilter.MakeDilate(r.x, r.y, this.input(ctx));
|
|
175
172
|
}
|
|
176
173
|
|
|
177
|
-
|
|
174
|
+
this.composeAndPush(ctx, imgf);
|
|
178
175
|
}
|
|
179
176
|
|
|
180
177
|
}
|
|
@@ -186,13 +183,19 @@ class BlendImageFilterNode extends ImageFilterDeclaration {
|
|
|
186
183
|
super(ctx, _types2.NodeType.BlendImageFilter, props);
|
|
187
184
|
}
|
|
188
185
|
|
|
189
|
-
|
|
186
|
+
decorate(ctx) {
|
|
190
187
|
const {
|
|
191
188
|
mode
|
|
192
189
|
} = this.props;
|
|
193
|
-
const a =
|
|
194
|
-
const b =
|
|
195
|
-
|
|
190
|
+
const a = ctx.imageFilters.pop();
|
|
191
|
+
const b = ctx.imageFilters.pop();
|
|
192
|
+
|
|
193
|
+
if (!a || !b) {
|
|
194
|
+
throw new Error("BlendImageFilter requires two image filters");
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const imgf = this.Skia.ImageFilter.MakeBlend(mode, a, b);
|
|
198
|
+
this.composeAndPush(ctx, imgf);
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
}
|
|
@@ -204,7 +207,7 @@ class RuntimeShaderImageFilterNode extends ImageFilterDeclaration {
|
|
|
204
207
|
super(ctx, _types2.NodeType.RuntimeShaderImageFilter, props);
|
|
205
208
|
}
|
|
206
209
|
|
|
207
|
-
|
|
210
|
+
decorate(ctx) {
|
|
208
211
|
const {
|
|
209
212
|
source,
|
|
210
213
|
uniforms
|
|
@@ -215,8 +218,8 @@ class RuntimeShaderImageFilterNode extends ImageFilterDeclaration {
|
|
|
215
218
|
(0, _types.processUniforms)(source, uniforms, rtb);
|
|
216
219
|
}
|
|
217
220
|
|
|
218
|
-
const
|
|
219
|
-
|
|
221
|
+
const imgf = this.Skia.ImageFilter.MakeRuntimeShader(rtb, null, this.input(ctx));
|
|
222
|
+
this.composeAndPush(ctx, imgf);
|
|
220
223
|
}
|
|
221
224
|
|
|
222
225
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","ImageFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","getOptionalChildInstance","index","child","_children","getMandatoryChildInstance","isImageFilter","materialize","isShader","MakeShader","declarationType","Error","OffsetImageFilterNode","NodeType","OffsetImageFilter","x","y","DisplacementMapImageFilterNode","DisplacementMapImageFilter","channelX","channelY","scale","MakeDisplacementMap","ColorChannel","enumKey","BlurImageFilterNode","BlurImageFilter","mode","blur","sigma","processRadius","DropShadowImageFilterNode","DropShadowImageFilter","cl","inner","Color","factory","bind","MakeDropShadowOnly","MakeDropShadow","MorphologyOperator","MorphologyImageFilterNode","MorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","BlendImageFilterNode","BlendImageFilter","a","b","RuntimeShaderImageFilterNode","RuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader"],"sources":["ImageFilters.ts"],"sourcesContent":["import type { SkImageFilter, SkColor, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n ColorChannel,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { processRadius, enumKey } from \"../datatypes\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nexport abstract class ImageFilterDeclaration<\n P,\n Nullable extends null | never = never\n> extends JsiDeclarationNode<P, SkImageFilter, Nullable> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.ImageFilter, type, props);\n }\n\n getOptionalChildInstance(index: number) {\n const child = this._children[index];\n if (!child) {\n return null;\n }\n return this.getMandatoryChildInstance(index);\n }\n\n getMandatoryChildInstance(index: number) {\n const child = this._children[index];\n if (child instanceof JsiDeclarationNode) {\n if (child.isImageFilter()) {\n return child.materialize();\n } else if (child.isShader()) {\n return this.Skia.ImageFilter.MakeShader(child.materialize(), null);\n } else if (child.declarationType === DeclarationType.ColorFilter) {\n return this.Skia.ImageFilter.MakeColorFilter(child.materialize(), null);\n } else {\n throw new Error(`Found invalid child ${child.type} in ${this.type}`);\n }\n } else {\n throw new Error(`Found invalid child ${child.type} in ${this.type}`);\n }\n }\n}\n\nexport class OffsetImageFilterNode extends ImageFilterDeclaration<OffsetImageFilterProps> {\n constructor(ctx: NodeContext, props: OffsetImageFilterProps) {\n super(ctx, NodeType.OffsetImageFilter, props);\n }\n\n materialize() {\n const { x, y } = this.props;\n return this.Skia.ImageFilter.MakeOffset(\n x,\n y,\n this.getOptionalChildInstance(0)\n );\n }\n}\n\nexport class DisplacementMapImageFilterNode extends ImageFilterDeclaration<DisplacementMapImageFilterProps> {\n constructor(ctx: NodeContext, props: DisplacementMapImageFilterProps) {\n super(ctx, NodeType.DisplacementMapImageFilter, props);\n }\n\n materialize() {\n const { channelX, channelY, scale } = this.props;\n return this.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n this.getMandatoryChildInstance(0),\n this.getOptionalChildInstance(1)\n );\n }\n}\n\nexport class BlurImageFilterNode extends ImageFilterDeclaration<BlurImageFilterProps> {\n constructor(ctx: NodeContext, props: BlurImageFilterProps) {\n super(ctx, NodeType.BlurImageFilter, props);\n }\n\n materialize() {\n const { mode, blur } = this.props;\n const sigma = processRadius(this.Skia, blur);\n return this.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n this.getOptionalChildInstance(0)\n );\n }\n}\n\nexport class DropShadowImageFilterNode extends ImageFilterDeclaration<DropShadowImageFilterProps> {\n constructor(ctx: NodeContext, props: DropShadowImageFilterProps) {\n super(ctx, NodeType.DropShadowImageFilter, props);\n }\n\n materialize() {\n const { dx, dy, blur, shadowOnly, color: cl, inner } = this.props;\n const color = this.Skia.Color(cl);\n const input = this.getOptionalChildInstance(0);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, this.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? this.Skia.ImageFilter.MakeDropShadowOnly.bind(this.Skia.ImageFilter)\n : this.Skia.ImageFilter.MakeDropShadow.bind(this.Skia.ImageFilter);\n }\n return factory(dx, dy, blur, blur, color, input);\n }\n}\n\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nexport class MorphologyImageFilterNode extends ImageFilterDeclaration<MorphologyImageFilterProps> {\n constructor(ctx: NodeContext, props: MorphologyImageFilterProps) {\n super(ctx, NodeType.MorphologyImageFilter, props);\n }\n\n materialize() {\n const { operator } = this.props;\n const r = processRadius(this.Skia, this.props.radius);\n const input = this.getOptionalChildInstance(0);\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n return this.Skia.ImageFilter.MakeErode(r.x, r.y, input);\n }\n return this.Skia.ImageFilter.MakeDilate(r.x, r.y, input);\n }\n}\n\nexport class BlendImageFilterNode extends ImageFilterDeclaration<BlendImageFilterProps> {\n constructor(ctx: NodeContext, props: BlendImageFilterProps) {\n super(ctx, NodeType.BlendImageFilter, props);\n }\n\n materialize() {\n const { mode } = this.props;\n const a = this.getMandatoryChildInstance(0);\n const b = this.getMandatoryChildInstance(1);\n return this.Skia.ImageFilter.MakeBlend(mode, a, b);\n }\n}\n\nexport class RuntimeShaderImageFilterNode extends ImageFilterDeclaration<RuntimeShaderImageFilterProps> {\n constructor(ctx: NodeContext, props: RuntimeShaderImageFilterProps) {\n super(ctx, NodeType.RuntimeShaderImageFilter, props);\n }\n\n materialize() {\n const { source, uniforms } = this.props;\n const rtb = this.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const input = this.getOptionalChildInstance(0);\n return this.Skia.ImageFilter.MakeRuntimeShader(rtb, null, input);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","ImageFilterDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","imageFilters","pop","composeAndPush","imgf1","save","decorateChildren","imgf2","popAllAsOne","cf","colorFilters","restore","imgf","push","OffsetImageFilterNode","NodeType","OffsetImageFilter","decorate","x","y","DisplacementMapImageFilterNode","DisplacementMapImageFilter","channelX","channelY","scale","MakeDisplacementMap","ColorChannel","enumKey","BlurImageFilterNode","BlurImageFilter","mode","blur","sigma","processRadius","DropShadowImageFilterNode","DropShadowImageFilter","cl","inner","Color","factory","bind","MakeDropShadowOnly","MakeDropShadow","MorphologyOperator","MorphologyImageFilterNode","MorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","BlendImageFilterNode","BlendImageFilter","a","b","Error","RuntimeShaderImageFilterNode","RuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader"],"sources":["ImageFilters.ts"],"sourcesContent":["import type { SkImageFilter, SkColor, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n ColorChannel,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n DeclarationContext,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { processRadius, enumKey } from \"../datatypes\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nexport abstract class ImageFilterDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.ImageFilter, type, props);\n }\n\n protected input(ctx: DeclarationContext) {\n return ctx.imageFilters.pop() ?? null;\n }\n\n protected composeAndPush(ctx: DeclarationContext, imgf1: SkImageFilter) {\n ctx.save();\n this.decorateChildren(ctx);\n let imgf2 = ctx.imageFilters.popAllAsOne();\n const cf = ctx.colorFilters.popAllAsOne();\n ctx.restore();\n if (cf) {\n imgf2 = this.Skia.ImageFilter.MakeCompose(\n imgf2 ?? null,\n this.Skia.ImageFilter.MakeColorFilter(cf, null)\n );\n }\n const imgf = imgf2\n ? this.Skia.ImageFilter.MakeCompose(imgf1, imgf2)\n : imgf1;\n ctx.imageFilters.push(imgf);\n }\n}\n\nexport class OffsetImageFilterNode extends ImageFilterDeclaration<OffsetImageFilterProps> {\n constructor(ctx: NodeContext, props: OffsetImageFilterProps) {\n super(ctx, NodeType.OffsetImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { x, y } = this.props;\n const imgf = this.Skia.ImageFilter.MakeOffset(x, y, null);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DisplacementMapImageFilterNode extends ImageFilterDeclaration<DisplacementMapImageFilterProps> {\n constructor(ctx: NodeContext, props: DisplacementMapImageFilterProps) {\n super(ctx, NodeType.DisplacementMapImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { channelX, channelY, scale } = this.props;\n const imgf = this.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n ctx.imageFilters.pop()!,\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class BlurImageFilterNode extends ImageFilterDeclaration<BlurImageFilterProps> {\n constructor(ctx: NodeContext, props: BlurImageFilterProps) {\n super(ctx, NodeType.BlurImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode, blur } = this.props;\n const sigma = processRadius(this.Skia, blur);\n const imgf = this.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class DropShadowImageFilterNode extends ImageFilterDeclaration<DropShadowImageFilterProps> {\n constructor(ctx: NodeContext, props: DropShadowImageFilterProps) {\n super(ctx, NodeType.DropShadowImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { dx, dy, blur, shadowOnly, color: cl, inner } = this.props;\n const color = this.Skia.Color(cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, this.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? this.Skia.ImageFilter.MakeDropShadowOnly.bind(this.Skia.ImageFilter)\n : this.Skia.ImageFilter.MakeDropShadow.bind(this.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, this.input(ctx));\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nexport class MorphologyImageFilterNode extends ImageFilterDeclaration<MorphologyImageFilterProps> {\n constructor(ctx: NodeContext, props: MorphologyImageFilterProps) {\n super(ctx, NodeType.MorphologyImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { operator } = this.props;\n const r = processRadius(this.Skia, this.props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = this.Skia.ImageFilter.MakeErode(r.x, r.y, this.input(ctx));\n } else {\n imgf = this.Skia.ImageFilter.MakeDilate(r.x, r.y, this.input(ctx));\n }\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class BlendImageFilterNode extends ImageFilterDeclaration<BlendImageFilterProps> {\n constructor(ctx: NodeContext, props: BlendImageFilterProps) {\n super(ctx, NodeType.BlendImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { mode } = this.props;\n const a = ctx.imageFilters.pop();\n const b = ctx.imageFilters.pop();\n if (!a || !b) {\n throw new Error(\"BlendImageFilter requires two image filters\");\n }\n const imgf = this.Skia.ImageFilter.MakeBlend(mode, a, b);\n this.composeAndPush(ctx, imgf);\n }\n}\n\nexport class RuntimeShaderImageFilterNode extends ImageFilterDeclaration<RuntimeShaderImageFilterProps> {\n constructor(ctx: NodeContext, props: RuntimeShaderImageFilterProps) {\n super(ctx, NodeType.RuntimeShaderImageFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { source, uniforms } = this.props;\n const rtb = this.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = this.Skia.ImageFilter.MakeRuntimeShader(\n rtb,\n null,\n this.input(ctx)\n );\n this.composeAndPush(ctx, imgf);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { SkMaskFilter } from "../../../skia/types";
|
|
2
1
|
import type { NodeContext } from "../Node";
|
|
3
2
|
import { JsiDeclarationNode } from "../Node";
|
|
4
3
|
import type { BlurMaskFilterProps } from "../../types";
|
|
5
|
-
|
|
4
|
+
import type { DeclarationContext } from "../../types/DeclarationContext";
|
|
5
|
+
export declare class BlurMaskFilterNode extends JsiDeclarationNode<BlurMaskFilterProps> {
|
|
6
6
|
constructor(ctx: NodeContext, props: BlurMaskFilterProps);
|
|
7
|
-
|
|
7
|
+
decorate(ctx: DeclarationContext): void;
|
|
8
8
|
}
|
|
@@ -18,13 +18,14 @@ class BlurMaskFilterNode extends _Node.JsiDeclarationNode {
|
|
|
18
18
|
super(ctx, _types2.DeclarationType.MaskFilter, _types2.NodeType.BlurMaskFilter, props);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
decorate(ctx) {
|
|
22
22
|
const {
|
|
23
23
|
style,
|
|
24
24
|
blur,
|
|
25
25
|
respectCTM
|
|
26
26
|
} = this.props;
|
|
27
|
-
|
|
27
|
+
const mf = this.Skia.MaskFilter.MakeBlur(_types.BlurStyle[(0, _datatypes.enumKey)(style)], blur, respectCTM);
|
|
28
|
+
ctx.maskFilters.push(mf);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BlurMaskFilterNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","MaskFilter","NodeType","BlurMaskFilter","
|
|
1
|
+
{"version":3,"names":["BlurMaskFilterNode","JsiDeclarationNode","constructor","ctx","props","DeclarationType","MaskFilter","NodeType","BlurMaskFilter","decorate","style","blur","respectCTM","mf","Skia","MakeBlur","BlurStyle","enumKey","maskFilters","push"],"sources":["MaskFilters.ts"],"sourcesContent":["import { BlurStyle } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type { BlurMaskFilterProps } from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\n\nexport class BlurMaskFilterNode extends JsiDeclarationNode<BlurMaskFilterProps> {\n constructor(ctx: NodeContext, props: BlurMaskFilterProps) {\n super(ctx, DeclarationType.MaskFilter, NodeType.BlurMaskFilter, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { style, blur, respectCTM } = this.props;\n const mf = this.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.maskFilters.push(mf);\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AAGO,MAAMA,kBAAN,SAAiCC,wBAAjC,CAAyE;EAC9EC,WAAW,CAACC,GAAD,EAAmBC,KAAnB,EAA+C;IACxD,MAAMD,GAAN,EAAWE,uBAAA,CAAgBC,UAA3B,EAAuCC,gBAAA,CAASC,cAAhD,EAAgEJ,KAAhE;EACD;;EAEDK,QAAQ,CAACN,GAAD,EAA0B;IAChC,MAAM;MAAEO,KAAF;MAASC,IAAT;MAAeC;IAAf,IAA8B,KAAKR,KAAzC;IACA,MAAMS,EAAE,GAAG,KAAKC,IAAL,CAAUR,UAAV,CAAqBS,QAArB,CACTC,gBAAA,CAAU,IAAAC,kBAAA,EAAQP,KAAR,CAAV,CADS,EAETC,IAFS,EAGTC,UAHS,CAAX;IAKAT,GAAG,CAACe,WAAJ,CAAgBC,IAAhB,CAAqBN,EAArB;EACD;;AAb6E"}
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import type { SkPathEffect } from "../../../skia/types";
|
|
2
2
|
import type { NodeContext } from "../Node";
|
|
3
3
|
import { JsiDeclarationNode } from "../Node";
|
|
4
|
-
import type { CornerPathEffectProps, DashPathEffectProps, DiscretePathEffectProps, Line2DPathEffectProps,
|
|
4
|
+
import type { CornerPathEffectProps, DashPathEffectProps, DiscretePathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps } from "../../types";
|
|
5
5
|
import { NodeType } from "../../types";
|
|
6
|
-
|
|
6
|
+
import type { DeclarationContext } from "../../types/DeclarationContext";
|
|
7
|
+
declare abstract class PathEffectDeclaration<P> extends JsiDeclarationNode<P> {
|
|
7
8
|
constructor(ctx: NodeContext, type: NodeType, props: P);
|
|
8
|
-
|
|
9
|
-
insertChildBefore(child: Node<unknown>, before: Node<unknown>): void;
|
|
10
|
-
compose(pe: SkPathEffect): SkPathEffect;
|
|
11
|
-
getOptionalChildInstance(index: number): any;
|
|
12
|
-
getMandatoryChildInstance(index: number): any;
|
|
9
|
+
protected composeAndPush(ctx: DeclarationContext, pe1: SkPathEffect): void;
|
|
13
10
|
}
|
|
14
11
|
export declare class DiscretePathEffectNode extends PathEffectDeclaration<DiscretePathEffectProps> {
|
|
15
12
|
constructor(ctx: NodeContext, props: DiscretePathEffectProps);
|
|
16
|
-
|
|
13
|
+
decorate(ctx: DeclarationContext): void;
|
|
17
14
|
}
|
|
18
|
-
export declare class Path2DPathEffectNode extends PathEffectDeclaration<Path2DPathEffectProps
|
|
15
|
+
export declare class Path2DPathEffectNode extends PathEffectDeclaration<Path2DPathEffectProps> {
|
|
19
16
|
constructor(ctx: NodeContext, props: Path2DPathEffectProps);
|
|
20
|
-
|
|
17
|
+
decorate(ctx: DeclarationContext): void;
|
|
21
18
|
}
|
|
22
19
|
export declare class DashPathEffectNode extends PathEffectDeclaration<DashPathEffectProps> {
|
|
23
20
|
constructor(ctx: NodeContext, props: DashPathEffectProps);
|
|
24
|
-
|
|
21
|
+
decorate(ctx: DeclarationContext): void;
|
|
25
22
|
}
|
|
26
|
-
export declare class CornerPathEffectNode extends PathEffectDeclaration<CornerPathEffectProps
|
|
23
|
+
export declare class CornerPathEffectNode extends PathEffectDeclaration<CornerPathEffectProps> {
|
|
27
24
|
constructor(ctx: NodeContext, props: CornerPathEffectProps);
|
|
28
|
-
|
|
25
|
+
decorate(ctx: DeclarationContext): void;
|
|
29
26
|
}
|
|
30
27
|
export declare class SumPathEffectNode extends PathEffectDeclaration<null> {
|
|
31
28
|
constructor(ctx: NodeContext);
|
|
32
|
-
|
|
29
|
+
decorate(ctx: DeclarationContext): void;
|
|
33
30
|
}
|
|
34
|
-
export declare class Line2DPathEffectNode extends PathEffectDeclaration<Line2DPathEffectProps
|
|
31
|
+
export declare class Line2DPathEffectNode extends PathEffectDeclaration<Line2DPathEffectProps> {
|
|
35
32
|
constructor(ctx: NodeContext, props: Line2DPathEffectProps);
|
|
36
|
-
|
|
33
|
+
decorate(ctx: DeclarationContext): void;
|
|
37
34
|
}
|
|
38
|
-
export declare class Path1DPathEffectNode extends PathEffectDeclaration<Path1DPathEffectProps
|
|
35
|
+
export declare class Path1DPathEffectNode extends PathEffectDeclaration<Path1DPathEffectProps> {
|
|
39
36
|
constructor(ctx: NodeContext, props: Path1DPathEffectProps);
|
|
40
|
-
|
|
37
|
+
decorate(ctx: DeclarationContext): void;
|
|
41
38
|
}
|
|
42
39
|
export {};
|
|
@@ -15,65 +15,20 @@ var _Enum = require("../datatypes/Enum");
|
|
|
15
15
|
|
|
16
16
|
var _datatypes = require("../datatypes");
|
|
17
17
|
|
|
18
|
+
var _DeclarationContext = require("../../types/DeclarationContext");
|
|
19
|
+
|
|
18
20
|
class PathEffectDeclaration extends _Node.JsiDeclarationNode {
|
|
19
21
|
constructor(ctx, type, props) {
|
|
20
22
|
super(ctx, _types2.DeclarationType.PathEffect, type, props);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
insertChildBefore(child, before) {
|
|
32
|
-
if (!(child instanceof PathEffectDeclaration)) {
|
|
33
|
-
throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
super.insertChildBefore(child, before);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
compose(pe) {
|
|
40
|
-
const children = this._children;
|
|
41
|
-
|
|
42
|
-
if (this._children.length === 0) {
|
|
43
|
-
return pe;
|
|
44
|
-
} else {
|
|
45
|
-
return this.Skia.PathEffect.MakeCompose(pe, children.reduce((acc, child) => {
|
|
46
|
-
if (acc === null) {
|
|
47
|
-
return child.materialize();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return this.Skia.PathEffect.MakeCompose(acc, child.materialize());
|
|
51
|
-
}, null));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
getOptionalChildInstance(index) {
|
|
56
|
-
const child = this._children[index];
|
|
57
|
-
|
|
58
|
-
if (!child) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return this.getMandatoryChildInstance(index);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
getMandatoryChildInstance(index) {
|
|
66
|
-
const child = this._children[index];
|
|
67
|
-
|
|
68
|
-
if (child instanceof _Node.JsiDeclarationNode) {
|
|
69
|
-
if (child.isPathEffect()) {
|
|
70
|
-
return child.materialize();
|
|
71
|
-
} else {
|
|
72
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
73
|
-
}
|
|
74
|
-
} else {
|
|
75
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
76
|
-
}
|
|
25
|
+
composeAndPush(ctx, pe1) {
|
|
26
|
+
ctx.save();
|
|
27
|
+
this.decorateChildren(ctx);
|
|
28
|
+
const pe2 = ctx.pathEffects.popAllAsOne();
|
|
29
|
+
ctx.restore();
|
|
30
|
+
const pe = pe2 ? this.Skia.PathEffect.MakeCompose(pe1, pe2) : pe1;
|
|
31
|
+
ctx.pathEffects.push(pe);
|
|
77
32
|
}
|
|
78
33
|
|
|
79
34
|
}
|
|
@@ -83,14 +38,14 @@ class DiscretePathEffectNode extends PathEffectDeclaration {
|
|
|
83
38
|
super(ctx, _types2.NodeType.DiscretePathEffect, props);
|
|
84
39
|
}
|
|
85
40
|
|
|
86
|
-
|
|
41
|
+
decorate(ctx) {
|
|
87
42
|
const {
|
|
88
43
|
length,
|
|
89
44
|
deviation,
|
|
90
45
|
seed
|
|
91
46
|
} = this.props;
|
|
92
47
|
const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);
|
|
93
|
-
|
|
48
|
+
this.composeAndPush(ctx, pe);
|
|
94
49
|
}
|
|
95
50
|
|
|
96
51
|
}
|
|
@@ -102,7 +57,7 @@ class Path2DPathEffectNode extends PathEffectDeclaration {
|
|
|
102
57
|
super(ctx, _types2.NodeType.Path2DPathEffect, props);
|
|
103
58
|
}
|
|
104
59
|
|
|
105
|
-
|
|
60
|
+
decorate(ctx) {
|
|
106
61
|
const {
|
|
107
62
|
matrix
|
|
108
63
|
} = this.props;
|
|
@@ -110,10 +65,10 @@ class Path2DPathEffectNode extends PathEffectDeclaration {
|
|
|
110
65
|
const pe = this.Skia.PathEffect.MakePath2D(matrix, path);
|
|
111
66
|
|
|
112
67
|
if (pe === null) {
|
|
113
|
-
|
|
68
|
+
throw new Error("Path2DPathEffectNode: invalid path");
|
|
114
69
|
}
|
|
115
70
|
|
|
116
|
-
|
|
71
|
+
this.composeAndPush(ctx, pe);
|
|
117
72
|
}
|
|
118
73
|
|
|
119
74
|
}
|
|
@@ -125,13 +80,13 @@ class DashPathEffectNode extends PathEffectDeclaration {
|
|
|
125
80
|
super(ctx, _types2.NodeType.DashPathEffect, props);
|
|
126
81
|
}
|
|
127
82
|
|
|
128
|
-
|
|
83
|
+
decorate(ctx) {
|
|
129
84
|
const {
|
|
130
85
|
intervals,
|
|
131
86
|
phase
|
|
132
87
|
} = this.props;
|
|
133
88
|
const pe = this.Skia.PathEffect.MakeDash(intervals, phase);
|
|
134
|
-
|
|
89
|
+
this.composeAndPush(ctx, pe);
|
|
135
90
|
}
|
|
136
91
|
|
|
137
92
|
}
|
|
@@ -143,17 +98,17 @@ class CornerPathEffectNode extends PathEffectDeclaration {
|
|
|
143
98
|
super(ctx, _types2.NodeType.CornerPathEffect, props);
|
|
144
99
|
}
|
|
145
100
|
|
|
146
|
-
|
|
101
|
+
decorate(ctx) {
|
|
147
102
|
const {
|
|
148
103
|
r
|
|
149
104
|
} = this.props;
|
|
150
105
|
const pe = this.Skia.PathEffect.MakeCorner(r);
|
|
151
106
|
|
|
152
107
|
if (pe === null) {
|
|
153
|
-
|
|
108
|
+
throw new Error("CornerPathEffectNode: couldn't create path effect");
|
|
154
109
|
}
|
|
155
110
|
|
|
156
|
-
|
|
111
|
+
this.composeAndPush(ctx, pe);
|
|
157
112
|
}
|
|
158
113
|
|
|
159
114
|
}
|
|
@@ -165,8 +120,11 @@ class SumPathEffectNode extends PathEffectDeclaration {
|
|
|
165
120
|
super(ctx, _types2.NodeType.SumPathEffect, null);
|
|
166
121
|
}
|
|
167
122
|
|
|
168
|
-
|
|
169
|
-
|
|
123
|
+
decorate(ctx) {
|
|
124
|
+
this.decorateChildren(ctx);
|
|
125
|
+
const pes = ctx.pathEffects.popAll();
|
|
126
|
+
const pe = (0, _DeclarationContext.composeDeclarations)(pes, this.Skia.PathEffect.MakeSum.bind(this.Skia.PathEffect));
|
|
127
|
+
ctx.pathEffects.push(pe);
|
|
170
128
|
}
|
|
171
129
|
|
|
172
130
|
}
|
|
@@ -178,7 +136,7 @@ class Line2DPathEffectNode extends PathEffectDeclaration {
|
|
|
178
136
|
super(ctx, _types2.NodeType.Line2DPathEffect, props);
|
|
179
137
|
}
|
|
180
138
|
|
|
181
|
-
|
|
139
|
+
decorate(ctx) {
|
|
182
140
|
const {
|
|
183
141
|
width,
|
|
184
142
|
matrix
|
|
@@ -186,10 +144,10 @@ class Line2DPathEffectNode extends PathEffectDeclaration {
|
|
|
186
144
|
const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);
|
|
187
145
|
|
|
188
146
|
if (pe === null) {
|
|
189
|
-
|
|
147
|
+
throw new Error("Line2DPathEffectNode: could not create path effect");
|
|
190
148
|
}
|
|
191
149
|
|
|
192
|
-
|
|
150
|
+
this.composeAndPush(ctx, pe);
|
|
193
151
|
}
|
|
194
152
|
|
|
195
153
|
}
|
|
@@ -201,7 +159,7 @@ class Path1DPathEffectNode extends PathEffectDeclaration {
|
|
|
201
159
|
super(ctx, _types2.NodeType.Path1DPathEffect, props);
|
|
202
160
|
}
|
|
203
161
|
|
|
204
|
-
|
|
162
|
+
decorate(ctx) {
|
|
205
163
|
const {
|
|
206
164
|
advance,
|
|
207
165
|
phase,
|
|
@@ -211,10 +169,10 @@ class Path1DPathEffectNode extends PathEffectDeclaration {
|
|
|
211
169
|
const pe = this.Skia.PathEffect.MakePath1D(path, advance, phase, _types.Path1DEffectStyle[(0, _Enum.enumKey)(style)]);
|
|
212
170
|
|
|
213
171
|
if (pe === null) {
|
|
214
|
-
|
|
172
|
+
throw new Error("Path1DPathEffectNode: could not create path effect");
|
|
215
173
|
}
|
|
216
174
|
|
|
217
|
-
|
|
175
|
+
this.composeAndPush(ctx, pe);
|
|
218
176
|
}
|
|
219
177
|
|
|
220
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PathEffectDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","PathEffect","addChild","child","Error","insertChildBefore","before","compose","pe","children","_children","length","Skia","MakeCompose","reduce","acc","materialize","getOptionalChildInstance","index","getMandatoryChildInstance","isPathEffect","DiscretePathEffectNode","NodeType","DiscretePathEffect","deviation","seed","MakeDiscrete","Path2DPathEffectNode","Path2DPathEffect","matrix","path","processPath","MakePath2D","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","MakeSum","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey"],"sources":["PathEffects.ts"],"sourcesContent":["import { Path1DEffectStyle } from \"../../../skia/types\";\nimport type { SkPathEffect } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Node,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport { processPath } from \"../datatypes\";\n\nabstract class PathEffectDeclaration<\n P,\n Nullable extends null | never = never\n> extends JsiDeclarationNode<P, SkPathEffect, Nullable> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.PathEffect, type, props);\n }\n\n addChild(child: Node<unknown>) {\n if (!(child instanceof PathEffectDeclaration)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.addChild(child);\n }\n\n insertChildBefore(child: Node<unknown>, before: Node<unknown>): void {\n if (!(child instanceof PathEffectDeclaration)) {\n throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);\n }\n super.insertChildBefore(child, before);\n }\n\n compose(pe: SkPathEffect) {\n const children = this._children as PathEffectDeclaration<unknown>[];\n if (this._children.length === 0) {\n return pe;\n } else {\n return this.Skia.PathEffect.MakeCompose(\n pe,\n children.reduce<SkPathEffect | null>((acc, child) => {\n if (acc === null) {\n return child.materialize();\n }\n return this.Skia.PathEffect.MakeCompose(acc, child.materialize());\n }, null) as SkPathEffect\n );\n }\n }\n getOptionalChildInstance(index: number) {\n const child = this._children[index];\n if (!child) {\n return null;\n }\n return this.getMandatoryChildInstance(index);\n }\n\n getMandatoryChildInstance(index: number) {\n const child = this._children[index];\n if (child instanceof JsiDeclarationNode) {\n if (child.isPathEffect()) {\n return child.materialize();\n } else {\n throw new Error(`Found invalid child ${child.type} in ${this.type}`);\n }\n } else {\n throw new Error(`Found invalid child ${child.type} in ${this.type}`);\n }\n }\n}\n\nexport class DiscretePathEffectNode extends PathEffectDeclaration<DiscretePathEffectProps> {\n constructor(ctx: NodeContext, props: DiscretePathEffectProps) {\n super(ctx, NodeType.DiscretePathEffect, props);\n }\n\n materialize() {\n const { length, deviation, seed } = this.props;\n const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n return this.compose(pe);\n }\n}\n\nexport class Path2DPathEffectNode extends PathEffectDeclaration<\n Path2DPathEffectProps,\n null\n> {\n constructor(ctx: NodeContext, props: Path2DPathEffectProps) {\n super(ctx, NodeType.Path2DPathEffect, props);\n }\n\n materialize() {\n const { matrix } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n return null;\n }\n return this.compose(pe);\n }\n}\n\nexport class DashPathEffectNode extends PathEffectDeclaration<DashPathEffectProps> {\n constructor(ctx: NodeContext, props: DashPathEffectProps) {\n super(ctx, NodeType.DashPathEffect, props);\n }\n\n materialize() {\n const { intervals, phase } = this.props;\n const pe = this.Skia.PathEffect.MakeDash(intervals, phase);\n return this.compose(pe);\n }\n}\n\nexport class CornerPathEffectNode extends PathEffectDeclaration<\n CornerPathEffectProps,\n null\n> {\n constructor(ctx: NodeContext, props: CornerPathEffectProps) {\n super(ctx, NodeType.CornerPathEffect, props);\n }\n\n materialize() {\n const { r } = this.props;\n const pe = this.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n return null;\n }\n return this.compose(pe);\n }\n}\n\nexport class SumPathEffectNode extends PathEffectDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SumPathEffect, null);\n }\n\n materialize() {\n return this.Skia.PathEffect.MakeSum(\n this.getMandatoryChildInstance(0),\n this.getMandatoryChildInstance(1)\n );\n }\n}\n\nexport class Line2DPathEffectNode extends PathEffectDeclaration<\n Line2DPathEffectProps,\n null\n> {\n constructor(ctx: NodeContext, props: Line2DPathEffectProps) {\n super(ctx, NodeType.Line2DPathEffect, props);\n }\n\n materialize() {\n const { width, matrix } = this.props;\n const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n return null;\n }\n return this.compose(pe);\n }\n}\n\nexport class Path1DPathEffectNode extends PathEffectDeclaration<\n Path1DPathEffectProps,\n null\n> {\n constructor(ctx: NodeContext, props: Path1DPathEffectProps) {\n super(ctx, NodeType.Path1DPathEffect, props);\n }\n\n materialize() {\n const { advance, phase, style } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n return null;\n }\n return this.compose(pe);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["PathEffectDeclaration","JsiDeclarationNode","constructor","ctx","type","props","DeclarationType","PathEffect","composeAndPush","pe1","save","decorateChildren","pe2","pathEffects","popAllAsOne","restore","pe","Skia","MakeCompose","push","DiscretePathEffectNode","NodeType","DiscretePathEffect","decorate","length","deviation","seed","MakeDiscrete","Path2DPathEffectNode","Path2DPathEffect","matrix","path","processPath","MakePath2D","Error","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","pes","popAll","composeDeclarations","MakeSum","bind","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey"],"sources":["PathEffects.ts"],"sourcesContent":["import { Path1DEffectStyle } from \"../../../skia/types\";\nimport type { SkPathEffect } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport { enumKey } from \"../datatypes/Enum\";\nimport { processPath } from \"../datatypes\";\nimport type { DeclarationContext } from \"../../types/DeclarationContext\";\nimport { composeDeclarations } from \"../../types/DeclarationContext\";\n\nabstract class PathEffectDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.PathEffect, type, props);\n }\n\n protected composeAndPush(ctx: DeclarationContext, pe1: SkPathEffect) {\n ctx.save();\n this.decorateChildren(ctx);\n const pe2 = ctx.pathEffects.popAllAsOne();\n ctx.restore();\n const pe = pe2 ? this.Skia.PathEffect.MakeCompose(pe1, pe2) : pe1;\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class DiscretePathEffectNode extends PathEffectDeclaration<DiscretePathEffectProps> {\n constructor(ctx: NodeContext, props: DiscretePathEffectProps) {\n super(ctx, NodeType.DiscretePathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { length, deviation, seed } = this.props;\n const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path2DPathEffectNode extends PathEffectDeclaration<Path2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path2DPathEffectProps) {\n super(ctx, NodeType.Path2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { matrix } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffectNode: invalid path\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class DashPathEffectNode extends PathEffectDeclaration<DashPathEffectProps> {\n constructor(ctx: NodeContext, props: DashPathEffectProps) {\n super(ctx, NodeType.DashPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { intervals, phase } = this.props;\n const pe = this.Skia.PathEffect.MakeDash(intervals, phase);\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class CornerPathEffectNode extends PathEffectDeclaration<CornerPathEffectProps> {\n constructor(ctx: NodeContext, props: CornerPathEffectProps) {\n super(ctx, NodeType.CornerPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { r } = this.props;\n const pe = this.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffectNode: couldn't create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class SumPathEffectNode extends PathEffectDeclaration<null> {\n constructor(ctx: NodeContext) {\n super(ctx, NodeType.SumPathEffect, null);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const pes = ctx.pathEffects.popAll();\n const pe = composeDeclarations(\n pes,\n this.Skia.PathEffect.MakeSum.bind(this.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n }\n}\n\nexport class Line2DPathEffectNode extends PathEffectDeclaration<Line2DPathEffectProps> {\n constructor(ctx: NodeContext, props: Line2DPathEffectProps) {\n super(ctx, NodeType.Line2DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { width, matrix } = this.props;\n const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n\nexport class Path1DPathEffectNode extends PathEffectDeclaration<Path1DPathEffectProps> {\n constructor(ctx: NodeContext, props: Path1DPathEffectProps) {\n super(ctx, NodeType.Path1DPathEffect, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { advance, phase, style } = this.props;\n const path = processPath(this.Skia, this.props.path);\n const pe = this.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffectNode: could not create path effect\");\n }\n this.composeAndPush(ctx, pe);\n }\n}\n"],"mappings":"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"}
|