@shopify/react-native-skia 1.3.12 → 1.3.13
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/commonjs/__tests__/globalSetup.d.ts +9 -0
- package/lib/commonjs/__tests__/globalTeardown.d.ts +2 -0
- package/lib/commonjs/__tests__/setup.d.ts +18 -0
- package/lib/commonjs/dom/__tests__/Compose.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/Demos.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/DrawingContext.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/Group.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/Paint.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/RenderNodes.spec.d.ts +1 -0
- package/lib/commonjs/dom/__tests__/Shaders.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Data.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/FitBox.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Glyphs.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Image.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Paths.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Picture.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Simple.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Surfaces.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Text.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/Transform.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/Video.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
- package/lib/commonjs/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
- package/lib/commonjs/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
- package/lib/commonjs/renderer/__tests__/e2e/setup/index.d.ts +3 -0
- package/lib/commonjs/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
- package/lib/commonjs/renderer/__tests__/setup.d.ts +66 -0
- package/lib/commonjs/skia/__tests__/ColorFilter.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Data.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Enums.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Geometry.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/ImageFilter.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/commonjs/skia/__tests__/Paint.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Path.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Shader.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Text.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Transform.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/Vertices.spec.d.ts +1 -0
- package/lib/commonjs/skia/__tests__/setup.d.ts +19 -0
- package/lib/module/__tests__/globalSetup.d.ts +9 -0
- package/lib/module/__tests__/globalTeardown.d.ts +2 -0
- package/lib/module/__tests__/setup.d.ts +18 -0
- package/lib/module/dom/__tests__/Compose.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/Demos.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/DrawingContext.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/Group.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/Paint.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/RenderNodes.spec.d.ts +1 -0
- package/lib/module/dom/__tests__/Shaders.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Data.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/FitBox.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Glyphs.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Image.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Paths.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Picture.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Simple.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Surfaces.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Text.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/Transform.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/Video.d.ts +1 -0
- package/lib/module/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
- package/lib/module/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
- package/lib/module/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
- package/lib/module/renderer/__tests__/e2e/setup/index.d.ts +3 -0
- package/lib/module/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
- package/lib/module/renderer/__tests__/setup.d.ts +66 -0
- package/lib/module/skia/__tests__/ColorFilter.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Data.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Enums.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Geometry.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/ImageFilter.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/module/skia/__tests__/Paint.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Path.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Shader.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Text.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Transform.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/Vertices.spec.d.ts +1 -0
- package/lib/module/skia/__tests__/setup.d.ts +19 -0
- package/lib/typescript/src/__tests__/globalSetup.d.ts +9 -0
- package/lib/typescript/src/__tests__/globalTeardown.d.ts +2 -0
- package/lib/typescript/src/__tests__/setup.d.ts +18 -0
- package/lib/typescript/src/dom/__tests__/Compose.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/Demos.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/DrawingContext.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/Group.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/Paint.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/RenderNodes.spec.d.ts +1 -0
- package/lib/typescript/src/dom/__tests__/Shaders.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Data.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/FitBox.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Glyphs.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Image.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Paths.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Picture.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Simple.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/SkiaDOM.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Surfaces.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Text.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/TouchHandler.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/Transform.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/documentation/Group.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/documentation/paint/Overview.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/documentation/shapes/Box.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Atlas.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Blending.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Blur.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Box.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/ColorFilters.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/CoonPatch.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/DataEncoding.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Drawings.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/FontMgr.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Gradient.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Group.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Image.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/ImageFilters.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Mask.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Matrix4.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Offscreen.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Opacity.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Paint.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Paragraphs.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/PathEffects.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Paths.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Picture.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Point.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Rect.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/SDF.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/SVG.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Shader.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Snapshot.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Surfaces.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Text.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/TextPath.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Transforms.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Vertices.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/Video.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/e2e/setup/Paragraph.d.ts +19 -0
- package/lib/typescript/src/renderer/__tests__/e2e/setup/SVG.d.ts +12 -0
- package/lib/typescript/src/renderer/__tests__/e2e/setup/SkiaObject.d.ts +11 -0
- package/lib/typescript/src/renderer/__tests__/e2e/setup/index.d.ts +3 -0
- package/lib/typescript/src/renderer/__tests__/examples/BlendModes.spec.d.ts +1 -0
- package/lib/typescript/src/renderer/__tests__/setup.d.ts +66 -0
- package/lib/typescript/src/skia/__tests__/ColorFilter.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Data.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Drawings.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Enums.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Geometry.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/ImageFilter.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/typescript/src/skia/__tests__/Paint.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Path.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/RuntimeEffect.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Shader.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Text.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Transform.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/Vertices.spec.d.ts +1 -0
- package/lib/typescript/src/skia/__tests__/setup.d.ts +19 -0
- package/libs/ios/libskia.xcframework/Info.plist +46 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +46 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/Info.plist +46 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +46 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/Info.plist +46 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +46 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +46 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +11 -14
- package/src/__tests__/globalSetup.ts +51 -0
- package/src/__tests__/globalTeardown.ts +11 -0
- package/src/__tests__/setup.ts +129 -0
- package/src/__tests__/snapshots/animated-images/bird.png +0 -0
- package/src/__tests__/snapshots/animations/green.png +0 -0
- package/src/__tests__/snapshots/animations/lightblue.png +0 -0
- package/src/__tests__/snapshots/animations/quarter-lightblue.png +0 -0
- package/src/__tests__/snapshots/animations/red.png +0 -0
- package/src/__tests__/snapshots/atlas/identity.png +0 -0
- package/src/__tests__/snapshots/atlas/rsxform.png +0 -0
- package/src/__tests__/snapshots/atlas/rsxform1.png +0 -0
- package/src/__tests__/snapshots/atlas/simple.png +0 -0
- package/src/__tests__/snapshots/atlas/simple2.png +0 -0
- package/src/__tests__/snapshots/box/box-shadow.png +0 -0
- package/src/__tests__/snapshots/box/box-shadow2.png +0 -0
- package/src/__tests__/snapshots/box/box-shadow3.png +0 -0
- package/src/__tests__/snapshots/box/box-stroke.png +0 -0
- package/src/__tests__/snapshots/color-filter/color-filter-composition.png +0 -0
- package/src/__tests__/snapshots/color-filter/matrix1.png +0 -0
- package/src/__tests__/snapshots/color-filter/matrix3.png +0 -0
- package/src/__tests__/snapshots/color-filter/zurich-sepia.png +0 -0
- package/src/__tests__/snapshots/coons-patch/patch-with-opacity.png +0 -0
- package/src/__tests__/snapshots/coons-patch/simple.png +0 -0
- package/src/__tests__/snapshots/cyan-buffer.png +0 -0
- package/src/__tests__/snapshots/data/oslo.png +0 -0
- package/src/__tests__/snapshots/data/red.png +0 -0
- package/src/__tests__/snapshots/data/zurich.png +0 -0
- package/src/__tests__/snapshots/demos/apple-breathe.png +0 -0
- package/src/__tests__/snapshots/demos/apple-breathe1.png +0 -0
- package/src/__tests__/snapshots/demos/breathe.png +0 -0
- package/src/__tests__/snapshots/demos/breathe2.png +0 -0
- package/src/__tests__/snapshots/demos/product.png +0 -0
- package/src/__tests__/snapshots/demos/product2.png +0 -0
- package/src/__tests__/snapshots/demos/skia-neon.png +0 -0
- package/src/__tests__/snapshots/demos/skia-neon1.png +0 -0
- package/src/__tests__/snapshots/drawings/arc.png +0 -0
- package/src/__tests__/snapshots/drawings/blend-mode-multiply.png +0 -0
- package/src/__tests__/snapshots/drawings/blend-modes.png +0 -0
- package/src/__tests__/snapshots/drawings/blur-node.png +0 -0
- package/src/__tests__/snapshots/drawings/blur.png +0 -0
- package/src/__tests__/snapshots/drawings/blur2.png +0 -0
- package/src/__tests__/snapshots/drawings/custom-drawing.png +0 -0
- package/src/__tests__/snapshots/drawings/cyan-circle.png +0 -0
- package/src/__tests__/snapshots/drawings/cyan.png +0 -0
- package/src/__tests__/snapshots/drawings/default-props.png +0 -0
- package/src/__tests__/snapshots/drawings/hello-world.png +0 -0
- package/src/__tests__/snapshots/drawings/image-default-props.png +0 -0
- package/src/__tests__/snapshots/drawings/lightblue-quarter-circle.png +0 -0
- package/src/__tests__/snapshots/drawings/lightblue-rect.png +0 -0
- package/src/__tests__/snapshots/drawings/line.png +0 -0
- package/src/__tests__/snapshots/drawings/multiple-paints.png +0 -0
- package/src/__tests__/snapshots/drawings/nested-shader.png +0 -0
- package/src/__tests__/snapshots/drawings/nested-shader2.png +0 -0
- package/src/__tests__/snapshots/drawings/opacity-image.png +0 -0
- package/src/__tests__/snapshots/drawings/opacity-multiplication.png +0 -0
- package/src/__tests__/snapshots/drawings/opacity-multiplication2.png +0 -0
- package/src/__tests__/snapshots/drawings/points.png +0 -0
- package/src/__tests__/snapshots/drawings/purple.png +0 -0
- package/src/__tests__/snapshots/drawings/rotated-image.png +0 -0
- package/src/__tests__/snapshots/drawings/rotated-scaled-image.png +0 -0
- package/src/__tests__/snapshots/drawings/rrect-aa.png +0 -0
- package/src/__tests__/snapshots/drawings/rrect-no-aa.png +0 -0
- package/src/__tests__/snapshots/drawings/scaled-image.png +0 -0
- package/src/__tests__/snapshots/drawings/scaled-image2.png +0 -0
- package/src/__tests__/snapshots/drawings/shader-opacity-reference.png +0 -0
- package/src/__tests__/snapshots/drawings/skew-transform.png +0 -0
- package/src/__tests__/snapshots/drawings/skew-transform2.png +0 -0
- package/src/__tests__/snapshots/drawings/small-lightblue-rect.png +0 -0
- package/src/__tests__/snapshots/drawings/stroke.png +0 -0
- package/src/__tests__/snapshots/drawings/transform-origin.png +0 -0
- package/src/__tests__/snapshots/drawings/transparent.png +0 -0
- package/src/__tests__/snapshots/drawings/violet.png +0 -0
- package/src/__tests__/snapshots/font/green.png +0 -0
- package/src/__tests__/snapshots/font/red.png +0 -0
- package/src/__tests__/snapshots/glyphs/simple.png +0 -0
- package/src/__tests__/snapshots/gradient/linear-with-opacity.png +0 -0
- package/src/__tests__/snapshots/gradient/linear.png +0 -0
- package/src/__tests__/snapshots/green.png +0 -0
- package/src/__tests__/snapshots/image-filter/blur.png +0 -0
- package/src/__tests__/snapshots/image-filter/test-shadow.png +0 -0
- package/src/__tests__/snapshots/images/bundle-android.png +0 -0
- package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
- package/src/__tests__/snapshots/images/bundle-node.png +0 -0
- package/src/__tests__/snapshots/images/bundle.png +0 -0
- package/src/__tests__/snapshots/images/filter.png +0 -0
- package/src/__tests__/snapshots/leak.png +0 -0
- package/src/__tests__/snapshots/matrix4/perspective.png +0 -0
- package/src/__tests__/snapshots/paint/blend-mode.png +0 -0
- package/src/__tests__/snapshots/paint/circle.png +0 -0
- package/src/__tests__/snapshots/paint/colors.png +0 -0
- package/src/__tests__/snapshots/paint/dither.png +0 -0
- package/src/__tests__/snapshots/paint/path-paint.png +0 -0
- package/src/__tests__/snapshots/paint/without-dither.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-auto-linebreaks-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-bounding-box-node.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-ellipse-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-ellipse-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-linebreaks-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-center-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-justify-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-left-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-right-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-align-rtl-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-colors-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-decoration-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-shadow-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android-box.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios-box.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-font-style-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/paragraph-text-style-in-paragraph-style-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/simple-paragraph-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/simple-paragraph-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-android.png +0 -0
- package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-ios.png +0 -0
- package/src/__tests__/snapshots/paragraph/simple-paragraph-with-provider-node.png +0 -0
- package/src/__tests__/snapshots/path/interpolate.png +0 -0
- package/src/__tests__/snapshots/path/logo.png +0 -0
- package/src/__tests__/snapshots/path-effects/discrete.png +0 -0
- package/src/__tests__/snapshots/path-effects/sum.png +0 -0
- package/src/__tests__/snapshots/path-effects/sum2.png +0 -0
- package/src/__tests__/snapshots/paths/arc.png +0 -0
- package/src/__tests__/snapshots/paths/emptyPath.png +0 -0
- package/src/__tests__/snapshots/paths/interpolation1.png +0 -0
- package/src/__tests__/snapshots/paths/oval.png +0 -0
- package/src/__tests__/snapshots/paths/pattern.png +0 -0
- package/src/__tests__/snapshots/paths/poly.png +0 -0
- package/src/__tests__/snapshots/paths/rrect.png +0 -0
- package/src/__tests__/snapshots/paths/skia-trimmed.png +0 -0
- package/src/__tests__/snapshots/paths/skia.png +0 -0
- package/src/__tests__/snapshots/pictures/create-picture.png +0 -0
- package/src/__tests__/snapshots/pictures/green.png +0 -0
- package/src/__tests__/snapshots/pictures/hello-world.png +0 -0
- package/src/__tests__/snapshots/pictures/red.png +0 -0
- package/src/__tests__/snapshots/pictures/simple-picture.png +0 -0
- package/src/__tests__/snapshots/platform-buffer-bgra.png +0 -0
- package/src/__tests__/snapshots/platform-buffer.png +0 -0
- package/src/__tests__/snapshots/points/points.png +0 -0
- package/src/__tests__/snapshots/points/points2.png +0 -0
- package/src/__tests__/snapshots/render-nodes/simple.png +0 -0
- package/src/__tests__/snapshots/render-nodes/simple2.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/blend-color-burn.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/blend-color-burn2.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/blend-color-burn3.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/blend-color-dodge.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/blend-multiply.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/int-uniform.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/linear-gradient.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/linear-gradient2.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/small-spiral.png +0 -0
- package/src/__tests__/snapshots/runtime-effects/spiral.png +0 -0
- package/src/__tests__/snapshots/runtime-shader/scaled-circle.png +0 -0
- package/src/__tests__/snapshots/runtime-shader/scaled-circle2.png +0 -0
- package/src/__tests__/snapshots/runtime-shader/simple.png +0 -0
- package/src/__tests__/snapshots/runtime-shader/spiral.png +0 -0
- package/src/__tests__/snapshots/runtime-shader/unscaled-image.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot1-android-ci.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot1-android.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot1-ios.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot2-android-ci.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot2-android.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot2-ios.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot3-android-ci.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot3-android.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot3-ios.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot4-android-ci.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot4-android.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot4-ios.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot5-android.png +0 -0
- package/src/__tests__/snapshots/screens/snapshot5-ios.png +0 -0
- package/src/__tests__/snapshots/sdf/circle.png +0 -0
- package/src/__tests__/snapshots/sdf/heart.png +0 -0
- package/src/__tests__/snapshots/sdf/line.png +0 -0
- package/src/__tests__/snapshots/sdf/rectangle.png +0 -0
- package/src/__tests__/snapshots/shader/bilinear-interpolation.png +0 -0
- package/src/__tests__/snapshots/shader/hue.png +0 -0
- package/src/__tests__/snapshots/shader/hue2.png +0 -0
- package/src/__tests__/snapshots/shader/shader1.png +0 -0
- package/src/__tests__/snapshots/shader/shader2.png +0 -0
- package/src/__tests__/snapshots/shader/sweep-gradient.png +0 -0
- package/src/__tests__/snapshots/text/text-bounds-android.png +0 -0
- package/src/__tests__/snapshots/text/text-bounds-ios.png +0 -0
- package/src/__tests__/snapshots/text/text-default-font-android.png +0 -0
- package/src/__tests__/snapshots/text/text-default-font-ios.png +0 -0
- package/src/__tests__/snapshots/text/text-path-bug-android.png +0 -0
- package/src/__tests__/snapshots/text/text-path-bug-ios.png +0 -0
- package/src/__tests__/snapshots/text/text-path-bug-node.png +0 -0
- package/src/__tests__/snapshots/text/text-path1-android.png +0 -0
- package/src/__tests__/snapshots/text/text-path1-ios.png +0 -0
- package/src/__tests__/snapshots/text/text-path1-node.png +0 -0
- package/src/__tests__/snapshots/text/text-path2-android.png +0 -0
- package/src/__tests__/snapshots/text/text-path2-ios.png +0 -0
- package/src/__tests__/snapshots/text/text-path2-node.png +0 -0
- package/src/__tests__/snapshots/transform/rectangles.png +0 -0
- package/src/__tests__/snapshots/transform/rotate-radiants.png +0 -0
- package/src/__tests__/snapshots/transform/rotate.png +0 -0
- package/src/__tests__/snapshots/transform/scale-origin.png +0 -0
- package/src/__tests__/snapshots/transform/scale.png +0 -0
- package/src/__tests__/snapshots/transform/skew.png +0 -0
- package/src/__tests__/snapshots/transparent.png +0 -0
- package/src/__tests__/snapshots/vertices/billinear-gradient.png +0 -0
- package/src/__tests__/snapshots/vertices/strip.png +0 -0
- package/src/__tests__/snapshots/vertices/vertices.png +0 -0
- package/src/dom/__tests__/Compose.spec.tsx +42 -0
- package/src/dom/__tests__/Demos.spec.tsx +145 -0
- package/src/dom/__tests__/DrawingContext.spec.tsx +99 -0
- package/src/dom/__tests__/Drawings.spec.tsx +95 -0
- package/src/dom/__tests__/Group.spec.tsx +132 -0
- package/src/dom/__tests__/Paint.spec.tsx +100 -0
- package/src/dom/__tests__/RenderNodes.spec.tsx +44 -0
- package/src/dom/__tests__/Shaders.spec.tsx +123 -0
- package/src/renderer/__tests__/Data.spec.tsx +67 -0
- package/src/renderer/__tests__/Drawings.spec.tsx +96 -0
- package/src/renderer/__tests__/FitBox.spec.tsx +126 -0
- package/src/renderer/__tests__/Glyphs.spec.tsx +46 -0
- package/src/renderer/__tests__/Image.spec.tsx +45 -0
- package/src/renderer/__tests__/Paths.spec.tsx +75 -0
- package/src/renderer/__tests__/Picture.spec.tsx +82 -0
- package/src/renderer/__tests__/Simple.spec.tsx +81 -0
- package/src/renderer/__tests__/SkiaDOM.spec.tsx +46 -0
- package/src/renderer/__tests__/Surfaces.spec.tsx +73 -0
- package/src/renderer/__tests__/Text.spec.tsx +134 -0
- package/src/renderer/__tests__/TouchHandler.spec.tsx +113 -0
- package/src/renderer/__tests__/Transform.spec.tsx +72 -0
- package/src/renderer/__tests__/documentation/Group.spec.tsx +171 -0
- package/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.tsx +51 -0
- package/src/renderer/__tests__/documentation/paint/Overview.spec.tsx +84 -0
- package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +46 -0
- package/src/renderer/__tests__/e2e/AnimatedImages.spec.tsx +88 -0
- package/src/renderer/__tests__/e2e/Atlas.spec.tsx +358 -0
- package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +141 -0
- package/src/renderer/__tests__/e2e/Blending.spec.tsx +115 -0
- package/src/renderer/__tests__/e2e/Blur.spec.tsx +56 -0
- package/src/renderer/__tests__/e2e/Box.spec.tsx +83 -0
- package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +212 -0
- package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +81 -0
- package/src/renderer/__tests__/e2e/CoonPatch.spec.tsx +74 -0
- package/src/renderer/__tests__/e2e/DataEncoding.spec.tsx +75 -0
- package/src/renderer/__tests__/e2e/Drawings.spec.tsx +209 -0
- package/src/renderer/__tests__/e2e/FontMgr.spec.tsx +150 -0
- package/src/renderer/__tests__/e2e/Gradient.spec.tsx +40 -0
- package/src/renderer/__tests__/e2e/Group.spec.tsx +129 -0
- package/src/renderer/__tests__/e2e/Image.spec.tsx +139 -0
- package/src/renderer/__tests__/e2e/ImageEncoding.spec.tsx +255 -0
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +230 -0
- package/src/renderer/__tests__/e2e/Mask.spec.tsx +85 -0
- package/src/renderer/__tests__/e2e/Matrix4.spec.tsx +275 -0
- package/src/renderer/__tests__/e2e/NativeBuffer.spec.tsx +156 -0
- package/src/renderer/__tests__/e2e/Offscreen.spec.tsx +109 -0
- package/src/renderer/__tests__/e2e/Opacity.spec.tsx +278 -0
- package/src/renderer/__tests__/e2e/Paint.spec.tsx +170 -0
- package/src/renderer/__tests__/e2e/ParagraphPaint.spec.tsx +262 -0
- package/src/renderer/__tests__/e2e/Paragraphs.spec.tsx +615 -0
- package/src/renderer/__tests__/e2e/PathEffects.spec.tsx +73 -0
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +390 -0
- package/src/renderer/__tests__/e2e/Picture.spec.tsx +134 -0
- package/src/renderer/__tests__/e2e/Point.spec.tsx +35 -0
- package/src/renderer/__tests__/e2e/Rect.spec.tsx +139 -0
- package/src/renderer/__tests__/e2e/RuntimeShader.spec.tsx +324 -0
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +148 -0
- package/src/renderer/__tests__/e2e/SVG.spec.tsx +191 -0
- package/src/renderer/__tests__/e2e/Shader.spec.tsx +260 -0
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +29 -0
- package/src/renderer/__tests__/e2e/Surfaces.spec.tsx +17 -0
- package/src/renderer/__tests__/e2e/Text.spec.tsx +109 -0
- package/src/renderer/__tests__/e2e/TextPath.spec.tsx +45 -0
- package/src/renderer/__tests__/e2e/Transforms.spec.tsx +63 -0
- package/src/renderer/__tests__/e2e/Vertices.spec.tsx +30 -0
- package/src/renderer/__tests__/e2e/Video.ts +69 -0
- package/src/renderer/__tests__/e2e/setup/Paragraph.ts +56 -0
- package/src/renderer/__tests__/e2e/setup/SVG.ts +27 -0
- package/src/renderer/__tests__/e2e/setup/SkiaObject.ts +31 -0
- package/src/renderer/__tests__/e2e/setup/index.ts +3 -0
- package/src/renderer/__tests__/examples/BlendModes.spec.tsx +123 -0
- package/src/renderer/__tests__/setup.tsx +489 -0
- package/src/skia/__tests__/ColorFilter.spec.ts +67 -0
- package/src/skia/__tests__/Data.spec.ts +29 -0
- package/src/skia/__tests__/Drawings.spec.ts +119 -0
- package/src/skia/__tests__/Enums.spec.ts +114 -0
- package/src/skia/__tests__/Geometry.spec.ts +39 -0
- package/src/skia/__tests__/ImageFilter.spec.ts +19 -0
- package/src/skia/__tests__/Mock.spec.ts +7 -0
- package/src/skia/__tests__/Paint.spec.ts +25 -0
- package/src/skia/__tests__/Path.spec.ts +386 -0
- package/src/skia/__tests__/RuntimeEffect.spec.ts +66 -0
- package/src/skia/__tests__/Shader.spec.ts +96 -0
- package/src/skia/__tests__/Text.spec.ts +32 -0
- package/src/skia/__tests__/Transform.spec.ts +89 -0
- package/src/skia/__tests__/Vertices.spec.ts +40 -0
- package/src/skia/__tests__/assets/DIN-Medium.ttf +0 -0
- package/src/skia/__tests__/assets/NotoColorEmoji.ttf +0 -0
- package/src/skia/__tests__/assets/NotoSansSC-Regular.otf +0 -0
- package/src/skia/__tests__/assets/Pacifico-Regular.ttf +0 -0
- package/src/skia/__tests__/assets/Roboto-BlackItalic.ttf +0 -0
- package/src/skia/__tests__/assets/Roboto-Bold.ttf +0 -0
- package/src/skia/__tests__/assets/Roboto-Italic.ttf +0 -0
- package/src/skia/__tests__/assets/Roboto-Medium.ttf +0 -0
- package/src/skia/__tests__/assets/Roboto-Regular.ttf +0 -0
- package/src/skia/__tests__/assets/UberMove-Medium_mono.ttf +0 -0
- package/src/skia/__tests__/assets/bird.gif +0 -0
- package/src/skia/__tests__/assets/box.png +0 -0
- package/src/skia/__tests__/assets/box2.png +0 -0
- package/src/skia/__tests__/assets/card.png +0 -0
- package/src/skia/__tests__/assets/mask.png +0 -0
- package/src/skia/__tests__/assets/oslo.jpg +0 -0
- package/src/skia/__tests__/assets/product.png +0 -0
- package/src/skia/__tests__/assets/skia_logo.png +0 -0
- package/src/skia/__tests__/assets/skia_logo_jpeg.jpg +0 -0
- package/src/skia/__tests__/assets/tiger.svg +724 -0
- package/src/skia/__tests__/assets/zurich.jpg +0 -0
- package/src/skia/__tests__/setup.ts +77 -0
@@ -0,0 +1,139 @@
|
|
1
|
+
import React from "react";
|
2
|
+
|
3
|
+
import { checkImage, docPath } from "../../../__tests__/setup";
|
4
|
+
import { Fill, Path, RoundedRect } from "../../components";
|
5
|
+
import { importSkia, surface } from "../setup";
|
6
|
+
|
7
|
+
describe("Rects and rounded rects", () => {
|
8
|
+
it("The rounded rectangle radii should be scale to its maximum value", async () => {
|
9
|
+
const result = await surface.eval((Skia) => {
|
10
|
+
const rrect = Skia.RRectXY(Skia.XYWHRect(0, 0, 100, 100), 200, 200);
|
11
|
+
return { rx: rrect.rx, ry: rrect.ry };
|
12
|
+
});
|
13
|
+
expect(result).toEqual({ rx: 50, ry: 50 });
|
14
|
+
|
15
|
+
const result1 = await surface.eval((Skia) => {
|
16
|
+
const rrect = Skia.RRectXY(Skia.XYWHRect(0, 0, 100, 100), 200, 20);
|
17
|
+
return { rx: rrect.rx, ry: rrect.ry };
|
18
|
+
});
|
19
|
+
expect(result1).toEqual({ rx: 50, ry: 5 });
|
20
|
+
|
21
|
+
const result2 = await surface.eval((Skia) => {
|
22
|
+
const rrect = Skia.RRectXY(Skia.XYWHRect(0, 0, 100, 100), 0, 0);
|
23
|
+
return rrect.rx + rrect.ry;
|
24
|
+
});
|
25
|
+
expect(result2).toBe(0);
|
26
|
+
|
27
|
+
const result3 = await surface.eval((Skia) => {
|
28
|
+
const rrect = Skia.RRectXY(Skia.XYWHRect(0, 0, 100, 100), 10, 20);
|
29
|
+
return { rx: rrect.rx, ry: rrect.ry };
|
30
|
+
});
|
31
|
+
expect(result3).toEqual({ rx: 10, ry: 20 });
|
32
|
+
});
|
33
|
+
it("Should draw a rounded rect with uniform values (1)", async () => {
|
34
|
+
const { width } = surface;
|
35
|
+
const r = width * 0.2;
|
36
|
+
const image = await surface.draw(
|
37
|
+
<RoundedRect
|
38
|
+
x={0}
|
39
|
+
y={0}
|
40
|
+
width={width}
|
41
|
+
height={width}
|
42
|
+
r={r}
|
43
|
+
color="lightblue"
|
44
|
+
/>
|
45
|
+
);
|
46
|
+
checkImage(image, docPath("rrect/uniform.png"));
|
47
|
+
});
|
48
|
+
it("Should draw a rounded rect with uniform values (2)", async () => {
|
49
|
+
const { Skia } = importSkia();
|
50
|
+
const { width } = surface;
|
51
|
+
const r = width * 0.2;
|
52
|
+
const rrct = Skia.RRectXY(Skia.XYWHRect(0, 0, width, width), r, r);
|
53
|
+
const image = await surface.draw(
|
54
|
+
<RoundedRect rect={rrct} color="lightblue" />
|
55
|
+
);
|
56
|
+
checkImage(image, docPath("rrect/uniform.png"));
|
57
|
+
});
|
58
|
+
it("Should draw a rounded rect with uniform values (3)", async () => {
|
59
|
+
const { width } = surface;
|
60
|
+
const r = width * 0.2;
|
61
|
+
const rrct = {
|
62
|
+
rect: { x: 0, y: 0, width, height: width },
|
63
|
+
topLeft: { x: r, y: r },
|
64
|
+
topRight: { x: r, y: r },
|
65
|
+
bottomRight: { x: r, y: r },
|
66
|
+
bottomLeft: { x: r, y: r },
|
67
|
+
};
|
68
|
+
const image = await surface.draw(
|
69
|
+
<RoundedRect rect={rrct} color="lightblue" />
|
70
|
+
);
|
71
|
+
checkImage(image, docPath("rrect/uniform.png"));
|
72
|
+
});
|
73
|
+
it("Should draw a rounded rect with uniform values (4)", async () => {
|
74
|
+
const { width } = surface;
|
75
|
+
const r = width * 0.2;
|
76
|
+
const { Skia } = importSkia();
|
77
|
+
const rrct = Skia.RRectXY(Skia.XYWHRect(0, 0, width, width), r, r);
|
78
|
+
const path = Skia.Path.Make();
|
79
|
+
path.addRRect(rrct);
|
80
|
+
const image = await surface.draw(<Path path={path} color="lightblue" />);
|
81
|
+
checkImage(image, docPath("rrect/uniform.png"));
|
82
|
+
});
|
83
|
+
it("Should draw a rounded rect with non-uniform values (1)", async () => {
|
84
|
+
const { width } = surface;
|
85
|
+
const r = width * 0.2;
|
86
|
+
const rrct = {
|
87
|
+
rect: { x: 0, y: 0, width, height: width },
|
88
|
+
topLeft: { x: 0, y: 0 },
|
89
|
+
topRight: { x: r, y: r },
|
90
|
+
bottomRight: { x: 0, y: 0 },
|
91
|
+
bottomLeft: { x: r, y: r },
|
92
|
+
};
|
93
|
+
const image = await surface.draw(
|
94
|
+
<RoundedRect rect={rrct} color="lightblue" />
|
95
|
+
);
|
96
|
+
checkImage(image, docPath("rrect/nonuniform.png"));
|
97
|
+
});
|
98
|
+
it("Should draw a rounded rect with non-uniform values (2)", async () => {
|
99
|
+
const { Skia } = importSkia();
|
100
|
+
const { width } = surface;
|
101
|
+
const r = width * 0.2;
|
102
|
+
const rrct = {
|
103
|
+
rect: { x: 0, y: 0, width, height: width },
|
104
|
+
topLeft: { x: 0, y: 0 },
|
105
|
+
topRight: { x: r, y: r },
|
106
|
+
bottomRight: { x: 0, y: 0 },
|
107
|
+
bottomLeft: { x: r, y: r },
|
108
|
+
};
|
109
|
+
const path = Skia.Path.Make();
|
110
|
+
path.addRRect(rrct);
|
111
|
+
const image = await surface.draw(<Path path={path} color="lightblue" />);
|
112
|
+
checkImage(image, docPath("rrect/nonuniform.png"));
|
113
|
+
});
|
114
|
+
it("Should draw a rounded rect with non-uniform values (3)", async () => {
|
115
|
+
const { Skia } = importSkia();
|
116
|
+
const { width, height } = surface;
|
117
|
+
const r = width * 0.2;
|
118
|
+
const barPath = Skia.Path.Make();
|
119
|
+
barPath.addRRect({
|
120
|
+
rect: { x: 0, y: 0, width, height },
|
121
|
+
topLeft: { x: r, y: r },
|
122
|
+
topRight: { x: r, y: r },
|
123
|
+
bottomLeft: { x: 0, y: 0 },
|
124
|
+
bottomRight: { x: 0, y: 0 },
|
125
|
+
});
|
126
|
+
const image = await surface.draw(<Path path={barPath} color="lightblue" />);
|
127
|
+
checkImage(image, docPath("rrect/test.png"));
|
128
|
+
});
|
129
|
+
/*
|
130
|
+
*/
|
131
|
+
it("Supports CSS3 colors (1)", async () => {
|
132
|
+
const image = await surface.draw(<Fill color="hsl(120, 100%, 50%)" />);
|
133
|
+
checkImage(image, docPath("fill/green.png"));
|
134
|
+
});
|
135
|
+
it("Supports CSS3 colors (2)", async () => {
|
136
|
+
const image = await surface.draw(<Fill color="hsla(120, 100%, 50%, 1)" />);
|
137
|
+
checkImage(image, docPath("fill/green.png"));
|
138
|
+
});
|
139
|
+
});
|
@@ -0,0 +1,324 @@
|
|
1
|
+
/* eslint-disable max-len */
|
2
|
+
import React from "react";
|
3
|
+
|
4
|
+
import { surface, importSkia, fonts } from "../setup";
|
5
|
+
import {
|
6
|
+
Circle,
|
7
|
+
Fill,
|
8
|
+
Group,
|
9
|
+
Paint,
|
10
|
+
RuntimeShader,
|
11
|
+
Text,
|
12
|
+
} from "../../components";
|
13
|
+
import { checkImage, docPath, itRunsE2eOnly } from "../../../__tests__/setup";
|
14
|
+
|
15
|
+
const spiral = `
|
16
|
+
uniform float scale;
|
17
|
+
uniform float2 center;
|
18
|
+
uniform float4 color;
|
19
|
+
uniform shader image;
|
20
|
+
|
21
|
+
half4 main(float2 p) {
|
22
|
+
float2 pp = p - center;
|
23
|
+
float radius = sqrt(dot(pp, pp));
|
24
|
+
radius = sqrt(radius);
|
25
|
+
float angle = atan(pp.y / pp.x);
|
26
|
+
float t = (angle + 3.1415926/2) / (3.1415926);
|
27
|
+
t += radius * scale;
|
28
|
+
t = fract(t);
|
29
|
+
return half4(mix(image.eval(vec2(0.5, 0.5)), color, t));
|
30
|
+
}`;
|
31
|
+
|
32
|
+
describe("Runtime Shader", () => {
|
33
|
+
itRunsE2eOnly("should use the sdf of a circle", async () => {
|
34
|
+
const { Skia } = importSkia();
|
35
|
+
const source = Skia.RuntimeEffect.Make(`
|
36
|
+
uniform shader image;
|
37
|
+
|
38
|
+
half4 main(float2 xy) {
|
39
|
+
vec4 color = image.eval(xy);
|
40
|
+
if (xy.x < 128) {
|
41
|
+
return color;
|
42
|
+
}
|
43
|
+
return color.rbga;
|
44
|
+
}
|
45
|
+
`)!;
|
46
|
+
const r = surface.width / 2;
|
47
|
+
expect(source).toBeDefined();
|
48
|
+
const img = await surface.draw(
|
49
|
+
<Group>
|
50
|
+
<RuntimeShader source={source} />
|
51
|
+
<Circle cx={r} cy={r} r={r} color="lightblue" />
|
52
|
+
</Group>
|
53
|
+
);
|
54
|
+
checkImage(img, "snapshots/runtime-shader/simple.png");
|
55
|
+
});
|
56
|
+
itRunsE2eOnly("should display a green and blue spiral", async () => {
|
57
|
+
const { width, height } = surface;
|
58
|
+
const { Skia } = importSkia();
|
59
|
+
const source = Skia.RuntimeEffect.Make(spiral)!;
|
60
|
+
expect(source).toBeTruthy();
|
61
|
+
const scale = 3;
|
62
|
+
const img = await surface.draw(
|
63
|
+
<>
|
64
|
+
<Group transform={[{ scale: 1 / scale }]}>
|
65
|
+
<Group
|
66
|
+
layer={
|
67
|
+
<Paint>
|
68
|
+
<RuntimeShader
|
69
|
+
source={source}
|
70
|
+
uniforms={{
|
71
|
+
scale: 1 / scale,
|
72
|
+
center: { x: (width * scale) / 2, y: (height * scale) / 2 },
|
73
|
+
color: Skia.Color("rgb(0, 255, 0)"),
|
74
|
+
}}
|
75
|
+
/>
|
76
|
+
</Paint>
|
77
|
+
}
|
78
|
+
transform={[{ scale }]}
|
79
|
+
>
|
80
|
+
<Fill color="blue" />
|
81
|
+
</Group>
|
82
|
+
</Group>
|
83
|
+
</>
|
84
|
+
);
|
85
|
+
checkImage(img, "snapshots/runtime-shader/spiral.png");
|
86
|
+
});
|
87
|
+
itRunsE2eOnly(
|
88
|
+
"should be the reference result for the next test (1)",
|
89
|
+
async () => {
|
90
|
+
const { width, height } = surface;
|
91
|
+
const raw = await surface.eval(
|
92
|
+
(Skia, ctx) => {
|
93
|
+
const offscreen = Skia.Surface.MakeOffscreen(ctx.width, ctx.height);
|
94
|
+
if (!offscreen) {
|
95
|
+
throw new Error("Could not create offscreen surface");
|
96
|
+
}
|
97
|
+
const canvas = offscreen.getCanvas();
|
98
|
+
const paint = Skia.Paint();
|
99
|
+
paint.setColor(Skia.Color("lightblue"));
|
100
|
+
canvas.save();
|
101
|
+
canvas.scale(3, 3);
|
102
|
+
canvas.drawCircle(0, 0, 25, paint);
|
103
|
+
canvas.restore();
|
104
|
+
offscreen.flush();
|
105
|
+
return offscreen.makeImageSnapshot().encodeToBase64();
|
106
|
+
},
|
107
|
+
{ width, height }
|
108
|
+
);
|
109
|
+
const { Skia } = importSkia();
|
110
|
+
const data = Skia.Data.fromBase64(raw);
|
111
|
+
const img = Skia.Image.MakeImageFromEncoded(data)!;
|
112
|
+
expect(data).toBeDefined();
|
113
|
+
|
114
|
+
checkImage(img, "snapshots/runtime-shader/scaled-circle.png");
|
115
|
+
}
|
116
|
+
);
|
117
|
+
itRunsE2eOnly("should display display the circle untouched (1)", async () => {
|
118
|
+
const { width, height } = surface;
|
119
|
+
const raw = await surface.eval(
|
120
|
+
(Skia, ctx) => {
|
121
|
+
const offscreen = Skia.Surface.MakeOffscreen(ctx.width, ctx.height);
|
122
|
+
if (!offscreen) {
|
123
|
+
throw new Error("Could not create offscreen surface");
|
124
|
+
}
|
125
|
+
const canvas = offscreen.getCanvas();
|
126
|
+
const paint = Skia.Paint();
|
127
|
+
paint.setColor(Skia.Color("lightblue"));
|
128
|
+
const paint2 = Skia.Paint();
|
129
|
+
const passThrough = `
|
130
|
+
uniform shader image;
|
131
|
+
|
132
|
+
half4 main(float2 xy) {
|
133
|
+
return image.eval(xy);
|
134
|
+
}
|
135
|
+
`;
|
136
|
+
const builder = Skia.RuntimeShaderBuilder(
|
137
|
+
Skia.RuntimeEffect.Make(passThrough)!
|
138
|
+
);
|
139
|
+
paint2.setImageFilter(
|
140
|
+
Skia.ImageFilter.MakeRuntimeShader(builder, null, null)
|
141
|
+
);
|
142
|
+
canvas.saveLayer(paint2);
|
143
|
+
canvas.scale(3, 3);
|
144
|
+
canvas.drawCircle(0, 0, 25, paint);
|
145
|
+
canvas.restore();
|
146
|
+
offscreen.flush();
|
147
|
+
return offscreen.makeImageSnapshot().encodeToBase64();
|
148
|
+
},
|
149
|
+
{ width, height }
|
150
|
+
);
|
151
|
+
const { Skia } = importSkia();
|
152
|
+
const data = Skia.Data.fromBase64(raw);
|
153
|
+
const img = Skia.Image.MakeImageFromEncoded(data)!;
|
154
|
+
expect(data).toBeDefined();
|
155
|
+
|
156
|
+
checkImage(img, "snapshots/runtime-shader/scaled-circle.png", {
|
157
|
+
maxPixelDiff: 4,
|
158
|
+
});
|
159
|
+
});
|
160
|
+
itRunsE2eOnly(
|
161
|
+
"should be the reference result for the next test (2)",
|
162
|
+
async () => {
|
163
|
+
const raw = await surface.eval(
|
164
|
+
(Skia, ctx) => {
|
165
|
+
const { width, height } = ctx;
|
166
|
+
const data = Skia.Data.fromBase64(
|
167
|
+
"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAABJhJREFUeJzt3T2LVGcYx+H7GeJXCDjGtLurVep8i3W0swg2wSJdUDAgCAYMFlaKBgJ2gqSwEBIQBJM0gRRiQEEUDBqEFQQLwbhz7hR5ITHqHuM588zMua4PsPtv5seZM+elfH3r1wxa2bM6LrU3QJdGtQcskM3aA6BrAtDes9oDoGsC0N7T2gOgawLQVilPak+ArglAW5mPa0+ArglAe49qD4CuCUBbJR/WngBdE4CWMsuD2hugawLQ0qjEvdoboGsC0FKJ0d3aG6BrAtDS883mdu0N0DUBaCEjnuzbPf6l9g7omgC0UCJu1N4AfRCAVvJ67QXQBwFoISN+qr0B+iAALYya6Y+1N0AfBGBrG+u73v+59gjogwBsITO+q70B+iIAW8qrtRdAXwRgK6NypfYE6IsAvN7Nycr4Vu0R0BcBeI3MvFx7A/RJAF5jNNp2qfYG6JMAvEopd9ZX3v2+9gzokwC8Qom8WHsD9E0AXqm5UHsB9E0AXqbEtfWV99wAxNITgJfIzPO1N8AsCMB/bUxWd3xVewTMggC8ICPO1d4AsyIAL2jK9EztDTArAvAveXrfyk7P/2cwBOAfsmlO1d4AsyQAf8vTk107PfqbQRGAP02n5UTtDTBrAhARGXHcc/8ZIgGIuN9Mtx+rPQJqGHwAMvLovt3lt9o7oIahB+AbV/0xZIMOQCnN4doboKbBBqDJOOKOP4ZuqAG4undt/HntEVDbEAOwWZrNT2qPgHkwuACUEge96gv+MLQAnF1fGX9ZewTMiyEF4Ic9q+OPa4+AeTKUAGxkM/2o9giYN4MIQGbsd6cf/NfSByAjD0zWxt/W3gHz6J3aA/pVDk1Wxy71hVdY2iOAjDi+Z3X7F7V3wDxbygBk5snJ6viz2jtg3i1dADLz5GRtx6e1d8AiWKoAZMRxH35ob4lOApZDE9/54Y0sRQAy8oCz/fDmFj0AG5mxf7K2w+/88D8s8jmAH7KZfugiH/j/FvUI4Kwbe+DtLVoANkuJg27phW4s0leAq6XZ/MCHH7qzEEcATcYRz/CD7s17AL4ppTm8d9XTe6EP8xqA+xl51Es7oF9zF4CMON5Mtx/zui7o3xwFIE9Pp+WEt/TC7MxBAPJ0Ns0pj+yC2asVgI2MONeU6Zl9KzsfVNoAgzfbAJS4lpnnndyD+dB/AEq5UyIvRjQXvIwT5ktfAbiZmZdHo22X1lfe/b6n/wG8pa4CsJEZ30Xk1RiVK5OV8a2O/i7QozcOQEY8KRE3IvJ6Rvw0aqY/etkmLKa/ArAZEc8i4mmU8iQyH0fEoyj5MLM8GJW4V2J09/lmc9vv9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACy93wFAN/itW1l45QAAAABJRU5ErkJggg=="
|
168
|
+
);
|
169
|
+
const image = Skia.Image.MakeImageFromEncoded(data)!;
|
170
|
+
const offscreen = Skia.Surface.MakeOffscreen(width * 3, height * 3);
|
171
|
+
if (!offscreen) {
|
172
|
+
throw new Error("Could not create offscreen surface");
|
173
|
+
}
|
174
|
+
const canvas = offscreen.getCanvas();
|
175
|
+
const paint = Skia.Paint();
|
176
|
+
paint.setColor(Skia.Color("lightblue"));
|
177
|
+
canvas.save();
|
178
|
+
canvas.scale(3, 3);
|
179
|
+
canvas.drawImageRect(
|
180
|
+
image,
|
181
|
+
Skia.XYWHRect(0, 0, width, height),
|
182
|
+
Skia.XYWHRect(0, 0, width / 3, height / 3),
|
183
|
+
paint
|
184
|
+
);
|
185
|
+
canvas.restore();
|
186
|
+
offscreen.flush();
|
187
|
+
return offscreen.makeImageSnapshot().encodeToBase64();
|
188
|
+
},
|
189
|
+
{ width: surface.width, height: surface.height }
|
190
|
+
);
|
191
|
+
const { Skia } = importSkia();
|
192
|
+
const data = Skia.Data.fromBase64(raw);
|
193
|
+
const img = Skia.Image.MakeImageFromEncoded(data)!;
|
194
|
+
expect(data).toBeDefined();
|
195
|
+
|
196
|
+
checkImage(img, "snapshots/runtime-shader/scaled-circle2.png");
|
197
|
+
}
|
198
|
+
);
|
199
|
+
itRunsE2eOnly(
|
200
|
+
"should leave the image from the previous test untouched (2)",
|
201
|
+
async () => {
|
202
|
+
const raw = await surface.eval(
|
203
|
+
(Skia, ctx) => {
|
204
|
+
const { width, height } = ctx;
|
205
|
+
const paint2 = Skia.Paint();
|
206
|
+
const passThrough = `uniform shader image;
|
207
|
+
|
208
|
+
half4 main(float2 xy) {
|
209
|
+
return image.eval(xy);
|
210
|
+
}`;
|
211
|
+
const builder = Skia.RuntimeShaderBuilder(
|
212
|
+
Skia.RuntimeEffect.Make(passThrough)!
|
213
|
+
);
|
214
|
+
paint2.setImageFilter(
|
215
|
+
Skia.ImageFilter.MakeRuntimeShader(builder, null, null)
|
216
|
+
);
|
217
|
+
const data = Skia.Data.fromBase64(
|
218
|
+
"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAABJhJREFUeJzt3T2LVGcYx+H7GeJXCDjGtLurVep8i3W0swg2wSJdUDAgCAYMFlaKBgJ2gqSwEBIQBJM0gRRiQEEUDBqEFQQLwbhz7hR5ITHqHuM588zMua4PsPtv5seZM+elfH3r1wxa2bM6LrU3QJdGtQcskM3aA6BrAtDes9oDoGsC0N7T2gOgawLQVilPak+ArglAW5mPa0+ArglAe49qD4CuCUBbJR/WngBdE4CWMsuD2hugawLQ0qjEvdoboGsC0FKJ0d3aG6BrAtDS883mdu0N0DUBaCEjnuzbPf6l9g7omgC0UCJu1N4AfRCAVvJ67QXQBwFoISN+qr0B+iAALYya6Y+1N0AfBGBrG+u73v+59gjogwBsITO+q70B+iIAW8qrtRdAXwRgK6NypfYE6IsAvN7Nycr4Vu0R0BcBeI3MvFx7A/RJAF5jNNp2qfYG6JMAvEopd9ZX3v2+9gzokwC8Qom8WHsD9E0AXqm5UHsB9E0AXqbEtfWV99wAxNITgJfIzPO1N8AsCMB/bUxWd3xVewTMggC8ICPO1d4AsyIAL2jK9EztDTArAvAveXrfyk7P/2cwBOAfsmlO1d4AsyQAf8vTk107PfqbQRGAP02n5UTtDTBrAhARGXHcc/8ZIgGIuN9Mtx+rPQJqGHwAMvLovt3lt9o7oIahB+AbV/0xZIMOQCnN4doboKbBBqDJOOKOP4ZuqAG4undt/HntEVDbEAOwWZrNT2qPgHkwuACUEge96gv+MLQAnF1fGX9ZewTMiyEF4Ic9q+OPa4+AeTKUAGxkM/2o9giYN4MIQGbsd6cf/NfSByAjD0zWxt/W3gHz6J3aA/pVDk1Wxy71hVdY2iOAjDi+Z3X7F7V3wDxbygBk5snJ6viz2jtg3i1dADLz5GRtx6e1d8AiWKoAZMRxH35ob4lOApZDE9/54Y0sRQAy8oCz/fDmFj0AG5mxf7K2w+/88D8s8jmAH7KZfugiH/j/FvUI4Kwbe+DtLVoANkuJg27phW4s0leAq6XZ/MCHH7qzEEcATcYRz/CD7s17AL4ppTm8d9XTe6EP8xqA+xl51Es7oF9zF4CMON5Mtx/zui7o3xwFIE9Pp+WEt/TC7MxBAPJ0Ns0pj+yC2asVgI2MONeU6Zl9KzsfVNoAgzfbAJS4lpnnndyD+dB/AEq5UyIvRjQXvIwT5ktfAbiZmZdHo22X1lfe/b6n/wG8pa4CsJEZ30Xk1RiVK5OV8a2O/i7QozcOQEY8KRE3IvJ6Rvw0aqY/etkmLKa/ArAZEc8i4mmU8iQyH0fEoyj5MLM8GJW4V2J09/lmc9vv9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACy93wFAN/itW1l45QAAAABJRU5ErkJggg=="
|
219
|
+
);
|
220
|
+
const image = Skia.Image.MakeImageFromEncoded(data)!;
|
221
|
+
const offscreen = Skia.Surface.MakeOffscreen(width * 3, height * 3);
|
222
|
+
if (!offscreen) {
|
223
|
+
throw new Error("Could not create offscreen surface");
|
224
|
+
}
|
225
|
+
const canvas = offscreen.getCanvas();
|
226
|
+
const paint = Skia.Paint();
|
227
|
+
paint.setColor(Skia.Color("lightblue"));
|
228
|
+
canvas.scale(3, 3);
|
229
|
+
canvas.saveLayer(paint2);
|
230
|
+
canvas.drawImageRect(
|
231
|
+
image,
|
232
|
+
Skia.XYWHRect(0, 0, width, height),
|
233
|
+
Skia.XYWHRect(0, 0, width / 3, height / 3),
|
234
|
+
paint
|
235
|
+
);
|
236
|
+
canvas.restore();
|
237
|
+
canvas.restore();
|
238
|
+
offscreen.flush();
|
239
|
+
return offscreen.makeImageSnapshot().encodeToBase64();
|
240
|
+
},
|
241
|
+
{ width: surface.width, height: surface.height }
|
242
|
+
);
|
243
|
+
const { Skia } = importSkia();
|
244
|
+
const data = Skia.Data.fromBase64(raw);
|
245
|
+
const img = Skia.Image.MakeImageFromEncoded(data)!;
|
246
|
+
expect(data).toBeDefined();
|
247
|
+
|
248
|
+
checkImage(img, "snapshots/runtime-shader/scaled-circle2.png");
|
249
|
+
}
|
250
|
+
);
|
251
|
+
itRunsE2eOnly("should use supersampling", async () => {
|
252
|
+
const font = fonts.RobotoMedium;
|
253
|
+
const { Skia } = importSkia();
|
254
|
+
const source = Skia.RuntimeEffect.Make(`
|
255
|
+
uniform shader image;
|
256
|
+
|
257
|
+
half4 main(float2 xy) {
|
258
|
+
vec4 color = image.eval(xy);
|
259
|
+
if (xy.x < 256 * 3/2) {
|
260
|
+
return color;
|
261
|
+
}
|
262
|
+
return color.rbga;
|
263
|
+
}
|
264
|
+
`)!;
|
265
|
+
const img = await surface.draw(
|
266
|
+
<>
|
267
|
+
<Group transform={[{ scale: 1 / 3 }]}>
|
268
|
+
<Group
|
269
|
+
layer={
|
270
|
+
<Paint>
|
271
|
+
<RuntimeShader source={source} />
|
272
|
+
</Paint>
|
273
|
+
}
|
274
|
+
transform={[{ scale: 3 }]}
|
275
|
+
>
|
276
|
+
<Fill color="#B7C9E2" />
|
277
|
+
<Text
|
278
|
+
text="Hello World"
|
279
|
+
x={16}
|
280
|
+
y={32}
|
281
|
+
color="#e38ede"
|
282
|
+
font={font}
|
283
|
+
/>
|
284
|
+
</Group>
|
285
|
+
</Group>
|
286
|
+
</>
|
287
|
+
);
|
288
|
+
checkImage(img, docPath("runtime-shader/with-supersampling.png"), {
|
289
|
+
maxPixelDiff: 1200,
|
290
|
+
});
|
291
|
+
});
|
292
|
+
itRunsE2eOnly("shouldn't use supersampling", async () => {
|
293
|
+
const font = fonts.RobotoMedium;
|
294
|
+
const { Skia } = importSkia();
|
295
|
+
const source = Skia.RuntimeEffect.Make(`
|
296
|
+
uniform shader image;
|
297
|
+
|
298
|
+
half4 main(float2 xy) {
|
299
|
+
vec4 color = image.eval(xy);
|
300
|
+
if (xy.x < 256 / 2) {
|
301
|
+
return color;
|
302
|
+
}
|
303
|
+
return color.rbga;
|
304
|
+
}
|
305
|
+
`)!;
|
306
|
+
const img = await surface.draw(
|
307
|
+
<>
|
308
|
+
<Group
|
309
|
+
layer={
|
310
|
+
<Paint>
|
311
|
+
<RuntimeShader source={source} />
|
312
|
+
</Paint>
|
313
|
+
}
|
314
|
+
>
|
315
|
+
<Fill color="#B7C9E2" />
|
316
|
+
<Text text="Hello World" x={16} y={32} color="#e38ede" font={font} />
|
317
|
+
</Group>
|
318
|
+
</>
|
319
|
+
);
|
320
|
+
checkImage(img, docPath("runtime-shader/without-supersampling.png"), {
|
321
|
+
maxPixelDiff: 500,
|
322
|
+
});
|
323
|
+
});
|
324
|
+
});
|
@@ -0,0 +1,148 @@
|
|
1
|
+
import React from "react";
|
2
|
+
|
3
|
+
import { surface, importSkia } from "../setup";
|
4
|
+
import { Fill, Shader } from "../../components";
|
5
|
+
import { checkImage } from "../../../__tests__/setup";
|
6
|
+
|
7
|
+
describe("Signed Distance Function", () => {
|
8
|
+
it("should use the sdf of a circle", async () => {
|
9
|
+
const { Skia } = importSkia();
|
10
|
+
const source = Skia.RuntimeEffect.Make(`
|
11
|
+
uniform float4 c1;
|
12
|
+
uniform float4 c2;
|
13
|
+
uniform float4 c3;
|
14
|
+
uniform float4 c4;
|
15
|
+
|
16
|
+
float sdCircle(vec2 p, float r) {
|
17
|
+
return length(p)-r;
|
18
|
+
}
|
19
|
+
|
20
|
+
vec4 main(vec2 xy) {
|
21
|
+
vec2 c = vec2(128.0, 128.0);
|
22
|
+
float d = sdCircle(xy-c, 128.0);
|
23
|
+
return mix(c1, c2, saturate(d));
|
24
|
+
}
|
25
|
+
`)!;
|
26
|
+
const c1 = Skia.Color("#61dafb");
|
27
|
+
const c2 = Skia.Color("#fb61da");
|
28
|
+
const c3 = Skia.Color("#61fbcf");
|
29
|
+
const c4 = Skia.Color("#dafb61");
|
30
|
+
expect(source).toBeDefined();
|
31
|
+
const img = await surface.draw(
|
32
|
+
<Fill>
|
33
|
+
<Shader source={source} uniforms={{ c1, c2, c3, c4 }} />
|
34
|
+
</Fill>
|
35
|
+
);
|
36
|
+
checkImage(img, "snapshots/sdf/circle.png");
|
37
|
+
});
|
38
|
+
it("should use the sdf of a line", async () => {
|
39
|
+
const { Skia } = importSkia();
|
40
|
+
const source = Skia.RuntimeEffect.Make(`
|
41
|
+
uniform float4 c1;
|
42
|
+
uniform float4 c2;
|
43
|
+
|
44
|
+
float sdLine(vec2 p, vec2 a, vec2 b) {
|
45
|
+
float2 ab = b - a;
|
46
|
+
float2 ap = p - a;
|
47
|
+
float h = saturate(dot(ab, ap)/dot(ab, ab));
|
48
|
+
float2 aq = h * ab;
|
49
|
+
float d = length(ap-aq);//distance(p, aq+a);//sqrt(pow(length(ap), 2) - pow(length(aq), 2));
|
50
|
+
return d;
|
51
|
+
}
|
52
|
+
vec4 main(vec2 xy) {
|
53
|
+
float strokeWidth = 40;
|
54
|
+
float2 p1 = vec2(32);
|
55
|
+
float2 p2 = vec2(256-32);
|
56
|
+
vec2 c = vec2(128.0, 128.0);
|
57
|
+
float d = sdLine(xy, p1, p2);
|
58
|
+
if (d < strokeWidth/2) {
|
59
|
+
return c2;
|
60
|
+
}
|
61
|
+
return c1;
|
62
|
+
}
|
63
|
+
`)!;
|
64
|
+
const c1 = Skia.Color("#61dafb");
|
65
|
+
const c2 = Skia.Color("#fb61da");
|
66
|
+
expect(source).toBeDefined();
|
67
|
+
const img = await surface.draw(
|
68
|
+
<Fill>
|
69
|
+
<Shader source={source} uniforms={{ c1, c2 }} />
|
70
|
+
</Fill>
|
71
|
+
);
|
72
|
+
checkImage(img, "snapshots/sdf/line.png");
|
73
|
+
});
|
74
|
+
it("should use the sdf of a rectangle", async () => {
|
75
|
+
const { Skia } = importSkia();
|
76
|
+
const source = Skia.RuntimeEffect.Make(`
|
77
|
+
uniform float4 c1;
|
78
|
+
uniform float4 c2;
|
79
|
+
|
80
|
+
float sdRect( in vec2 p, in vec2 b ) {
|
81
|
+
vec2 d = abs(p)-b;
|
82
|
+
return length(max(d,0.0)) + min(max(d.x,d.y),0.0);
|
83
|
+
}
|
84
|
+
|
85
|
+
vec4 main(vec2 xy) {
|
86
|
+
vec2 b = vec2(64, 64);
|
87
|
+
vec2 c = vec2(128.0, 128.0);
|
88
|
+
float d = sdRect(xy - c, b);
|
89
|
+
if (d < 0) {
|
90
|
+
return c2;
|
91
|
+
}
|
92
|
+
return c1;
|
93
|
+
}
|
94
|
+
`)!;
|
95
|
+
const c1 = Skia.Color("#61dafb");
|
96
|
+
const c2 = Skia.Color("#fb61da");
|
97
|
+
expect(source).toBeDefined();
|
98
|
+
const img = await surface.draw(
|
99
|
+
<Fill>
|
100
|
+
<Shader source={source} uniforms={{ c1, c2 }} />
|
101
|
+
</Fill>
|
102
|
+
);
|
103
|
+
checkImage(img, "snapshots/sdf/rectangle.png");
|
104
|
+
});
|
105
|
+
it("should use the sdf of a heart", async () => {
|
106
|
+
const { Skia } = importSkia();
|
107
|
+
const source = Skia.RuntimeEffect.Make(`
|
108
|
+
uniform float4 c1;
|
109
|
+
uniform float4 c2;
|
110
|
+
uniform float2 resolution;
|
111
|
+
|
112
|
+
float dot2(in vec2 v) { return dot(v,v); }
|
113
|
+
|
114
|
+
float sdHeart(in vec2 p)
|
115
|
+
{
|
116
|
+
p.x = abs(p.x);
|
117
|
+
|
118
|
+
if( p.y+p.x>1.0 )
|
119
|
+
return sqrt(dot2(p-vec2(0.25,0.75))) - sqrt(2.0)/4.0;
|
120
|
+
return sqrt(min(dot2(p-vec2(0.00,1.00)),
|
121
|
+
dot2(p-0.5*max(p.x+p.y,0.0)))) * sign(p.x-p.y);
|
122
|
+
}
|
123
|
+
|
124
|
+
vec4 main(vec2 xy) {
|
125
|
+
vec2 p = (xy*2.0-resolution.xy)/-resolution.y;
|
126
|
+
p.y += 0.5;
|
127
|
+
float d = sdHeart(p);
|
128
|
+
if (d < 0) {
|
129
|
+
return c2;
|
130
|
+
}
|
131
|
+
return c1;
|
132
|
+
}
|
133
|
+
`)!;
|
134
|
+
const c1 = Skia.Color("#61dafb");
|
135
|
+
const c2 = Skia.Color("#fb61da");
|
136
|
+
expect(source).toBeDefined();
|
137
|
+
const { width, height } = surface;
|
138
|
+
const img = await surface.draw(
|
139
|
+
<Fill>
|
140
|
+
<Shader
|
141
|
+
source={source}
|
142
|
+
uniforms={{ c1, c2, resolution: [width, height] }}
|
143
|
+
/>
|
144
|
+
</Fill>
|
145
|
+
);
|
146
|
+
checkImage(img, "snapshots/sdf/heart.png");
|
147
|
+
});
|
148
|
+
});
|