@shopify/react-native-skia 2.3.0 → 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/apple/SkiaCVPixelBufferUtils.mm +8 -4
 - package/cpp/api/JsiSkCanvas.h +0 -21
 - package/cpp/api/JsiSkImage.h +1 -5
 - package/cpp/api/JsiSkPath.h +1 -1
 - package/cpp/api/JsiSkPathFactory.h +1 -1
 - 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/package.json +9 -8
 - package/react-native-skia.podspec +1 -2
 - package/scripts/install-skia.mjs +360 -0
 - 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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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 -111
 - 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/ios-arm64_x86_64-maccatalyst/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,13 +9,13 @@ 
     | 
|
| 
       9 
9 
     | 
    
         
             
            #define SkShader_DEFINED
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            #include "include/core/SkColor.h"
         
     | 
| 
      
 12 
     | 
    
         
            +
            #include "include/core/SkColorSpace.h"
         
     | 
| 
       12 
13 
     | 
    
         
             
            #include "include/core/SkFlattenable.h"
         
     | 
| 
       13 
14 
     | 
    
         
             
            #include "include/core/SkRefCnt.h"
         
     | 
| 
       14 
15 
     | 
    
         
             
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
17 
     | 
    
         
             
            class SkBlender;
         
     | 
| 
       17 
18 
     | 
    
         
             
            class SkColorFilter;
         
     | 
| 
       18 
     | 
    
         
            -
            class SkColorSpace;
         
     | 
| 
       19 
19 
     | 
    
         
             
            class SkImage;
         
     | 
| 
       20 
20 
     | 
    
         
             
            class SkMatrix;
         
     | 
| 
       21 
21 
     | 
    
         
             
            enum class SkBlendMode;
         
     | 
| 
         @@ -69,13 +69,26 @@ public: 
     | 
|
| 
       69 
69 
     | 
    
         
             
                sk_sp<SkShader> makeWithColorFilter(sk_sp<SkColorFilter>) const;
         
     | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         
             
                /**
         
     | 
| 
       72 
     | 
    
         
            -
                 *  Return a shader that will compute this shader in a  
     | 
| 
       73 
     | 
    
         
            -
                 *   
     | 
| 
       74 
     | 
    
         
            -
                 * 
     | 
| 
       75 
     | 
    
         
            -
                 *   
     | 
| 
       76 
     | 
    
         
            -
                 *   
     | 
| 
      
 72 
     | 
    
         
            +
                 *  Return a shader that will compute this shader in a context such that any child shaders
         
     | 
| 
      
 73 
     | 
    
         
            +
                 *  return RGBA values converted to the `inputCS` colorspace.
         
     | 
| 
      
 74 
     | 
    
         
            +
                 *
         
     | 
| 
      
 75 
     | 
    
         
            +
                 *  It is then assumed that the RGBA values returned by this shader have been transformed into
         
     | 
| 
      
 76 
     | 
    
         
            +
                 *  `outputCS` by the shader being wrapped.  By default, shaders are assumed to return values
         
     | 
| 
      
 77 
     | 
    
         
            +
                 *  in the destination colorspace and premultiplied. Using a different outputCS than inputCS
         
     | 
| 
      
 78 
     | 
    
         
            +
                 *  allows custom shaders to replace the color management Skia normally performs w/o forcing
         
     | 
| 
      
 79 
     | 
    
         
            +
                 *  authors to otherwise manipulate surface/image color info to avoid unnecessary or incorrect
         
     | 
| 
      
 80 
     | 
    
         
            +
                 *  work.
         
     | 
| 
      
 81 
     | 
    
         
            +
                 *
         
     | 
| 
      
 82 
     | 
    
         
            +
                 *  If the shader is not performing colorspace conversion but needs to operate in the `inputCS`
         
     | 
| 
      
 83 
     | 
    
         
            +
                 *  then it should have `outputCS` be the same as `inputCS`. Regardless of the `outputCS` here,
         
     | 
| 
      
 84 
     | 
    
         
            +
                 *  the RGBA values of the returned SkShader are always converted from `outputCS` to the
         
     | 
| 
      
 85 
     | 
    
         
            +
                 *  destination surface color space.
         
     | 
| 
      
 86 
     | 
    
         
            +
                 *
         
     | 
| 
      
 87 
     | 
    
         
            +
                 *  A null inputCS is assumed to be the destination CS.
         
     | 
| 
      
 88 
     | 
    
         
            +
                 *  A null outputCS is assumed to be the inputCS.
         
     | 
| 
       77 
89 
     | 
    
         
             
                 */
         
     | 
| 
       78 
     | 
    
         
            -
                sk_sp<SkShader> makeWithWorkingColorSpace(sk_sp<SkColorSpace> 
     | 
| 
      
 90 
     | 
    
         
            +
                sk_sp<SkShader> makeWithWorkingColorSpace(sk_sp<SkColorSpace> inputCS,
         
     | 
| 
      
 91 
     | 
    
         
            +
                                                          sk_sp<SkColorSpace> outputCS=nullptr) const;
         
     | 
| 
       79 
92 
     | 
    
         | 
| 
       80 
93 
     | 
    
         
             
            private:
         
     | 
| 
       81 
94 
     | 
    
         
             
                SkShader() = default;
         
     | 
| 
         @@ -17,6 +17,7 @@ 
     | 
|
| 
       17 
17 
     | 
    
         
             
            #include <cstdint>
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            class SkPath;
         
     | 
| 
      
 20 
     | 
    
         
            +
            class SkPathBuilder;
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
            SK_BEGIN_REQUIRE_DENSE
         
     | 
| 
       22 
23 
     | 
    
         
             
            class SK_API SkStrokeRec {
         
     | 
| 
         @@ -96,7 +97,7 @@ public: 
     | 
|
| 
       96 
97 
     | 
    
         
             
                 *
         
     | 
| 
       97 
98 
     | 
    
         
             
                 *  src and dst may be the same path.
         
     | 
| 
       98 
99 
     | 
    
         
             
                 */
         
     | 
| 
       99 
     | 
    
         
            -
                bool applyToPath( 
     | 
| 
      
 100 
     | 
    
         
            +
                bool applyToPath(SkPathBuilder* dst, const SkPath& src) const;
         
     | 
| 
       100 
101 
     | 
    
         | 
| 
       101 
102 
     | 
    
         
             
                /**
         
     | 
| 
       102 
103 
     | 
    
         
             
                 *  Apply these stroke parameters to a paint.
         
     | 
| 
         @@ -410,7 +410,7 @@ protected: 
     | 
|
| 
       410 
410 
     | 
    
         
             
                // The mapping from glyph to Unicode; array indices are glyph ids.
         
     | 
| 
       411 
411 
     | 
    
         
             
                // For each glyph, give the default Unicode value, if it exists.
         
     | 
| 
       412 
412 
     | 
    
         
             
                // dstArray is non-null, and points to an array of size this->countGlyphs().
         
     | 
| 
       413 
     | 
    
         
            -
                virtual void getGlyphToUnicodeMap(SkUnichar 
     | 
| 
      
 413 
     | 
    
         
            +
                virtual void getGlyphToUnicodeMap(SkSpan<SkUnichar> dstArray) const = 0;
         
     | 
| 
       414 
414 
     | 
    
         | 
| 
       415 
415 
     | 
    
         
             
                virtual std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const = 0;
         
     | 
| 
       416 
416 
     | 
    
         | 
| 
         @@ -419,20 +419,18 @@ protected: 
     | 
|
| 
       419 
419 
     | 
    
         
             
                virtual bool onGlyphMaskNeedsCurrentColor() const = 0;
         
     | 
| 
       420 
420 
     | 
    
         | 
| 
       421 
421 
     | 
    
         
             
                virtual int onGetVariationDesignPosition(
         
     | 
| 
       422 
     | 
    
         
            -
             
     | 
| 
       423 
     | 
    
         
            -
                    int coordinateCount) const = 0;
         
     | 
| 
      
 422 
     | 
    
         
            +
                                             SkSpan<SkFontArguments::VariationPosition::Coordinate>) const = 0;
         
     | 
| 
       424 
423 
     | 
    
         | 
| 
       425 
     | 
    
         
            -
                virtual int onGetVariationDesignParameters(
         
     | 
| 
       426 
     | 
    
         
            -
                    SkFontParameters::Variation::Axis parameters[], int parameterCount) const = 0;
         
     | 
| 
      
 424 
     | 
    
         
            +
                virtual int onGetVariationDesignParameters(SkSpan<SkFontParameters::Variation::Axis>) const = 0;
         
     | 
| 
       427 
425 
     | 
    
         | 
| 
       428 
426 
     | 
    
         
             
                virtual void onGetFontDescriptor(SkFontDescriptor*, bool* isLocal) const = 0;
         
     | 
| 
       429 
427 
     | 
    
         | 
| 
       430 
     | 
    
         
            -
                virtual void onCharsToGlyphs(const SkUnichar 
     | 
| 
      
 428 
     | 
    
         
            +
                virtual void onCharsToGlyphs(SkSpan<const SkUnichar>, SkSpan<SkGlyphID>) const = 0;
         
     | 
| 
       431 
429 
     | 
    
         
             
                virtual int onCountGlyphs() const = 0;
         
     | 
| 
       432 
430 
     | 
    
         | 
| 
       433 
431 
     | 
    
         
             
                virtual int onGetUPEM() const = 0;
         
     | 
| 
       434 
     | 
    
         
            -
                virtual bool onGetKerningPairAdjustments(const SkGlyphID 
     | 
| 
       435 
     | 
    
         
            -
                                                         int32_t adjustments 
     | 
| 
      
 432 
     | 
    
         
            +
                virtual bool onGetKerningPairAdjustments(SkSpan<const SkGlyphID>,
         
     | 
| 
      
 433 
     | 
    
         
            +
                                                         SkSpan<int32_t> adjustments) const;
         
     | 
| 
       436 
434 
     | 
    
         | 
| 
       437 
435 
     | 
    
         
             
                /** Returns the family name of the typeface as known by its font manager.
         
     | 
| 
       438 
436 
     | 
    
         
             
                 *  This name may or may not be produced by the family name iterator.
         
     | 
| 
         @@ -444,7 +442,7 @@ protected: 
     | 
|
| 
       444 
442 
     | 
    
         
             
                /** Returns an iterator over the family names in the font. */
         
     | 
| 
       445 
443 
     | 
    
         
             
                virtual LocalizedStrings* onCreateFamilyNameIterator() const = 0;
         
     | 
| 
       446 
444 
     | 
    
         | 
| 
       447 
     | 
    
         
            -
                virtual int onGetTableTags(SkFontTableTag 
     | 
| 
      
 445 
     | 
    
         
            +
                virtual int onGetTableTags(SkSpan<SkFontTableTag>) const = 0;
         
     | 
| 
       448 
446 
     | 
    
         
             
                virtual size_t onGetTableData(SkFontTableTag, size_t offset,
         
     | 
| 
       449 
447 
     | 
    
         
             
                                              size_t length, void* data) const = 0;
         
     | 
| 
       450 
448 
     | 
    
         
             
                virtual sk_sp<SkData> onCopyTableData(SkFontTableTag) const;
         
     | 
| 
         @@ -468,7 +466,7 @@ private: 
     | 
|
| 
       468 
466 
     | 
    
         
             
                friend class SkPDFFont;          // getAdvancedMetrics
         
     | 
| 
       469 
467 
     | 
    
         
             
                friend class SkTypeface_proxy;
         
     | 
| 
       470 
468 
     | 
    
         
             
                friend class SkFontPriv;         // getGlyphToUnicodeMap
         
     | 
| 
       471 
     | 
    
         
            -
                friend void TestSkTypefaceGlyphToUnicodeMap(SkTypeface&, SkUnichar 
     | 
| 
      
 469 
     | 
    
         
            +
                friend void TestSkTypefaceGlyphToUnicodeMap(SkTypeface&, SkSpan<SkUnichar>);
         
     | 
| 
       472 
470 
     | 
    
         | 
| 
       473 
471 
     | 
    
         
             
            private:
         
     | 
| 
       474 
472 
     | 
    
         
             
                SkTypefaceID        fUniqueID;
         
     | 
| 
         @@ -149,6 +149,10 @@ 
     | 
|
| 
       149 
149 
     | 
    
         
             
            #   define SK_ENABLE_LEGACY_SHADERCONTEXT
         
     | 
| 
       150 
150 
     | 
    
         
             
            #endif
         
     | 
| 
       151 
151 
     | 
    
         | 
| 
      
 152 
     | 
    
         
            +
            #ifndef SK_SUPPORT_MUTABLE_PATHEFFECT
         
     | 
| 
      
 153 
     | 
    
         
            +
            #   define SK_SUPPORT_MUTABLE_PATHEFFECT
         
     | 
| 
      
 154 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
       152 
156 
     | 
    
         
             
            #if defined(SK_BUILD_FOR_LIBFUZZER) || defined(SK_BUILD_FOR_AFL_FUZZ)
         
     | 
| 
       153 
157 
     | 
    
         
             
            #if !defined(SK_BUILD_FOR_FUZZER)
         
     | 
| 
       154 
158 
     | 
    
         
             
                #define SK_BUILD_FOR_FUZZER
         
     | 
| 
         @@ -79,16 +79,6 @@ struct Options { 
     | 
|
| 
       79 
79 
     | 
    
         
             
                 */
         
     | 
| 
       80 
80 
     | 
    
         
             
                const SkData* xmpMetadata = nullptr;
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                /**
         
     | 
| 
       83 
     | 
    
         
            -
                 *  An optional ICC profile to override the default behavior.
         
     | 
| 
       84 
     | 
    
         
            -
                 *
         
     | 
| 
       85 
     | 
    
         
            -
                 *  The default behavior is to generate an ICC profile using a primary matrix and
         
     | 
| 
       86 
     | 
    
         
            -
                 *  analytic transfer function. If the color space of |src| cannot be represented
         
     | 
| 
       87 
     | 
    
         
            -
                 *  in this way (e.g, it is HLG or PQ), then no profile will be embedded.
         
     | 
| 
       88 
     | 
    
         
            -
                 */
         
     | 
| 
       89 
     | 
    
         
            -
                const skcms_ICCProfile* fICCProfile = nullptr;
         
     | 
| 
       90 
     | 
    
         
            -
                const char* fICCProfileDescription = nullptr;
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
82 
     | 
    
         
             
                std::optional<SkEncodedOrigin> fOrigin;
         
     | 
| 
       93 
83 
     | 
    
         
             
            };
         
     | 
| 
       94 
84 
     | 
    
         | 
| 
         @@ -104,6 +94,11 @@ SK_API bool Encode(SkWStream* dst, 
     | 
|
| 
       104 
94 
     | 
    
         
             
                               const SkColorSpace* srcColorSpace,
         
     | 
| 
       105 
95 
     | 
    
         
             
                               const Options& options);
         
     | 
| 
       106 
96 
     | 
    
         | 
| 
      
 97 
     | 
    
         
            +
            /**
         
     | 
| 
      
 98 
     | 
    
         
            +
             *  Returns the encoded data for the pixmap, or nullptr on failure.
         
     | 
| 
      
 99 
     | 
    
         
            +
             */
         
     | 
| 
      
 100 
     | 
    
         
            +
            SK_API sk_sp<SkData> Encode(const SkPixmap& src, const Options& options);
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
       107 
102 
     | 
    
         
             
            /**
         
     | 
| 
       108 
103 
     | 
    
         
             
            *  Encode the provided image and return the resulting bytes. If the image was created as
         
     | 
| 
       109 
104 
     | 
    
         
             
            *  a texture-backed image on a GPU context, that |ctx| must be provided so the pixels
         
     | 
| 
         @@ -10,6 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            #include "include/core/SkDataTable.h"
         
     | 
| 
       12 
12 
     | 
    
         
             
            #include "include/core/SkRefCnt.h"
         
     | 
| 
      
 13 
     | 
    
         
            +
            #include "include/private/SkHdrMetadata.h"
         
     | 
| 
       13 
14 
     | 
    
         
             
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       14 
15 
     | 
    
         | 
| 
       15 
16 
     | 
    
         
             
            // TODO(kjlubick) update clients to directly include this
         
     | 
| 
         @@ -73,14 +74,9 @@ struct Options { 
     | 
|
| 
       73 
74 
     | 
    
         
             
                sk_sp<SkDataTable> fComments;
         
     | 
| 
       74 
75 
     | 
    
         | 
| 
       75 
76 
     | 
    
         
             
                /**
         
     | 
| 
       76 
     | 
    
         
            -
                 *  
     | 
| 
       77 
     | 
    
         
            -
                 *
         
     | 
| 
       78 
     | 
    
         
            -
                 * The default behavior is to generate an ICC profile using a primary matrix and
         
     | 
| 
       79 
     | 
    
         
            -
                 * analytic transfer function. If the color space of |src| cannot be represented
         
     | 
| 
       80 
     | 
    
         
            -
                 * in this way (e.g, it is HLG or PQ), then no profile will be embedded.
         
     | 
| 
      
 77 
     | 
    
         
            +
                 * Container for any HDR metadata to include in the encoded image.
         
     | 
| 
       81 
78 
     | 
    
         
             
                 */
         
     | 
| 
       82 
     | 
    
         
            -
                 
     | 
| 
       83 
     | 
    
         
            -
                const char* fICCProfileDescription = nullptr;
         
     | 
| 
      
 79 
     | 
    
         
            +
                skhdr::Metadata fHdrMetadata;
         
     | 
| 
       84 
80 
     | 
    
         | 
| 
       85 
81 
     | 
    
         
             
                /**
         
     | 
| 
       86 
82 
     | 
    
         
             
                 * If non-null, then a gainmap and its metadata will be encoded as png chunks.
         
     | 
| 
         @@ -104,6 +100,11 @@ struct Options { 
     | 
|
| 
       104 
100 
     | 
    
         
             
             */
         
     | 
| 
       105 
101 
     | 
    
         
             
            SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
         
     | 
| 
       106 
102 
     | 
    
         | 
| 
      
 103 
     | 
    
         
            +
            /**
         
     | 
| 
      
 104 
     | 
    
         
            +
             *  Returns the encoded data for the pixmap, or nullptr on failure.
         
     | 
| 
      
 105 
     | 
    
         
            +
             */
         
     | 
| 
      
 106 
     | 
    
         
            +
            SK_API sk_sp<SkData> Encode(const SkPixmap& src, const Options& options);
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
       107 
108 
     | 
    
         
             
            /**
         
     | 
| 
       108 
109 
     | 
    
         
             
            *  Encode the provided image and return the resulting bytes. If the image was created as
         
     | 
| 
       109 
110 
     | 
    
         
             
            *  a texture-backed image on a GPU context, that |ctx| must be provided so the pixels
         
     | 
| 
         @@ -0,0 +1,88 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
             * Copyright 2024 Google LLC.
         
     | 
| 
      
 3 
     | 
    
         
            +
             *
         
     | 
| 
      
 4 
     | 
    
         
            +
             * Use of this source code is governed by a BSD-style license that can be
         
     | 
| 
      
 5 
     | 
    
         
            +
             * found in the LICENSE file.
         
     | 
| 
      
 6 
     | 
    
         
            +
             */
         
     | 
| 
      
 7 
     | 
    
         
            +
            #ifndef SkPngRustEncoder_DEFINED
         
     | 
| 
      
 8 
     | 
    
         
            +
            #define SkPngRustEncoder_DEFINED
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            #include <cstdint>
         
     | 
| 
      
 11 
     | 
    
         
            +
            #include <memory>
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            #include "include/core/SkDataTable.h"
         
     | 
| 
      
 14 
     | 
    
         
            +
            #include "include/core/SkRefCnt.h"
         
     | 
| 
      
 15 
     | 
    
         
            +
            #include "include/private/base/SkAPI.h"
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            class SkEncoder;
         
     | 
| 
      
 18 
     | 
    
         
            +
            class SkPixmap;
         
     | 
| 
      
 19 
     | 
    
         
            +
            class SkWStream;
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            namespace SkPngRustEncoder {
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            /*
         
     | 
| 
      
 24 
     | 
    
         
            +
             * Compression level.
         
     | 
| 
      
 25 
     | 
    
         
            +
             */
         
     | 
| 
      
 26 
     | 
    
         
            +
            enum class CompressionLevel : uint8_t {
         
     | 
| 
      
 27 
     | 
    
         
            +
                // Low compression level - fast, but may result in bigger PNG files.
         
     | 
| 
      
 28 
     | 
    
         
            +
                kLow,
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                // Medium compression level - somewhere in-between `kLow` and `kHigh`.
         
     | 
| 
      
 31 
     | 
    
         
            +
                kMedium,
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                // High compression level - slow, but should results in smaller PNG files.
         
     | 
| 
      
 34 
     | 
    
         
            +
                kHigh,
         
     | 
| 
      
 35 
     | 
    
         
            +
            };
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            /*
         
     | 
| 
      
 38 
     | 
    
         
            +
             * PNG encoding options.
         
     | 
| 
      
 39 
     | 
    
         
            +
             *
         
     | 
| 
      
 40 
     | 
    
         
            +
             * TODO(https://crbug.com/379312510): Add support for `SkPngEncoder::Options`
         
     | 
| 
      
 41 
     | 
    
         
            +
             * like:
         
     | 
| 
      
 42 
     | 
    
         
            +
             *  - Comments - `tEXt` chunks.
         
     | 
| 
      
 43 
     | 
    
         
            +
             *  - Color profile - `iCCP` chunk.
         
     | 
| 
      
 44 
     | 
    
         
            +
             */
         
     | 
| 
      
 45 
     | 
    
         
            +
            struct Options {
         
     | 
| 
      
 46 
     | 
    
         
            +
                CompressionLevel fCompressionLevel = CompressionLevel::kMedium;
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                /**
         
     | 
| 
      
 49 
     | 
    
         
            +
                 *  Represents comments to be written into tEXt chunks of the png.
         
     | 
| 
      
 50 
     | 
    
         
            +
                 *
         
     | 
| 
      
 51 
     | 
    
         
            +
                 *  The 2i-th entry is the keyword for the i-th comment,
         
     | 
| 
      
 52 
     | 
    
         
            +
                 *  and the (2i + 1)-th entry is the text for the i-th comment.
         
     | 
| 
      
 53 
     | 
    
         
            +
                 *
         
     | 
| 
      
 54 
     | 
    
         
            +
                 *  All entries are treated as strings encoded as Latin-1 (i.e.
         
     | 
| 
      
 55 
     | 
    
         
            +
                 *  ISO-8859-1).  The strings may, but don't have to be NUL-terminated
         
     | 
| 
      
 56 
     | 
    
         
            +
                 *  (trailing NUL characters will be stripped).  Encoding will fail if
         
     | 
| 
      
 57 
     | 
    
         
            +
                 *  keyword or text don't meet the requirements of the PNG spec - text may
         
     | 
| 
      
 58 
     | 
    
         
            +
                 *  have any length and contain any of the 191 Latin-1 characters (and/or
         
     | 
| 
      
 59 
     | 
    
         
            +
                 *  the linefeed character), but keyword's length is restricted to at most
         
     | 
| 
      
 60 
     | 
    
         
            +
                 *  79 characters and it can't contain a non-breaking space character.
         
     | 
| 
      
 61 
     | 
    
         
            +
                 */
         
     | 
| 
      
 62 
     | 
    
         
            +
                sk_sp<SkDataTable> fComments;
         
     | 
| 
      
 63 
     | 
    
         
            +
            };
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            /**
         
     | 
| 
      
 66 
     | 
    
         
            +
             *  Encode the |src| pixels to the |dst| stream.
         
     | 
| 
      
 67 
     | 
    
         
            +
             *  |options| may be used to control the encoding behavior.
         
     | 
| 
      
 68 
     | 
    
         
            +
             *
         
     | 
| 
      
 69 
     | 
    
         
            +
             *  Returns true on success.  Returns false on an invalid or unsupported |src|.
         
     | 
| 
      
 70 
     | 
    
         
            +
             *
         
     | 
| 
      
 71 
     | 
    
         
            +
             */
         
     | 
| 
      
 72 
     | 
    
         
            +
            SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            /**
         
     | 
| 
      
 75 
     | 
    
         
            +
             *  Create a png encoder that will encode the |src| pixels to the |dst| stream.
         
     | 
| 
      
 76 
     | 
    
         
            +
             *  |options| may be used to control the encoding behavior.
         
     | 
| 
      
 77 
     | 
    
         
            +
             *
         
     | 
| 
      
 78 
     | 
    
         
            +
             *  The primary use of this is incremental encoding of the pixels.
         
     | 
| 
      
 79 
     | 
    
         
            +
             *
         
     | 
| 
      
 80 
     | 
    
         
            +
             *  |dst| is unowned but must remain valid for the lifetime of the object.
         
     | 
| 
      
 81 
     | 
    
         
            +
             *
         
     | 
| 
      
 82 
     | 
    
         
            +
             *  This returns nullptr on an invalid or unsupported |src|.
         
     | 
| 
      
 83 
     | 
    
         
            +
             */
         
     | 
| 
      
 84 
     | 
    
         
            +
            SK_API std::unique_ptr<SkEncoder> Make(SkWStream* dst, const SkPixmap& src, const Options& options);
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            }  // namespace SkPngRustEncoder
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            #endif  // SkPngRustEncoder_DEFINED
         
     | 
| 
         @@ -42,16 +42,6 @@ struct SK_API Options { 
     | 
|
| 
       42 
42 
     | 
    
         
             
                 */
         
     | 
| 
       43 
43 
     | 
    
         
             
                Compression fCompression = Compression::kLossy;
         
     | 
| 
       44 
44 
     | 
    
         
             
                float fQuality = 100.0f;
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                /**
         
     | 
| 
       47 
     | 
    
         
            -
                 * An optional ICC profile to override the default behavior.
         
     | 
| 
       48 
     | 
    
         
            -
                 *
         
     | 
| 
       49 
     | 
    
         
            -
                 * The default behavior is to generate an ICC profile using a primary matrix and
         
     | 
| 
       50 
     | 
    
         
            -
                 * analytic transfer function. If the color space of |src| cannot be represented
         
     | 
| 
       51 
     | 
    
         
            -
                 * in this way (e.g, it is HLG or PQ), then no profile will be embedded.
         
     | 
| 
       52 
     | 
    
         
            -
                 */
         
     | 
| 
       53 
     | 
    
         
            -
                const skcms_ICCProfile* fICCProfile = nullptr;
         
     | 
| 
       54 
     | 
    
         
            -
                const char* fICCProfileDescription = nullptr;
         
     | 
| 
       55 
45 
     | 
    
         
             
            };
         
     | 
| 
       56 
46 
     | 
    
         | 
| 
       57 
47 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -62,6 +52,11 @@ struct SK_API Options { 
     | 
|
| 
       62 
52 
     | 
    
         
             
             */
         
     | 
| 
       63 
53 
     | 
    
         
             
            SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
         
     | 
| 
       64 
54 
     | 
    
         | 
| 
      
 55 
     | 
    
         
            +
            /**
         
     | 
| 
      
 56 
     | 
    
         
            +
             *  Returns the encoded data for the pixmap, or nullptr on failure.
         
     | 
| 
      
 57 
     | 
    
         
            +
             */
         
     | 
| 
      
 58 
     | 
    
         
            +
            SK_API sk_sp<SkData> Encode(const SkPixmap& src, const Options& options);
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
       65 
60 
     | 
    
         
             
            /**
         
     | 
| 
       66 
61 
     | 
    
         
             
            *  Encode the provided image and return the resulting bytes. If the image was created as
         
     | 
| 
       67 
62 
     | 
    
         
             
            *  a texture-backed image on a GPU context, that |ctx| must be provided so the pixels
         
     | 
| 
         @@ -8,10 +8,13 @@ 
     | 
|
| 
       8 
8 
     | 
    
         
             
            #ifndef skgpu_graphite_BackendSemaphore_DEFINED
         
     | 
| 
       9 
9 
     | 
    
         
             
            #define skgpu_graphite_BackendSemaphore_DEFINED
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            #include "include/ 
     | 
| 
       12 
     | 
    
         
            -
            #include "include/gpu/graphite/GraphiteTypes.h"
         
     | 
| 
      
 11 
     | 
    
         
            +
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       13 
12 
     | 
    
         
             
            #include "include/private/base/SkAnySubclass.h"
         
     | 
| 
       14 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
            #include <cstddef>
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            namespace skgpu { enum class BackendApi : unsigned int; }
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       15 
18 
     | 
    
         
             
            namespace skgpu::graphite {
         
     | 
| 
       16 
19 
     | 
    
         | 
| 
       17 
20 
     | 
    
         
             
            class BackendSemaphoreData;
         
     | 
| 
         @@ -8,12 +8,15 @@ 
     | 
|
| 
       8 
8 
     | 
    
         
             
            #ifndef skgpu_graphite_BackendTexture_DEFINED
         
     | 
| 
       9 
9 
     | 
    
         
             
            #define skgpu_graphite_BackendTexture_DEFINED
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            #include "include/core/SkRefCnt.h"
         
     | 
| 
       12 
11 
     | 
    
         
             
            #include "include/core/SkSize.h"
         
     | 
| 
       13 
     | 
    
         
            -
            #include "include/gpu/graphite/GraphiteTypes.h"
         
     | 
| 
       14 
12 
     | 
    
         
             
            #include "include/gpu/graphite/TextureInfo.h"
         
     | 
| 
      
 13 
     | 
    
         
            +
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       15 
14 
     | 
    
         
             
            #include "include/private/base/SkAnySubclass.h"
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
      
 16 
     | 
    
         
            +
            #include <cstddef>
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            namespace skgpu { enum class BackendApi : unsigned int; }
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       17 
20 
     | 
    
         
             
            namespace skgpu::graphite {
         
     | 
| 
       18 
21 
     | 
    
         | 
| 
       19 
22 
     | 
    
         
             
            class BackendTextureData;
         
     | 
| 
         @@ -79,8 +79,8 @@ public: 
     | 
|
| 
       79 
79 
     | 
    
         
             
                 */
         
     | 
| 
       80 
80 
     | 
    
         
             
                std::unique_ptr<PrecompileContext> makePrecompileContext();
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                 
     | 
| 
       83 
     | 
    
         
            -
                bool submit( 
     | 
| 
      
 82 
     | 
    
         
            +
                InsertStatus insertRecording(const InsertRecordingInfo&);
         
     | 
| 
      
 83 
     | 
    
         
            +
                bool submit(SubmitInfo submitInfo = {});
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
                /** Returns true if there is work that was submitted to the GPU that has not finished. */
         
     | 
| 
       86 
86 
     | 
    
         
             
                bool hasUnfinishedGpuWork() const;
         
     | 
| 
         @@ -277,6 +277,19 @@ public: 
     | 
|
| 
       277 
277 
     | 
    
         
             
                 */
         
     | 
| 
       278 
278 
     | 
    
         
             
                GpuStatsFlags supportedGpuStats() const;
         
     | 
| 
       279 
279 
     | 
    
         | 
| 
      
 280 
     | 
    
         
            +
                /*
         
     | 
| 
      
 281 
     | 
    
         
            +
                 * TODO (b/412351769): Do not use startCapture() or endCapture() as the feature is still under
         
     | 
| 
      
 282 
     | 
    
         
            +
                 * development.
         
     | 
| 
      
 283 
     | 
    
         
            +
                 *
         
     | 
| 
      
 284 
     | 
    
         
            +
                 * Starts the SkCapture. Must have set ContextOptions::fEnableCapture to start.
         
     | 
| 
      
 285 
     | 
    
         
            +
                 */
         
     | 
| 
      
 286 
     | 
    
         
            +
                void startCapture();
         
     | 
| 
      
 287 
     | 
    
         
            +
             
     | 
| 
      
 288 
     | 
    
         
            +
                /*
         
     | 
| 
      
 289 
     | 
    
         
            +
                 * Ends the SkCapture and returns the collected draws and surface creation.
         
     | 
| 
      
 290 
     | 
    
         
            +
                 */
         
     | 
| 
      
 291 
     | 
    
         
            +
                void endCapture();
         
     | 
| 
      
 292 
     | 
    
         
            +
             
     | 
| 
       280 
293 
     | 
    
         
             
                // Provides access to functions that aren't part of the public API.
         
     | 
| 
       281 
294 
     | 
    
         
             
                ContextPriv priv();
         
     | 
| 
       282 
295 
     | 
    
         
             
                const ContextPriv priv() const;  // NOLINT(readability-const-return-type)
         
     | 
| 
         @@ -17,6 +17,7 @@ 
     | 
|
| 
       17 
17 
     | 
    
         
             
            #include <optional>
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            class SkData;
         
     | 
| 
      
 20 
     | 
    
         
            +
            class SkExecutor;
         
     | 
| 
       20 
21 
     | 
    
         
             
            class SkRuntimeEffect;
         
     | 
| 
       21 
22 
     | 
    
         
             
            namespace skgpu { class ShaderErrorHandler; }
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
         @@ -57,6 +58,14 @@ struct SK_API ContextOptions { 
     | 
|
| 
       57 
58 
     | 
    
         
             
                 */
         
     | 
| 
       58 
59 
     | 
    
         
             
                std::optional<SkISize> fInternalMSAATileSize = std::nullopt;
         
     | 
| 
       59 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
                /**
         
     | 
| 
      
 62 
     | 
    
         
            +
                 * If set, paths that are smaller than this size (in device space) will avoid MSAA techniques,
         
     | 
| 
      
 63 
     | 
    
         
            +
                 * even if MSAA is otherwise enabled via `fInternalMultisampleCount`. This should be smaller
         
     | 
| 
      
 64 
     | 
    
         
            +
                 * than `fGlyphsAsPathsFontSize` or large glyphs will not correctly avoid higher memory
         
     | 
| 
      
 65 
     | 
    
         
            +
                 * overhead.
         
     | 
| 
      
 66 
     | 
    
         
            +
                 */
         
     | 
| 
      
 67 
     | 
    
         
            +
                float fMinimumPathSizeForMSAA = 0;
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       60 
69 
     | 
    
         
             
                /**
         
     | 
| 
       61 
70 
     | 
    
         
             
                 * Will the client make sure to only ever be executing one thread that uses the Context and all
         
     | 
| 
       62 
71 
     | 
    
         
             
                 * derived classes (e.g. Recorders, Recordings, etc.) at a time. If so we can possibly make some
         
     | 
| 
         @@ -171,6 +180,23 @@ struct SK_API ContextOptions { 
     | 
|
| 
       171 
180 
     | 
    
         
             
                 */
         
     | 
| 
       172 
181 
     | 
    
         
             
                SkSpan<sk_sp<SkRuntimeEffect>> fUserDefinedKnownRuntimeEffects;
         
     | 
| 
       173 
182 
     | 
    
         | 
| 
      
 183 
     | 
    
         
            +
                /**
         
     | 
| 
      
 184 
     | 
    
         
            +
                 * Executor to handle threaded work within Graphite. If this is nullptr, then all work will be
         
     | 
| 
      
 185 
     | 
    
         
            +
                 * done serially on the main thread. To have worker threads assist with various tasks, set this
         
     | 
| 
      
 186 
     | 
    
         
            +
                 * to a valid SkExecutor instance. Currently, used for Pipeline compilation, but may be used
         
     | 
| 
      
 187 
     | 
    
         
            +
                 * for other tasks. It is up to the client to ensure the SkExecutor remains valid throughout
         
     | 
| 
      
 188 
     | 
    
         
            +
                 * the lifetime of the Context.
         
     | 
| 
      
 189 
     | 
    
         
            +
                 */
         
     | 
| 
      
 190 
     | 
    
         
            +
                SkExecutor* fExecutor = nullptr;
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
                /**
         
     | 
| 
      
 193 
     | 
    
         
            +
                 * An experimental flag in development. Behavior and performance is subject to change.
         
     | 
| 
      
 194 
     | 
    
         
            +
                 *
         
     | 
| 
      
 195 
     | 
    
         
            +
                 * Enables the use of startCapture and endCapture functions. Calling these APIs will capture all
         
     | 
| 
      
 196 
     | 
    
         
            +
                 * draw calls and surface creation from Recorders spawned from the Context.
         
     | 
| 
      
 197 
     | 
    
         
            +
                 */
         
     | 
| 
      
 198 
     | 
    
         
            +
                 bool fEnableCapture = false;
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
       174 
200 
     | 
    
         
             
                /**
         
     | 
| 
       175 
201 
     | 
    
         
             
                 * Private options that are only meant for testing within Skia's tools.
         
     | 
| 
       176 
202 
     | 
    
         
             
                 */
         
     | 
| 
         @@ -34,6 +34,47 @@ using GpuFinishedWithStatsProc = void (*)(GpuFinishedContext finishedContext, 
     | 
|
| 
       34 
34 
     | 
    
         
             
                                                      CallbackResult,
         
     | 
| 
       35 
35 
     | 
    
         
             
                                                      const GpuStats&);
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
      
 37 
     | 
    
         
            +
            // NOTE: This can be converted to just an `enum class InsertStatus {}` once clients are migrated
         
     | 
| 
      
 38 
     | 
    
         
            +
            // off of assuming `Context::insertRecording()` returns a boolean.
         
     | 
| 
      
 39 
     | 
    
         
            +
            class InsertStatus {
         
     | 
| 
      
 40 
     | 
    
         
            +
            public:
         
     | 
| 
      
 41 
     | 
    
         
            +
                // Do not refer to V directly; use these constants as if InsertStatus were a class enum, e.g.
         
     | 
| 
      
 42 
     | 
    
         
            +
                // InsertStatus::kSuccess.
         
     | 
| 
      
 43 
     | 
    
         
            +
                enum V {
         
     | 
| 
      
 44 
     | 
    
         
            +
                    // Everything successfully added to underlying CommandBuffer
         
     | 
| 
      
 45 
     | 
    
         
            +
                    kSuccess,
         
     | 
| 
      
 46 
     | 
    
         
            +
                    // Recording or InsertRecordingInfo invalid, no CB changes
         
     | 
| 
      
 47 
     | 
    
         
            +
                    kInvalidRecording,
         
     | 
| 
      
 48 
     | 
    
         
            +
                    // Promise image instantiation failed, no CB changes
         
     | 
| 
      
 49 
     | 
    
         
            +
                    kPromiseImageInstantiationFailed,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    // Internal failure, CB partially modified, state unrecoverable or unknown (e.g. dependent
         
     | 
| 
      
 51 
     | 
    
         
            +
                    // texture uploads for future Recordings may or may not get executed)
         
     | 
| 
      
 52 
     | 
    
         
            +
                    kAddCommandsFailed,
         
     | 
| 
      
 53 
     | 
    
         
            +
                    // Internal failure, shader pipeline compilation failed (driver issue, or disk corruption),
         
     | 
| 
      
 54 
     | 
    
         
            +
                    // state unrecoverable.
         
     | 
| 
      
 55 
     | 
    
         
            +
                    kAsyncShaderCompilesFailed
         
     | 
| 
      
 56 
     | 
    
         
            +
                };
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                constexpr InsertStatus() : fValue(kSuccess) {}
         
     | 
| 
      
 59 
     | 
    
         
            +
                /*implicit*/ constexpr InsertStatus(V v) : fValue(v) {}
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                operator InsertStatus::V() const {
         
     | 
| 
      
 62 
     | 
    
         
            +
                    return fValue;
         
     | 
| 
      
 63 
     | 
    
         
            +
                }
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                // Assist migration from old bool return value of insertRecording; kSuccess is true,
         
     | 
| 
      
 66 
     | 
    
         
            +
                // all other error statuses are false.
         
     | 
| 
      
 67 
     | 
    
         
            +
                // NOTE: This is intentionally not explicit so that InsertStatus can be assigned correctly to
         
     | 
| 
      
 68 
     | 
    
         
            +
                // a bool or returned as a bool, since these are not boolean contexts that automatically apply
         
     | 
| 
      
 69 
     | 
    
         
            +
                // explicit bool operators (e.g. inside an if condition).
         
     | 
| 
      
 70 
     | 
    
         
            +
                operator bool() const {
         
     | 
| 
      
 71 
     | 
    
         
            +
                    return fValue == kSuccess;
         
     | 
| 
      
 72 
     | 
    
         
            +
                }
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            private:
         
     | 
| 
      
 75 
     | 
    
         
            +
                V fValue;
         
     | 
| 
      
 76 
     | 
    
         
            +
            };
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       37 
78 
     | 
    
         
             
            /**
         
     | 
| 
       38 
79 
     | 
    
         
             
             * The fFinishedProc is called when the Recording has been submitted and finished on the GPU, or
         
     | 
| 
       39 
80 
     | 
    
         
             
             * when there is a failure that caused it not to be submitted. The callback will always be called
         
     | 
| 
         @@ -88,6 +129,17 @@ struct InsertRecordingInfo { 
     | 
|
| 
       88 
129 
     | 
    
         
             
                GpuFinishedContext fFinishedContext = nullptr;
         
     | 
| 
       89 
130 
     | 
    
         
             
                GpuFinishedProc fFinishedProc = nullptr;
         
     | 
| 
       90 
131 
     | 
    
         
             
                GpuFinishedWithStatsProc fFinishedWithStatsProc = nullptr;
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
                // For unit testing purposes, this can be used to induce a known failure status from
         
     | 
| 
      
 134 
     | 
    
         
            +
                // Context::insertRecording(). When this set to anything other than kSuccess, insertRecording()
         
     | 
| 
      
 135 
     | 
    
         
            +
                // will operate as normal until the first condition that would normally return the simulated
         
     | 
| 
      
 136 
     | 
    
         
            +
                // status is encountered. At that point, operations are treated as if that condition had failed.
         
     | 
| 
      
 137 
     | 
    
         
            +
                // This leaves the Context in a state consistent with encountering the InsertStatus in a normal
         
     | 
| 
      
 138 
     | 
    
         
            +
                // application.
         
     | 
| 
      
 139 
     | 
    
         
            +
                //
         
     | 
| 
      
 140 
     | 
    
         
            +
                // NOTE: If the simulated failure status is one of the later error codes but the inserted
         
     | 
| 
      
 141 
     | 
    
         
            +
                // Recording would fail with an earlier error code normally, that error is still returned.
         
     | 
| 
      
 142 
     | 
    
         
            +
                InsertStatus fSimulatedStatus = InsertStatus::kSuccess;
         
     | 
| 
       91 
143 
     | 
    
         
             
            };
         
     | 
| 
       92 
144 
     | 
    
         | 
| 
       93 
145 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -118,6 +170,29 @@ enum class SyncToCpu : bool { 
     | 
|
| 
       118 
170 
     | 
    
         
             
                kNo = false
         
     | 
| 
       119 
171 
     | 
    
         
             
            };
         
     | 
| 
       120 
172 
     | 
    
         | 
| 
      
 173 
     | 
    
         
            +
            enum class MarkFrameBoundary : bool {
         
     | 
| 
      
 174 
     | 
    
         
            +
                kYes = true,
         
     | 
| 
      
 175 
     | 
    
         
            +
                kNo = false
         
     | 
| 
      
 176 
     | 
    
         
            +
            };
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
            struct SubmitInfo {
         
     | 
| 
      
 179 
     | 
    
         
            +
                SyncToCpu fSync = SyncToCpu::kNo;
         
     | 
| 
      
 180 
     | 
    
         
            +
                MarkFrameBoundary fMarkBoundary = MarkFrameBoundary::kNo;
         
     | 
| 
      
 181 
     | 
    
         
            +
                uint64_t fFrameID = 0;
         
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
                constexpr SubmitInfo() = default;
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
                constexpr SubmitInfo(SyncToCpu sync)
         
     | 
| 
      
 186 
     | 
    
         
            +
                    : fSync(sync)
         
     | 
| 
      
 187 
     | 
    
         
            +
                    , fMarkBoundary(MarkFrameBoundary::kNo)
         
     | 
| 
      
 188 
     | 
    
         
            +
                    , fFrameID(0) {}
         
     | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
                constexpr SubmitInfo(SyncToCpu sync, uint64_t frameID)
         
     | 
| 
      
 191 
     | 
    
         
            +
                    : fSync(sync)
         
     | 
| 
      
 192 
     | 
    
         
            +
                    , fMarkBoundary(MarkFrameBoundary::kYes)
         
     | 
| 
      
 193 
     | 
    
         
            +
                    , fFrameID(frameID) {}
         
     | 
| 
      
 194 
     | 
    
         
            +
            };
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
       121 
196 
     | 
    
         
             
            /*
         
     | 
| 
       122 
197 
     | 
    
         
             
             * For Promise Images - should the Promise Image be fulfilled every time a Recording that references
         
     | 
| 
       123 
198 
     | 
    
         
             
             * it is inserted into the Context.
         
     | 
| 
         @@ -16,6 +16,7 @@ 
     | 
|
| 
       16 
16 
     | 
    
         
             
            #include "include/private/base/SingleOwner.h"
         
     | 
| 
       17 
17 
     | 
    
         
             
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       18 
18 
     | 
    
         
             
            #include "include/private/base/SkTArray.h"
         
     | 
| 
      
 19 
     | 
    
         
            +
            #include "include/private/base/SkTDArray.h"
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
            #include <chrono>
         
     | 
| 
       21 
22 
     | 
    
         
             
            #include <cstddef>
         
     | 
| 
         @@ -51,6 +52,7 @@ class BackendTexture; 
     | 
|
| 
       51 
52 
     | 
    
         
             
            class Context;
         
     | 
| 
       52 
53 
     | 
    
         
             
            class Device;
         
     | 
| 
       53 
54 
     | 
    
         
             
            class DrawBufferManager;
         
     | 
| 
      
 55 
     | 
    
         
            +
            class FloatStorageManager;
         
     | 
| 
       54 
56 
     | 
    
         
             
            class ImageProvider;
         
     | 
| 
       55 
57 
     | 
    
         
             
            class ProxyReadCountMap;
         
     | 
| 
       56 
58 
     | 
    
         
             
            class RecorderPriv;
         
     | 
| 
         @@ -58,16 +60,12 @@ class ResourceProvider; 
     | 
|
| 
       58 
60 
     | 
    
         
             
            class RuntimeEffectDictionary;
         
     | 
| 
       59 
61 
     | 
    
         
             
            class SharedContext;
         
     | 
| 
       60 
62 
     | 
    
         
             
            class TaskList;
         
     | 
| 
       61 
     | 
    
         
            -
            class TextureDataBlock;
         
     | 
| 
       62 
63 
     | 
    
         
             
            class TextureInfo;
         
     | 
| 
       63 
64 
     | 
    
         
             
            class UploadBufferManager;
         
     | 
| 
       64 
65 
     | 
    
         
             
            class UploadList;
         
     | 
| 
       65 
66 
     | 
    
         | 
| 
       66 
67 
     | 
    
         
             
            struct RecorderOptionsPriv;
         
     | 
| 
       67 
68 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
            template<typename T> class PipelineDataCache;
         
     | 
| 
       69 
     | 
    
         
            -
            using TextureDataCache = PipelineDataCache<TextureDataBlock>;
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
69 
     | 
    
         
             
            struct SK_API RecorderOptions final {
         
     | 
| 
       72 
70 
     | 
    
         
             
                RecorderOptions();
         
     | 
| 
       73 
71 
     | 
    
         
             
                RecorderOptions(const RecorderOptions&);
         
     | 
| 
         @@ -275,19 +273,22 @@ private: 
     | 
|
| 
       275 
273 
     | 
    
         
             
                void registerDevice(sk_sp<Device>);
         
     | 
| 
       276 
274 
     | 
    
         
             
                void deregisterDevice(const Device*);
         
     | 
| 
       277 
275 
     | 
    
         | 
| 
      
 276 
     | 
    
         
            +
                SkCanvas* makeCaptureCanvas(SkCanvas*) override;
         
     | 
| 
      
 277 
     | 
    
         
            +
             
     | 
| 
       278 
278 
     | 
    
         
             
                sk_sp<SharedContext> fSharedContext;
         
     | 
| 
       279 
279 
     | 
    
         
             
                ResourceProvider* fResourceProvider; // May point to the Context's resource provider
         
     | 
| 
       280 
280 
     | 
    
         
             
                std::unique_ptr<ResourceProvider> fOwnedResourceProvider; // May be null
         
     | 
| 
       281 
     | 
    
         
            -
             
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
                sk_sp<RuntimeEffectDictionary> fRuntimeEffectDict;
         
     | 
| 
       282 
283 
     | 
    
         | 
| 
       283 
284 
     | 
    
         
             
                // NOTE: These are stored by pointer to allow them to be forward declared.
         
     | 
| 
       284 
285 
     | 
    
         
             
                std::unique_ptr<TaskList> fRootTaskList;
         
     | 
| 
       285 
286 
     | 
    
         
             
                // Aggregated one-time uploads that preceed all tasks in the root task list.
         
     | 
| 
       286 
287 
     | 
    
         
             
                std::unique_ptr<UploadList> fRootUploads;
         
     | 
| 
       287 
288 
     | 
    
         | 
| 
       288 
     | 
    
         
            -
                std::unique_ptr<TextureDataCache> fTextureDataCache;
         
     | 
| 
       289 
289 
     | 
    
         
             
                std::unique_ptr<DrawBufferManager> fDrawBufferManager;
         
     | 
| 
       290 
290 
     | 
    
         
             
                std::unique_ptr<UploadBufferManager> fUploadBufferManager;
         
     | 
| 
      
 291 
     | 
    
         
            +
                sk_sp<FloatStorageManager> fFloatStorageManager;
         
     | 
| 
       291 
292 
     | 
    
         
             
                std::unique_ptr<ProxyReadCountMap> fProxyReadCounts;
         
     | 
| 
       292 
293 
     | 
    
         | 
| 
       293 
294 
     | 
    
         
             
                // Iterating over tracked devices in flushTrackedDevices() needs to be re-entrant and support
         
     | 
| 
         @@ -322,6 +323,14 @@ private: 
     | 
|
| 
       322 
323 
     | 
    
         
             
                // For testing use only -- the Context used to create this Recorder
         
     | 
| 
       323 
324 
     | 
    
         
             
                Context* fContext = nullptr;
         
     | 
| 
       324 
325 
     | 
    
         
             
            #endif
         
     | 
| 
      
 326 
     | 
    
         
            +
             
     | 
| 
      
 327 
     | 
    
         
            +
            #if defined(SK_DUMP_TASKS)
         
     | 
| 
      
 328 
     | 
    
         
            +
                // Traverses and dumps the task list at Recorder::snap()
         
     | 
| 
      
 329 
     | 
    
         
            +
                void dumpTasks(TaskList*) const;
         
     | 
| 
      
 330 
     | 
    
         
            +
             
     | 
| 
      
 331 
     | 
    
         
            +
                // Log of all callers of RecorderPriv::flushTrackedDevices
         
     | 
| 
      
 332 
     | 
    
         
            +
                SkTDArray<const char*> fFlushSources;
         
     | 
| 
      
 333 
     | 
    
         
            +
            #endif
         
     | 
| 
       325 
334 
     | 
    
         
             
            };
         
     | 
| 
       326 
335 
     | 
    
         | 
| 
       327 
336 
     | 
    
         
             
            } // namespace skgpu::graphite
         
     | 
| 
         @@ -68,12 +68,9 @@ private: 
     | 
|
| 
       68 
68 
     | 
    
         | 
| 
       69 
69 
     | 
    
         
             
                Recording(uint32_t uniqueID,
         
     | 
| 
       70 
70 
     | 
    
         
             
                          uint32_t recorderID,
         
     | 
| 
       71 
     | 
    
         
            -
                          std::unordered_set<sk_sp<TextureProxy>, ProxyHash>&& nonVolatileLazyProxies,
         
     | 
| 
       72 
     | 
    
         
            -
                          std::unordered_set<sk_sp<TextureProxy>, ProxyHash>&& volatileLazyProxies,
         
     | 
| 
       73 
71 
     | 
    
         
             
                          std::unique_ptr<LazyProxyData> targetProxyData,
         
     | 
| 
       74 
72 
     | 
    
         
             
                          skia_private::TArray<sk_sp<RefCntedCallback>>&& finishedProcs);
         
     | 
| 
       75 
73 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
                bool addCommands(CommandBuffer*, ResourceProvider*);
         
     | 
| 
       77 
74 
     | 
    
         
             
                void addResourceRef(sk_sp<Resource>);
         
     | 
| 
       78 
75 
     | 
    
         | 
| 
       79 
76 
     | 
    
         
             
                // Used to verify ordering if recorder ID is not SK_InvalidGenID
         
     | 
| 
         @@ -8,10 +8,12 @@ 
     | 
|
| 
       8 
8 
     | 
    
         
             
            #ifndef skgpu_graphite_MtlBackendContext_DEFINED
         
     | 
| 
       9 
9 
     | 
    
         
             
            #define skgpu_graphite_MtlBackendContext_DEFINED
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
      
 11 
     | 
    
         
            +
            #include "include/gpu/graphite/Context.h"
         
     | 
| 
       11 
12 
     | 
    
         
             
            #include "include/ports/SkCFObject.h"
         
     | 
| 
       12 
13 
     | 
    
         
             
            #include "include/private/base/SkAPI.h"
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
            #import <CoreFoundation/CoreFoundation.h>
         
     | 
| 
      
 16 
     | 
    
         
            +
            #include <memory>
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
18 
     | 
    
         
             
            namespace skgpu::graphite {
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
         @@ -32,7 +32,6 @@ enum class TextureFormat : uint8_t; 
     | 
|
| 
       32 
32 
     | 
    
         
             
            class KeyContext;
         
     | 
| 
       33 
33 
     | 
    
         
             
            class PaintOptionsPriv;
         
     | 
| 
       34 
34 
     | 
    
         
             
            class PaintParamsKeyBuilder;
         
     | 
| 
       35 
     | 
    
         
            -
            class PipelineDataGatherer;
         
     | 
| 
       36 
35 
     | 
    
         
             
            struct RenderPassDesc;
         
     | 
| 
       37 
36 
     | 
    
         
             
            class UniquePaintParamsID;
         
     | 
| 
       38 
37 
     | 
    
         | 
| 
         @@ -119,6 +118,9 @@ public: 
     | 
|
| 
       119 
118 
     | 
    
         
             
                SkSpan<const SkBlendMode> getBlendModes() const {
         
     | 
| 
       120 
119 
     | 
    
         
             
                    return SkSpan<const SkBlendMode>(fBlendModeOptions.data(), fBlendModeOptions.size());
         
     | 
| 
       121 
120 
     | 
    
         
             
                }
         
     | 
| 
      
 121 
     | 
    
         
            +
                void addBlendMode(SkBlendMode bm) {
         
     | 
| 
      
 122 
     | 
    
         
            +
                    fBlendModeOptions.push_back(bm);
         
     | 
| 
      
 123 
     | 
    
         
            +
                }
         
     | 
| 
       122 
124 
     | 
    
         | 
| 
       123 
125 
     | 
    
         
             
                /** Sets the blender options used when generating precompilation combinations.
         
     | 
| 
       124 
126 
     | 
    
         | 
| 
         @@ -155,9 +157,6 @@ private: 
     | 
|
| 
       155 
157 
     | 
    
         
             
                friend class PrecompileMaskFilter;  // for ProcessCombination access
         
     | 
| 
       156 
158 
     | 
    
         | 
| 
       157 
159 
     | 
    
         
             
                void addColorFilter(sk_sp<PrecompileColorFilter> cf);
         
     | 
| 
       158 
     | 
    
         
            -
                void addBlendMode(SkBlendMode bm) {
         
     | 
| 
       159 
     | 
    
         
            -
                    fBlendModeOptions.push_back(bm);
         
     | 
| 
       160 
     | 
    
         
            -
                }
         
     | 
| 
       161 
160 
     | 
    
         | 
| 
       162 
161 
     | 
    
         
             
                void setClipShaders(SkSpan<const sk_sp<PrecompileShader>> clipShaders);
         
     | 
| 
       163 
162 
     | 
    
         | 
| 
         @@ -174,8 +173,6 @@ private: 
     | 
|
| 
       174 
173 
     | 
    
         
             
                // 'desiredCombination' must be less than the result of the numCombinations call
         
     | 
| 
       175 
174 
     | 
    
         
             
                void createKey(const KeyContext&,
         
     | 
| 
       176 
175 
     | 
    
         
             
                               TextureFormat,
         
     | 
| 
       177 
     | 
    
         
            -
                               PaintParamsKeyBuilder*,
         
     | 
| 
       178 
     | 
    
         
            -
                               PipelineDataGatherer*,
         
     | 
| 
       179 
176 
     | 
    
         
             
                               int desiredCombination,
         
     | 
| 
       180 
177 
     | 
    
         
             
                               bool addPrimitiveBlender,
         
     | 
| 
       181 
178 
     | 
    
         
             
                               bool addAnalyticClip,
         
     | 
| 
         @@ -188,7 +185,6 @@ private: 
     | 
|
| 
       188 
185 
     | 
    
         
             
                                           const RenderPassDesc&)> ProcessCombination;
         
     | 
| 
       189 
186 
     | 
    
         | 
| 
       190 
187 
     | 
    
         
             
                void buildCombinations(const KeyContext&,
         
     | 
| 
       191 
     | 
    
         
            -
                                       PipelineDataGatherer*,
         
     | 
| 
       192 
188 
     | 
    
         
             
                                       DrawTypeFlags,
         
     | 
| 
       193 
189 
     | 
    
         
             
                                       bool addPrimitiveBlender,
         
     | 
| 
       194 
190 
     | 
    
         
             
                                       Coverage,
         
     |