@shopify/react-native-skia 1.7.6 → 1.7.7
Sign up to get free protection for your applications and to get access to all the features.
- package/android/cpp/rnskia-android/OpenGLWindowContext.h +8 -1
- package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +4 -4
- package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.h +2 -2
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +13 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaTextureView.java +24 -1
- package/cpp/rnskia/RNSkJsiViewApi.h +0 -3
- package/cpp/rnskia/RNSkView.h +6 -6
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +2 -2
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +2 -2
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +2 -3
- package/lib/commonjs/dom/nodes/datatypes/Circle.js +11 -6
- package/lib/commonjs/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Enum.js +1 -0
- package/lib/commonjs/dom/nodes/datatypes/Enum.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Fitting.js +1 -10
- package/lib/commonjs/dom/nodes/datatypes/Fitting.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Gradient.js +3 -2
- package/lib/commonjs/dom/nodes/datatypes/Gradient.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Path.js +4 -1
- package/lib/commonjs/dom/nodes/datatypes/Path.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Radius.js +1 -0
- package/lib/commonjs/dom/nodes/datatypes/Radius.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +3 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js +17 -7
- package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +2 -1
- package/lib/commonjs/dom/nodes/datatypes/Transform.js +32 -1
- package/lib/commonjs/dom/nodes/datatypes/Transform.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Box.js +4 -5
- package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/CircleNode.js +1 -1
- package/lib/commonjs/dom/nodes/drawings/CircleNode.js.map +1 -1
- package/lib/commonjs/dom/types/DeclarationContext.d.ts +4 -4
- package/lib/commonjs/dom/types/DeclarationContext.js +8 -2
- package/lib/commonjs/dom/types/DeclarationContext.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/commonjs/external/reanimated/renderHelpers.js +11 -6
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/renderer/HostConfig.js +8 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/renderer/__tests__/setup.d.ts +2 -3
- package/lib/commonjs/renderer/processors/Animations/Animations.d.ts +1 -2
- package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/commonjs/renderer/typeddash.js +5 -1
- package/lib/commonjs/renderer/typeddash.js.map +1 -1
- package/lib/commonjs/skia/__tests__/setup.d.ts +0 -3
- package/lib/commonjs/skia/types/Path/Path.js +5 -1
- package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js +8 -6
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +19 -0
- package/lib/commonjs/sksg/Container.js +102 -0
- package/lib/commonjs/sksg/Container.js.map +1 -0
- package/lib/commonjs/sksg/DrawingContext.d.ts +16 -0
- package/lib/commonjs/sksg/DrawingContext.js +186 -0
- package/lib/commonjs/sksg/DrawingContext.js.map +1 -0
- package/lib/commonjs/sksg/HostConfig.d.ts +19 -0
- package/lib/commonjs/sksg/HostConfig.js +168 -0
- package/lib/commonjs/sksg/HostConfig.js.map +1 -0
- package/lib/commonjs/sksg/Reconciler.d.ts +17 -0
- package/lib/commonjs/sksg/Reconciler.js +54 -0
- package/lib/commonjs/sksg/Reconciler.js.map +1 -0
- package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +57 -0
- package/lib/commonjs/sksg/nodes/Node.d.ts +7 -0
- package/lib/commonjs/sksg/nodes/Node.js +6 -0
- package/lib/commonjs/sksg/nodes/Node.js.map +1 -0
- package/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
- package/lib/commonjs/sksg/nodes/colorFilters.js +55 -0
- package/lib/commonjs/sksg/nodes/colorFilters.js.map +1 -0
- package/lib/commonjs/sksg/nodes/context.d.ts +3 -0
- package/lib/commonjs/sksg/nodes/context.js +448 -0
- package/lib/commonjs/sksg/nodes/context.js.map +1 -0
- package/lib/commonjs/sksg/nodes/drawings.d.ts +31 -0
- package/lib/commonjs/sksg/nodes/drawings.js +361 -0
- package/lib/commonjs/sksg/nodes/drawings.js.map +1 -0
- package/lib/commonjs/sksg/nodes/imageFilters.d.ts +14 -0
- package/lib/commonjs/sksg/nodes/imageFilters.js +135 -0
- package/lib/commonjs/sksg/nodes/imageFilters.js.map +1 -0
- package/lib/commonjs/sksg/nodes/index.d.ts +3 -0
- package/lib/commonjs/sksg/nodes/index.js +39 -0
- package/lib/commonjs/sksg/nodes/index.js.map +1 -0
- package/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
- package/lib/commonjs/sksg/nodes/paint.js +80 -0
- package/lib/commonjs/sksg/nodes/paint.js.map +1 -0
- package/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
- package/lib/commonjs/sksg/nodes/pathEffects.js +84 -0
- package/lib/commonjs/sksg/nodes/pathEffects.js.map +1 -0
- package/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
- package/lib/commonjs/sksg/nodes/shaders.js +156 -0
- package/lib/commonjs/sksg/nodes/shaders.js.map +1 -0
- package/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
- package/lib/commonjs/sksg/nodes/utils.js +25 -0
- package/lib/commonjs/sksg/nodes/utils.js.map +1 -0
- package/lib/commonjs/views/SkiaPictureView.js +0 -2
- package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
- package/lib/commonjs/views/types.d.ts +2 -2
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Circle.d.ts +2 -3
- package/lib/module/dom/nodes/datatypes/Circle.js +12 -6
- package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Enum.js +2 -0
- package/lib/module/dom/nodes/datatypes/Enum.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Fitting.js +2 -10
- package/lib/module/dom/nodes/datatypes/Fitting.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Gradient.js +4 -2
- package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Path.js +5 -1
- package/lib/module/dom/nodes/datatypes/Path.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Radius.js +2 -0
- package/lib/module/dom/nodes/datatypes/Radius.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Rect.d.ts +3 -1
- package/lib/module/dom/nodes/datatypes/Rect.js +14 -5
- package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Transform.d.ts +2 -1
- package/lib/module/dom/nodes/datatypes/Transform.js +31 -0
- package/lib/module/dom/nodes/datatypes/Transform.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Box.js +1 -2
- package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/module/dom/nodes/drawings/CircleNode.js +1 -1
- package/lib/module/dom/nodes/drawings/CircleNode.js.map +1 -1
- package/lib/module/dom/types/DeclarationContext.d.ts +4 -4
- package/lib/module/dom/types/DeclarationContext.js +9 -2
- package/lib/module/dom/types/DeclarationContext.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/module/external/reanimated/renderHelpers.js +8 -4
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/renderer/HostConfig.js +8 -4
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/renderer/__tests__/setup.d.ts +2 -3
- package/lib/module/renderer/processors/Animations/Animations.d.ts +1 -2
- package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/module/renderer/typeddash.js +5 -1
- package/lib/module/renderer/typeddash.js.map +1 -1
- package/lib/module/skia/__tests__/setup.d.ts +0 -3
- package/lib/module/skia/types/Path/Path.js +5 -1
- package/lib/module/skia/types/Path/Path.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.js +9 -6
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +19 -0
- package/lib/module/sksg/Container.js +94 -0
- package/lib/module/sksg/Container.js.map +1 -0
- package/lib/module/sksg/DrawingContext.d.ts +16 -0
- package/lib/module/sksg/DrawingContext.js +180 -0
- package/lib/module/sksg/DrawingContext.js.map +1 -0
- package/lib/module/sksg/HostConfig.d.ts +19 -0
- package/lib/module/sksg/HostConfig.js +161 -0
- package/lib/module/sksg/HostConfig.js.map +1 -0
- package/lib/module/sksg/Reconciler.d.ts +17 -0
- package/lib/module/sksg/Reconciler.js +46 -0
- package/lib/module/sksg/Reconciler.js.map +1 -0
- package/lib/module/sksg/__tests__/MockDeclaration.d.ts +57 -0
- package/lib/module/sksg/nodes/Node.d.ts +7 -0
- package/lib/module/sksg/nodes/Node.js +2 -0
- package/lib/module/sksg/nodes/Node.js.map +1 -0
- package/lib/module/sksg/nodes/colorFilters.d.ts +7 -0
- package/lib/module/sksg/nodes/colorFilters.js +44 -0
- package/lib/module/sksg/nodes/colorFilters.js.map +1 -0
- package/lib/module/sksg/nodes/context.d.ts +3 -0
- package/lib/module/sksg/nodes/context.js +443 -0
- package/lib/module/sksg/nodes/context.js.map +1 -0
- package/lib/module/sksg/nodes/drawings.d.ts +31 -0
- package/lib/module/sksg/nodes/drawings.js +334 -0
- package/lib/module/sksg/nodes/drawings.js.map +1 -0
- package/lib/module/sksg/nodes/imageFilters.d.ts +14 -0
- package/lib/module/sksg/nodes/imageFilters.js +122 -0
- package/lib/module/sksg/nodes/imageFilters.js.map +1 -0
- package/lib/module/sksg/nodes/index.d.ts +3 -0
- package/lib/module/sksg/nodes/index.js +4 -0
- package/lib/module/sksg/nodes/index.js.map +1 -0
- package/lib/module/sksg/nodes/paint.d.ts +2 -0
- package/lib/module/sksg/nodes/paint.js +74 -0
- package/lib/module/sksg/nodes/paint.js.map +1 -0
- package/lib/module/sksg/nodes/pathEffects.d.ts +8 -0
- package/lib/module/sksg/nodes/pathEffects.js +72 -0
- package/lib/module/sksg/nodes/pathEffects.js.map +1 -0
- package/lib/module/sksg/nodes/shaders.d.ts +10 -0
- package/lib/module/sksg/nodes/shaders.js +142 -0
- package/lib/module/sksg/nodes/shaders.js.map +1 -0
- package/lib/module/sksg/nodes/utils.d.ts +3 -0
- package/lib/module/sksg/nodes/utils.js +18 -0
- package/lib/module/sksg/nodes/utils.js.map +1 -0
- package/lib/module/views/SkiaPictureView.js +0 -2
- package/lib/module/views/SkiaPictureView.js.map +1 -1
- package/lib/module/views/types.d.ts +2 -2
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +1 -1
- package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +2 -0
- package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +1 -0
- package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +3 -1
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +16 -0
- package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +26 -0
- package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +50 -0
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +16 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/drawings.d.ts +23 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +10 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
- package/lib/typescript/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
- package/lib/typescript/lib/module/dom/nodes/datatypes/Circle.d.ts +1 -1
- package/lib/typescript/lib/module/dom/nodes/datatypes/Rect.d.ts +2 -0
- package/lib/typescript/lib/module/dom/nodes/datatypes/Transform.d.ts +1 -0
- package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/typescript/lib/module/mock/index.d.ts +4 -1
- package/lib/typescript/lib/module/renderer/HostConfig.d.ts +3 -1
- package/lib/typescript/lib/module/sksg/Container.d.ts +15 -0
- package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +26 -0
- package/lib/typescript/lib/module/sksg/HostConfig.d.ts +49 -0
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +15 -0
- package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +6 -0
- package/lib/typescript/lib/module/sksg/nodes/context.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/nodes/drawings.d.ts +22 -0
- package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +9 -0
- package/lib/typescript/lib/module/sksg/nodes/index.d.ts +3 -0
- package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +7 -0
- package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +9 -0
- package/lib/typescript/lib/module/sksg/nodes/utils.d.ts +2 -0
- package/lib/typescript/src/dom/nodes/datatypes/Circle.d.ts +2 -3
- package/lib/typescript/src/dom/nodes/datatypes/Rect.d.ts +3 -1
- package/lib/typescript/src/dom/nodes/datatypes/Transform.d.ts +2 -1
- package/lib/typescript/src/dom/types/DeclarationContext.d.ts +4 -4
- package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/typescript/src/renderer/__tests__/setup.d.ts +2 -3
- package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +1 -2
- package/lib/typescript/src/skia/__tests__/setup.d.ts +0 -3
- package/lib/typescript/src/sksg/Container.d.ts +19 -0
- package/lib/typescript/src/sksg/DrawingContext.d.ts +16 -0
- package/lib/typescript/src/sksg/HostConfig.d.ts +19 -0
- package/lib/typescript/src/sksg/Reconciler.d.ts +17 -0
- package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +57 -0
- package/lib/typescript/src/sksg/nodes/Node.d.ts +7 -0
- package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +7 -0
- package/lib/typescript/src/sksg/nodes/context.d.ts +3 -0
- package/lib/typescript/src/sksg/nodes/drawings.d.ts +31 -0
- package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +14 -0
- package/lib/typescript/src/sksg/nodes/index.d.ts +3 -0
- package/lib/typescript/src/sksg/nodes/paint.d.ts +2 -0
- package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +8 -0
- package/lib/typescript/src/sksg/nodes/shaders.d.ts +10 -0
- package/lib/typescript/src/sksg/nodes/utils.d.ts +3 -0
- package/lib/typescript/src/views/types.d.ts +2 -2
- package/libs/{ios → apple}/libskia.xcframework/Info.plist +15 -0
- package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
- package/libs/{ios → apple}/libskottie.xcframework/Info.plist +20 -5
- package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
- package/libs/{ios → apple}/libskparagraph.xcframework/Info.plist +20 -5
- package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
- package/libs/{ios → apple}/libsksg.xcframework/Info.plist +15 -0
- package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
- package/libs/{ios → apple}/libskshaper.xcframework/Info.plist +20 -5
- package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
- package/libs/{ios → apple}/libskunicode_core.xcframework/Info.plist +18 -3
- package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
- package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/Info.plist +15 -0
- package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
- package/libs/{ios → apple}/libsvg.xcframework/Info.plist +15 -0
- package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
- package/package.json +3 -3
- package/react-native-skia.podspec +9 -9
- package/src/__tests__/setup.ts +1 -1
- package/src/__tests__/snapshots/sksg/breathe-0.png +0 -0
- package/src/__tests__/snapshots/sksg/breathe.png +0 -0
- package/src/__tests__/snapshots/sksg/simple.png +0 -0
- package/src/__tests__/snapshots/sksg/simple2.png +0 -0
- package/src/dom/nodes/JsiSkDOM.ts +2 -1
- package/src/dom/nodes/datatypes/Circle.ts +7 -5
- package/src/dom/nodes/datatypes/Enum.ts +2 -0
- package/src/dom/nodes/datatypes/Fitting.ts +2 -5
- package/src/dom/nodes/datatypes/Gradient.ts +4 -7
- package/src/dom/nodes/datatypes/Path.ts +5 -2
- package/src/dom/nodes/datatypes/Radius.ts +2 -0
- package/src/dom/nodes/datatypes/Rect.ts +40 -6
- package/src/dom/nodes/datatypes/Transform.ts +29 -1
- package/src/dom/nodes/drawings/Box.ts +1 -29
- package/src/dom/nodes/drawings/CircleNode.ts +1 -1
- package/src/dom/types/DeclarationContext.ts +12 -2
- package/src/external/reanimated/renderHelpers.ts +8 -4
- package/src/renderer/HostConfig.ts +10 -4
- package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +2 -2
- package/src/renderer/__tests__/setup.tsx +17 -15
- package/src/renderer/processors/Animations/Animations.ts +1 -5
- package/src/renderer/typeddash.ts +4 -2
- package/src/skia/__tests__/setup.ts +1 -51
- package/src/skia/types/Path/Path.ts +4 -2
- package/src/skia/types/Shader/Shader.ts +7 -4
- package/src/sksg/Container.ts +102 -0
- package/src/sksg/DrawingContext.ts +221 -0
- package/src/sksg/HostConfig.ts +287 -0
- package/src/sksg/Reconciler.ts +59 -0
- package/src/sksg/__tests__/Declarations.spec.tsx +235 -0
- package/src/sksg/__tests__/MockDeclaration.ts +140 -0
- package/src/sksg/__tests__/Simple.spec.tsx +148 -0
- package/src/sksg/nodes/Node.ts +8 -0
- package/src/sksg/nodes/colorFilters.ts +60 -0
- package/src/sksg/nodes/context.ts +489 -0
- package/src/sksg/nodes/drawings.ts +393 -0
- package/src/sksg/nodes/imageFilters.ts +183 -0
- package/src/sksg/nodes/index.ts +3 -0
- package/src/sksg/nodes/paint.ts +75 -0
- package/src/sksg/nodes/pathEffects.ts +95 -0
- package/src/sksg/nodes/shaders.ts +203 -0
- package/src/sksg/nodes/utils.ts +23 -0
- package/src/views/SkiaPictureView.tsx +0 -2
- package/src/views/types.ts +2 -2
- package/lib/commonjs/dom/__tests__/Shaders.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Compose.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Demos.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/DrawingContext.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Group.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Paint.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/RenderNodes.spec.d.ts +0 -1
- package/lib/module/dom/__tests__/Shaders.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Compose.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Demos.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/DrawingContext.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Group.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Paint.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/RenderNodes.spec.d.ts +0 -1
- package/lib/typescript/src/dom/__tests__/Shaders.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
- package/src/dom/__tests__/Compose.spec.tsx +0 -42
- package/src/dom/__tests__/Demos.spec.tsx +0 -145
- package/src/dom/__tests__/DrawingContext.spec.tsx +0 -99
- package/src/dom/__tests__/Drawings.spec.tsx +0 -95
- package/src/dom/__tests__/Group.spec.tsx +0 -132
- package/src/dom/__tests__/Paint.spec.tsx +0 -100
- package/src/dom/__tests__/RenderNodes.spec.tsx +0 -44
- package/src/dom/__tests__/Shaders.spec.tsx +0 -123
- package/src/renderer/__tests__/SkiaDOM.spec.tsx +0 -46
- /package/lib/commonjs/{dom/__tests__/Compose.spec.d.ts → sksg/__tests__/Declarations.spec.d.ts} +0 -0
- /package/lib/commonjs/{dom/__tests__/Demos.spec.d.ts → sksg/__tests__/Simple.spec.d.ts} +0 -0
- /package/lib/{commonjs/dom/__tests__/DrawingContext.spec.d.ts → module/sksg/__tests__/Declarations.spec.d.ts} +0 -0
- /package/lib/{commonjs/dom/__tests__/Drawings.spec.d.ts → module/sksg/__tests__/Simple.spec.d.ts} +0 -0
- /package/lib/{commonjs/dom/__tests__/Group.spec.d.ts → typescript/lib/module/sksg/nodes/Node.d.ts} +0 -0
- /package/lib/{commonjs/dom/__tests__/Paint.spec.d.ts → typescript/src/sksg/__tests__/Declarations.spec.d.ts} +0 -0
- /package/lib/{commonjs/dom/__tests__/RenderNodes.spec.d.ts → typescript/src/sksg/__tests__/Simple.spec.d.ts} +0 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
"worklet";
|
2
|
+
|
3
|
+
import { composeDeclarations, enumKey, processPath } from "../../dom/nodes";
|
4
|
+
import type {
|
5
|
+
CornerPathEffectProps,
|
6
|
+
DashPathEffectProps,
|
7
|
+
DeclarationContext,
|
8
|
+
DiscretePathEffectProps,
|
9
|
+
Line2DPathEffectProps,
|
10
|
+
Path1DPathEffectProps,
|
11
|
+
Path2DPathEffectProps,
|
12
|
+
} from "../../dom/types";
|
13
|
+
import { Path1DEffectStyle } from "../../skia/types";
|
14
|
+
|
15
|
+
export const makeDiscretePathEffect = (
|
16
|
+
ctx: DeclarationContext,
|
17
|
+
props: DiscretePathEffectProps
|
18
|
+
) => {
|
19
|
+
const { length, deviation, seed } = props;
|
20
|
+
return ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);
|
21
|
+
};
|
22
|
+
|
23
|
+
export const makePath2DPathEffect = (
|
24
|
+
ctx: DeclarationContext,
|
25
|
+
props: Path2DPathEffectProps
|
26
|
+
) => {
|
27
|
+
const { matrix } = props;
|
28
|
+
const path = processPath(ctx.Skia, props.path);
|
29
|
+
const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);
|
30
|
+
if (pe === null) {
|
31
|
+
throw new Error("Path2DPathEffect: invalid path");
|
32
|
+
}
|
33
|
+
return pe;
|
34
|
+
};
|
35
|
+
|
36
|
+
export const makeDashPathEffect = (
|
37
|
+
ctx: DeclarationContext,
|
38
|
+
props: DashPathEffectProps
|
39
|
+
) => {
|
40
|
+
const { intervals, phase } = props;
|
41
|
+
const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);
|
42
|
+
return pe;
|
43
|
+
};
|
44
|
+
|
45
|
+
export const makeCornerPathEffect = (
|
46
|
+
ctx: DeclarationContext,
|
47
|
+
props: CornerPathEffectProps
|
48
|
+
) => {
|
49
|
+
const { r } = props;
|
50
|
+
const pe = ctx.Skia.PathEffect.MakeCorner(r);
|
51
|
+
if (pe === null) {
|
52
|
+
throw new Error("CornerPathEffect: couldn't create path effect");
|
53
|
+
}
|
54
|
+
return pe;
|
55
|
+
};
|
56
|
+
|
57
|
+
export const declareSumPathEffect = (ctx: DeclarationContext) => {
|
58
|
+
// Note: decorateChildren functionality needs to be handled differently
|
59
|
+
const pes = ctx.pathEffects.popAll();
|
60
|
+
const pe = composeDeclarations(
|
61
|
+
pes,
|
62
|
+
ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)
|
63
|
+
);
|
64
|
+
ctx.pathEffects.push(pe);
|
65
|
+
};
|
66
|
+
|
67
|
+
export const makeLine2DPathEffect = (
|
68
|
+
ctx: DeclarationContext,
|
69
|
+
props: Line2DPathEffectProps
|
70
|
+
) => {
|
71
|
+
const { width, matrix } = props;
|
72
|
+
const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);
|
73
|
+
if (pe === null) {
|
74
|
+
throw new Error("Line2DPathEffect: could not create path effect");
|
75
|
+
}
|
76
|
+
return pe;
|
77
|
+
};
|
78
|
+
|
79
|
+
export const makePath1DPathEffect = (
|
80
|
+
ctx: DeclarationContext,
|
81
|
+
props: Path1DPathEffectProps
|
82
|
+
) => {
|
83
|
+
const { advance, phase, style } = props;
|
84
|
+
const path = processPath(ctx.Skia, props.path);
|
85
|
+
const pe = ctx.Skia.PathEffect.MakePath1D(
|
86
|
+
path,
|
87
|
+
advance,
|
88
|
+
phase,
|
89
|
+
Path1DEffectStyle[enumKey(style)]
|
90
|
+
);
|
91
|
+
if (pe === null) {
|
92
|
+
throw new Error("Path1DPathEffect: could not create path effect");
|
93
|
+
}
|
94
|
+
return pe;
|
95
|
+
};
|
@@ -0,0 +1,203 @@
|
|
1
|
+
"worklet";
|
2
|
+
|
3
|
+
import {
|
4
|
+
enumKey,
|
5
|
+
fitRects,
|
6
|
+
getRect,
|
7
|
+
processGradientProps,
|
8
|
+
processTransformProps,
|
9
|
+
rect2rect,
|
10
|
+
} from "../../dom/nodes";
|
11
|
+
import type {
|
12
|
+
ColorProps,
|
13
|
+
DeclarationContext,
|
14
|
+
FractalNoiseProps,
|
15
|
+
ImageShaderProps,
|
16
|
+
LinearGradientProps,
|
17
|
+
RadialGradientProps,
|
18
|
+
ShaderProps,
|
19
|
+
SweepGradientProps,
|
20
|
+
TurbulenceProps,
|
21
|
+
TwoPointConicalGradientProps,
|
22
|
+
} from "../../dom/types";
|
23
|
+
import {
|
24
|
+
FilterMode,
|
25
|
+
MipmapMode,
|
26
|
+
processUniforms,
|
27
|
+
TileMode,
|
28
|
+
} from "../../skia/types";
|
29
|
+
|
30
|
+
export const declareShader = (ctx: DeclarationContext, props: ShaderProps) => {
|
31
|
+
const { source, uniforms, ...transform } = props;
|
32
|
+
const m3 = ctx.Skia.Matrix();
|
33
|
+
processTransformProps(m3, transform);
|
34
|
+
const shader = source.makeShaderWithChildren(
|
35
|
+
processUniforms(source, uniforms),
|
36
|
+
ctx.shaders.popAll(),
|
37
|
+
m3
|
38
|
+
);
|
39
|
+
ctx.shaders.push(shader);
|
40
|
+
};
|
41
|
+
|
42
|
+
export const declareColorShader = (
|
43
|
+
ctx: DeclarationContext,
|
44
|
+
props: ColorProps
|
45
|
+
) => {
|
46
|
+
const { color } = props;
|
47
|
+
const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));
|
48
|
+
ctx.shaders.push(shader);
|
49
|
+
};
|
50
|
+
|
51
|
+
export const declareFractalNoiseShader = (
|
52
|
+
ctx: DeclarationContext,
|
53
|
+
props: FractalNoiseProps
|
54
|
+
) => {
|
55
|
+
const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;
|
56
|
+
const shader = ctx.Skia.Shader.MakeFractalNoise(
|
57
|
+
freqX,
|
58
|
+
freqY,
|
59
|
+
octaves,
|
60
|
+
seed,
|
61
|
+
tileWidth,
|
62
|
+
tileHeight
|
63
|
+
);
|
64
|
+
ctx.shaders.push(shader);
|
65
|
+
};
|
66
|
+
|
67
|
+
export const declareTwoPointConicalGradientShader = (
|
68
|
+
ctx: DeclarationContext,
|
69
|
+
props: TwoPointConicalGradientProps
|
70
|
+
) => {
|
71
|
+
const { startR, endR, start, end } = props;
|
72
|
+
const { colors, positions, mode, localMatrix, flags } = processGradientProps(
|
73
|
+
ctx.Skia,
|
74
|
+
props
|
75
|
+
);
|
76
|
+
const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(
|
77
|
+
start,
|
78
|
+
startR,
|
79
|
+
end,
|
80
|
+
endR,
|
81
|
+
colors,
|
82
|
+
positions,
|
83
|
+
mode,
|
84
|
+
localMatrix,
|
85
|
+
flags
|
86
|
+
);
|
87
|
+
ctx.shaders.push(shader);
|
88
|
+
};
|
89
|
+
|
90
|
+
export const declareRadialGradientShader = (
|
91
|
+
ctx: DeclarationContext,
|
92
|
+
props: RadialGradientProps
|
93
|
+
) => {
|
94
|
+
const { c, r } = props;
|
95
|
+
const { colors, positions, mode, localMatrix, flags } = processGradientProps(
|
96
|
+
ctx.Skia,
|
97
|
+
props
|
98
|
+
);
|
99
|
+
const shader = ctx.Skia.Shader.MakeRadialGradient(
|
100
|
+
c,
|
101
|
+
r,
|
102
|
+
colors,
|
103
|
+
positions,
|
104
|
+
mode,
|
105
|
+
localMatrix,
|
106
|
+
flags
|
107
|
+
);
|
108
|
+
ctx.shaders.push(shader);
|
109
|
+
};
|
110
|
+
|
111
|
+
export const declareSweepGradientShader = (
|
112
|
+
ctx: DeclarationContext,
|
113
|
+
props: SweepGradientProps
|
114
|
+
) => {
|
115
|
+
const { c, start, end } = props;
|
116
|
+
const { colors, positions, mode, localMatrix, flags } = processGradientProps(
|
117
|
+
ctx.Skia,
|
118
|
+
props
|
119
|
+
);
|
120
|
+
const shader = ctx.Skia.Shader.MakeSweepGradient(
|
121
|
+
c.x,
|
122
|
+
c.y,
|
123
|
+
colors,
|
124
|
+
positions,
|
125
|
+
mode,
|
126
|
+
localMatrix,
|
127
|
+
flags,
|
128
|
+
start,
|
129
|
+
end
|
130
|
+
);
|
131
|
+
ctx.shaders.push(shader);
|
132
|
+
};
|
133
|
+
|
134
|
+
export const declareLinearGradientShader = (
|
135
|
+
ctx: DeclarationContext,
|
136
|
+
props: LinearGradientProps
|
137
|
+
) => {
|
138
|
+
const { start, end } = props;
|
139
|
+
const { colors, positions, mode, localMatrix, flags } = processGradientProps(
|
140
|
+
ctx.Skia,
|
141
|
+
props
|
142
|
+
);
|
143
|
+
const shader = ctx.Skia.Shader.MakeLinearGradient(
|
144
|
+
start,
|
145
|
+
end,
|
146
|
+
colors,
|
147
|
+
positions ?? null,
|
148
|
+
mode,
|
149
|
+
localMatrix,
|
150
|
+
flags
|
151
|
+
);
|
152
|
+
ctx.shaders.push(shader);
|
153
|
+
};
|
154
|
+
|
155
|
+
export const declareTurbulenceShader = (
|
156
|
+
ctx: DeclarationContext,
|
157
|
+
props: TurbulenceProps
|
158
|
+
) => {
|
159
|
+
const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;
|
160
|
+
const shader = ctx.Skia.Shader.MakeTurbulence(
|
161
|
+
freqX,
|
162
|
+
freqY,
|
163
|
+
octaves,
|
164
|
+
seed,
|
165
|
+
tileWidth,
|
166
|
+
tileHeight
|
167
|
+
);
|
168
|
+
ctx.shaders.push(shader);
|
169
|
+
};
|
170
|
+
|
171
|
+
export const declareImageShader = (
|
172
|
+
ctx: DeclarationContext,
|
173
|
+
props: ImageShaderProps
|
174
|
+
) => {
|
175
|
+
const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;
|
176
|
+
if (!image) {
|
177
|
+
return;
|
178
|
+
}
|
179
|
+
|
180
|
+
const rct = getRect(ctx.Skia, imageShaderProps);
|
181
|
+
const m3 = ctx.Skia.Matrix();
|
182
|
+
if (rct) {
|
183
|
+
const rects = fitRects(
|
184
|
+
fit,
|
185
|
+
{ x: 0, y: 0, width: image.width(), height: image.height() },
|
186
|
+
rct
|
187
|
+
);
|
188
|
+
const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);
|
189
|
+
m3.translate(x.translateX, y.translateY);
|
190
|
+
m3.scale(sx.scaleX, sy.scaleY);
|
191
|
+
}
|
192
|
+
const lm = ctx.Skia.Matrix();
|
193
|
+
lm.concat(m3);
|
194
|
+
processTransformProps(lm, imageShaderProps);
|
195
|
+
const shader = image.makeShaderOptions(
|
196
|
+
TileMode[enumKey(tx)],
|
197
|
+
TileMode[enumKey(ty)],
|
198
|
+
FilterMode[enumKey(fm)],
|
199
|
+
MipmapMode[enumKey(mm)],
|
200
|
+
lm
|
201
|
+
);
|
202
|
+
ctx.shaders.push(shader);
|
203
|
+
};
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"worklet";
|
2
|
+
|
3
|
+
import type { SharedValue } from "react-native-reanimated";
|
4
|
+
|
5
|
+
import { mapKeys } from "../../renderer/typeddash";
|
6
|
+
|
7
|
+
export const isSharedValue = <T = unknown>(
|
8
|
+
value: unknown
|
9
|
+
): value is SharedValue<T> => {
|
10
|
+
// We cannot use `in` operator here because `value` could be a HostObject and therefore we cast.
|
11
|
+
return (value as Record<string, unknown>)?._isReanimatedSharedValue === true;
|
12
|
+
};
|
13
|
+
|
14
|
+
export const materialize = <T extends object>(props: T) => {
|
15
|
+
const result: T = Object.assign({}, props);
|
16
|
+
mapKeys(result).forEach((key) => {
|
17
|
+
const value = result[key];
|
18
|
+
if (isSharedValue(value)) {
|
19
|
+
result[key] = value.value as never;
|
20
|
+
}
|
21
|
+
});
|
22
|
+
return result;
|
23
|
+
};
|
@@ -38,7 +38,6 @@ export class SkiaPictureView extends React.Component<SkiaPictureViewProps> {
|
|
38
38
|
}
|
39
39
|
|
40
40
|
componentDidUpdate(prevProps: SkiaPictureViewProps) {
|
41
|
-
console.log("componentDidUpdate");
|
42
41
|
const { picture, onSize } = this.props;
|
43
42
|
if (picture !== prevProps.picture) {
|
44
43
|
assertSkiaViewApi();
|
@@ -79,7 +78,6 @@ export class SkiaPictureView extends React.Component<SkiaPictureViewProps> {
|
|
79
78
|
*/
|
80
79
|
public redraw() {
|
81
80
|
assertSkiaViewApi();
|
82
|
-
console.log("Request redraw: ", this._nativeId);
|
83
81
|
SkiaViewApi.requestRedraw(this._nativeId);
|
84
82
|
}
|
85
83
|
|
package/src/views/types.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import type { ViewProps } from "react-native";
|
2
|
+
import type { SharedValue } from "react-native-reanimated";
|
2
3
|
|
3
4
|
import type { GroupProps, RenderNode } from "../dom/types";
|
4
5
|
import type { SkImage, SkPicture, SkRect, SkSize } from "../skia/types";
|
5
|
-
import type { SharedValueType } from "../renderer/processors/Animations/Animations";
|
6
6
|
|
7
7
|
export type NativeSkiaViewProps = ViewProps & {
|
8
8
|
debug?: boolean;
|
@@ -32,7 +32,7 @@ export interface SkiaBaseViewProps extends ViewProps {
|
|
32
32
|
* Pass an animated value to the onSize property to get updates when
|
33
33
|
* the Skia view is resized.
|
34
34
|
*/
|
35
|
-
onSize?:
|
35
|
+
onSize?: SharedValue<SkSize>;
|
36
36
|
|
37
37
|
opaque?: boolean;
|
38
38
|
}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,42 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
importSkia,
|
3
|
-
width,
|
4
|
-
height,
|
5
|
-
loadImage,
|
6
|
-
getSkDOM,
|
7
|
-
} from "../../renderer/__tests__/setup";
|
8
|
-
import { setupSkia } from "../../skia/__tests__/setup";
|
9
|
-
import { docPath, processResult } from "../../__tests__/setup";
|
10
|
-
import { JsiDrawingContext } from "../types";
|
11
|
-
|
12
|
-
describe("Compose", () => {
|
13
|
-
it("should compose image filters", () => {
|
14
|
-
const size = width;
|
15
|
-
const { surface, canvas } = setupSkia(width, height);
|
16
|
-
const { Skia, rect, vec } = importSkia();
|
17
|
-
const Sk = getSkDOM();
|
18
|
-
const image = loadImage("skia/__tests__/assets/oslo.jpg");
|
19
|
-
|
20
|
-
const root = Sk.Group();
|
21
|
-
const img = Sk.Image({
|
22
|
-
image,
|
23
|
-
fit: "cover",
|
24
|
-
rect: rect(0, 0, size, size),
|
25
|
-
});
|
26
|
-
root.addChild(img);
|
27
|
-
|
28
|
-
const matrix = [
|
29
|
-
-0.578, 0.99, 0.588, 0, 0, 0.469, 0.535, -0.003, 0, 0, 0.015, 1.69,
|
30
|
-
-0.703, 0, 0, 0, 0, 0, 1, 0,
|
31
|
-
];
|
32
|
-
const cf = Sk.MatrixColorFilter({ matrix });
|
33
|
-
|
34
|
-
const blur = Sk.BlurImageFilter({ blur: vec(10, 10), mode: "decal" });
|
35
|
-
blur.addChild(cf);
|
36
|
-
root.addChild(blur);
|
37
|
-
|
38
|
-
const ctx = new JsiDrawingContext(Skia, canvas);
|
39
|
-
root.render(ctx);
|
40
|
-
processResult(surface, docPath("image-filters/composing.png"));
|
41
|
-
});
|
42
|
-
});
|
@@ -1,145 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
importSkia,
|
3
|
-
width,
|
4
|
-
height,
|
5
|
-
getSkDOM,
|
6
|
-
} from "../../renderer/__tests__/setup";
|
7
|
-
import { setupSkia } from "../../skia/__tests__/setup";
|
8
|
-
import { processResult } from "../../__tests__/setup";
|
9
|
-
import { JsiDrawingContext } from "../types";
|
10
|
-
|
11
|
-
describe("Drawings", () => {
|
12
|
-
it("Apple Breathe Demo", () => {
|
13
|
-
const { surface, canvas } = setupSkia(width, height);
|
14
|
-
const { Skia, vec, polar2Canvas } = importSkia();
|
15
|
-
const Sk = getSkDOM();
|
16
|
-
const c = vec(width / 2, height / 2);
|
17
|
-
const c1 = Skia.Color("#61bea2");
|
18
|
-
const c2 = Skia.Color("#529ca0");
|
19
|
-
const R = width / 4;
|
20
|
-
const color = Skia.Color("rgb(36,43,56)");
|
21
|
-
const root = Sk.Group({ color });
|
22
|
-
root.addChild(Sk.Fill());
|
23
|
-
const rings = Sk.Group({
|
24
|
-
blendMode: "screen",
|
25
|
-
});
|
26
|
-
const blur = Sk.BlurMaskFilter({
|
27
|
-
blur: 10,
|
28
|
-
style: "solid",
|
29
|
-
respectCTM: true,
|
30
|
-
});
|
31
|
-
rings.addChild(blur);
|
32
|
-
for (let i = 0; i < 6; i++) {
|
33
|
-
const theta = (i * (2 * Math.PI)) / 6;
|
34
|
-
const matrix = Skia.Matrix();
|
35
|
-
const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
|
36
|
-
matrix.translate(x, y);
|
37
|
-
const ring = Sk.Group({
|
38
|
-
matrix,
|
39
|
-
color: i % 2 ? c1 : c2,
|
40
|
-
});
|
41
|
-
ring.addChild(Sk.Circle({ c, r: R }));
|
42
|
-
rings.addChild(ring);
|
43
|
-
}
|
44
|
-
root.addChild(rings);
|
45
|
-
const ctx = new JsiDrawingContext(Skia, canvas);
|
46
|
-
root.render(ctx);
|
47
|
-
processResult(surface, "snapshots/demos/breathe.png");
|
48
|
-
});
|
49
|
-
|
50
|
-
it("Apple Breathe Demo with the new API", () => {
|
51
|
-
const { surface, canvas } = setupSkia(width, height);
|
52
|
-
const { Skia, vec, polar2Canvas } = importSkia();
|
53
|
-
const Sk = getSkDOM();
|
54
|
-
const c = vec(width / 2, height / 2);
|
55
|
-
const c1 = Skia.Color("#61bea2");
|
56
|
-
const c2 = Skia.Color("#529ca0");
|
57
|
-
const R = width / 4;
|
58
|
-
const color = Skia.Color("rgb(36,43,56)");
|
59
|
-
const root = Sk.Group({ color });
|
60
|
-
root.addChild(Sk.Fill());
|
61
|
-
const rings = Sk.Group({
|
62
|
-
blendMode: "screen",
|
63
|
-
});
|
64
|
-
const blur = Sk.BlurMaskFilter({
|
65
|
-
blur: 10,
|
66
|
-
style: "solid",
|
67
|
-
respectCTM: true,
|
68
|
-
});
|
69
|
-
rings.addChild(blur);
|
70
|
-
for (let i = 0; i < 6; i++) {
|
71
|
-
const theta = (i * (2 * Math.PI)) / 6;
|
72
|
-
const matrix = Skia.Matrix();
|
73
|
-
const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
|
74
|
-
matrix.translate(x, y);
|
75
|
-
rings.addChild(Sk.Circle({ c, r: R, matrix, color: i % 2 ? c1 : c2 }));
|
76
|
-
}
|
77
|
-
root.addChild(rings);
|
78
|
-
const ctx = new JsiDrawingContext(Skia, canvas);
|
79
|
-
root.render(ctx);
|
80
|
-
processResult(surface, "snapshots/demos/breathe.png");
|
81
|
-
});
|
82
|
-
|
83
|
-
it("Apple Breathe Demo with animations", () => {
|
84
|
-
const { surface, canvas } = setupSkia(width, height);
|
85
|
-
const { Skia, vec, polar2Canvas } = importSkia();
|
86
|
-
const Sk = getSkDOM();
|
87
|
-
const c = vec(width / 2, height / 2);
|
88
|
-
const c1 = Skia.Color("#61bea2");
|
89
|
-
const c2 = Skia.Color("#529ca0");
|
90
|
-
const R = width / 4;
|
91
|
-
const color = Skia.Color("rgb(36,43,56)");
|
92
|
-
const root = Sk.Group({ color });
|
93
|
-
root.addChild(Sk.Fill());
|
94
|
-
const rings = Sk.Group({
|
95
|
-
blendMode: "screen",
|
96
|
-
});
|
97
|
-
const blur = Sk.BlurMaskFilter({
|
98
|
-
blur: 10,
|
99
|
-
style: "solid",
|
100
|
-
respectCTM: true,
|
101
|
-
});
|
102
|
-
rings.addChild(blur);
|
103
|
-
for (let i = 0; i < 6; i++) {
|
104
|
-
const theta = (i * (2 * Math.PI)) / 6;
|
105
|
-
const matrix = Skia.Matrix();
|
106
|
-
const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
|
107
|
-
matrix.translate(x, y);
|
108
|
-
rings.addChild(Sk.Circle({ c, r: R, matrix, color: i % 2 ? c1 : c2 }));
|
109
|
-
}
|
110
|
-
root.addChild(rings);
|
111
|
-
const ctx = new JsiDrawingContext(Skia, canvas);
|
112
|
-
root.render(ctx);
|
113
|
-
processResult(surface, "snapshots/demos/breathe.png");
|
114
|
-
|
115
|
-
blur.setProp("blur", 0);
|
116
|
-
root.setProp("transform", [
|
117
|
-
{ translateX: c.x },
|
118
|
-
{ translateY: c.y },
|
119
|
-
{ rotate: Math.PI / 4 },
|
120
|
-
{ translateX: -c.x },
|
121
|
-
{ translateY: -c.y },
|
122
|
-
]);
|
123
|
-
for (let i = 0; i < 6; i++) {
|
124
|
-
const theta = (i * (2 * Math.PI)) / 6;
|
125
|
-
const matrix = Skia.Matrix();
|
126
|
-
const scale = 0.5;
|
127
|
-
const { x, y } = polar2Canvas({ theta, radius: 0.5 * R }, { x: 0, y: 0 });
|
128
|
-
matrix.translate(x, y);
|
129
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
130
|
-
const ring = rings.children()[i + 1] as any;
|
131
|
-
ring.setProp("matrix", undefined);
|
132
|
-
ring.setProp("transform", [
|
133
|
-
{ translateX: c.x },
|
134
|
-
{ translateY: c.y },
|
135
|
-
{ translateX: x },
|
136
|
-
{ translateY: y },
|
137
|
-
{ scale },
|
138
|
-
{ translateX: -c.x },
|
139
|
-
{ translateY: -c.y },
|
140
|
-
]);
|
141
|
-
}
|
142
|
-
root.render(ctx);
|
143
|
-
processResult(surface, "snapshots/demos/breathe2.png");
|
144
|
-
});
|
145
|
-
});
|