@shopify/react-native-skia 2.2.21 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +0 -3
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +4 -1
- package/apple/RNSkApplePlatformContext.mm +21 -12
- package/cpp/api/JsiSkCanvas.h +3 -21
- package/cpp/api/JsiSkImage.h +8 -2
- package/cpp/api/JsiSkPath.h +1 -1
- package/cpp/api/JsiSkPathFactory.h +1 -1
- package/cpp/api/JsiSkSVG.h +4 -1
- package/cpp/api/JsiSkSVGFactory.h +127 -8
- package/cpp/skia/include/android/AHardwareBufferUtils.h +3 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +0 -4
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +0 -4
- package/cpp/skia/include/android/SkImageAndroid.h +1 -0
- package/cpp/skia/include/codec/SkCodec.h +23 -2
- package/cpp/skia/include/codec/SkPngRustDecoder.h +30 -0
- package/cpp/skia/include/core/SkBitmap.h +1 -1
- package/cpp/skia/include/core/SkCPURecorder.h +5 -0
- package/cpp/skia/include/core/SkCanvas.h +2 -0
- package/cpp/skia/include/core/SkColorSpace.h +11 -12
- package/cpp/skia/include/core/SkContourMeasure.h +6 -2
- package/cpp/skia/include/core/SkExecutor.h +18 -0
- package/cpp/skia/include/core/SkFont.h +26 -19
- package/cpp/skia/include/core/SkImage.h +4 -66
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkMatrix.h +84 -120
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPath.h +390 -395
- package/cpp/skia/include/core/SkPathBuilder.h +64 -34
- package/cpp/skia/include/core/SkPathEffect.h +12 -5
- package/cpp/skia/include/core/SkPathIter.h +90 -0
- package/cpp/skia/include/core/SkPathMeasure.h +5 -1
- package/cpp/skia/include/core/SkPathTypes.h +7 -3
- package/cpp/skia/include/core/SkPathUtils.h +20 -13
- package/cpp/skia/include/core/SkRRect.h +7 -11
- package/cpp/skia/include/core/SkRecorder.h +12 -0
- package/cpp/skia/include/core/SkRect.h +33 -8
- package/cpp/skia/include/core/SkRegion.h +14 -3
- package/cpp/skia/include/core/SkScalar.h +0 -12
- package/cpp/skia/include/core/SkShader.h +20 -7
- package/cpp/skia/include/core/SkStrokeRec.h +2 -1
- package/cpp/skia/include/core/SkTypeface.h +8 -10
- package/cpp/skia/include/core/SkTypes.h +4 -0
- package/cpp/skia/include/encode/SkJpegEncoder.h +5 -10
- package/cpp/skia/include/encode/SkPngEncoder.h +8 -7
- package/cpp/skia/include/encode/SkPngRustEncoder.h +88 -0
- package/cpp/skia/include/encode/SkWebpEncoder.h +5 -10
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +5 -2
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +5 -2
- package/cpp/skia/include/gpu/graphite/Context.h +15 -2
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +26 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +75 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +15 -6
- package/cpp/skia/include/gpu/graphite/Recording.h +0 -3
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +2 -0
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +3 -7
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +2 -10
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +1 -6
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +1 -5
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +16 -3
- package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +3 -0
- package/cpp/skia/{modules/pathops/include → include/pathops}/SkPathOps.h +49 -20
- package/cpp/skia/include/ports/SkFontMgr_FontConfigInterface.h +2 -1
- package/cpp/skia/include/ports/SkFontMgr_android.h +0 -4
- package/cpp/skia/include/ports/SkFontMgr_android_ndk.h +4 -2
- package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +0 -3
- package/cpp/skia/include/private/SkEncodedInfo.h +73 -54
- package/cpp/skia/include/private/SkHdrMetadata.h +173 -0
- package/cpp/skia/include/private/SkPathRef.h +117 -146
- package/cpp/skia/include/private/base/SkTemplates.h +74 -32
- package/cpp/skia/include/utils/SkParsePath.h +9 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +53 -7
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +8 -0
- package/cpp/skia/modules/skottie/include/TextShaper.h +4 -0
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +7 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +12 -0
- package/cpp/skia/modules/sksg/include/SkSGGeometryEffect.h +26 -0
- package/cpp/skia/modules/sksg/include/SkSGPath.h +1 -1
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +11 -1
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +7 -11
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +0 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +0 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +0 -1
- package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGNode.h +11 -10
- package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +4 -3
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +0 -1
- package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -2
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +5 -5
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +0 -1
- package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +2 -2
- package/cpp/skia/src/base/SkTLazy.h +8 -0
- package/cpp/skia/src/core/SkLRUCache.h +17 -13
- package/lib/commonjs/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/lib/commonjs/skia/types/SVG/SVGFactory.js.map +1 -1
- package/lib/module/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/lib/module/skia/types/SVG/SVGFactory.js.map +1 -1
- package/lib/typescript/src/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/package.json +9 -8
- package/react-native-skia.podspec +1 -2
- package/scripts/install-skia.mjs +360 -0
- package/src/skia/types/SVG/SVGFactory.ts +11 -2
- package/cpp/skia/include/android/SkHeifDecoder.h +0 -50
- package/lib/commonjs/__tests__/globalSetup.d.ts +0 -9
- package/lib/commonjs/__tests__/globalTeardown.d.ts +0 -2
- package/lib/commonjs/__tests__/setup.d.ts +0 -36
- package/lib/commonjs/mock/__tests__/mock.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Data.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/FitBox.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Glyphs.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Image.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Paths.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Picture.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Simple.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Surfaces.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Text.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/Transform.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
- package/lib/commonjs/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/Video.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
- package/lib/commonjs/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
- package/lib/commonjs/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
- package/lib/commonjs/renderer/__tests__/e2e/setup/index.d.ts +0 -3
- package/lib/commonjs/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
- package/lib/commonjs/renderer/__tests__/setup.d.ts +0 -71
- package/lib/commonjs/skia/__tests__/ColorFilter.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Data.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Enums.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Geometry.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/ImageFilter.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/commonjs/skia/__tests__/Paint.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Path.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Shader.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Text.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Transform.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/Vertices.spec.d.ts +0 -1
- package/lib/commonjs/skia/__tests__/setup.d.ts +0 -16
- package/lib/commonjs/sksg/__tests__/Simple.spec.d.ts +0 -1
- package/lib/module/__tests__/globalSetup.d.ts +0 -9
- package/lib/module/__tests__/globalTeardown.d.ts +0 -2
- package/lib/module/__tests__/setup.d.ts +0 -36
- package/lib/module/mock/__tests__/mock.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Data.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/FitBox.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Glyphs.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Image.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Paths.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Picture.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Simple.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Surfaces.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Text.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/Transform.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
- package/lib/module/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/Video.d.ts +0 -1
- package/lib/module/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
- package/lib/module/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
- package/lib/module/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
- package/lib/module/renderer/__tests__/e2e/setup/index.d.ts +0 -3
- package/lib/module/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
- package/lib/module/renderer/__tests__/setup.d.ts +0 -71
- package/lib/module/skia/__tests__/ColorFilter.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Data.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Enums.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Geometry.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/ImageFilter.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/module/skia/__tests__/Paint.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Path.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Shader.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Text.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Transform.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/Vertices.spec.d.ts +0 -1
- package/lib/module/skia/__tests__/setup.d.ts +0 -16
- package/lib/module/sksg/__tests__/Simple.spec.d.ts +0 -1
- package/lib/typescript/src/__tests__/globalSetup.d.ts +0 -9
- package/lib/typescript/src/__tests__/globalTeardown.d.ts +0 -2
- package/lib/typescript/src/__tests__/setup.d.ts +0 -36
- package/lib/typescript/src/mock/__tests__/mock.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Data.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/FitBox.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Glyphs.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Image.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Paths.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Picture.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Simple.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Surfaces.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Text.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/Transform.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/documentation/Group.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/documentation/paint/Overview.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/documentation/shapes/Box.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/AnimatedImages.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Atlas.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/BackdropFilters.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Blending.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Blur.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Box.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Camera.spec.d.ts +0 -21
- package/lib/typescript/src/renderer/__tests__/e2e/ColorFilters.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/CoonPatch.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/DataEncoding.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Drawings.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/FontMgr.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Gradient.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Group.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Image.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/ImageEncoding.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/ImageFilter.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/ImageFilters.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/LightingImageFilters.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Mask.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Matrix4.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/NativeBuffer.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Offscreen.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Opacity.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Paint.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/ParagraphMethods.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/ParagraphPaint.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Paragraphs.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/PathEffects.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Paths.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Picture.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Point.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Rect.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/RuntimeShader.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/SDF.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/SVG.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Shader.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Skottie.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Snapshot.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Surfaces.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Text.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/TextPath.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Transforms.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Vertices.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/Video.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/e2e/setup/Paragraph.d.ts +0 -20
- package/lib/typescript/src/renderer/__tests__/e2e/setup/SVG.d.ts +0 -13
- package/lib/typescript/src/renderer/__tests__/e2e/setup/SkiaObject.d.ts +0 -11
- package/lib/typescript/src/renderer/__tests__/e2e/setup/index.d.ts +0 -3
- package/lib/typescript/src/renderer/__tests__/examples/BlendModes.spec.d.ts +0 -1
- package/lib/typescript/src/renderer/__tests__/setup.d.ts +0 -71
- package/lib/typescript/src/skia/__tests__/ColorFilter.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Data.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Drawings.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Enums.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Geometry.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/ImageFilter.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Mock.spec.d.ts +0 -0
- package/lib/typescript/src/skia/__tests__/Paint.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Path.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/RuntimeEffect.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Shader.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Text.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Transform.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/Vertices.spec.d.ts +0 -1
- package/lib/typescript/src/skia/__tests__/setup.d.ts +0 -16
- package/lib/typescript/src/sksg/__tests__/Simple.spec.d.ts +0 -1
- package/libs/android/arm64-v8a/libjsonreader.a +0 -0
- package/libs/android/arm64-v8a/libpathops.a +0 -0
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libjsonreader.a +0 -0
- package/libs/android/armeabi-v7a/libpathops.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libjsonreader.a +0 -0
- package/libs/android/x86/libpathops.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode_core.a +0 -0
- package/libs/android/x86/libskunicode_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libjsonreader.a +0 -0
- package/libs/android/x86_64/libpathops.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode_core.a +0 -0
- package/libs/android/x86_64/libskunicode_icu.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/apple/libpathops.xcframework/Info.plist +0 -94
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libskia.xcframework/Info.plist +0 -94
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/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/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskottie.xcframework/Info.plist +0 -94
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/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/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskparagraph.xcframework/Info.plist +0 -94
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/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/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libsksg.xcframework/Info.plist +0 -94
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/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/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libskshaper.xcframework/Info.plist +0 -94
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/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/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/Info.plist +0 -94
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/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/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +0 -94
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/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/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libsvg.xcframework/Info.plist +0 -94
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/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/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/src/__tests__/globalSetup.ts +0 -53
- package/src/__tests__/globalTeardown.ts +0 -11
- package/src/__tests__/setup.ts +0 -192
- 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-opacity.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/semi-transparent-layer.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-layer.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/camera-corner.png +0 -0
- package/src/__tests__/snapshots/matrix4/camera-offset.png +0 -0
- package/src/__tests__/snapshots/matrix4/camera-top-left-center.png +0 -0
- package/src/__tests__/snapshots/matrix4/camera-zoom-out.png +0 -0
- package/src/__tests__/snapshots/matrix4/full-rect.png +0 -0
- package/src/__tests__/snapshots/matrix4/perspective.png +0 -0
- package/src/__tests__/snapshots/matrix4/rect.png +0 -0
- package/src/__tests__/snapshots/matrix4/scaled-rect.png +0 -0
- package/src/__tests__/snapshots/matrix4/test-perspective.png +0 -0
- package/src/__tests__/snapshots/matrix4/test-perspective2.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/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/__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/mock/__tests__/mock.spec.ts +0 -47
- package/src/renderer/__tests__/Data.spec.tsx +0 -66
- package/src/renderer/__tests__/Drawings.spec.tsx +0 -96
- package/src/renderer/__tests__/FitBox.spec.tsx +0 -677
- package/src/renderer/__tests__/Glyphs.spec.tsx +0 -46
- package/src/renderer/__tests__/Image.spec.tsx +0 -45
- package/src/renderer/__tests__/Paths.spec.tsx +0 -75
- package/src/renderer/__tests__/Picture.spec.tsx +0 -83
- package/src/renderer/__tests__/Simple.spec.tsx +0 -81
- package/src/renderer/__tests__/Surfaces.spec.tsx +0 -68
- package/src/renderer/__tests__/Text.spec.tsx +0 -134
- package/src/renderer/__tests__/Transform.spec.tsx +0 -72
- package/src/renderer/__tests__/documentation/Group.spec.tsx +0 -170
- package/src/renderer/__tests__/documentation/getting-started/HelloWorld.spec.tsx +0 -51
- package/src/renderer/__tests__/documentation/paint/Overview.spec.tsx +0 -84
- package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +0 -46
- package/src/renderer/__tests__/e2e/AdvancedImageFilters.spec.tsx +0 -492
- package/src/renderer/__tests__/e2e/AnimatedImages.spec.tsx +0 -87
- package/src/renderer/__tests__/e2e/Atlas.spec.tsx +0 -358
- package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +0 -164
- package/src/renderer/__tests__/e2e/Blending.spec.tsx +0 -115
- package/src/renderer/__tests__/e2e/Blur.spec.tsx +0 -56
- package/src/renderer/__tests__/e2e/Box.spec.tsx +0 -105
- package/src/renderer/__tests__/e2e/Camera.spec.tsx +0 -475
- package/src/renderer/__tests__/e2e/ColorFilters.spec.tsx +0 -227
- package/src/renderer/__tests__/e2e/Composition/ColorFilterComposition.spec.tsx +0 -102
- package/src/renderer/__tests__/e2e/CoonPatch.spec.tsx +0 -74
- package/src/renderer/__tests__/e2e/DataEncoding.spec.tsx +0 -79
- package/src/renderer/__tests__/e2e/Drawings.spec.tsx +0 -254
- package/src/renderer/__tests__/e2e/FontMgr.spec.tsx +0 -150
- package/src/renderer/__tests__/e2e/Gradient.spec.tsx +0 -40
- package/src/renderer/__tests__/e2e/Group.spec.tsx +0 -128
- package/src/renderer/__tests__/e2e/Image.spec.tsx +0 -77
- package/src/renderer/__tests__/e2e/ImageEncoding.spec.tsx +0 -255
- package/src/renderer/__tests__/e2e/ImageFilter.spec.tsx +0 -99
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +0 -320
- package/src/renderer/__tests__/e2e/LightingImageFilters.spec.tsx +0 -1478
- package/src/renderer/__tests__/e2e/Mask.spec.tsx +0 -85
- package/src/renderer/__tests__/e2e/Matrix4.spec.tsx +0 -367
- package/src/renderer/__tests__/e2e/NativeBuffer.spec.tsx +0 -158
- package/src/renderer/__tests__/e2e/Offscreen.spec.tsx +0 -109
- package/src/renderer/__tests__/e2e/Opacity.spec.tsx +0 -301
- package/src/renderer/__tests__/e2e/Paint.spec.tsx +0 -230
- package/src/renderer/__tests__/e2e/ParagraphMethods.spec.tsx +0 -388
- package/src/renderer/__tests__/e2e/ParagraphPaint.spec.tsx +0 -262
- package/src/renderer/__tests__/e2e/Paragraphs.spec.tsx +0 -615
- package/src/renderer/__tests__/e2e/PathEffects.spec.tsx +0 -73
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +0 -394
- package/src/renderer/__tests__/e2e/Picture.spec.tsx +0 -134
- package/src/renderer/__tests__/e2e/Point.spec.tsx +0 -35
- package/src/renderer/__tests__/e2e/Rect.spec.tsx +0 -139
- package/src/renderer/__tests__/e2e/RuntimeShader.spec.tsx +0 -323
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +0 -148
- package/src/renderer/__tests__/e2e/SVG.spec.tsx +0 -192
- package/src/renderer/__tests__/e2e/Shader.spec.tsx +0 -353
- package/src/renderer/__tests__/e2e/Skottie.spec.tsx +0 -463
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +0 -29
- package/src/renderer/__tests__/e2e/Surfaces.spec.tsx +0 -17
- package/src/renderer/__tests__/e2e/Text.spec.tsx +0 -109
- package/src/renderer/__tests__/e2e/TextPath.spec.tsx +0 -43
- package/src/renderer/__tests__/e2e/Transforms.spec.tsx +0 -63
- package/src/renderer/__tests__/e2e/Vertices.spec.tsx +0 -30
- package/src/renderer/__tests__/e2e/Video.ts +0 -68
- package/src/renderer/__tests__/e2e/setup/Paragraph.ts +0 -60
- package/src/renderer/__tests__/e2e/setup/SVG.ts +0 -31
- package/src/renderer/__tests__/e2e/setup/SkiaObject.ts +0 -31
- package/src/renderer/__tests__/e2e/setup/index.ts +0 -3
- package/src/renderer/__tests__/e2e/setup/skottie/basic_slots.json +0 -1118
- package/src/renderer/__tests__/e2e/setup/skottie/color-props.json +0 -1
- package/src/renderer/__tests__/e2e/setup/skottie/confetti.json +0 -5899
- package/src/renderer/__tests__/e2e/setup/skottie/drinks.json +0 -43857
- package/src/renderer/__tests__/e2e/setup/skottie/fingerprint.json +0 -1
- package/src/renderer/__tests__/e2e/setup/skottie/lego_loader.json +0 -29540
- package/src/renderer/__tests__/e2e/setup/skottie/new-drop.json +0 -1
- package/src/renderer/__tests__/e2e/setup/skottie/onboarding.json +0 -1
- package/src/renderer/__tests__/e2e/setup/skottie/text-layer.json +0 -1
- package/src/renderer/__tests__/examples/BlendModes.spec.tsx +0 -123
- package/src/renderer/__tests__/setup.tsx +0 -525
- package/src/skia/__tests__/ColorFilter.spec.ts +0 -67
- package/src/skia/__tests__/Data.spec.ts +0 -29
- package/src/skia/__tests__/Drawings.spec.ts +0 -119
- package/src/skia/__tests__/Enums.spec.ts +0 -136
- package/src/skia/__tests__/Geometry.spec.ts +0 -39
- package/src/skia/__tests__/ImageFilter.spec.ts +0 -19
- package/src/skia/__tests__/Mock.spec.ts +0 -7
- package/src/skia/__tests__/Paint.spec.ts +0 -25
- package/src/skia/__tests__/Path.spec.ts +0 -384
- package/src/skia/__tests__/RuntimeEffect.spec.ts +0 -66
- package/src/skia/__tests__/Shader.spec.ts +0 -96
- package/src/skia/__tests__/Text.spec.ts +0 -32
- package/src/skia/__tests__/Transform.spec.ts +0 -89
- package/src/skia/__tests__/Vertices.spec.ts +0 -40
- package/src/skia/__tests__/assets/Avenir-Heavy.ttf +0 -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-mini.jpg +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 +0 -724
- package/src/skia/__tests__/assets/zurich.jpg +0 -0
- package/src/skia/__tests__/setup.ts +0 -27
- package/src/sksg/__tests__/Simple.spec.tsx +0 -148
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
#define SkPathRef_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkArc.h"
|
|
12
|
+
#include "include/core/SkMatrix.h"
|
|
12
13
|
#include "include/core/SkPathTypes.h" // IWYU pragma: keep
|
|
13
14
|
#include "include/core/SkPoint.h"
|
|
15
|
+
#include "include/core/SkRRect.h"
|
|
14
16
|
#include "include/core/SkRect.h"
|
|
15
17
|
#include "include/core/SkRefCnt.h"
|
|
16
18
|
#include "include/core/SkScalar.h"
|
|
@@ -27,7 +29,63 @@
|
|
|
27
29
|
#include <tuple>
|
|
28
30
|
|
|
29
31
|
class SkMatrix;
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* These "info" structs are used to return identifying information, when a path
|
|
35
|
+
* is queried if it is a special "shape". (e.g. isOval(), isRRect())
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
struct SkPathRectInfo {
|
|
39
|
+
SkRect fRect;
|
|
40
|
+
SkPathDirection fDirection;
|
|
41
|
+
uint8_t fStartIndex;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
struct SkPathOvalInfo {
|
|
45
|
+
SkRect fBounds;
|
|
46
|
+
SkPathDirection fDirection;
|
|
47
|
+
uint8_t fStartIndex;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
struct SkPathRRectInfo {
|
|
51
|
+
SkRRect fRRect;
|
|
52
|
+
SkPathDirection fDirection;
|
|
53
|
+
uint8_t fStartIndex;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
* Paths can be tagged with a "Type" -- the IsAType
|
|
58
|
+
* This signals that it was built from a high-level shape: oval, rrect, arc, wedge.
|
|
59
|
+
* We try to retain this tag, but still build the explicitly line/quad/conic/cubic
|
|
60
|
+
* structure need to represent that shape. Thus a user of path can always just look
|
|
61
|
+
* at the points and verbs, and draw it correctly.
|
|
62
|
+
*
|
|
63
|
+
* The GPU backend sometimes will sniff the path for this tag/type, and may have a
|
|
64
|
+
* more optimal way to draw the shape if they know its "really" an oval or whatever.
|
|
65
|
+
*
|
|
66
|
+
* Path's can also identify as a "rect" -- but we don't store any special tag for this.
|
|
67
|
+
*
|
|
68
|
+
* Here are the special "types" we have APIs for (e.g. isRRect()) and what we store:
|
|
69
|
+
*
|
|
70
|
+
* kGeneral : no identifying shape, no extra data
|
|
71
|
+
* (Rect) : no tag, but isRect() will examing the points/verbs, and try to
|
|
72
|
+
* deduce that it represents a rect.
|
|
73
|
+
* kOval : the path bounds is also the oval's bounds -- we store the direction
|
|
74
|
+
* and start_index (important for dashing). see SkPathMakers.h
|
|
75
|
+
* kRRect : same as kOval for implicit bounds, direction and start_index.
|
|
76
|
+
* Note: we don't store its radii -- we deduce those when isRRect() is
|
|
77
|
+
* called, by examining the points/verbs.
|
|
78
|
+
*/
|
|
79
|
+
enum class SkPathIsAType : uint8_t {
|
|
80
|
+
kGeneral,
|
|
81
|
+
kOval,
|
|
82
|
+
kRRect,
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
struct SkPathIsAData {
|
|
86
|
+
uint8_t fStartIndex;
|
|
87
|
+
SkPathDirection fDirection;
|
|
88
|
+
};
|
|
31
89
|
|
|
32
90
|
/**
|
|
33
91
|
* Holds the path verbs and points. It is versioned by a generation ID. None of its public methods
|
|
@@ -49,18 +107,11 @@ public:
|
|
|
49
107
|
// See https://bugs.chromium.org/p/skia/issues/detail?id=13817 for how these sizes were
|
|
50
108
|
// determined.
|
|
51
109
|
using PointsArray = skia_private::STArray<4, SkPoint>;
|
|
52
|
-
using VerbsArray = skia_private::STArray<4,
|
|
53
|
-
using ConicWeightsArray = skia_private::STArray<2,
|
|
54
|
-
|
|
55
|
-
enum class PathType : uint8_t {
|
|
56
|
-
kGeneral,
|
|
57
|
-
kOval,
|
|
58
|
-
kRRect,
|
|
59
|
-
kArc,
|
|
60
|
-
};
|
|
110
|
+
using VerbsArray = skia_private::STArray<4, SkPathVerb>;
|
|
111
|
+
using ConicWeightsArray = skia_private::STArray<2, float>;
|
|
61
112
|
|
|
62
|
-
SkPathRef(SkSpan<const SkPoint> points, SkSpan<const
|
|
63
|
-
SkSpan<const SkScalar> weights, unsigned segmentMask)
|
|
113
|
+
SkPathRef(SkSpan<const SkPoint> points, SkSpan<const SkPathVerb> verbs,
|
|
114
|
+
SkSpan<const SkScalar> weights, unsigned segmentMask, const SkMatrix* mx)
|
|
64
115
|
: fPoints(points)
|
|
65
116
|
, fVerbs(verbs)
|
|
66
117
|
, fConicWeights(weights)
|
|
@@ -68,15 +119,11 @@ public:
|
|
|
68
119
|
fBoundsIsDirty = true; // this also invalidates fIsFinite
|
|
69
120
|
fGenerationID = 0; // recompute
|
|
70
121
|
fSegmentMask = segmentMask;
|
|
71
|
-
fType =
|
|
72
|
-
// The next two values don't matter unless fType is kOval or kRRect
|
|
73
|
-
fRRectOrOvalIsCCW = false;
|
|
74
|
-
fRRectOrOvalStartIdx = 0xAC;
|
|
75
|
-
fArcOval.setEmpty();
|
|
76
|
-
fArcStartAngle = fArcSweepAngle = 0.0f;
|
|
77
|
-
fArcType = SkArc::Type::kArc;
|
|
122
|
+
fType = SkPathIsAType::kGeneral;
|
|
78
123
|
SkDEBUGCODE(fEditorsAttached.store(0);)
|
|
79
|
-
|
|
124
|
+
if (mx && !mx->isIdentity()) {
|
|
125
|
+
mx->mapPoints(fPoints);
|
|
126
|
+
}
|
|
80
127
|
this->computeBounds(); // do this now, before we worry about multiple owners/threads
|
|
81
128
|
SkDEBUGCODE(this->validate();)
|
|
82
129
|
}
|
|
@@ -107,7 +154,7 @@ public:
|
|
|
107
154
|
* return value is a pointer to where the points for the verb should be written.
|
|
108
155
|
* 'weight' is only used if 'verb' is kConic_Verb
|
|
109
156
|
*/
|
|
110
|
-
SkPoint* growForVerb(
|
|
157
|
+
SkPoint* growForVerb(SkPathVerb verb, SkScalar weight = 0) {
|
|
111
158
|
SkDEBUGCODE(fPathRef->validate();)
|
|
112
159
|
return fPathRef->growForVerb(verb, weight);
|
|
113
160
|
}
|
|
@@ -119,7 +166,7 @@ public:
|
|
|
119
166
|
* If 'verb' is kConic_Verb, 'weights' will return a pointer to the
|
|
120
167
|
* space for the conic weights (indexed normally).
|
|
121
168
|
*/
|
|
122
|
-
SkPoint* growForRepeatedVerb(
|
|
169
|
+
SkPoint* growForRepeatedVerb(SkPathVerb verb,
|
|
123
170
|
int numVbs,
|
|
124
171
|
SkScalar** weights = nullptr) {
|
|
125
172
|
return fPathRef->growForRepeatedVerb(verb, numVbs, weights);
|
|
@@ -149,16 +196,12 @@ public:
|
|
|
149
196
|
*/
|
|
150
197
|
SkPathRef* pathRef() { return fPathRef; }
|
|
151
198
|
|
|
152
|
-
void setIsOval(
|
|
153
|
-
fPathRef->setIsOval(
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
void setIsRRect(bool isCCW, unsigned start) {
|
|
157
|
-
fPathRef->setIsRRect(isCCW, start);
|
|
199
|
+
void setIsOval(SkPathDirection dir, unsigned start) {
|
|
200
|
+
fPathRef->setIsOval(dir, start);
|
|
158
201
|
}
|
|
159
202
|
|
|
160
|
-
void
|
|
161
|
-
fPathRef->
|
|
203
|
+
void setIsRRect(SkPathDirection dir, unsigned start) {
|
|
204
|
+
fPathRef->setIsRRect(dir, start);
|
|
162
205
|
}
|
|
163
206
|
|
|
164
207
|
void setBounds(const SkRect& rect) { fPathRef->setBounds(rect); }
|
|
@@ -167,34 +210,6 @@ public:
|
|
|
167
210
|
SkPathRef* fPathRef;
|
|
168
211
|
};
|
|
169
212
|
|
|
170
|
-
class SK_API Iter {
|
|
171
|
-
public:
|
|
172
|
-
Iter();
|
|
173
|
-
Iter(const SkPathRef&);
|
|
174
|
-
|
|
175
|
-
void setPathRef(const SkPathRef&);
|
|
176
|
-
|
|
177
|
-
/** Return the next verb in this iteration of the path. When all
|
|
178
|
-
segments have been visited, return kDone_Verb.
|
|
179
|
-
|
|
180
|
-
If any point in the path is non-finite, return kDone_Verb immediately.
|
|
181
|
-
|
|
182
|
-
@param pts The points representing the current verb and/or segment
|
|
183
|
-
This must not be NULL.
|
|
184
|
-
@return The verb for the current segment
|
|
185
|
-
*/
|
|
186
|
-
uint8_t next(SkPoint pts[4]);
|
|
187
|
-
uint8_t peek() const;
|
|
188
|
-
|
|
189
|
-
SkScalar conicWeight() const { return *fConicWeights; }
|
|
190
|
-
|
|
191
|
-
private:
|
|
192
|
-
const SkPoint* fPts;
|
|
193
|
-
const uint8_t* fVerbs;
|
|
194
|
-
const uint8_t* fVerbStop;
|
|
195
|
-
const SkScalar* fConicWeights;
|
|
196
|
-
};
|
|
197
|
-
|
|
198
213
|
public:
|
|
199
214
|
/**
|
|
200
215
|
* Gets a path ref with no verbs or points.
|
|
@@ -219,46 +234,23 @@ public:
|
|
|
219
234
|
*/
|
|
220
235
|
uint32_t getSegmentMasks() const { return fSegmentMask; }
|
|
221
236
|
|
|
222
|
-
/** Returns
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
* @param isCCW is the oval CCW (or CW if false).
|
|
227
|
-
* @param start indicates where the contour starts on the oval (see
|
|
228
|
-
* SkPath::addOval for intepretation of the index).
|
|
229
|
-
*
|
|
230
|
-
* @return true if this path is an oval.
|
|
231
|
-
* Tracking whether a path is an oval is considered an
|
|
232
|
-
* optimization for performance and so some paths that are in
|
|
233
|
-
* fact ovals can report false.
|
|
237
|
+
/** Returns Info struct if the path is an oval, else return {}.
|
|
238
|
+
* Tracking whether a path is an oval is considered an
|
|
239
|
+
* optimization for performance and so some paths that are in
|
|
240
|
+
* fact ovals can report {}.
|
|
234
241
|
*/
|
|
235
|
-
|
|
236
|
-
if (fType ==
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}
|
|
243
|
-
if (start) {
|
|
244
|
-
*start = fRRectOrOvalStartIdx;
|
|
245
|
-
}
|
|
242
|
+
std::optional<SkPathOvalInfo> isOval() const {
|
|
243
|
+
if (fType == SkPathIsAType::kOval) {
|
|
244
|
+
return {{
|
|
245
|
+
this->getBounds(),
|
|
246
|
+
fIsA.fDirection,
|
|
247
|
+
fIsA.fStartIndex,
|
|
248
|
+
}};
|
|
246
249
|
}
|
|
247
|
-
|
|
248
|
-
return fType == PathType::kOval;
|
|
250
|
+
return {};
|
|
249
251
|
}
|
|
250
252
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
bool isArc(SkArc* arc) const {
|
|
254
|
-
if (fType == PathType::kArc) {
|
|
255
|
-
if (arc) {
|
|
256
|
-
*arc = SkArc::Make(fArcOval, fArcStartAngle, fArcSweepAngle, fArcType);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
return fType == PathType::kArc;
|
|
261
|
-
}
|
|
253
|
+
std::optional<SkPathRRectInfo> isRRect() const;
|
|
262
254
|
|
|
263
255
|
bool hasComputedBounds() const {
|
|
264
256
|
return !fBoundsIsDirty;
|
|
@@ -304,16 +296,15 @@ public:
|
|
|
304
296
|
/**
|
|
305
297
|
* Returns a pointer one beyond the first logical verb (last verb in memory order).
|
|
306
298
|
*/
|
|
307
|
-
const
|
|
299
|
+
const SkPathVerb* verbsBegin() const { return fVerbs.begin(); }
|
|
308
300
|
|
|
309
301
|
/**
|
|
310
302
|
* Returns a const pointer to the first verb in memory (which is the last logical verb).
|
|
311
303
|
*/
|
|
312
|
-
const
|
|
304
|
+
const SkPathVerb* verbsEnd() const { return fVerbs.end(); }
|
|
305
|
+
|
|
306
|
+
SkSpan<const SkPathVerb> verbs() const { return fVerbs; }
|
|
313
307
|
|
|
314
|
-
SkSpan<const SkPathVerb> verbs() const {
|
|
315
|
-
return {reinterpret_cast<const SkPathVerb*>(fVerbs.begin()), fVerbs.size()};
|
|
316
|
-
}
|
|
317
308
|
/**
|
|
318
309
|
* Returns a const pointer to the first point.
|
|
319
310
|
*/
|
|
@@ -324,14 +315,18 @@ public:
|
|
|
324
315
|
*/
|
|
325
316
|
const SkPoint* pointsEnd() const { return this->points() + this->countPoints(); }
|
|
326
317
|
|
|
318
|
+
SkSpan<const SkPoint> pointSpan() const { return fPoints; }
|
|
319
|
+
SkSpan<const float> conicSpan() const { return fConicWeights; }
|
|
320
|
+
|
|
327
321
|
const SkScalar* conicWeights() const { return fConicWeights.begin(); }
|
|
328
322
|
const SkScalar* conicWeightsEnd() const { return fConicWeights.end(); }
|
|
329
323
|
|
|
324
|
+
|
|
330
325
|
/**
|
|
331
326
|
* Convenience methods for getting to a verb or point by index.
|
|
332
327
|
*/
|
|
333
|
-
|
|
334
|
-
|
|
328
|
+
SkPathVerb atVerb(int index) const { return fVerbs[index]; }
|
|
329
|
+
SkPoint atPoint(int index) const { return fPoints[index]; }
|
|
335
330
|
|
|
336
331
|
bool operator== (const SkPathRef& ref) const;
|
|
337
332
|
|
|
@@ -375,13 +370,8 @@ private:
|
|
|
375
370
|
fBoundsIsDirty = true; // this also invalidates fIsFinite
|
|
376
371
|
fGenerationID = kEmptyGenID;
|
|
377
372
|
fSegmentMask = 0;
|
|
378
|
-
fType =
|
|
379
|
-
|
|
380
|
-
fRRectOrOvalIsCCW = false;
|
|
381
|
-
fRRectOrOvalStartIdx = 0xAC;
|
|
382
|
-
fArcOval.setEmpty();
|
|
383
|
-
fArcStartAngle = fArcSweepAngle = 0.0f;
|
|
384
|
-
fArcType = SkArc::Type::kArc;
|
|
373
|
+
fType = SkPathIsAType::kGeneral;
|
|
374
|
+
|
|
385
375
|
if (numPoints > 0) {
|
|
386
376
|
fPoints.reserve_exact(numPoints);
|
|
387
377
|
}
|
|
@@ -448,7 +438,7 @@ private:
|
|
|
448
438
|
fGenerationID = 0;
|
|
449
439
|
|
|
450
440
|
fSegmentMask = 0;
|
|
451
|
-
fType =
|
|
441
|
+
fType = SkPathIsAType::kGeneral;
|
|
452
442
|
}
|
|
453
443
|
|
|
454
444
|
/** Resets the path ref with verbCount verbs and pointCount points, all uninitialized. Also
|
|
@@ -475,14 +465,14 @@ private:
|
|
|
475
465
|
* verb. If 'verb' is kConic_Verb, 'weights' will return a pointer to the
|
|
476
466
|
* uninitialized conic weights.
|
|
477
467
|
*/
|
|
478
|
-
SkPoint* growForRepeatedVerb(
|
|
468
|
+
SkPoint* growForRepeatedVerb(SkPathVerb, int numVbs, SkScalar** weights);
|
|
479
469
|
|
|
480
470
|
/**
|
|
481
471
|
* Increases the verb count 1, records the new verb, and creates room for the requisite number
|
|
482
472
|
* of additional points. A pointer to the first point is returned. Any new points are
|
|
483
473
|
* uninitialized.
|
|
484
474
|
*/
|
|
485
|
-
SkPoint* growForVerb(
|
|
475
|
+
SkPoint* growForVerb(SkPathVerb, SkScalar weight);
|
|
486
476
|
|
|
487
477
|
/**
|
|
488
478
|
* Concatenates all verbs from 'path' onto our own verbs array. Increases the point count by the
|
|
@@ -495,37 +485,29 @@ private:
|
|
|
495
485
|
/**
|
|
496
486
|
* Private, non-const-ptr version of the public function verbsMemBegin().
|
|
497
487
|
*/
|
|
498
|
-
uint8_t* verbsBeginWritable() { return fVerbs.begin(); }
|
|
488
|
+
uint8_t* verbsBeginWritable() { return (uint8_t*)fVerbs.begin(); }
|
|
499
489
|
|
|
500
490
|
/**
|
|
501
491
|
* Called the first time someone calls CreateEmpty to actually create the singleton.
|
|
502
492
|
*/
|
|
503
493
|
friend SkPathRef* sk_create_empty_pathref();
|
|
504
494
|
|
|
505
|
-
void setIsOval(
|
|
506
|
-
fType =
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
void setIsRRect(bool isCCW, unsigned start) {
|
|
512
|
-
fType = PathType::kRRect;
|
|
513
|
-
fRRectOrOvalIsCCW = isCCW;
|
|
514
|
-
fRRectOrOvalStartIdx = SkToU8(start);
|
|
495
|
+
void setIsOval(SkPathDirection dir, unsigned start) {
|
|
496
|
+
fType = SkPathIsAType::kOval;
|
|
497
|
+
fIsA.fDirection = dir;
|
|
498
|
+
fIsA.fStartIndex = SkToU8(start);
|
|
515
499
|
}
|
|
516
500
|
|
|
517
|
-
void
|
|
518
|
-
fType =
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
fArcSweepAngle = arc.fSweepAngle;
|
|
522
|
-
fArcType = arc.fType;
|
|
501
|
+
void setIsRRect(SkPathDirection dir, unsigned start) {
|
|
502
|
+
fType = SkPathIsAType::kRRect;
|
|
503
|
+
fIsA.fDirection = dir;
|
|
504
|
+
fIsA.fStartIndex = SkToU8(start);
|
|
523
505
|
}
|
|
524
506
|
|
|
525
507
|
// called only by the editor. Note that this is not a const function.
|
|
526
508
|
SkPoint* getWritablePoints() {
|
|
527
509
|
SkDEBUGCODE(this->validate();)
|
|
528
|
-
fType =
|
|
510
|
+
fType = SkPathIsAType::kGeneral;
|
|
529
511
|
return fPoints.begin();
|
|
530
512
|
}
|
|
531
513
|
|
|
@@ -541,7 +523,6 @@ private:
|
|
|
541
523
|
ConicWeightsArray fConicWeights;
|
|
542
524
|
|
|
543
525
|
mutable SkRect fBounds;
|
|
544
|
-
SkRect fArcOval;
|
|
545
526
|
|
|
546
527
|
enum {
|
|
547
528
|
kEmptyGenID = 1, // GenID reserved for path ref with zero points and zero verbs.
|
|
@@ -551,23 +532,13 @@ private:
|
|
|
551
532
|
|
|
552
533
|
SkDEBUGCODE(std::atomic<int> fEditorsAttached;) // assert only one editor in use at any time.
|
|
553
534
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
PathType fType;
|
|
558
|
-
|
|
559
|
-
mutable uint8_t fBoundsIsDirty;
|
|
560
|
-
|
|
561
|
-
uint8_t fRRectOrOvalStartIdx;
|
|
562
|
-
uint8_t fSegmentMask;
|
|
563
|
-
// If the path is an arc, these four variables store that information.
|
|
564
|
-
// We should just store an SkArc, but alignment would cost us 8 more bytes.
|
|
565
|
-
SkArc::Type fArcType;
|
|
535
|
+
// based on fType
|
|
536
|
+
SkPathIsAData fIsA {};
|
|
566
537
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
bool
|
|
538
|
+
SkPathIsAType fType;
|
|
539
|
+
uint8_t fSegmentMask;
|
|
540
|
+
mutable bool fBoundsIsDirty;
|
|
541
|
+
mutable bool fIsFinite; // only meaningful if bounds are valid
|
|
571
542
|
|
|
572
543
|
friend class PathRefTest_Private;
|
|
573
544
|
friend class ForceIsRRect_Private; // unit test isRRect
|
|
@@ -102,17 +102,17 @@ template <typename T> class AutoTArray {
|
|
|
102
102
|
public:
|
|
103
103
|
AutoTArray() {}
|
|
104
104
|
// Allocate size number of T elements
|
|
105
|
-
explicit AutoTArray(size_t size)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
105
|
+
explicit AutoTArray(size_t size)
|
|
106
|
+
: fData(size > 0 ? new T[check_size_bytes_too_big<T>(size)] : nullptr)
|
|
107
|
+
, fSize(size) {}
|
|
109
108
|
|
|
110
109
|
// TODO: remove when all uses are gone.
|
|
111
110
|
explicit AutoTArray(int size) : AutoTArray(SkToSizeT(size)) {}
|
|
112
111
|
|
|
113
|
-
AutoTArray(AutoTArray&& other)
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
AutoTArray(AutoTArray&& other)
|
|
113
|
+
: fData(std::move(other.fData))
|
|
114
|
+
, fSize(std::exchange(other.fSize, 0)) {}
|
|
115
|
+
|
|
116
116
|
AutoTArray& operator=(AutoTArray&& other) {
|
|
117
117
|
if (this != &other) {
|
|
118
118
|
fData = std::move(other.fData);
|
|
@@ -122,6 +122,7 @@ public:
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Reallocates given a new count. Reallocation occurs even if new count equals old count.
|
|
125
|
+
[[clang::reinitializes]]
|
|
125
126
|
void reset(size_t count = 0) {
|
|
126
127
|
*this = AutoTArray(count);
|
|
127
128
|
}
|
|
@@ -166,26 +167,38 @@ private:
|
|
|
166
167
|
size_t fSize = 0;
|
|
167
168
|
};
|
|
168
169
|
|
|
169
|
-
/** Like AutoTArray with
|
|
170
|
-
*
|
|
171
|
-
* will
|
|
172
|
-
*
|
|
170
|
+
/** Like AutoTArray with storage for some number of elements "nested within". The requested number
|
|
171
|
+
* of elements to fit in the storage is specified by kCountRequested. kCount is the actual number
|
|
172
|
+
* of elements that will fit in the storage. If the runtime number of elements exceeds the space of
|
|
173
|
+
* the storage, the elements will live on the heap.
|
|
173
174
|
*/
|
|
174
175
|
template <int kCountRequested, typename T> class AutoSTArray {
|
|
175
176
|
public:
|
|
176
|
-
AutoSTArray(AutoSTArray&&) = delete;
|
|
177
177
|
AutoSTArray(const AutoSTArray&) = delete;
|
|
178
|
-
AutoSTArray& operator=(AutoSTArray&&) = delete;
|
|
179
178
|
AutoSTArray& operator=(const AutoSTArray&) = delete;
|
|
180
179
|
|
|
180
|
+
AutoSTArray(AutoSTArray&& that) {
|
|
181
|
+
if (that.fArray == nullptr) {
|
|
182
|
+
fArray = nullptr;
|
|
183
|
+
fCount = 0;
|
|
184
|
+
} else if (that.fArray == (T*) that.fStorage) {
|
|
185
|
+
fArray = (T*) fStorage;
|
|
186
|
+
fCount = that.fCount;
|
|
187
|
+
std::uninitialized_move(that.fArray, that.fArray + that.fCount, fArray);
|
|
188
|
+
} else {
|
|
189
|
+
fArray = std::exchange(that.fArray, nullptr);
|
|
190
|
+
fCount = std::exchange(that.fCount, 0);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
AutoSTArray& operator=(AutoSTArray&&) = delete;
|
|
194
|
+
|
|
181
195
|
/** Initialize with no objects */
|
|
182
196
|
AutoSTArray() {
|
|
183
197
|
fArray = nullptr;
|
|
184
198
|
fCount = 0;
|
|
185
199
|
}
|
|
186
200
|
|
|
187
|
-
/** Allocate count number of T elements
|
|
188
|
-
*/
|
|
201
|
+
/** Allocate count number of T elements */
|
|
189
202
|
AutoSTArray(int count) {
|
|
190
203
|
fArray = nullptr;
|
|
191
204
|
fCount = 0;
|
|
@@ -197,18 +210,17 @@ public:
|
|
|
197
210
|
}
|
|
198
211
|
|
|
199
212
|
/** Destroys previous objects in the array and default constructs count number of objects */
|
|
213
|
+
[[clang::reinitializes]]
|
|
200
214
|
void reset(int count) {
|
|
201
|
-
T* start =
|
|
202
|
-
T* iter =
|
|
215
|
+
T* start = begin();
|
|
216
|
+
T* iter = end();
|
|
203
217
|
while (iter > start) {
|
|
204
218
|
(--iter)->~T();
|
|
205
219
|
}
|
|
206
220
|
|
|
207
221
|
SkASSERT(count >= 0);
|
|
208
222
|
if (fCount != count) {
|
|
209
|
-
if (
|
|
210
|
-
// 'fArray' was allocated last time so free it now
|
|
211
|
-
SkASSERT((T*) fStorage != fArray);
|
|
223
|
+
if (fArray != (T*) fStorage) {
|
|
212
224
|
sk_free(fArray);
|
|
213
225
|
}
|
|
214
226
|
|
|
@@ -223,19 +235,31 @@ public:
|
|
|
223
235
|
fCount = count;
|
|
224
236
|
}
|
|
225
237
|
|
|
226
|
-
iter =
|
|
227
|
-
T* stop =
|
|
238
|
+
iter = begin();
|
|
239
|
+
T* stop = end();
|
|
228
240
|
while (iter < stop) {
|
|
229
241
|
new (iter++) T;
|
|
230
242
|
}
|
|
231
243
|
}
|
|
232
244
|
|
|
233
|
-
|
|
234
|
-
|
|
245
|
+
/* Removes elements with index >= count */
|
|
246
|
+
void trimTo(int count) {
|
|
247
|
+
SkASSERT(count >= 0);
|
|
248
|
+
if (count >= fCount) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
T* start = begin() + count;
|
|
252
|
+
T* iter = end();
|
|
253
|
+
while (iter > start) {
|
|
254
|
+
(--iter)->~T();
|
|
255
|
+
}
|
|
256
|
+
fCount = count;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/** Return the number of T elements in the array */
|
|
235
260
|
int count() const { return fCount; }
|
|
236
261
|
|
|
237
|
-
/** Return the array of T elements. Will be
|
|
238
|
-
*/
|
|
262
|
+
/** Return the array of T elements. Will be nullptr if count == 0 */
|
|
239
263
|
T* get() const { return fArray; }
|
|
240
264
|
|
|
241
265
|
T* begin() { return fArray; }
|
|
@@ -246,8 +270,7 @@ public:
|
|
|
246
270
|
|
|
247
271
|
const T* end() const { return fArray + fCount; }
|
|
248
272
|
|
|
249
|
-
/** Return the nth element in the array
|
|
250
|
-
*/
|
|
273
|
+
/** Return the nth element in the array */
|
|
251
274
|
T& operator[](int index) const {
|
|
252
275
|
return fArray[sk_collection_check_bounds(index, fCount)];
|
|
253
276
|
}
|
|
@@ -274,9 +297,11 @@ private:
|
|
|
274
297
|
// Thus, we can expand how many elements are stored on the stack to make use of this
|
|
275
298
|
// (e.g. 1 extra element for 4 byte T if kCountRequested was even).
|
|
276
299
|
static_assert(alignof(int) <= alignof(T*) || alignof(int) <= alignof(T));
|
|
300
|
+
public:
|
|
277
301
|
static constexpr int kCount =
|
|
278
302
|
SkAlignTo(kMinCount*sizeof(T) + sizeof(int), std::max(alignof(T*), alignof(T))) / sizeof(T);
|
|
279
303
|
|
|
304
|
+
private:
|
|
280
305
|
T* fArray;
|
|
281
306
|
alignas(T) std::byte fStorage[kCount * sizeof(T)];
|
|
282
307
|
int fCount;
|
|
@@ -306,6 +331,7 @@ public:
|
|
|
306
331
|
}
|
|
307
332
|
|
|
308
333
|
/** Resize the memory area pointed to by the current ptr without preserving contents. */
|
|
334
|
+
[[clang::reinitializes]]
|
|
309
335
|
T* reset(size_t count = 0) {
|
|
310
336
|
fPtr.reset(count ? (T*)sk_malloc_throw(count, sizeof(T)) : nullptr);
|
|
311
337
|
return this->get();
|
|
@@ -354,11 +380,21 @@ public:
|
|
|
354
380
|
}
|
|
355
381
|
}
|
|
356
382
|
|
|
357
|
-
AutoSTMalloc(AutoSTMalloc&&) = delete;
|
|
358
383
|
AutoSTMalloc(const AutoSTMalloc&) = delete;
|
|
359
|
-
AutoSTMalloc& operator=(AutoSTMalloc&&) = delete;
|
|
360
384
|
AutoSTMalloc& operator=(const AutoSTMalloc&) = delete;
|
|
361
385
|
|
|
386
|
+
AutoSTMalloc(AutoSTMalloc&& that) {
|
|
387
|
+
if (that.fPtr == nullptr) {
|
|
388
|
+
fPtr = nullptr;
|
|
389
|
+
} else if (that.fPtr == that.fTStorage) {
|
|
390
|
+
fPtr = fTStorage;
|
|
391
|
+
memcpy(fPtr, that.fPtr, kCount * sizeof(T));
|
|
392
|
+
} else {
|
|
393
|
+
fPtr = std::exchange(that.fPtr, nullptr);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
AutoSTMalloc& operator=(AutoSTMalloc&&) = delete;
|
|
397
|
+
|
|
362
398
|
~AutoSTMalloc() {
|
|
363
399
|
if (fPtr != fTStorage) {
|
|
364
400
|
sk_free(fPtr);
|
|
@@ -366,6 +402,7 @@ public:
|
|
|
366
402
|
}
|
|
367
403
|
|
|
368
404
|
// doesn't preserve contents
|
|
405
|
+
[[clang::reinitializes]]
|
|
369
406
|
T* reset(size_t count) {
|
|
370
407
|
if (fPtr != fTStorage) {
|
|
371
408
|
sk_free(fPtr);
|
|
@@ -427,13 +464,18 @@ private:
|
|
|
427
464
|
// Stack frame size is limited for SK_BUILD_FOR_GOOGLE3. 4k is less than the actual max, but some functions
|
|
428
465
|
// have multiple large stack allocations.
|
|
429
466
|
static constexpr size_t kMaxBytes = 4 * 1024;
|
|
430
|
-
static constexpr size_t
|
|
467
|
+
static constexpr size_t kMinCount = kCountRequested * sizeof(T) > kMaxBytes
|
|
431
468
|
? kMaxBytes / sizeof(T)
|
|
432
469
|
: kCountWithPadding;
|
|
433
470
|
#else
|
|
434
|
-
static constexpr size_t
|
|
471
|
+
static constexpr size_t kMinCount = kCountWithPadding;
|
|
435
472
|
#endif
|
|
436
473
|
|
|
474
|
+
public:
|
|
475
|
+
static constexpr size_t kCount = kMinCount;
|
|
476
|
+
|
|
477
|
+
private:
|
|
478
|
+
|
|
437
479
|
T* fPtr;
|
|
438
480
|
union {
|
|
439
481
|
uint32_t fStorage32[SkAlign4(kCount*sizeof(T)) >> 2];
|
|
@@ -16,7 +16,15 @@ class SkString;
|
|
|
16
16
|
|
|
17
17
|
class SK_API SkParsePath {
|
|
18
18
|
public:
|
|
19
|
-
static
|
|
19
|
+
static std::optional<SkPath> FromSVGString(const char str[]);
|
|
20
|
+
// Deprecated
|
|
21
|
+
static bool FromSVGString(const char str[], SkPath* outPath) {
|
|
22
|
+
if (auto result = FromSVGString(str)) {
|
|
23
|
+
*outPath = *result;
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
20
28
|
|
|
21
29
|
enum class PathEncoding { Absolute, Relative };
|
|
22
30
|
static SkString ToSVGString(const SkPath&, PathEncoding = PathEncoding::Absolute);
|