@shopify/react-native-skia 0.1.172 → 0.1.173
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 +38 -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/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 +6 -4
- 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/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 +6 -4
- 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/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/JsiSkSurface.ts +4 -0
- package/src/skia/web/JsiSkSurfaceFactory.ts +21 -2
- package/src/views/SkiaBaseWebView.tsx +6 -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
|
@@ -3,66 +3,20 @@ import { JsiDeclarationNode } from "../Node";
|
|
|
3
3
|
import { DeclarationType, NodeType } from "../../types";
|
|
4
4
|
import { enumKey } from "../datatypes/Enum";
|
|
5
5
|
import { processPath } from "../datatypes";
|
|
6
|
+
import { composeDeclarations } from "../../types/DeclarationContext";
|
|
6
7
|
|
|
7
8
|
class PathEffectDeclaration extends JsiDeclarationNode {
|
|
8
9
|
constructor(ctx, type, props) {
|
|
9
10
|
super(ctx, DeclarationType.PathEffect, type, props);
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
insertChildBefore(child, before) {
|
|
21
|
-
if (!(child instanceof PathEffectDeclaration)) {
|
|
22
|
-
throw new Error(`Cannot add child of type ${child.type} to ${this.type}`);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
super.insertChildBefore(child, before);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
compose(pe) {
|
|
29
|
-
const children = this._children;
|
|
30
|
-
|
|
31
|
-
if (this._children.length === 0) {
|
|
32
|
-
return pe;
|
|
33
|
-
} else {
|
|
34
|
-
return this.Skia.PathEffect.MakeCompose(pe, children.reduce((acc, child) => {
|
|
35
|
-
if (acc === null) {
|
|
36
|
-
return child.materialize();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return this.Skia.PathEffect.MakeCompose(acc, child.materialize());
|
|
40
|
-
}, null));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
getOptionalChildInstance(index) {
|
|
45
|
-
const child = this._children[index];
|
|
46
|
-
|
|
47
|
-
if (!child) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return this.getMandatoryChildInstance(index);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
getMandatoryChildInstance(index) {
|
|
55
|
-
const child = this._children[index];
|
|
56
|
-
|
|
57
|
-
if (child instanceof JsiDeclarationNode) {
|
|
58
|
-
if (child.isPathEffect()) {
|
|
59
|
-
return child.materialize();
|
|
60
|
-
} else {
|
|
61
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
62
|
-
}
|
|
63
|
-
} else {
|
|
64
|
-
throw new Error(`Found invalid child ${child.type} in ${this.type}`);
|
|
65
|
-
}
|
|
13
|
+
composeAndPush(ctx, pe1) {
|
|
14
|
+
ctx.save();
|
|
15
|
+
this.decorateChildren(ctx);
|
|
16
|
+
const pe2 = ctx.pathEffects.popAllAsOne();
|
|
17
|
+
ctx.restore();
|
|
18
|
+
const pe = pe2 ? this.Skia.PathEffect.MakeCompose(pe1, pe2) : pe1;
|
|
19
|
+
ctx.pathEffects.push(pe);
|
|
66
20
|
}
|
|
67
21
|
|
|
68
22
|
}
|
|
@@ -72,14 +26,14 @@ export class DiscretePathEffectNode extends PathEffectDeclaration {
|
|
|
72
26
|
super(ctx, NodeType.DiscretePathEffect, props);
|
|
73
27
|
}
|
|
74
28
|
|
|
75
|
-
|
|
29
|
+
decorate(ctx) {
|
|
76
30
|
const {
|
|
77
31
|
length,
|
|
78
32
|
deviation,
|
|
79
33
|
seed
|
|
80
34
|
} = this.props;
|
|
81
35
|
const pe = this.Skia.PathEffect.MakeDiscrete(length, deviation, seed);
|
|
82
|
-
|
|
36
|
+
this.composeAndPush(ctx, pe);
|
|
83
37
|
}
|
|
84
38
|
|
|
85
39
|
}
|
|
@@ -88,7 +42,7 @@ export class Path2DPathEffectNode extends PathEffectDeclaration {
|
|
|
88
42
|
super(ctx, NodeType.Path2DPathEffect, props);
|
|
89
43
|
}
|
|
90
44
|
|
|
91
|
-
|
|
45
|
+
decorate(ctx) {
|
|
92
46
|
const {
|
|
93
47
|
matrix
|
|
94
48
|
} = this.props;
|
|
@@ -96,10 +50,10 @@ export class Path2DPathEffectNode extends PathEffectDeclaration {
|
|
|
96
50
|
const pe = this.Skia.PathEffect.MakePath2D(matrix, path);
|
|
97
51
|
|
|
98
52
|
if (pe === null) {
|
|
99
|
-
|
|
53
|
+
throw new Error("Path2DPathEffectNode: invalid path");
|
|
100
54
|
}
|
|
101
55
|
|
|
102
|
-
|
|
56
|
+
this.composeAndPush(ctx, pe);
|
|
103
57
|
}
|
|
104
58
|
|
|
105
59
|
}
|
|
@@ -108,13 +62,13 @@ export class DashPathEffectNode extends PathEffectDeclaration {
|
|
|
108
62
|
super(ctx, NodeType.DashPathEffect, props);
|
|
109
63
|
}
|
|
110
64
|
|
|
111
|
-
|
|
65
|
+
decorate(ctx) {
|
|
112
66
|
const {
|
|
113
67
|
intervals,
|
|
114
68
|
phase
|
|
115
69
|
} = this.props;
|
|
116
70
|
const pe = this.Skia.PathEffect.MakeDash(intervals, phase);
|
|
117
|
-
|
|
71
|
+
this.composeAndPush(ctx, pe);
|
|
118
72
|
}
|
|
119
73
|
|
|
120
74
|
}
|
|
@@ -123,17 +77,17 @@ export class CornerPathEffectNode extends PathEffectDeclaration {
|
|
|
123
77
|
super(ctx, NodeType.CornerPathEffect, props);
|
|
124
78
|
}
|
|
125
79
|
|
|
126
|
-
|
|
80
|
+
decorate(ctx) {
|
|
127
81
|
const {
|
|
128
82
|
r
|
|
129
83
|
} = this.props;
|
|
130
84
|
const pe = this.Skia.PathEffect.MakeCorner(r);
|
|
131
85
|
|
|
132
86
|
if (pe === null) {
|
|
133
|
-
|
|
87
|
+
throw new Error("CornerPathEffectNode: couldn't create path effect");
|
|
134
88
|
}
|
|
135
89
|
|
|
136
|
-
|
|
90
|
+
this.composeAndPush(ctx, pe);
|
|
137
91
|
}
|
|
138
92
|
|
|
139
93
|
}
|
|
@@ -142,8 +96,11 @@ export class SumPathEffectNode extends PathEffectDeclaration {
|
|
|
142
96
|
super(ctx, NodeType.SumPathEffect, null);
|
|
143
97
|
}
|
|
144
98
|
|
|
145
|
-
|
|
146
|
-
|
|
99
|
+
decorate(ctx) {
|
|
100
|
+
this.decorateChildren(ctx);
|
|
101
|
+
const pes = ctx.pathEffects.popAll();
|
|
102
|
+
const pe = composeDeclarations(pes, this.Skia.PathEffect.MakeSum.bind(this.Skia.PathEffect));
|
|
103
|
+
ctx.pathEffects.push(pe);
|
|
147
104
|
}
|
|
148
105
|
|
|
149
106
|
}
|
|
@@ -152,7 +109,7 @@ export class Line2DPathEffectNode extends PathEffectDeclaration {
|
|
|
152
109
|
super(ctx, NodeType.Line2DPathEffect, props);
|
|
153
110
|
}
|
|
154
111
|
|
|
155
|
-
|
|
112
|
+
decorate(ctx) {
|
|
156
113
|
const {
|
|
157
114
|
width,
|
|
158
115
|
matrix
|
|
@@ -160,10 +117,10 @@ export class Line2DPathEffectNode extends PathEffectDeclaration {
|
|
|
160
117
|
const pe = this.Skia.PathEffect.MakeLine2D(width, matrix);
|
|
161
118
|
|
|
162
119
|
if (pe === null) {
|
|
163
|
-
|
|
120
|
+
throw new Error("Line2DPathEffectNode: could not create path effect");
|
|
164
121
|
}
|
|
165
122
|
|
|
166
|
-
|
|
123
|
+
this.composeAndPush(ctx, pe);
|
|
167
124
|
}
|
|
168
125
|
|
|
169
126
|
}
|
|
@@ -172,7 +129,7 @@ export class Path1DPathEffectNode extends PathEffectDeclaration {
|
|
|
172
129
|
super(ctx, NodeType.Path1DPathEffect, props);
|
|
173
130
|
}
|
|
174
131
|
|
|
175
|
-
|
|
132
|
+
decorate(ctx) {
|
|
176
133
|
const {
|
|
177
134
|
advance,
|
|
178
135
|
phase,
|
|
@@ -182,10 +139,10 @@ export class Path1DPathEffectNode extends PathEffectDeclaration {
|
|
|
182
139
|
const pe = this.Skia.PathEffect.MakePath1D(path, advance, phase, Path1DEffectStyle[enumKey(style)]);
|
|
183
140
|
|
|
184
141
|
if (pe === null) {
|
|
185
|
-
|
|
142
|
+
throw new Error("Path1DPathEffectNode: could not create path effect");
|
|
186
143
|
}
|
|
187
144
|
|
|
188
|
-
|
|
145
|
+
this.composeAndPush(ctx, pe);
|
|
189
146
|
}
|
|
190
147
|
|
|
191
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Path1DEffectStyle","JsiDeclarationNode","DeclarationType","NodeType","enumKey","processPath","PathEffectDeclaration","constructor","ctx","type","props","PathEffect","addChild","child","Error","insertChildBefore","before","compose","pe","children","_children","length","Skia","MakeCompose","reduce","acc","materialize","getOptionalChildInstance","index","getMandatoryChildInstance","isPathEffect","DiscretePathEffectNode","DiscretePathEffect","deviation","seed","MakeDiscrete","Path2DPathEffectNode","Path2DPathEffect","matrix","path","MakePath2D","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","MakeSum","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D"],"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":["Path1DEffectStyle","JsiDeclarationNode","DeclarationType","NodeType","enumKey","processPath","composeDeclarations","PathEffectDeclaration","constructor","ctx","type","props","PathEffect","composeAndPush","pe1","save","decorateChildren","pe2","pathEffects","popAllAsOne","restore","pe","Skia","MakeCompose","push","DiscretePathEffectNode","DiscretePathEffect","decorate","length","deviation","seed","MakeDiscrete","Path2DPathEffectNode","Path2DPathEffect","matrix","path","MakePath2D","Error","DashPathEffectNode","DashPathEffect","intervals","phase","MakeDash","CornerPathEffectNode","CornerPathEffect","r","MakeCorner","SumPathEffectNode","SumPathEffect","pes","popAll","MakeSum","bind","Line2DPathEffectNode","Line2DPathEffect","width","MakeLine2D","Path1DPathEffectNode","Path1DPathEffect","advance","style","MakePath1D"],"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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"}
|
|
@@ -1,44 +1,43 @@
|
|
|
1
|
-
import type { SkShader } from "../../../skia/types";
|
|
2
1
|
import type { NodeContext } from "../Node";
|
|
3
2
|
import { JsiDeclarationNode } from "../Node";
|
|
4
|
-
import type { ColorProps, FractalNoiseProps, ImageShaderProps, LinearGradientProps, RadialGradientProps, ShaderProps, SweepGradientProps, TurbulenceProps, TwoPointConicalGradientProps } from "../../types";
|
|
3
|
+
import type { ColorProps, DeclarationContext, FractalNoiseProps, ImageShaderProps, LinearGradientProps, RadialGradientProps, ShaderProps, SweepGradientProps, TurbulenceProps, TwoPointConicalGradientProps } from "../../types";
|
|
5
4
|
import { NodeType } from "../../types";
|
|
6
|
-
export declare abstract class ShaderDeclaration<P> extends JsiDeclarationNode<P
|
|
5
|
+
export declare abstract class ShaderDeclaration<P> extends JsiDeclarationNode<P> {
|
|
7
6
|
constructor(ctx: NodeContext, type: NodeType, props: P);
|
|
8
7
|
}
|
|
9
8
|
export declare class ShaderNode extends ShaderDeclaration<ShaderProps> {
|
|
10
9
|
constructor(ctx: NodeContext, props: ShaderProps);
|
|
11
|
-
|
|
10
|
+
decorate(ctx: DeclarationContext): void;
|
|
12
11
|
}
|
|
13
12
|
export declare class ImageShaderNode extends ShaderDeclaration<ImageShaderProps> {
|
|
14
13
|
constructor(ctx: NodeContext, props: ImageShaderProps);
|
|
15
|
-
|
|
14
|
+
decorate(ctx: DeclarationContext): void;
|
|
16
15
|
}
|
|
17
16
|
export declare class ColorNode extends ShaderDeclaration<ColorProps> {
|
|
18
17
|
constructor(ctx: NodeContext, props: ColorProps);
|
|
19
|
-
|
|
18
|
+
decorate(ctx: DeclarationContext): void;
|
|
20
19
|
}
|
|
21
20
|
export declare class TurbulenceNode extends ShaderDeclaration<TurbulenceProps> {
|
|
22
21
|
constructor(ctx: NodeContext, props: TurbulenceProps);
|
|
23
|
-
|
|
22
|
+
decorate(ctx: DeclarationContext): void;
|
|
24
23
|
}
|
|
25
24
|
export declare class FractalNoiseNode extends ShaderDeclaration<FractalNoiseProps> {
|
|
26
25
|
constructor(ctx: NodeContext, props: FractalNoiseProps);
|
|
27
|
-
|
|
26
|
+
decorate(ctx: DeclarationContext): void;
|
|
28
27
|
}
|
|
29
28
|
export declare class LinearGradientNode extends ShaderDeclaration<LinearGradientProps> {
|
|
30
29
|
constructor(ctx: NodeContext, props: LinearGradientProps);
|
|
31
|
-
|
|
30
|
+
decorate(ctx: DeclarationContext): void;
|
|
32
31
|
}
|
|
33
32
|
export declare class RadialGradientNode extends ShaderDeclaration<RadialGradientProps> {
|
|
34
33
|
constructor(ctx: NodeContext, props: RadialGradientProps);
|
|
35
|
-
|
|
34
|
+
decorate(ctx: DeclarationContext): void;
|
|
36
35
|
}
|
|
37
36
|
export declare class SweepGradientNode extends ShaderDeclaration<SweepGradientProps> {
|
|
38
37
|
constructor(ctx: NodeContext, props: SweepGradientProps);
|
|
39
|
-
|
|
38
|
+
decorate(ctx: DeclarationContext): void;
|
|
40
39
|
}
|
|
41
40
|
export declare class TwoPointConicalGradientNode extends ShaderDeclaration<TwoPointConicalGradientProps> {
|
|
42
41
|
constructor(ctx: NodeContext, props: TwoPointConicalGradientProps);
|
|
43
|
-
|
|
42
|
+
decorate(ctx: DeclarationContext): void;
|
|
44
43
|
}
|
|
@@ -13,7 +13,8 @@ export class ShaderNode extends ShaderDeclaration {
|
|
|
13
13
|
super(ctx, NodeType.Shader, props);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
decorate(ctx) {
|
|
17
|
+
this.decorateChildren(ctx);
|
|
17
18
|
const {
|
|
18
19
|
source,
|
|
19
20
|
uniforms,
|
|
@@ -21,7 +22,8 @@ export class ShaderNode extends ShaderDeclaration {
|
|
|
21
22
|
} = this.props;
|
|
22
23
|
const m3 = this.Skia.Matrix();
|
|
23
24
|
processTransformProps(m3, transform);
|
|
24
|
-
|
|
25
|
+
const shader = source.makeShaderWithChildren(processUniforms(source, uniforms), ctx.shaders.popAll(), m3);
|
|
26
|
+
ctx.shaders.push(shader);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
}
|
|
@@ -30,7 +32,7 @@ export class ImageShaderNode extends ShaderDeclaration {
|
|
|
30
32
|
super(ctx, NodeType.ImageShader, props);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
decorate(ctx) {
|
|
34
36
|
const {
|
|
35
37
|
fit,
|
|
36
38
|
image,
|
|
@@ -58,7 +60,8 @@ export class ImageShaderNode extends ShaderDeclaration {
|
|
|
58
60
|
const lm = this.Skia.Matrix();
|
|
59
61
|
lm.concat(m3);
|
|
60
62
|
processTransformProps(lm, imageShaderProps);
|
|
61
|
-
|
|
63
|
+
const shader = image.makeShaderOptions(TileMode[enumKey(tx)], TileMode[enumKey(ty)], FilterMode[enumKey(fm)], MipmapMode[enumKey(mm)], lm);
|
|
64
|
+
ctx.shaders.push(shader);
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
}
|
|
@@ -67,11 +70,12 @@ export class ColorNode extends ShaderDeclaration {
|
|
|
67
70
|
super(ctx, NodeType.ColorShader, props);
|
|
68
71
|
}
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
decorate(ctx) {
|
|
71
74
|
const {
|
|
72
75
|
color
|
|
73
76
|
} = this.props;
|
|
74
|
-
|
|
77
|
+
const shader = this.Skia.Shader.MakeColor(this.Skia.Color(color));
|
|
78
|
+
ctx.shaders.push(shader);
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
}
|
|
@@ -80,7 +84,7 @@ export class TurbulenceNode extends ShaderDeclaration {
|
|
|
80
84
|
super(ctx, NodeType.Turbulence, props);
|
|
81
85
|
}
|
|
82
86
|
|
|
83
|
-
|
|
87
|
+
decorate(ctx) {
|
|
84
88
|
const {
|
|
85
89
|
freqX,
|
|
86
90
|
freqY,
|
|
@@ -89,7 +93,8 @@ export class TurbulenceNode extends ShaderDeclaration {
|
|
|
89
93
|
tileWidth,
|
|
90
94
|
tileHeight
|
|
91
95
|
} = this.props;
|
|
92
|
-
|
|
96
|
+
const shader = this.Skia.Shader.MakeTurbulence(freqX, freqY, octaves, seed, tileWidth, tileHeight);
|
|
97
|
+
ctx.shaders.push(shader);
|
|
93
98
|
}
|
|
94
99
|
|
|
95
100
|
}
|
|
@@ -98,7 +103,7 @@ export class FractalNoiseNode extends ShaderDeclaration {
|
|
|
98
103
|
super(ctx, NodeType.FractalNoise, props);
|
|
99
104
|
}
|
|
100
105
|
|
|
101
|
-
|
|
106
|
+
decorate(ctx) {
|
|
102
107
|
const {
|
|
103
108
|
freqX,
|
|
104
109
|
freqY,
|
|
@@ -107,7 +112,8 @@ export class FractalNoiseNode extends ShaderDeclaration {
|
|
|
107
112
|
tileWidth,
|
|
108
113
|
tileHeight
|
|
109
114
|
} = this.props;
|
|
110
|
-
|
|
115
|
+
const shader = this.Skia.Shader.MakeFractalNoise(freqX, freqY, octaves, seed, tileWidth, tileHeight);
|
|
116
|
+
ctx.shaders.push(shader);
|
|
111
117
|
}
|
|
112
118
|
|
|
113
119
|
}
|
|
@@ -116,7 +122,7 @@ export class LinearGradientNode extends ShaderDeclaration {
|
|
|
116
122
|
super(ctx, NodeType.LinearGradient, props);
|
|
117
123
|
}
|
|
118
124
|
|
|
119
|
-
|
|
125
|
+
decorate(ctx) {
|
|
120
126
|
const {
|
|
121
127
|
start,
|
|
122
128
|
end
|
|
@@ -128,7 +134,8 @@ export class LinearGradientNode extends ShaderDeclaration {
|
|
|
128
134
|
localMatrix,
|
|
129
135
|
flags
|
|
130
136
|
} = processGradientProps(this.Skia, this.props);
|
|
131
|
-
|
|
137
|
+
const shader = this.Skia.Shader.MakeLinearGradient(start, end, colors, positions !== null && positions !== void 0 ? positions : null, mode, localMatrix, flags);
|
|
138
|
+
ctx.shaders.push(shader);
|
|
132
139
|
}
|
|
133
140
|
|
|
134
141
|
}
|
|
@@ -137,7 +144,7 @@ export class RadialGradientNode extends ShaderDeclaration {
|
|
|
137
144
|
super(ctx, NodeType.RadialGradient, props);
|
|
138
145
|
}
|
|
139
146
|
|
|
140
|
-
|
|
147
|
+
decorate(ctx) {
|
|
141
148
|
const {
|
|
142
149
|
c,
|
|
143
150
|
r
|
|
@@ -149,7 +156,8 @@ export class RadialGradientNode extends ShaderDeclaration {
|
|
|
149
156
|
localMatrix,
|
|
150
157
|
flags
|
|
151
158
|
} = processGradientProps(this.Skia, this.props);
|
|
152
|
-
|
|
159
|
+
const shader = this.Skia.Shader.MakeRadialGradient(c, r, colors, positions, mode, localMatrix, flags);
|
|
160
|
+
ctx.shaders.push(shader);
|
|
153
161
|
}
|
|
154
162
|
|
|
155
163
|
}
|
|
@@ -158,7 +166,7 @@ export class SweepGradientNode extends ShaderDeclaration {
|
|
|
158
166
|
super(ctx, NodeType.SweepGradient, props);
|
|
159
167
|
}
|
|
160
168
|
|
|
161
|
-
|
|
169
|
+
decorate(ctx) {
|
|
162
170
|
const {
|
|
163
171
|
c,
|
|
164
172
|
start,
|
|
@@ -171,7 +179,8 @@ export class SweepGradientNode extends ShaderDeclaration {
|
|
|
171
179
|
localMatrix,
|
|
172
180
|
flags
|
|
173
181
|
} = processGradientProps(this.Skia, this.props);
|
|
174
|
-
|
|
182
|
+
const shader = this.Skia.Shader.MakeSweepGradient(c.x, c.y, colors, positions, mode, localMatrix, flags, start, end);
|
|
183
|
+
ctx.shaders.push(shader);
|
|
175
184
|
}
|
|
176
185
|
|
|
177
186
|
}
|
|
@@ -180,7 +189,7 @@ export class TwoPointConicalGradientNode extends ShaderDeclaration {
|
|
|
180
189
|
super(ctx, NodeType.TwoPointConicalGradient, props);
|
|
181
190
|
}
|
|
182
191
|
|
|
183
|
-
|
|
192
|
+
decorate(ctx) {
|
|
184
193
|
const {
|
|
185
194
|
startR,
|
|
186
195
|
endR,
|
|
@@ -194,7 +203,8 @@ export class TwoPointConicalGradientNode extends ShaderDeclaration {
|
|
|
194
203
|
localMatrix,
|
|
195
204
|
flags
|
|
196
205
|
} = processGradientProps(this.Skia, this.props);
|
|
197
|
-
|
|
206
|
+
const shader = this.Skia.Shader.MakeTwoPointConicalGradient(start, startR, end, endR, colors, positions, mode, localMatrix, flags);
|
|
207
|
+
ctx.shaders.push(shader);
|
|
198
208
|
}
|
|
199
209
|
|
|
200
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["processUniforms","FilterMode","MipmapMode","TileMode","JsiDeclarationNode","DeclarationType","NodeType","enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","ShaderDeclaration","constructor","ctx","type","props","Shader","ShaderNode","materialize","source","uniforms","transform","m3","Skia","Matrix","makeShaderWithChildren","children","filter","child","isShader","map","ImageShaderNode","ImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","rects","x","y","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","ColorNode","ColorShader","color","MakeColor","Color","TurbulenceNode","Turbulence","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeTurbulence","FractalNoiseNode","FractalNoise","MakeFractalNoise","LinearGradientNode","LinearGradient","start","end","colors","positions","mode","localMatrix","flags","MakeLinearGradient","RadialGradientNode","RadialGradient","c","r","MakeRadialGradient","SweepGradientNode","SweepGradient","MakeSweepGradient","TwoPointConicalGradientNode","TwoPointConicalGradient","startR","endR","MakeTwoPointConicalGradient"],"sources":["Shaders.ts"],"sourcesContent":["import {\n processUniforms,\n FilterMode,\n MipmapMode,\n TileMode,\n} from \"../../../skia/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../datatypes\";\n\nexport abstract class ShaderDeclaration<P> extends JsiDeclarationNode<\n P,\n SkShader\n> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.Shader, type, props);\n }\n}\n\nexport class ShaderNode extends ShaderDeclaration<ShaderProps> {\n constructor(ctx: NodeContext, props: ShaderProps) {\n super(ctx, NodeType.Shader, props);\n }\n\n materialize() {\n const { source, uniforms, ...transform } = this.props;\n const m3 = this.Skia.Matrix();\n processTransformProps(m3, transform);\n return source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n this.children()\n .filter(\n (child): child is JsiDeclarationNode<unknown, SkShader> =>\n child instanceof JsiDeclarationNode && child.isShader()\n )\n .map((child) => child.materialize()),\n m3\n );\n }\n}\n\nexport class ImageShaderNode extends ShaderDeclaration<ImageShaderProps> {\n constructor(ctx: NodeContext, props: ImageShaderProps) {\n super(ctx, NodeType.ImageShader, props);\n }\n\n materialize() {\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = this.props;\n const rct = getRect(this.Skia, imageShaderProps);\n const m3 = this.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = this.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n return image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n }\n}\n\nexport class ColorNode extends ShaderDeclaration<ColorProps> {\n constructor(ctx: NodeContext, props: ColorProps) {\n super(ctx, NodeType.ColorShader, props);\n }\n\n materialize() {\n const { color } = this.props;\n return this.Skia.Shader.MakeColor(this.Skia.Color(color));\n }\n}\n\nexport class TurbulenceNode extends ShaderDeclaration<TurbulenceProps> {\n constructor(ctx: NodeContext, props: TurbulenceProps) {\n super(ctx, NodeType.Turbulence, props);\n }\n\n materialize() {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n return this.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n }\n}\n\nexport class FractalNoiseNode extends ShaderDeclaration<FractalNoiseProps> {\n constructor(ctx: NodeContext, props: FractalNoiseProps) {\n super(ctx, NodeType.FractalNoise, props);\n }\n\n materialize() {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n return this.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n }\n}\n\nexport class LinearGradientNode extends ShaderDeclaration<LinearGradientProps> {\n constructor(ctx: NodeContext, props: LinearGradientProps) {\n super(ctx, NodeType.LinearGradient, props);\n }\n\n materialize() {\n const { start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n return this.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n }\n}\n\nexport class RadialGradientNode extends ShaderDeclaration<RadialGradientProps> {\n constructor(ctx: NodeContext, props: RadialGradientProps) {\n super(ctx, NodeType.RadialGradient, props);\n }\n\n materialize() {\n const { c, r } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n return this.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n }\n}\n\nexport class SweepGradientNode extends ShaderDeclaration<SweepGradientProps> {\n constructor(ctx: NodeContext, props: SweepGradientProps) {\n super(ctx, NodeType.SweepGradient, props);\n }\n\n materialize() {\n const { c, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n return this.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n }\n}\n\nexport class TwoPointConicalGradientNode extends ShaderDeclaration<TwoPointConicalGradientProps> {\n constructor(ctx: NodeContext, props: TwoPointConicalGradientProps) {\n super(ctx, NodeType.TwoPointConicalGradient, props);\n }\n\n materialize() {\n const { startR, endR, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n return this.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["processUniforms","FilterMode","MipmapMode","TileMode","JsiDeclarationNode","DeclarationType","NodeType","enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","ShaderDeclaration","constructor","ctx","type","props","Shader","ShaderNode","decorate","decorateChildren","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","popAll","push","ImageShaderNode","ImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","rects","x","y","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","ColorNode","ColorShader","color","MakeColor","Color","TurbulenceNode","Turbulence","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeTurbulence","FractalNoiseNode","FractalNoise","MakeFractalNoise","LinearGradientNode","LinearGradient","start","end","colors","positions","mode","localMatrix","flags","MakeLinearGradient","RadialGradientNode","RadialGradient","c","r","MakeRadialGradient","SweepGradientNode","SweepGradient","MakeSweepGradient","TwoPointConicalGradientNode","TwoPointConicalGradient","startR","endR","MakeTwoPointConicalGradient"],"sources":["Shaders.ts"],"sourcesContent":["import {\n processUniforms,\n FilterMode,\n MipmapMode,\n TileMode,\n} from \"../../../skia/types\";\nimport type { NodeContext } from \"../Node\";\nimport { JsiDeclarationNode } from \"../Node\";\nimport type {\n ColorProps,\n DeclarationContext,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../types\";\nimport { DeclarationType, NodeType } from \"../../types\";\nimport {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../datatypes\";\n\nexport abstract class ShaderDeclaration<P> extends JsiDeclarationNode<P> {\n constructor(ctx: NodeContext, type: NodeType, props: P) {\n super(ctx, DeclarationType.Shader, type, props);\n }\n}\n\nexport class ShaderNode extends ShaderDeclaration<ShaderProps> {\n constructor(ctx: NodeContext, props: ShaderProps) {\n super(ctx, NodeType.Shader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n this.decorateChildren(ctx);\n const { source, uniforms, ...transform } = this.props;\n const m3 = this.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.popAll(),\n m3\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ImageShaderNode extends ShaderDeclaration<ImageShaderProps> {\n constructor(ctx: NodeContext, props: ImageShaderProps) {\n super(ctx, NodeType.ImageShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = this.props;\n const rct = getRect(this.Skia, imageShaderProps);\n const m3 = this.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = this.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n const shader = image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class ColorNode extends ShaderDeclaration<ColorProps> {\n constructor(ctx: NodeContext, props: ColorProps) {\n super(ctx, NodeType.ColorShader, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { color } = this.props;\n const shader = this.Skia.Shader.MakeColor(this.Skia.Color(color));\n ctx.shaders.push(shader);\n }\n}\n\nexport class TurbulenceNode extends ShaderDeclaration<TurbulenceProps> {\n constructor(ctx: NodeContext, props: TurbulenceProps) {\n super(ctx, NodeType.Turbulence, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class FractalNoiseNode extends ShaderDeclaration<FractalNoiseProps> {\n constructor(ctx: NodeContext, props: FractalNoiseProps) {\n super(ctx, NodeType.FractalNoise, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = this.props;\n const shader = this.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class LinearGradientNode extends ShaderDeclaration<LinearGradientProps> {\n constructor(ctx: NodeContext, props: LinearGradientProps) {\n super(ctx, NodeType.LinearGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class RadialGradientNode extends ShaderDeclaration<RadialGradientProps> {\n constructor(ctx: NodeContext, props: RadialGradientProps) {\n super(ctx, NodeType.RadialGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, r } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class SweepGradientNode extends ShaderDeclaration<SweepGradientProps> {\n constructor(ctx: NodeContext, props: SweepGradientProps) {\n super(ctx, NodeType.SweepGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { c, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n }\n}\n\nexport class TwoPointConicalGradientNode extends ShaderDeclaration<TwoPointConicalGradientProps> {\n constructor(ctx: NodeContext, props: TwoPointConicalGradientProps) {\n super(ctx, NodeType.TwoPointConicalGradient, props);\n }\n\n decorate(ctx: DeclarationContext) {\n const { startR, endR, start, end } = this.props;\n const { colors, positions, mode, localMatrix, flags } =\n processGradientProps(this.Skia, this.props);\n const shader = this.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { SkShader, SkPaint, SkImageFilter, SkMaskFilter, SkPathEffect, Skia, SkColorFilter } from "../../skia/types";
|
|
2
|
+
declare type Composer<T> = (outer: T, inner: T) => T;
|
|
3
|
+
export declare const composeDeclarations: <T>(filters: T[], composer: Composer<T>) => T;
|
|
4
|
+
declare class Declaration<T> {
|
|
5
|
+
private composer?;
|
|
6
|
+
private decls;
|
|
7
|
+
private indexes;
|
|
8
|
+
constructor(composer?: Composer<T> | undefined);
|
|
9
|
+
private get index();
|
|
10
|
+
save(): void;
|
|
11
|
+
restore(): void;
|
|
12
|
+
pop(): T | undefined;
|
|
13
|
+
push(decl: T): void;
|
|
14
|
+
popAll(): T[];
|
|
15
|
+
popAllAsOne(): T;
|
|
16
|
+
}
|
|
17
|
+
export declare class DeclarationContext {
|
|
18
|
+
private Skia;
|
|
19
|
+
readonly paints: Declaration<SkPaint>;
|
|
20
|
+
readonly maskFilters: Declaration<SkMaskFilter>;
|
|
21
|
+
readonly shaders: Declaration<SkShader>;
|
|
22
|
+
readonly pathEffects: Declaration<SkPathEffect>;
|
|
23
|
+
readonly imageFilters: Declaration<SkImageFilter>;
|
|
24
|
+
readonly colorFilters: Declaration<SkColorFilter>;
|
|
25
|
+
constructor(Skia: Skia);
|
|
26
|
+
save(): void;
|
|
27
|
+
restore(): void;
|
|
28
|
+
}
|
|
29
|
+
export {};
|