@shopify/react-native-skia 1.8.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- package/cpp/api/JsiSkPaint.h +8 -1
- package/lib/commonjs/dom/types/Common.d.ts +6 -4
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/dom/types/ImageFilters.d.ts +1 -1
- package/lib/commonjs/dom/types/ImageFilters.js.map +1 -1
- package/lib/commonjs/dom/types/Node.d.ts +0 -2
- package/lib/commonjs/dom/types/Node.js.map +1 -1
- package/lib/commonjs/external/reanimated/index.d.ts +0 -1
- package/lib/commonjs/external/reanimated/index.js +0 -11
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js +5 -43
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/skia/types/Paint/Paint.d.ts +1 -0
- package/lib/commonjs/skia/types/Paint/Paint.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/commonjs/skia/web/JsiSkPaint.js +3 -0
- package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +3 -2
- package/lib/commonjs/sksg/Container.js +32 -26
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/HostConfig.d.ts +2 -2
- package/lib/commonjs/sksg/HostConfig.js +7 -25
- package/lib/commonjs/sksg/HostConfig.js.map +1 -1
- package/lib/commonjs/sksg/Node.d.ts +19 -0
- package/lib/commonjs/sksg/Node.js +78 -0
- package/lib/commonjs/sksg/Node.js.map +1 -0
- package/lib/commonjs/sksg/Reconciler.d.ts +1 -1
- package/lib/commonjs/sksg/Recorder/Core.d.ts +79 -0
- package/lib/commonjs/sksg/Recorder/Core.js +110 -0
- package/lib/commonjs/sksg/Recorder/Core.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +18 -0
- package/lib/commonjs/sksg/Recorder/DrawingContext.js +105 -0
- package/lib/commonjs/sksg/Recorder/DrawingContext.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Player.d.ts +3 -0
- package/lib/commonjs/sksg/Recorder/Player.js +127 -0
- package/lib/commonjs/sksg/Recorder/Player.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Recorder.d.ts +50 -0
- package/lib/commonjs/sksg/Recorder/Recorder.js +288 -0
- package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Recording.d.ts +7 -0
- package/lib/commonjs/sksg/Recorder/Recording.js +12 -0
- package/lib/commonjs/sksg/Recorder/Recording.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Visitor.d.ts +5 -0
- package/lib/commonjs/sksg/Recorder/Visitor.js +293 -0
- package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/Box.d.ts +13 -0
- package/lib/commonjs/sksg/Recorder/commands/Box.js +71 -0
- package/lib/commonjs/sksg/Recorder/commands/Box.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +3 -0
- package/lib/commonjs/sksg/Recorder/commands/CTM.js +79 -0
- package/lib/commonjs/sksg/Recorder/commands/CTM.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
- package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js +76 -0
- package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/Drawing.d.ts +24 -0
- package/lib/commonjs/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
- package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
- package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +183 -0
- package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +4 -0
- package/lib/commonjs/sksg/Recorder/commands/Paint.js +70 -0
- package/lib/commonjs/sksg/Recorder/commands/Paint.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +6 -0
- package/lib/commonjs/sksg/Recorder/commands/PathEffects.js +137 -0
- package/lib/commonjs/sksg/Recorder/commands/PathEffects.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +5 -0
- package/lib/commonjs/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +58 -15
- package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -0
- package/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
- package/lib/commonjs/sksg/{nodes/utils.js → utils.js} +12 -2
- package/lib/commonjs/sksg/utils.js.map +1 -0
- package/lib/module/dom/types/Common.d.ts +6 -4
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/dom/types/ImageFilters.d.ts +1 -1
- package/lib/module/dom/types/ImageFilters.js.map +1 -1
- package/lib/module/dom/types/Node.d.ts +0 -2
- package/lib/module/dom/types/Node.js.map +1 -1
- package/lib/module/external/reanimated/index.d.ts +0 -1
- package/lib/module/external/reanimated/index.js +0 -1
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
- package/lib/module/external/reanimated/renderHelpers.js +4 -42
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/skia/types/Paint/Paint.d.ts +1 -0
- package/lib/module/skia/types/Paint/Paint.js.map +1 -1
- package/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/module/skia/web/JsiSkPaint.js +3 -0
- package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +3 -2
- package/lib/module/sksg/Container.js +30 -24
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/HostConfig.d.ts +2 -2
- package/lib/module/sksg/HostConfig.js +7 -25
- package/lib/module/sksg/HostConfig.js.map +1 -1
- package/lib/module/sksg/Node.d.ts +19 -0
- package/lib/module/sksg/Node.js +67 -0
- package/lib/module/sksg/Node.js.map +1 -0
- package/lib/module/sksg/Reconciler.d.ts +1 -1
- package/lib/module/sksg/Recorder/Core.d.ts +79 -0
- package/lib/module/sksg/Recorder/Core.js +101 -0
- package/lib/module/sksg/Recorder/Core.js.map +1 -0
- package/lib/module/sksg/Recorder/DrawingContext.d.ts +18 -0
- package/lib/module/sksg/Recorder/DrawingContext.js +98 -0
- package/lib/module/sksg/Recorder/DrawingContext.js.map +1 -0
- package/lib/module/sksg/Recorder/Player.d.ts +3 -0
- package/lib/module/sksg/Recorder/Player.js +120 -0
- package/lib/module/sksg/Recorder/Player.js.map +1 -0
- package/lib/module/sksg/Recorder/Recorder.d.ts +50 -0
- package/lib/module/sksg/Recorder/Recorder.js +281 -0
- package/lib/module/sksg/Recorder/Recorder.js.map +1 -0
- package/lib/module/sksg/Recorder/Recording.d.ts +7 -0
- package/lib/module/sksg/Recorder/Recording.js +5 -0
- package/lib/module/sksg/Recorder/Recording.js.map +1 -0
- package/lib/module/sksg/Recorder/Visitor.d.ts +5 -0
- package/lib/module/sksg/Recorder/Visitor.js +285 -0
- package/lib/module/sksg/Recorder/Visitor.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/Box.d.ts +13 -0
- package/lib/module/sksg/Recorder/commands/Box.js +63 -0
- package/lib/module/sksg/Recorder/commands/Box.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/CTM.d.ts +3 -0
- package/lib/module/sksg/Recorder/commands/CTM.js +72 -0
- package/lib/module/sksg/Recorder/commands/CTM.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
- package/lib/module/sksg/Recorder/commands/ColorFilters.js +67 -0
- package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/Drawing.d.ts +24 -0
- package/lib/module/sksg/{nodes/drawings.js → Recorder/commands/Drawing.js} +5 -5
- package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
- package/lib/module/sksg/{nodes/imageFilters.js → Recorder/commands/ImageFilters.js} +87 -95
- package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/Paint.d.ts +4 -0
- package/lib/module/sksg/Recorder/commands/Paint.js +62 -0
- package/lib/module/sksg/Recorder/commands/Paint.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/PathEffects.d.ts +6 -0
- package/lib/module/sksg/Recorder/commands/PathEffects.js +128 -0
- package/lib/module/sksg/Recorder/commands/PathEffects.js.map +1 -0
- package/lib/module/sksg/Recorder/commands/Shaders.d.ts +5 -0
- package/lib/module/sksg/{nodes/shaders.js → Recorder/commands/Shaders.js} +63 -13
- package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -0
- package/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
- package/lib/module/sksg/{nodes/utils.js → utils.js} +10 -1
- package/lib/module/sksg/utils.js.map +1 -0
- package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +4 -0
- package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +1 -3
- package/lib/typescript/lib/commonjs/sksg/Node.d.ts +14 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +5 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +17 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Player.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +45 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +5 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Visitor.d.ts +27 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Box.d.ts +3 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/CTM.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ColorFilters.d.ts +4 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/ImageFilters.d.ts +6 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Paint.d.ts +14 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/PathEffects.d.ts +4 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/commands/Shaders.d.ts +3 -0
- package/lib/typescript/lib/commonjs/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
- package/lib/typescript/lib/module/external/reanimated/index.d.ts +0 -1
- package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -1
- package/lib/typescript/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Container.d.ts +4 -0
- package/lib/typescript/lib/module/sksg/HostConfig.d.ts +1 -3
- package/lib/typescript/lib/module/sksg/Node.d.ts +13 -0
- package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +4 -0
- package/lib/typescript/lib/module/sksg/Recorder/DrawingContext.d.ts +16 -0
- package/lib/typescript/lib/module/sksg/Recorder/Player.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +44 -0
- package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +4 -0
- package/lib/typescript/lib/module/sksg/Recorder/Visitor.d.ts +26 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/Box.d.ts +2 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/CTM.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/ColorFilters.d.ts +3 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/ImageFilters.d.ts +5 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/Paint.d.ts +13 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/PathEffects.d.ts +3 -0
- package/lib/typescript/lib/module/sksg/Recorder/commands/Shaders.d.ts +2 -0
- package/lib/typescript/lib/module/sksg/{nodes/utils.d.ts → utils.d.ts} +1 -0
- package/lib/typescript/src/dom/types/Common.d.ts +6 -4
- package/lib/typescript/src/dom/types/ImageFilters.d.ts +1 -1
- package/lib/typescript/src/dom/types/Node.d.ts +0 -2
- package/lib/typescript/src/external/reanimated/index.d.ts +0 -1
- package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -1
- package/lib/typescript/src/skia/types/Paint/Paint.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/typescript/src/sksg/Container.d.ts +3 -2
- package/lib/typescript/src/sksg/HostConfig.d.ts +2 -2
- package/lib/typescript/src/sksg/Node.d.ts +19 -0
- package/lib/typescript/src/sksg/Reconciler.d.ts +1 -1
- package/lib/typescript/src/sksg/Recorder/Core.d.ts +79 -0
- package/lib/typescript/src/sksg/Recorder/DrawingContext.d.ts +18 -0
- package/lib/typescript/src/sksg/Recorder/Player.d.ts +3 -0
- package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +50 -0
- package/lib/typescript/src/sksg/Recorder/Recording.d.ts +7 -0
- package/lib/typescript/src/sksg/Recorder/Visitor.d.ts +5 -0
- package/lib/typescript/src/sksg/Recorder/commands/Box.d.ts +13 -0
- package/lib/typescript/src/sksg/Recorder/commands/CTM.d.ts +3 -0
- package/lib/typescript/src/sksg/Recorder/commands/ColorFilters.d.ts +6 -0
- package/lib/typescript/src/sksg/Recorder/commands/Drawing.d.ts +24 -0
- package/lib/typescript/src/sksg/Recorder/commands/ImageFilters.d.ts +12 -0
- package/lib/typescript/src/sksg/Recorder/commands/Paint.d.ts +4 -0
- package/lib/typescript/src/sksg/Recorder/commands/PathEffects.d.ts +6 -0
- package/lib/typescript/src/sksg/Recorder/commands/Shaders.d.ts +5 -0
- package/lib/typescript/src/sksg/{nodes/utils.d.ts → utils.d.ts} +3 -0
- package/package.json +1 -1
- package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
- package/src/dom/types/Common.ts +7 -5
- package/src/dom/types/ImageFilters.ts +2 -1
- package/src/dom/types/Node.ts +0 -4
- package/src/external/reanimated/index.ts +0 -1
- package/src/external/reanimated/renderHelpers.ts +4 -44
- package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +15 -0
- package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +23 -2
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +91 -2
- package/src/renderer/__tests__/setup.tsx +1 -1
- package/src/skia/types/Paint/Paint.ts +2 -0
- package/src/skia/web/JsiSkPaint.ts +4 -0
- package/src/sksg/Container.ts +35 -29
- package/src/sksg/HostConfig.ts +5 -50
- package/src/sksg/Node.ts +105 -0
- package/src/sksg/Recorder/Core.ts +171 -0
- package/src/sksg/Recorder/DrawingContext.ts +130 -0
- package/src/sksg/Recorder/Player.ts +160 -0
- package/src/sksg/Recorder/Recorder.ts +259 -0
- package/src/sksg/Recorder/Recording.ts +13 -0
- package/src/sksg/Recorder/Visitor.ts +324 -0
- package/src/sksg/Recorder/commands/Box.ts +63 -0
- package/src/sksg/Recorder/commands/CTM.ts +72 -0
- package/src/sksg/Recorder/commands/ColorFilters.ts +87 -0
- package/src/sksg/{nodes/drawings.ts → Recorder/commands/Drawing.ts} +29 -65
- package/src/sksg/Recorder/commands/ImageFilters.ts +255 -0
- package/src/sksg/Recorder/commands/Paint.ts +77 -0
- package/src/sksg/Recorder/commands/PathEffects.ts +169 -0
- package/src/sksg/{nodes/shaders.ts → Recorder/commands/Shaders.ts} +100 -26
- package/src/sksg/{nodes/utils.ts → utils.ts} +14 -1
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +0 -24
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +0 -1
- package/lib/commonjs/sksg/DeclarationContext.d.ts +0 -56
- package/lib/commonjs/sksg/DeclarationContext.js +0 -77
- package/lib/commonjs/sksg/DeclarationContext.js.map +0 -1
- package/lib/commonjs/sksg/DrawingContext.d.ts +0 -13
- package/lib/commonjs/sksg/DrawingContext.js +0 -172
- package/lib/commonjs/sksg/DrawingContext.js.map +0 -1
- package/lib/commonjs/sksg/__tests__/Declarations.spec.d.ts +0 -1
- package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +0 -57
- package/lib/commonjs/sksg/nodes/Node.d.ts +0 -7
- package/lib/commonjs/sksg/nodes/Node.js +0 -6
- package/lib/commonjs/sksg/nodes/Node.js.map +0 -1
- package/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -10
- package/lib/commonjs/sksg/nodes/colorFilters.js +0 -79
- package/lib/commonjs/sksg/nodes/colorFilters.js.map +0 -1
- package/lib/commonjs/sksg/nodes/context.d.ts +0 -3
- package/lib/commonjs/sksg/nodes/context.js +0 -394
- package/lib/commonjs/sksg/nodes/context.js.map +0 -1
- package/lib/commonjs/sksg/nodes/drawings.d.ts +0 -30
- package/lib/commonjs/sksg/nodes/drawings.js.map +0 -1
- package/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -17
- package/lib/commonjs/sksg/nodes/imageFilters.js +0 -197
- package/lib/commonjs/sksg/nodes/imageFilters.js.map +0 -1
- package/lib/commonjs/sksg/nodes/index.d.ts +0 -3
- package/lib/commonjs/sksg/nodes/index.js +0 -39
- package/lib/commonjs/sksg/nodes/index.js.map +0 -1
- package/lib/commonjs/sksg/nodes/paint.d.ts +0 -3
- package/lib/commonjs/sksg/nodes/paint.js +0 -81
- package/lib/commonjs/sksg/nodes/paint.js.map +0 -1
- package/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -11
- package/lib/commonjs/sksg/nodes/pathEffects.js +0 -111
- package/lib/commonjs/sksg/nodes/pathEffects.js.map +0 -1
- package/lib/commonjs/sksg/nodes/shaders.d.ts +0 -11
- package/lib/commonjs/sksg/nodes/shaders.js.map +0 -1
- package/lib/commonjs/sksg/nodes/utils.js.map +0 -1
- package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
- package/lib/module/external/reanimated/useDerivedValueOnJS.js +0 -16
- package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +0 -1
- package/lib/module/sksg/DeclarationContext.d.ts +0 -56
- package/lib/module/sksg/DeclarationContext.js +0 -69
- package/lib/module/sksg/DeclarationContext.js.map +0 -1
- package/lib/module/sksg/DrawingContext.d.ts +0 -13
- package/lib/module/sksg/DrawingContext.js +0 -165
- package/lib/module/sksg/DrawingContext.js.map +0 -1
- package/lib/module/sksg/__tests__/Declarations.spec.d.ts +0 -1
- package/lib/module/sksg/__tests__/MockDeclaration.d.ts +0 -57
- package/lib/module/sksg/nodes/Node.d.ts +0 -7
- package/lib/module/sksg/nodes/Node.js +0 -2
- package/lib/module/sksg/nodes/Node.js.map +0 -1
- package/lib/module/sksg/nodes/colorFilters.d.ts +0 -10
- package/lib/module/sksg/nodes/colorFilters.js +0 -66
- package/lib/module/sksg/nodes/colorFilters.js.map +0 -1
- package/lib/module/sksg/nodes/context.d.ts +0 -3
- package/lib/module/sksg/nodes/context.js +0 -387
- package/lib/module/sksg/nodes/context.js.map +0 -1
- package/lib/module/sksg/nodes/drawings.d.ts +0 -30
- package/lib/module/sksg/nodes/drawings.js.map +0 -1
- package/lib/module/sksg/nodes/imageFilters.d.ts +0 -17
- package/lib/module/sksg/nodes/imageFilters.js.map +0 -1
- package/lib/module/sksg/nodes/index.d.ts +0 -3
- package/lib/module/sksg/nodes/index.js +0 -4
- package/lib/module/sksg/nodes/index.js.map +0 -1
- package/lib/module/sksg/nodes/paint.d.ts +0 -3
- package/lib/module/sksg/nodes/paint.js +0 -74
- package/lib/module/sksg/nodes/paint.js.map +0 -1
- package/lib/module/sksg/nodes/pathEffects.d.ts +0 -11
- package/lib/module/sksg/nodes/pathEffects.js +0 -97
- package/lib/module/sksg/nodes/pathEffects.js.map +0 -1
- package/lib/module/sksg/nodes/shaders.d.ts +0 -11
- package/lib/module/sksg/nodes/shaders.js.map +0 -1
- package/lib/module/sksg/nodes/utils.js.map +0 -1
- package/lib/typescript/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +0 -2
- package/lib/typescript/lib/commonjs/sksg/DeclarationContext.d.ts +0 -53
- package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +0 -22
- package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +0 -1
- package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +0 -8
- package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +0 -2
- package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +0 -12
- package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +0 -1
- package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +0 -2
- package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +0 -9
- package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +0 -10
- package/lib/typescript/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
- package/lib/typescript/lib/module/sksg/DeclarationContext.d.ts +0 -52
- package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +0 -21
- package/lib/typescript/lib/module/sksg/nodes/Node.d.ts +0 -1
- package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +0 -7
- package/lib/typescript/lib/module/sksg/nodes/context.d.ts +0 -1
- package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +0 -11
- package/lib/typescript/lib/module/sksg/nodes/index.d.ts +0 -3
- package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +0 -1
- package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +0 -8
- package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +0 -9
- package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +0 -1
- package/lib/typescript/src/sksg/DeclarationContext.d.ts +0 -56
- package/lib/typescript/src/sksg/DrawingContext.d.ts +0 -13
- package/lib/typescript/src/sksg/__tests__/Declarations.spec.d.ts +0 -1
- package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +0 -57
- package/lib/typescript/src/sksg/nodes/Node.d.ts +0 -7
- package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +0 -10
- package/lib/typescript/src/sksg/nodes/context.d.ts +0 -3
- package/lib/typescript/src/sksg/nodes/drawings.d.ts +0 -30
- package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +0 -17
- package/lib/typescript/src/sksg/nodes/index.d.ts +0 -3
- package/lib/typescript/src/sksg/nodes/paint.d.ts +0 -3
- package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +0 -11
- package/lib/typescript/src/sksg/nodes/shaders.d.ts +0 -11
- package/src/external/reanimated/useDerivedValueOnJS.ts +0 -20
- package/src/sksg/DeclarationContext.ts +0 -85
- package/src/sksg/DrawingContext.ts +0 -226
- package/src/sksg/__tests__/Declarations.spec.tsx +0 -235
- package/src/sksg/__tests__/MockDeclaration.ts +0 -138
- package/src/sksg/nodes/Node.ts +0 -8
- package/src/sksg/nodes/colorFilters.ts +0 -79
- package/src/sksg/nodes/context.ts +0 -412
- package/src/sksg/nodes/imageFilters.ts +0 -235
- package/src/sksg/nodes/index.ts +0 -3
- package/src/sksg/nodes/paint.ts +0 -75
- package/src/sksg/nodes/pathEffects.ts +0 -118
- /package/lib/typescript/lib/commonjs/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
- /package/lib/typescript/lib/module/sksg/{nodes/drawings.d.ts → Recorder/commands/Drawing.d.ts} +0 -0
@@ -1,412 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
2
|
-
import { NodeType } from "../../dom/types";
|
3
|
-
import type { DrawingNodeProps } from "../../dom/types";
|
4
|
-
import type { DrawingContext } from "../DrawingContext";
|
5
|
-
import type { SkImageFilter } from "../../skia/types";
|
6
|
-
import {
|
7
|
-
createDeclarationContext,
|
8
|
-
type DeclarationContext,
|
9
|
-
} from "../DeclarationContext";
|
10
|
-
|
11
|
-
import type { Node } from "./Node";
|
12
|
-
import {
|
13
|
-
drawAtlas,
|
14
|
-
drawBox,
|
15
|
-
drawCircle,
|
16
|
-
drawDiffRect,
|
17
|
-
drawFill,
|
18
|
-
drawGlyphs,
|
19
|
-
drawImage,
|
20
|
-
drawImageSVG,
|
21
|
-
drawLine,
|
22
|
-
drawOval,
|
23
|
-
drawParagraph,
|
24
|
-
drawPatch,
|
25
|
-
drawPath,
|
26
|
-
drawPicture,
|
27
|
-
drawPoints,
|
28
|
-
drawRect,
|
29
|
-
drawRRect,
|
30
|
-
drawText,
|
31
|
-
drawTextBlob,
|
32
|
-
drawTextPath,
|
33
|
-
drawVertices,
|
34
|
-
} from "./drawings";
|
35
|
-
import {
|
36
|
-
composeColorFilters,
|
37
|
-
declareLerpColorFilter,
|
38
|
-
makeBlendColorFilter,
|
39
|
-
makeLinearToSRGBGammaColorFilter,
|
40
|
-
makeLumaColorFilter,
|
41
|
-
makeMatrixColorFilter,
|
42
|
-
makeSRGBToLinearGammaColorFilter,
|
43
|
-
} from "./colorFilters";
|
44
|
-
import {
|
45
|
-
composeImageFilters,
|
46
|
-
declareBlend,
|
47
|
-
declareBlendImageFilter,
|
48
|
-
declareBlurMaskFilter,
|
49
|
-
declareDisplacementMapImageFilter,
|
50
|
-
makeBlurImageFilter,
|
51
|
-
makeDropShadowImageFilter,
|
52
|
-
makeMorphologyImageFilter,
|
53
|
-
makeOffsetImageFilter,
|
54
|
-
makeRuntimeShaderImageFilter,
|
55
|
-
} from "./imageFilters";
|
56
|
-
import { materialize } from "./utils";
|
57
|
-
import {
|
58
|
-
declareColorShader,
|
59
|
-
declareFractalNoiseShader,
|
60
|
-
declareImageShader,
|
61
|
-
declareLinearGradientShader,
|
62
|
-
declareRadialGradientShader,
|
63
|
-
declareShader,
|
64
|
-
declareSweepGradientShader,
|
65
|
-
declareTurbulenceShader,
|
66
|
-
declareTwoPointConicalGradientShader,
|
67
|
-
} from "./shaders";
|
68
|
-
import { declarePaint } from "./paint";
|
69
|
-
import {
|
70
|
-
composePathEffects,
|
71
|
-
declareSumPathEffect,
|
72
|
-
makeCornerPathEffect,
|
73
|
-
makeDashPathEffect,
|
74
|
-
makeDiscretePathEffect,
|
75
|
-
makeLine2DPathEffect,
|
76
|
-
makePath1DPathEffect,
|
77
|
-
makePath2DPathEffect,
|
78
|
-
} from "./pathEffects";
|
79
|
-
|
80
|
-
function processDeclarations(ctx: DeclarationContext, node: Node<any>) {
|
81
|
-
"worklet";
|
82
|
-
const processChildren = () =>
|
83
|
-
node.children.forEach((child) => processDeclarations(ctx, child));
|
84
|
-
const { type } = node;
|
85
|
-
const props = materialize(node.props);
|
86
|
-
switch (type) {
|
87
|
-
// Mask Filter
|
88
|
-
case NodeType.BlurMaskFilter: {
|
89
|
-
declareBlurMaskFilter(ctx, props);
|
90
|
-
break;
|
91
|
-
}
|
92
|
-
// Color Filters
|
93
|
-
case NodeType.LerpColorFilter: {
|
94
|
-
processChildren();
|
95
|
-
declareLerpColorFilter(ctx, props);
|
96
|
-
break;
|
97
|
-
}
|
98
|
-
case NodeType.Blend: {
|
99
|
-
processChildren();
|
100
|
-
declareBlend(ctx, props);
|
101
|
-
break;
|
102
|
-
}
|
103
|
-
case NodeType.BlendColorFilter: {
|
104
|
-
const cf = makeBlendColorFilter(ctx, props);
|
105
|
-
composeColorFilters(ctx, cf, processChildren);
|
106
|
-
break;
|
107
|
-
}
|
108
|
-
case NodeType.SRGBToLinearGammaColorFilter: {
|
109
|
-
const cf = makeSRGBToLinearGammaColorFilter(ctx);
|
110
|
-
composeColorFilters(ctx, cf, processChildren);
|
111
|
-
break;
|
112
|
-
}
|
113
|
-
case NodeType.LinearToSRGBGammaColorFilter: {
|
114
|
-
const cf = makeLinearToSRGBGammaColorFilter(ctx);
|
115
|
-
composeColorFilters(ctx, cf, processChildren);
|
116
|
-
break;
|
117
|
-
}
|
118
|
-
case NodeType.MatrixColorFilter: {
|
119
|
-
const cf = makeMatrixColorFilter(ctx, props);
|
120
|
-
composeColorFilters(ctx, cf, processChildren);
|
121
|
-
break;
|
122
|
-
}
|
123
|
-
case NodeType.LumaColorFilter: {
|
124
|
-
const cf = makeLumaColorFilter(ctx);
|
125
|
-
composeColorFilters(ctx, cf, processChildren);
|
126
|
-
break;
|
127
|
-
}
|
128
|
-
// Shaders
|
129
|
-
case NodeType.Shader: {
|
130
|
-
processChildren();
|
131
|
-
declareShader(ctx, props);
|
132
|
-
break;
|
133
|
-
}
|
134
|
-
case NodeType.ImageShader: {
|
135
|
-
declareImageShader(ctx, props);
|
136
|
-
break;
|
137
|
-
}
|
138
|
-
case NodeType.ColorShader: {
|
139
|
-
declareColorShader(ctx, props);
|
140
|
-
break;
|
141
|
-
}
|
142
|
-
case NodeType.Turbulence: {
|
143
|
-
declareTurbulenceShader(ctx, props);
|
144
|
-
break;
|
145
|
-
}
|
146
|
-
case NodeType.FractalNoise: {
|
147
|
-
declareFractalNoiseShader(ctx, props);
|
148
|
-
break;
|
149
|
-
}
|
150
|
-
case NodeType.LinearGradient: {
|
151
|
-
declareLinearGradientShader(ctx, props);
|
152
|
-
break;
|
153
|
-
}
|
154
|
-
case NodeType.RadialGradient: {
|
155
|
-
declareRadialGradientShader(ctx, props);
|
156
|
-
break;
|
157
|
-
}
|
158
|
-
case NodeType.SweepGradient: {
|
159
|
-
declareSweepGradientShader(ctx, props);
|
160
|
-
break;
|
161
|
-
}
|
162
|
-
case NodeType.TwoPointConicalGradient: {
|
163
|
-
declareTwoPointConicalGradientShader(ctx, props);
|
164
|
-
break;
|
165
|
-
}
|
166
|
-
// Image Filters
|
167
|
-
case NodeType.BlurImageFilter: {
|
168
|
-
const imgf = makeBlurImageFilter(ctx, props);
|
169
|
-
composeImageFilters(ctx, imgf, processChildren);
|
170
|
-
break;
|
171
|
-
}
|
172
|
-
case NodeType.OffsetImageFilter: {
|
173
|
-
const imgf = makeOffsetImageFilter(ctx, props);
|
174
|
-
composeImageFilters(ctx, imgf, processChildren);
|
175
|
-
break;
|
176
|
-
}
|
177
|
-
case NodeType.DisplacementMapImageFilter: {
|
178
|
-
processChildren();
|
179
|
-
declareDisplacementMapImageFilter(ctx, props);
|
180
|
-
break;
|
181
|
-
}
|
182
|
-
case NodeType.DropShadowImageFilter: {
|
183
|
-
const imgf = makeDropShadowImageFilter(ctx, props);
|
184
|
-
composeImageFilters(ctx, imgf, processChildren);
|
185
|
-
break;
|
186
|
-
}
|
187
|
-
case NodeType.MorphologyImageFilter: {
|
188
|
-
const imgf = makeMorphologyImageFilter(ctx, props);
|
189
|
-
composeImageFilters(ctx, imgf, processChildren);
|
190
|
-
break;
|
191
|
-
}
|
192
|
-
case NodeType.BlendImageFilter: {
|
193
|
-
processChildren();
|
194
|
-
declareBlendImageFilter(ctx, props);
|
195
|
-
break;
|
196
|
-
}
|
197
|
-
case NodeType.RuntimeShaderImageFilter: {
|
198
|
-
const imgf = makeRuntimeShaderImageFilter(ctx, props);
|
199
|
-
composeImageFilters(ctx, imgf, processChildren);
|
200
|
-
break;
|
201
|
-
}
|
202
|
-
// Path Effects
|
203
|
-
case NodeType.SumPathEffect: {
|
204
|
-
processChildren();
|
205
|
-
declareSumPathEffect(ctx);
|
206
|
-
break;
|
207
|
-
}
|
208
|
-
case NodeType.CornerPathEffect: {
|
209
|
-
const pf = makeCornerPathEffect(ctx, props);
|
210
|
-
composePathEffects(ctx, pf, processChildren);
|
211
|
-
break;
|
212
|
-
}
|
213
|
-
case NodeType.Path1DPathEffect: {
|
214
|
-
const pf = makePath1DPathEffect(ctx, props);
|
215
|
-
composePathEffects(ctx, pf, processChildren);
|
216
|
-
break;
|
217
|
-
}
|
218
|
-
case NodeType.Path2DPathEffect: {
|
219
|
-
const pf = makePath2DPathEffect(ctx, props);
|
220
|
-
composePathEffects(ctx, pf, processChildren);
|
221
|
-
break;
|
222
|
-
}
|
223
|
-
case NodeType.Line2DPathEffect: {
|
224
|
-
const pf = makeLine2DPathEffect(ctx, props);
|
225
|
-
composePathEffects(ctx, pf, processChildren);
|
226
|
-
break;
|
227
|
-
}
|
228
|
-
case NodeType.DashPathEffect: {
|
229
|
-
const pf = makeDashPathEffect(ctx, props);
|
230
|
-
composePathEffects(ctx, pf, processChildren);
|
231
|
-
break;
|
232
|
-
}
|
233
|
-
case NodeType.DiscretePathEffect: {
|
234
|
-
const pf = makeDiscretePathEffect(ctx, props);
|
235
|
-
composePathEffects(ctx, pf, processChildren);
|
236
|
-
break;
|
237
|
-
}
|
238
|
-
// Paint
|
239
|
-
case NodeType.Paint:
|
240
|
-
processChildren();
|
241
|
-
declarePaint(ctx, props);
|
242
|
-
break;
|
243
|
-
default:
|
244
|
-
console.log("Unknown declaration node: ", type);
|
245
|
-
}
|
246
|
-
}
|
247
|
-
|
248
|
-
const preProcessContext = (
|
249
|
-
ctx: DrawingContext,
|
250
|
-
props: DrawingNodeProps,
|
251
|
-
node: Node<any>
|
252
|
-
) => {
|
253
|
-
"worklet";
|
254
|
-
const shouldRestoreMatrix = ctx.processMatrixAndClipping(props, props.layer);
|
255
|
-
const declCtx = createDeclarationContext(ctx.Skia);
|
256
|
-
node.children.forEach((child) => {
|
257
|
-
if (child.isDeclaration) {
|
258
|
-
processDeclarations(declCtx, child);
|
259
|
-
}
|
260
|
-
});
|
261
|
-
const shouldRestorePaint = ctx.processPaint(props, declCtx);
|
262
|
-
return {
|
263
|
-
shouldRestoreMatrix,
|
264
|
-
shouldRestorePaint,
|
265
|
-
extraPaints: declCtx.paints.popAll(),
|
266
|
-
};
|
267
|
-
};
|
268
|
-
|
269
|
-
const drawBackdropFilter = (ctx: DrawingContext, node: Node) => {
|
270
|
-
"worklet";
|
271
|
-
const { canvas, Skia } = ctx;
|
272
|
-
const child = node.children[0];
|
273
|
-
let imageFilter: SkImageFilter | null = null;
|
274
|
-
if (child.isDeclaration) {
|
275
|
-
const declCtx = createDeclarationContext(ctx.Skia);
|
276
|
-
processDeclarations(declCtx, child);
|
277
|
-
const imgf = declCtx.imageFilters.pop();
|
278
|
-
if (imgf) {
|
279
|
-
imageFilter = imgf;
|
280
|
-
} else {
|
281
|
-
const cf = declCtx.colorFilters.pop();
|
282
|
-
if (cf) {
|
283
|
-
imageFilter = Skia.ImageFilter.MakeColorFilter(cf, null);
|
284
|
-
}
|
285
|
-
}
|
286
|
-
}
|
287
|
-
canvas.saveLayer(undefined, null, imageFilter);
|
288
|
-
canvas.restore();
|
289
|
-
};
|
290
|
-
|
291
|
-
export function draw(ctx: DrawingContext, node: Node<any>) {
|
292
|
-
"worklet";
|
293
|
-
// Special mixed nodes
|
294
|
-
if (node.type === NodeType.BackdropFilter) {
|
295
|
-
drawBackdropFilter(ctx, node);
|
296
|
-
return;
|
297
|
-
}
|
298
|
-
if (node.type === NodeType.Layer) {
|
299
|
-
let hasLayer = false;
|
300
|
-
const [layer, ...children] = node.children;
|
301
|
-
if (layer.isDeclaration) {
|
302
|
-
const declCtx = createDeclarationContext(ctx.Skia);
|
303
|
-
processDeclarations(declCtx, layer);
|
304
|
-
const paint = declCtx.paints.pop();
|
305
|
-
if (paint) {
|
306
|
-
hasLayer = true;
|
307
|
-
ctx.canvas.saveLayer(paint);
|
308
|
-
}
|
309
|
-
}
|
310
|
-
children.map((child) => {
|
311
|
-
if (!child.isDeclaration) {
|
312
|
-
draw(ctx, child);
|
313
|
-
}
|
314
|
-
});
|
315
|
-
if (hasLayer) {
|
316
|
-
ctx.canvas.restore();
|
317
|
-
}
|
318
|
-
return;
|
319
|
-
}
|
320
|
-
const { type, props: rawProps, children } = node;
|
321
|
-
// Regular nodes
|
322
|
-
const props = materialize(rawProps);
|
323
|
-
const { shouldRestoreMatrix, shouldRestorePaint, extraPaints } =
|
324
|
-
preProcessContext(ctx, props, node);
|
325
|
-
const paints = [ctx.getPaint(), ...extraPaints];
|
326
|
-
paints.forEach((paint) => {
|
327
|
-
const lctx = { paint, Skia: ctx.Skia, canvas: ctx.canvas };
|
328
|
-
switch (type) {
|
329
|
-
case NodeType.Box:
|
330
|
-
drawBox(lctx, props, node.children);
|
331
|
-
break;
|
332
|
-
case NodeType.Image:
|
333
|
-
drawImage(lctx, props);
|
334
|
-
break;
|
335
|
-
case NodeType.Points:
|
336
|
-
drawPoints(lctx, props);
|
337
|
-
break;
|
338
|
-
case NodeType.Path:
|
339
|
-
drawPath(lctx, props);
|
340
|
-
break;
|
341
|
-
case NodeType.Rect:
|
342
|
-
drawRect(lctx, props);
|
343
|
-
break;
|
344
|
-
case NodeType.RRect:
|
345
|
-
drawRRect(lctx, props);
|
346
|
-
break;
|
347
|
-
case NodeType.Oval:
|
348
|
-
drawOval(lctx, props);
|
349
|
-
break;
|
350
|
-
case NodeType.Line:
|
351
|
-
drawLine(lctx, props);
|
352
|
-
break;
|
353
|
-
case NodeType.Patch:
|
354
|
-
drawPatch(lctx, props);
|
355
|
-
break;
|
356
|
-
case NodeType.Vertices:
|
357
|
-
drawVertices(lctx, props);
|
358
|
-
break;
|
359
|
-
case NodeType.DiffRect:
|
360
|
-
drawDiffRect(lctx, props);
|
361
|
-
break;
|
362
|
-
case NodeType.Text:
|
363
|
-
drawText(lctx, props);
|
364
|
-
break;
|
365
|
-
case NodeType.TextPath:
|
366
|
-
drawTextPath(lctx, props);
|
367
|
-
break;
|
368
|
-
case NodeType.TextBlob:
|
369
|
-
drawTextBlob(lctx, props);
|
370
|
-
break;
|
371
|
-
case NodeType.Glyphs:
|
372
|
-
drawGlyphs(lctx, props);
|
373
|
-
break;
|
374
|
-
case NodeType.Picture:
|
375
|
-
drawPicture(lctx, props);
|
376
|
-
break;
|
377
|
-
case NodeType.ImageSVG:
|
378
|
-
drawImageSVG(lctx, props);
|
379
|
-
break;
|
380
|
-
case NodeType.Paragraph:
|
381
|
-
drawParagraph(lctx, props);
|
382
|
-
break;
|
383
|
-
case NodeType.Atlas:
|
384
|
-
drawAtlas(lctx, props);
|
385
|
-
break;
|
386
|
-
case NodeType.Circle:
|
387
|
-
drawCircle(lctx, props);
|
388
|
-
break;
|
389
|
-
case NodeType.Fill:
|
390
|
-
drawFill(lctx, props);
|
391
|
-
break;
|
392
|
-
case NodeType.Group:
|
393
|
-
// TODO: do nothing
|
394
|
-
break;
|
395
|
-
default:
|
396
|
-
if (!node.isDeclaration) {
|
397
|
-
console.warn(`Unsupported node type: ${type}`);
|
398
|
-
}
|
399
|
-
}
|
400
|
-
});
|
401
|
-
children.forEach((child) => {
|
402
|
-
if (!child.isDeclaration) {
|
403
|
-
draw(ctx, child);
|
404
|
-
}
|
405
|
-
});
|
406
|
-
if (shouldRestoreMatrix) {
|
407
|
-
ctx.canvas.restore();
|
408
|
-
}
|
409
|
-
if (shouldRestorePaint) {
|
410
|
-
ctx.restore();
|
411
|
-
}
|
412
|
-
}
|
@@ -1,235 +0,0 @@
|
|
1
|
-
import { enumKey, processRadius } from "../../dom/nodes";
|
2
|
-
import type {
|
3
|
-
BlendImageFilterProps,
|
4
|
-
BlendProps,
|
5
|
-
BlurImageFilterProps,
|
6
|
-
BlurMaskFilterProps,
|
7
|
-
DisplacementMapImageFilterProps,
|
8
|
-
DropShadowImageFilterProps,
|
9
|
-
MorphologyImageFilterProps,
|
10
|
-
OffsetImageFilterProps,
|
11
|
-
RuntimeShaderImageFilterProps,
|
12
|
-
} from "../../dom/types";
|
13
|
-
import type { SkColor, Skia, SkImageFilter } from "../../skia/types";
|
14
|
-
import {
|
15
|
-
BlendMode,
|
16
|
-
BlurStyle,
|
17
|
-
ColorChannel,
|
18
|
-
processUniforms,
|
19
|
-
TileMode,
|
20
|
-
} from "../../skia/types";
|
21
|
-
import type { DeclarationContext } from "../DeclarationContext";
|
22
|
-
import { composeDeclarations } from "../DeclarationContext";
|
23
|
-
|
24
|
-
export enum MorphologyOperator {
|
25
|
-
Erode,
|
26
|
-
Dilate,
|
27
|
-
}
|
28
|
-
|
29
|
-
const Black = Float32Array.of(0, 0, 0, 1);
|
30
|
-
|
31
|
-
const MakeInnerShadow = (
|
32
|
-
Skia: Skia,
|
33
|
-
shadowOnly: boolean | undefined,
|
34
|
-
dx: number,
|
35
|
-
dy: number,
|
36
|
-
sigmaX: number,
|
37
|
-
sigmaY: number,
|
38
|
-
color: SkColor,
|
39
|
-
input: SkImageFilter | null
|
40
|
-
) => {
|
41
|
-
"worklet";
|
42
|
-
const sourceGraphic = Skia.ImageFilter.MakeColorFilter(
|
43
|
-
Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),
|
44
|
-
null
|
45
|
-
);
|
46
|
-
const sourceAlpha = Skia.ImageFilter.MakeColorFilter(
|
47
|
-
Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),
|
48
|
-
null
|
49
|
-
);
|
50
|
-
const f1 = Skia.ImageFilter.MakeColorFilter(
|
51
|
-
Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),
|
52
|
-
null
|
53
|
-
);
|
54
|
-
const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);
|
55
|
-
const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);
|
56
|
-
const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);
|
57
|
-
if (shadowOnly) {
|
58
|
-
return f4;
|
59
|
-
}
|
60
|
-
return Skia.ImageFilter.MakeCompose(
|
61
|
-
input,
|
62
|
-
Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)
|
63
|
-
);
|
64
|
-
};
|
65
|
-
|
66
|
-
export const declareBlend = (ctx: DeclarationContext, props: BlendProps) => {
|
67
|
-
"worklet";
|
68
|
-
const { Skia } = ctx;
|
69
|
-
const blend = BlendMode[enumKey(props.mode as BlendProps["mode"])];
|
70
|
-
// Blend ImageFilters
|
71
|
-
const imageFilters = ctx.imageFilters.popAll();
|
72
|
-
if (imageFilters.length > 0) {
|
73
|
-
const composer = Skia.ImageFilter.MakeBlend.bind(Skia.ImageFilter, blend);
|
74
|
-
ctx.imageFilters.push(composeDeclarations(imageFilters, composer));
|
75
|
-
}
|
76
|
-
// Blend Shaders
|
77
|
-
const shaders = ctx.shaders.popAll();
|
78
|
-
if (shaders.length > 0) {
|
79
|
-
const composer = Skia.Shader.MakeBlend.bind(Skia.Shader, blend);
|
80
|
-
ctx.shaders.push(composeDeclarations(shaders, composer));
|
81
|
-
}
|
82
|
-
};
|
83
|
-
|
84
|
-
export const composeImageFilters = (
|
85
|
-
ctx: DeclarationContext,
|
86
|
-
imgf1: SkImageFilter,
|
87
|
-
processChildren: () => void
|
88
|
-
) => {
|
89
|
-
"worklet";
|
90
|
-
const { Skia } = ctx;
|
91
|
-
ctx.imageFilters.save();
|
92
|
-
ctx.colorFilters.save();
|
93
|
-
processChildren();
|
94
|
-
let imgf2 = ctx.imageFilters.popAllAsOne();
|
95
|
-
const cf = ctx.colorFilters.popAllAsOne();
|
96
|
-
ctx.imageFilters.restore();
|
97
|
-
ctx.colorFilters.restore();
|
98
|
-
if (cf) {
|
99
|
-
imgf2 = Skia.ImageFilter.MakeCompose(
|
100
|
-
imgf2 ?? null,
|
101
|
-
Skia.ImageFilter.MakeColorFilter(cf, null)
|
102
|
-
);
|
103
|
-
}
|
104
|
-
const imgf = imgf2 ? Skia.ImageFilter.MakeCompose(imgf1, imgf2) : imgf1;
|
105
|
-
ctx.imageFilters.push(imgf);
|
106
|
-
};
|
107
|
-
|
108
|
-
const input = (ctx: DeclarationContext) => {
|
109
|
-
"worklet";
|
110
|
-
return ctx.imageFilters.pop() ?? null;
|
111
|
-
};
|
112
|
-
|
113
|
-
export const makeOffsetImageFilter = (
|
114
|
-
ctx: DeclarationContext,
|
115
|
-
props: OffsetImageFilterProps
|
116
|
-
) => {
|
117
|
-
"worklet";
|
118
|
-
const { x, y } = props;
|
119
|
-
return ctx.Skia.ImageFilter.MakeOffset(x, y, null);
|
120
|
-
};
|
121
|
-
|
122
|
-
export const declareDisplacementMapImageFilter = (
|
123
|
-
ctx: DeclarationContext,
|
124
|
-
props: DisplacementMapImageFilterProps
|
125
|
-
) => {
|
126
|
-
"worklet";
|
127
|
-
const { channelX, channelY, scale } = props;
|
128
|
-
const shader = ctx.shaders.pop();
|
129
|
-
if (!shader) {
|
130
|
-
throw new Error("DisplacementMap expects a shader as child");
|
131
|
-
}
|
132
|
-
const map = ctx.Skia.ImageFilter.MakeShader(shader, null);
|
133
|
-
const imgf = ctx.Skia.ImageFilter.MakeDisplacementMap(
|
134
|
-
ColorChannel[enumKey(channelX)],
|
135
|
-
ColorChannel[enumKey(channelY)],
|
136
|
-
scale,
|
137
|
-
map,
|
138
|
-
input(ctx)
|
139
|
-
);
|
140
|
-
ctx.imageFilters.push(imgf);
|
141
|
-
};
|
142
|
-
|
143
|
-
export const makeBlurImageFilter = (
|
144
|
-
ctx: DeclarationContext,
|
145
|
-
props: BlurImageFilterProps
|
146
|
-
) => {
|
147
|
-
"worklet";
|
148
|
-
const { mode, blur } = props;
|
149
|
-
const sigma = processRadius(ctx.Skia, blur);
|
150
|
-
const imgf = ctx.Skia.ImageFilter.MakeBlur(
|
151
|
-
sigma.x,
|
152
|
-
sigma.y,
|
153
|
-
TileMode[enumKey(mode)],
|
154
|
-
input(ctx)
|
155
|
-
);
|
156
|
-
return imgf;
|
157
|
-
};
|
158
|
-
|
159
|
-
export const makeDropShadowImageFilter = (
|
160
|
-
ctx: DeclarationContext,
|
161
|
-
props: DropShadowImageFilterProps
|
162
|
-
) => {
|
163
|
-
"worklet";
|
164
|
-
const { dx, dy, blur, shadowOnly, color: cl, inner } = props;
|
165
|
-
const color = ctx.Skia.Color(cl);
|
166
|
-
let factory;
|
167
|
-
if (inner) {
|
168
|
-
factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);
|
169
|
-
} else {
|
170
|
-
factory = shadowOnly
|
171
|
-
? ctx.Skia.ImageFilter.MakeDropShadowOnly.bind(ctx.Skia.ImageFilter)
|
172
|
-
: ctx.Skia.ImageFilter.MakeDropShadow.bind(ctx.Skia.ImageFilter);
|
173
|
-
}
|
174
|
-
const imgf = factory(dx, dy, blur, blur, color, input(ctx));
|
175
|
-
return imgf;
|
176
|
-
};
|
177
|
-
|
178
|
-
export const makeMorphologyImageFilter = (
|
179
|
-
ctx: DeclarationContext,
|
180
|
-
props: MorphologyImageFilterProps
|
181
|
-
) => {
|
182
|
-
"worklet";
|
183
|
-
const { operator } = props;
|
184
|
-
const r = processRadius(ctx.Skia, props.radius);
|
185
|
-
let imgf;
|
186
|
-
if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {
|
187
|
-
imgf = ctx.Skia.ImageFilter.MakeErode(r.x, r.y, input(ctx));
|
188
|
-
} else {
|
189
|
-
imgf = ctx.Skia.ImageFilter.MakeDilate(r.x, r.y, input(ctx));
|
190
|
-
}
|
191
|
-
return imgf;
|
192
|
-
};
|
193
|
-
|
194
|
-
export const makeRuntimeShaderImageFilter = (
|
195
|
-
ctx: DeclarationContext,
|
196
|
-
props: RuntimeShaderImageFilterProps
|
197
|
-
) => {
|
198
|
-
"worklet";
|
199
|
-
const { source, uniforms } = props;
|
200
|
-
const rtb = ctx.Skia.RuntimeShaderBuilder(source);
|
201
|
-
if (uniforms) {
|
202
|
-
processUniforms(source, uniforms, rtb);
|
203
|
-
}
|
204
|
-
const imgf = ctx.Skia.ImageFilter.MakeRuntimeShader(rtb, null, input(ctx));
|
205
|
-
return imgf;
|
206
|
-
};
|
207
|
-
|
208
|
-
export const declareBlendImageFilter = (
|
209
|
-
ctx: DeclarationContext,
|
210
|
-
props: BlendImageFilterProps
|
211
|
-
) => {
|
212
|
-
"worklet";
|
213
|
-
const { mode } = props;
|
214
|
-
const a = ctx.imageFilters.pop();
|
215
|
-
const b = ctx.imageFilters.pop();
|
216
|
-
if (!a || !b) {
|
217
|
-
throw new Error("BlendImageFilter requires two image filters");
|
218
|
-
}
|
219
|
-
const imgf = ctx.Skia.ImageFilter.MakeBlend(mode, a, b);
|
220
|
-
ctx.imageFilters.push(imgf);
|
221
|
-
};
|
222
|
-
|
223
|
-
export const declareBlurMaskFilter = (
|
224
|
-
ctx: DeclarationContext,
|
225
|
-
props: BlurMaskFilterProps
|
226
|
-
) => {
|
227
|
-
"worklet";
|
228
|
-
const { blur, style, respectCTM } = props;
|
229
|
-
const mf = ctx.Skia.MaskFilter.MakeBlur(
|
230
|
-
BlurStyle[enumKey(style)],
|
231
|
-
blur,
|
232
|
-
respectCTM
|
233
|
-
);
|
234
|
-
ctx.maskFilters.push(mf);
|
235
|
-
};
|
package/src/sksg/nodes/index.ts
DELETED
package/src/sksg/nodes/paint.ts
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
import { enumKey } from "../../dom/nodes";
|
2
|
-
import type { PaintProps } from "../../dom/types";
|
3
|
-
import { BlendMode, PaintStyle, StrokeCap, StrokeJoin } from "../../skia/types";
|
4
|
-
import type { DeclarationContext } from "../DeclarationContext";
|
5
|
-
|
6
|
-
export const declarePaint = (ctx: DeclarationContext, props: PaintProps) => {
|
7
|
-
"worklet";
|
8
|
-
const {
|
9
|
-
color,
|
10
|
-
strokeWidth,
|
11
|
-
blendMode,
|
12
|
-
style,
|
13
|
-
strokeJoin,
|
14
|
-
strokeCap,
|
15
|
-
strokeMiter,
|
16
|
-
opacity,
|
17
|
-
antiAlias,
|
18
|
-
dither,
|
19
|
-
} = props;
|
20
|
-
const paint = ctx.Skia.Paint();
|
21
|
-
if (color !== undefined) {
|
22
|
-
paint.setColor(ctx.Skia.Color(color));
|
23
|
-
}
|
24
|
-
if (strokeWidth !== undefined) {
|
25
|
-
paint.setStrokeWidth(strokeWidth);
|
26
|
-
}
|
27
|
-
if (blendMode !== undefined) {
|
28
|
-
paint.setBlendMode(BlendMode[enumKey(blendMode)]);
|
29
|
-
}
|
30
|
-
if (style !== undefined) {
|
31
|
-
paint.setStyle(PaintStyle[enumKey(style)]);
|
32
|
-
}
|
33
|
-
if (strokeJoin !== undefined) {
|
34
|
-
paint.setStrokeJoin(StrokeJoin[enumKey(strokeJoin)]);
|
35
|
-
}
|
36
|
-
if (strokeCap !== undefined) {
|
37
|
-
paint.setStrokeCap(StrokeCap[enumKey(strokeCap)]);
|
38
|
-
}
|
39
|
-
if (strokeMiter !== undefined) {
|
40
|
-
paint.setStrokeMiter(strokeMiter);
|
41
|
-
}
|
42
|
-
if (opacity !== undefined) {
|
43
|
-
paint.setAlphaf(opacity);
|
44
|
-
}
|
45
|
-
if (antiAlias !== undefined) {
|
46
|
-
paint.setAntiAlias(antiAlias);
|
47
|
-
}
|
48
|
-
if (dither !== undefined) {
|
49
|
-
paint.setDither(dither);
|
50
|
-
}
|
51
|
-
//ctx.save();
|
52
|
-
|
53
|
-
const colorFilter = ctx.colorFilters.popAllAsOne();
|
54
|
-
const imageFilter = ctx.imageFilters.popAllAsOne();
|
55
|
-
const shader = ctx.shaders.pop();
|
56
|
-
const maskFilter = ctx.maskFilters.pop();
|
57
|
-
const pathEffect = ctx.pathEffects.popAllAsOne();
|
58
|
-
//ctx.restore();
|
59
|
-
if (imageFilter) {
|
60
|
-
paint.setImageFilter(imageFilter);
|
61
|
-
}
|
62
|
-
if (shader) {
|
63
|
-
paint.setShader(shader);
|
64
|
-
}
|
65
|
-
if (pathEffect) {
|
66
|
-
paint.setPathEffect(pathEffect);
|
67
|
-
}
|
68
|
-
if (colorFilter) {
|
69
|
-
paint.setColorFilter(colorFilter);
|
70
|
-
}
|
71
|
-
if (maskFilter) {
|
72
|
-
paint.setMaskFilter(maskFilter);
|
73
|
-
}
|
74
|
-
ctx.paints.push(paint);
|
75
|
-
};
|