@shopify/react-native-skia 1.3.13 → 1.4.0
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 +9 -4
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkPath.h +29 -19
- package/cpp/api/JsiSkRuntimeEffect.h +7 -0
- package/cpp/api/JsiSkiaContext.h +79 -0
- package/cpp/rnskia/RNSkPlatformContext.h +4 -0
- package/cpp/rnskia/SkiaContext.h +22 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
- package/cpp/skia/include/android/SkImageAndroid.h +1 -1
- package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
- package/cpp/skia/include/codec/SkCodec.h +28 -5
- package/cpp/skia/include/core/SkArc.h +69 -0
- package/cpp/skia/include/core/SkBitmap.h +10 -0
- package/cpp/skia/include/core/SkBlender.h +2 -3
- package/cpp/skia/include/core/SkCanvas.h +86 -16
- package/cpp/skia/include/core/SkCapabilities.h +0 -4
- package/cpp/skia/include/core/SkColorFilter.h +4 -4
- package/cpp/skia/include/core/SkColorPriv.h +5 -7
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkFlattenable.h +1 -1
- package/cpp/skia/include/core/SkFontArguments.h +3 -1
- package/cpp/skia/include/core/SkFontParameters.h +3 -2
- package/cpp/skia/include/core/SkFourByteTag.h +19 -0
- package/cpp/skia/include/core/SkImage.h +41 -1
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkImageInfo.h +20 -0
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMatrix.h +2 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +20 -6
- package/cpp/skia/include/core/SkPathMeasure.h +1 -0
- package/cpp/skia/include/core/SkPicture.h +5 -5
- package/cpp/skia/include/core/SkPoint3.h +2 -12
- package/cpp/skia/include/core/SkRRect.h +5 -0
- package/cpp/skia/include/core/SkRect.h +5 -16
- package/cpp/skia/include/core/SkRefCnt.h +2 -0
- package/cpp/skia/include/core/SkScalar.h +20 -32
- package/cpp/skia/include/core/SkShader.h +17 -0
- package/cpp/skia/include/core/SkSize.h +2 -1
- package/cpp/skia/include/core/SkStream.h +2 -3
- package/cpp/skia/include/core/SkStrokeRec.h +6 -1
- package/cpp/skia/include/core/SkSurface.h +13 -4
- package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
- package/cpp/skia/include/core/SkSwizzle.h +3 -1
- package/cpp/skia/include/core/SkTypeface.h +1 -0
- package/cpp/skia/include/core/SkTypes.h +1 -19
- package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
- package/cpp/skia/include/core/SkVertices.h +4 -2
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
- package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
- package/cpp/skia/include/effects/SkImageFilters.h +49 -23
- package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
- package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
- package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
- package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
- package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
- package/cpp/skia/include/gpu/GrTypes.h +2 -238
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
- package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
- package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
- package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
- package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
- package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
- package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
- package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
- package/cpp/skia/include/gpu/graphite/Context.h +122 -44
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
- package/cpp/skia/include/gpu/graphite/Image.h +56 -54
- package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
- package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
- package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
- package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
- package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
- package/cpp/skia/include/private/SkExif.h +28 -75
- package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
- package/cpp/skia/include/private/SkPathRef.h +52 -44
- package/cpp/skia/include/private/SkXmp.h +13 -4
- package/cpp/skia/include/private/base/SkASAN.h +56 -0
- package/cpp/skia/include/private/base/SkAlign.h +5 -0
- package/cpp/skia/include/private/base/SkContainers.h +10 -2
- package/cpp/skia/include/private/base/SkFeatures.h +22 -1
- package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
- package/cpp/skia/include/private/base/SkMacros.h +67 -0
- package/cpp/skia/include/private/base/SkMalloc.h +8 -0
- package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
- package/cpp/skia/include/private/base/SkTArray.h +108 -23
- package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
- package/cpp/skia/include/private/chromium/Slug.h +5 -11
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
- package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
- package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
- package/cpp/skia/include/utils/SkParse.h +0 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
- package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
- package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
- package/cpp/skia/src/base/SkMathPriv.h +337 -0
- package/cpp/skia/src/base/SkTLazy.h +208 -0
- package/cpp/skia/src/core/SkTHash.h +58 -7
- package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +6 -1
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +4 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
- package/lib/commonjs/web/WithSkiaWeb.js +3 -2
- package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +6 -1
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +4 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/web/WithSkiaWeb.d.ts +11 -4
- package/lib/module/web/WithSkiaWeb.js +3 -2
- package/lib/module/web/WithSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
- package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
- 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/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/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/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/ios/libskia.xcframework/Info.plist +5 -5
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -5
- package/react-native-skia.podspec +2 -1
- package/src/renderer/HostConfig.ts +5 -1
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
- package/src/skia/types/Paragraph/TextStyle.ts +2 -2
- package/src/skia/types/Skia.ts +7 -1
- package/src/skia/web/JsiSkia.ts +3 -0
- package/src/web/WithSkiaWeb.tsx +17 -6
- package/cpp/skia/include/core/SkDrawLooper.h +0 -135
- package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
- package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
- package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
- package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
- package/cpp/skia/src/core/SkPathEnums.h +0 -25
- package/cpp/skia/src/core/SkPathPriv.h +0 -540
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
#include "include/core/SkFlattenable.h"
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* SkBlender represents a custom blend function in the Skia pipeline.
|
|
16
|
-
*
|
|
17
|
-
* result of our paint) and destination color (from the canvas) into a final color.
|
|
15
|
+
* SkBlender represents a custom blend function in the Skia pipeline. A blender combines a source
|
|
16
|
+
* color (the result of our paint) and destination color (from the canvas) into a final color.
|
|
18
17
|
*/
|
|
19
18
|
class SK_API SkBlender : public SkFlattenable {
|
|
20
19
|
public:
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#ifndef SkCanvas_DEFINED
|
|
9
9
|
#define SkCanvas_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkArc.h"
|
|
11
12
|
#include "include/core/SkBlendMode.h"
|
|
12
13
|
#include "include/core/SkClipOp.h"
|
|
13
14
|
#include "include/core/SkColor.h"
|
|
@@ -51,6 +52,7 @@ class GrRecordingContext;
|
|
|
51
52
|
|
|
52
53
|
class SkBitmap;
|
|
53
54
|
class SkBlender;
|
|
55
|
+
class SkColorSpace;
|
|
54
56
|
class SkData;
|
|
55
57
|
class SkDevice;
|
|
56
58
|
class SkDrawable;
|
|
@@ -78,6 +80,10 @@ class SkEnumBitMask;
|
|
|
78
80
|
namespace skgpu::graphite { class Recorder; }
|
|
79
81
|
namespace sktext::gpu { class Slug; }
|
|
80
82
|
namespace SkRecords { class Draw; }
|
|
83
|
+
namespace skiatest {
|
|
84
|
+
template <typename Key>
|
|
85
|
+
class TestCanvas;// IWYU pragma: keep
|
|
86
|
+
}
|
|
81
87
|
|
|
82
88
|
/** \class SkCanvas
|
|
83
89
|
SkCanvas provides an interface for drawing, and how the drawing is clipped and transformed.
|
|
@@ -694,7 +700,7 @@ public:
|
|
|
694
700
|
@return SaveLayerRec with empty fBackdrop
|
|
695
701
|
*/
|
|
696
702
|
SaveLayerRec(const SkRect* bounds, const SkPaint* paint, SaveLayerFlags saveLayerFlags = 0)
|
|
697
|
-
: SaveLayerRec(bounds, paint, nullptr, 1.f, saveLayerFlags, /*filters=*/{}) {}
|
|
703
|
+
: SaveLayerRec(bounds, paint, nullptr, nullptr, 1.f, saveLayerFlags, /*filters=*/{}) {}
|
|
698
704
|
|
|
699
705
|
/** Sets fBounds, fPaint, fBackdrop, and fSaveLayerFlags.
|
|
700
706
|
|
|
@@ -710,7 +716,29 @@ public:
|
|
|
710
716
|
*/
|
|
711
717
|
SaveLayerRec(const SkRect* bounds, const SkPaint* paint, const SkImageFilter* backdrop,
|
|
712
718
|
SaveLayerFlags saveLayerFlags)
|
|
713
|
-
: SaveLayerRec(bounds, paint, backdrop, 1.f, saveLayerFlags, /*filters=*/{}) {}
|
|
719
|
+
: SaveLayerRec(bounds, paint, backdrop, nullptr, 1.f, saveLayerFlags, /*filters=*/{}) {}
|
|
720
|
+
|
|
721
|
+
/** Sets fBounds, fColorSpace, and fSaveLayerFlags.
|
|
722
|
+
|
|
723
|
+
@param bounds layer dimensions; may be nullptr
|
|
724
|
+
@param paint applied to layer when overlaying prior layer;
|
|
725
|
+
may be nullptr
|
|
726
|
+
@param backdrop If not null, this causes the current layer to be filtered by
|
|
727
|
+
backdrop, and then drawn into the new layer
|
|
728
|
+
(respecting the current clip).
|
|
729
|
+
If null, the new layer is initialized with transparent-black.
|
|
730
|
+
@param colorSpace If not null, when the layer is restored, a color space
|
|
731
|
+
conversion will be applied from this color space to the
|
|
732
|
+
parent's color space. The restore paint and backdrop filters will
|
|
733
|
+
be applied in this color space.
|
|
734
|
+
If null, the new layer will inherit the color space from its
|
|
735
|
+
parent.
|
|
736
|
+
@param saveLayerFlags SaveLayerRec options to modify layer
|
|
737
|
+
@return SaveLayerRec fully specified
|
|
738
|
+
*/
|
|
739
|
+
SaveLayerRec(const SkRect* bounds, const SkPaint* paint, const SkImageFilter* backdrop,
|
|
740
|
+
const SkColorSpace* colorSpace, SaveLayerFlags saveLayerFlags)
|
|
741
|
+
: SaveLayerRec(bounds, paint, backdrop, colorSpace, 1.f, saveLayerFlags, /*filters=*/{}) {}
|
|
714
742
|
|
|
715
743
|
/** hints at layer size limit */
|
|
716
744
|
const SkRect* fBounds = nullptr;
|
|
@@ -728,6 +756,13 @@ public:
|
|
|
728
756
|
*/
|
|
729
757
|
const SkImageFilter* fBackdrop = nullptr;
|
|
730
758
|
|
|
759
|
+
/**
|
|
760
|
+
* If not null, this triggers a color space conversion when the layer is restored. It
|
|
761
|
+
* will be as if the layer's contents are drawn in this color space. Filters from
|
|
762
|
+
* fBackdrop and fPaint will be applied in this color space.
|
|
763
|
+
*/
|
|
764
|
+
const SkColorSpace* fColorSpace = nullptr;
|
|
765
|
+
|
|
731
766
|
/** preserves LCD text, creates with prior layer contents */
|
|
732
767
|
SaveLayerFlags fSaveLayerFlags = 0;
|
|
733
768
|
|
|
@@ -738,6 +773,7 @@ public:
|
|
|
738
773
|
SaveLayerRec(const SkRect* bounds,
|
|
739
774
|
const SkPaint* paint,
|
|
740
775
|
const SkImageFilter* backdrop,
|
|
776
|
+
const SkColorSpace* colorSpace,
|
|
741
777
|
SkScalar backdropScale,
|
|
742
778
|
SaveLayerFlags saveLayerFlags,
|
|
743
779
|
FilterSpan filters)
|
|
@@ -745,6 +781,7 @@ public:
|
|
|
745
781
|
, fPaint(paint)
|
|
746
782
|
, fFilters(filters)
|
|
747
783
|
, fBackdrop(backdrop)
|
|
784
|
+
, fColorSpace(colorSpace)
|
|
748
785
|
, fSaveLayerFlags(saveLayerFlags)
|
|
749
786
|
, fExperimentalBackdropScale(backdropScale) {
|
|
750
787
|
// We only allow the paint's image filter or the side-car list of filters -- not both.
|
|
@@ -1436,6 +1473,27 @@ public:
|
|
|
1436
1473
|
void drawArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
|
|
1437
1474
|
bool useCenter, const SkPaint& paint);
|
|
1438
1475
|
|
|
1476
|
+
/** Draws arc using clip, SkMatrix, and SkPaint paint.
|
|
1477
|
+
|
|
1478
|
+
Arc is part of oval bounded by oval, sweeping from startAngle to startAngle plus
|
|
1479
|
+
sweepAngle. startAngle and sweepAngle are in degrees.
|
|
1480
|
+
|
|
1481
|
+
startAngle of zero places start point at the right middle edge of oval.
|
|
1482
|
+
A positive sweepAngle places arc end point clockwise from start point;
|
|
1483
|
+
a negative sweepAngle places arc end point counterclockwise from start point.
|
|
1484
|
+
sweepAngle may exceed 360 degrees, a full circle.
|
|
1485
|
+
If useCenter is true, draw a wedge that includes lines from oval
|
|
1486
|
+
center to arc end points. If useCenter is false, draw arc between end points.
|
|
1487
|
+
|
|
1488
|
+
If SkRect oval is empty or sweepAngle is zero, nothing is drawn.
|
|
1489
|
+
|
|
1490
|
+
@param arc SkArc specifying oval, startAngle, sweepAngle, and arc-vs-wedge
|
|
1491
|
+
@param paint SkPaint stroke or fill, blend, color, and so on, used to draw
|
|
1492
|
+
*/
|
|
1493
|
+
void drawArc(const SkArc& arc, const SkPaint& paint) {
|
|
1494
|
+
this->drawArc(arc.fOval, arc.fStartAngle, arc.fSweepAngle, arc.isWedge(), paint);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1439
1497
|
/** Draws SkRRect bounded by SkRect rect, with corner radii (rx, ry) using clip,
|
|
1440
1498
|
SkMatrix, and SkPaint paint.
|
|
1441
1499
|
|
|
@@ -2299,7 +2357,7 @@ protected:
|
|
|
2299
2357
|
|
|
2300
2358
|
/**
|
|
2301
2359
|
*/
|
|
2302
|
-
virtual void onDrawSlug(const sktext::gpu::Slug* slug);
|
|
2360
|
+
virtual void onDrawSlug(const sktext::gpu::Slug* slug, const SkPaint& paint);
|
|
2303
2361
|
|
|
2304
2362
|
private:
|
|
2305
2363
|
enum class PredrawFlags : unsigned {
|
|
@@ -2351,10 +2409,15 @@ private:
|
|
|
2351
2409
|
bool fIsCoverage;
|
|
2352
2410
|
bool fDiscard;
|
|
2353
2411
|
|
|
2412
|
+
// If true, the layer image is sized to include a 1px buffer that remains transparent
|
|
2413
|
+
// to allow for faster linear filtering under complex transforms.
|
|
2414
|
+
bool fIncludesPadding;
|
|
2415
|
+
|
|
2354
2416
|
Layer(sk_sp<SkDevice> device,
|
|
2355
2417
|
FilterSpan imageFilters,
|
|
2356
2418
|
const SkPaint& paint,
|
|
2357
|
-
bool isCoverage
|
|
2419
|
+
bool isCoverage,
|
|
2420
|
+
bool includesPadding);
|
|
2358
2421
|
};
|
|
2359
2422
|
|
|
2360
2423
|
// Encapsulate state needed to restore from saveBehind()
|
|
@@ -2392,7 +2455,8 @@ private:
|
|
|
2392
2455
|
void newLayer(sk_sp<SkDevice> layerDevice,
|
|
2393
2456
|
FilterSpan filters,
|
|
2394
2457
|
const SkPaint& restorePaint,
|
|
2395
|
-
bool layerIsCoverage
|
|
2458
|
+
bool layerIsCoverage,
|
|
2459
|
+
bool includesPadding);
|
|
2396
2460
|
|
|
2397
2461
|
void reset(SkDevice* device);
|
|
2398
2462
|
};
|
|
@@ -2441,7 +2505,7 @@ private:
|
|
|
2441
2505
|
friend class SkRasterHandleAllocator;
|
|
2442
2506
|
friend class SkRecords::Draw;
|
|
2443
2507
|
template <typename Key>
|
|
2444
|
-
friend class
|
|
2508
|
+
friend class skiatest::TestCanvas;
|
|
2445
2509
|
|
|
2446
2510
|
protected:
|
|
2447
2511
|
// For use by SkNoDrawCanvas (via SkCanvasVirtualEnforcer, which can't be a friend)
|
|
@@ -2466,7 +2530,7 @@ private:
|
|
|
2466
2530
|
/**
|
|
2467
2531
|
* Draw an sktext::gpu::Slug given the current canvas state.
|
|
2468
2532
|
*/
|
|
2469
|
-
void drawSlug(const sktext::gpu::Slug* slug);
|
|
2533
|
+
void drawSlug(const sktext::gpu::Slug* slug, const SkPaint& paint);
|
|
2470
2534
|
|
|
2471
2535
|
/** Experimental
|
|
2472
2536
|
* Saves the specified subset of the current pixels in the current layer,
|
|
@@ -2506,13 +2570,16 @@ private:
|
|
|
2506
2570
|
void internalSave();
|
|
2507
2571
|
void internalRestore();
|
|
2508
2572
|
|
|
2509
|
-
enum class DeviceCompatibleWithFilter :
|
|
2573
|
+
enum class DeviceCompatibleWithFilter : int {
|
|
2510
2574
|
// Check the src device's local-to-device matrix for compatibility with the filter, and if
|
|
2511
2575
|
// it is not compatible, introduce an intermediate image and transformation that allows the
|
|
2512
2576
|
// filter to be evaluated on the modified src content.
|
|
2513
|
-
kUnknown
|
|
2577
|
+
kUnknown,
|
|
2514
2578
|
// Assume that the src device's local-to-device matrix is compatible with the filter.
|
|
2515
|
-
kYes
|
|
2579
|
+
kYes,
|
|
2580
|
+
// Assume that the src device's local-to-device matrix is compatible with the filter,
|
|
2581
|
+
// *and* the source image has a 1px buffer of padding.
|
|
2582
|
+
kYesWithPadding
|
|
2516
2583
|
};
|
|
2517
2584
|
/**
|
|
2518
2585
|
* Filters the contents of 'src' and draws the result into 'dst'. The filter is evaluated
|
|
@@ -2528,6 +2595,7 @@ private:
|
|
|
2528
2595
|
void internalDrawDeviceWithFilter(SkDevice* src, SkDevice* dst,
|
|
2529
2596
|
FilterSpan filters, const SkPaint& paint,
|
|
2530
2597
|
DeviceCompatibleWithFilter compat,
|
|
2598
|
+
const SkColorInfo& filterColorInfo,
|
|
2531
2599
|
SkScalar scaleFactor = 1.f,
|
|
2532
2600
|
bool srcIsCoverageLayer = false);
|
|
2533
2601
|
|
|
@@ -2539,12 +2607,6 @@ private:
|
|
|
2539
2607
|
bool wouldOverwriteEntireSurface(const SkRect*, const SkPaint*,
|
|
2540
2608
|
SkEnumBitMask<PredrawFlags>) const;
|
|
2541
2609
|
|
|
2542
|
-
/**
|
|
2543
|
-
* Returns true if the paint's imagefilter can be invoked directly, without needed a layer.
|
|
2544
|
-
*/
|
|
2545
|
-
bool canDrawBitmapAsSprite(SkScalar x, SkScalar y, int w, int h, const SkSamplingOptions&,
|
|
2546
|
-
const SkPaint&);
|
|
2547
|
-
|
|
2548
2610
|
/**
|
|
2549
2611
|
* Returns true if the clip (for any active layer) contains antialiasing.
|
|
2550
2612
|
* If the clip is empty, this will return false.
|
|
@@ -2568,6 +2630,14 @@ private:
|
|
|
2568
2630
|
// into the canvas' global space.
|
|
2569
2631
|
SkRect computeDeviceClipBounds(bool outsetForAA=true) const;
|
|
2570
2632
|
|
|
2633
|
+
// Attempt to draw a rrect with an analytic blur. If the paint does not contain a blur, or the
|
|
2634
|
+
// geometry can't be drawn with an analytic blur by the device, a layer is returned for a
|
|
2635
|
+
// regular draw. If the draw succeeds or predrawNotify fails, nullopt is returned indicating
|
|
2636
|
+
// that nothing further should be drawn.
|
|
2637
|
+
std::optional<AutoLayerForImageFilter> attemptBlurredRRectDraw(const SkRRect&,
|
|
2638
|
+
const SkPaint&,
|
|
2639
|
+
SkEnumBitMask<PredrawFlags>);
|
|
2640
|
+
|
|
2571
2641
|
class AutoUpdateQRBounds;
|
|
2572
2642
|
void validateClip() const;
|
|
2573
2643
|
|
|
@@ -14,9 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
namespace SkSL { struct ShaderCaps; }
|
|
16
16
|
|
|
17
|
-
#if defined(SK_GRAPHITE)
|
|
18
17
|
namespace skgpu::graphite { class Caps; }
|
|
19
|
-
#endif
|
|
20
18
|
|
|
21
19
|
class SK_API SkCapabilities : public SkRefCnt {
|
|
22
20
|
public:
|
|
@@ -25,9 +23,7 @@ public:
|
|
|
25
23
|
SkSL::Version skslVersion() const { return fSkSLVersion; }
|
|
26
24
|
|
|
27
25
|
protected:
|
|
28
|
-
#if defined(SK_GRAPHITE)
|
|
29
26
|
friend class skgpu::graphite::Caps; // for ctor
|
|
30
|
-
#endif
|
|
31
27
|
|
|
32
28
|
SkCapabilities() = default;
|
|
33
29
|
|
|
@@ -49,8 +49,6 @@ public:
|
|
|
49
49
|
// Returns true if the filter is guaranteed to never change the alpha of a color it filters.
|
|
50
50
|
bool isAlphaUnchanged() const;
|
|
51
51
|
|
|
52
|
-
SkColor filterColor(SkColor) const;
|
|
53
|
-
|
|
54
52
|
/**
|
|
55
53
|
* Converts the src color (in src colorspace), into the dst colorspace,
|
|
56
54
|
* then applies this filter to it, returning the filtered color in the dst colorspace.
|
|
@@ -94,8 +92,10 @@ public:
|
|
|
94
92
|
static sk_sp<SkColorFilter> Blend(const SkColor4f& c, sk_sp<SkColorSpace>, SkBlendMode mode);
|
|
95
93
|
static sk_sp<SkColorFilter> Blend(SkColor c, SkBlendMode mode);
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
enum class Clamp : bool { kNo, kYes };
|
|
96
|
+
|
|
97
|
+
static sk_sp<SkColorFilter> Matrix(const SkColorMatrix&, Clamp clamp = Clamp::kYes);
|
|
98
|
+
static sk_sp<SkColorFilter> Matrix(const float rowMajor[20], Clamp clamp = Clamp::kYes);
|
|
99
99
|
|
|
100
100
|
// A version of Matrix which operates in HSLA space instead of RGBA.
|
|
101
101
|
// I.e. HSLA-to-RGBA(Matrix(RGBA-to-HSLA(input))).
|
|
@@ -100,22 +100,20 @@ static inline U8CPU SkUnitScalarClampToByte(SkScalar x) {
|
|
|
100
100
|
#define SkB32Assert(b) SkASSERT((unsigned)(b) <= SK_B32_MASK)
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
* Pack the components into a SkPMColor
|
|
104
|
-
* the components are 0..255, and are already premultiplied (i.e. alpha >= color)
|
|
103
|
+
* Pack the components into a SkPMColor
|
|
105
104
|
*/
|
|
106
105
|
static inline SkPMColor SkPackARGB32(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
|
|
107
106
|
SkA32Assert(a);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
SkR32Assert(r);
|
|
108
|
+
SkG32Assert(g);
|
|
109
|
+
SkB32Assert(b);
|
|
111
110
|
|
|
112
111
|
return (a << SK_A32_SHIFT) | (r << SK_R32_SHIFT) |
|
|
113
112
|
(g << SK_G32_SHIFT) | (b << SK_B32_SHIFT);
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
/**
|
|
117
|
-
*
|
|
118
|
-
* values are premultiplied in the debug version.
|
|
116
|
+
* Legacy "NoCheck" version of SkPackARGB32. Remove this once all callers are updated.
|
|
119
117
|
*/
|
|
120
118
|
static inline SkPMColor SkPackARGB32NoCheck(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
|
|
121
119
|
return (a << SK_A32_SHIFT) | (r << SK_R32_SHIFT) |
|
|
@@ -29,6 +29,7 @@ enum SkColorType : int {
|
|
|
29
29
|
kRGB_101010x_SkColorType, //!< pixel with 10 bits each for red, green, blue; in 32-bit word
|
|
30
30
|
kBGR_101010x_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word
|
|
31
31
|
kBGR_101010x_XR_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word, extended range
|
|
32
|
+
kBGRA_10101010_XR_SkColorType, //!< pixel with 10 bits each for blue, green, red, alpha; in 64-bit word, extended range
|
|
32
33
|
kRGBA_10x6_SkColorType, //!< pixel with 10 used bits (most significant) followed by 6 unused
|
|
33
34
|
// bits for red, green, blue, alpha; in 64-bit word
|
|
34
35
|
kGray_8_SkColorType, //!< pixel with grayscale level in 8-bit byte
|
|
@@ -36,6 +37,7 @@ enum SkColorType : int {
|
|
|
36
37
|
// in 64-bit word
|
|
37
38
|
kRGBA_F16_SkColorType, //!< pixel with half floats for red, green, blue, alpha;
|
|
38
39
|
// in 64-bit word
|
|
40
|
+
kRGB_F16F16F16x_SkColorType, //!< pixel with half floats for red, green, blue; in 64-bit word
|
|
39
41
|
kRGBA_F32_SkColorType, //!< pixel using C float for red, green, blue, alpha; in 128-bit word
|
|
40
42
|
|
|
41
43
|
// The following 6 colortypes are just for reading from - not for rendering to
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
#define SkFontArguments_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkColor.h"
|
|
12
|
-
#include "include/core/
|
|
12
|
+
#include "include/core/SkFourByteTag.h"
|
|
13
13
|
#include "include/core/SkTypes.h"
|
|
14
14
|
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
|
|
15
17
|
/** Represents a set of actual arguments for a font. */
|
|
16
18
|
struct SkFontArguments {
|
|
17
19
|
struct VariationPosition {
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
#ifndef SkFontParameters_DEFINED
|
|
9
9
|
#define SkFontParameters_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/
|
|
12
|
-
|
|
11
|
+
#include "include/core/SkFourByteTag.h"
|
|
12
|
+
|
|
13
|
+
#include <cstdint>
|
|
13
14
|
|
|
14
15
|
struct SkFontParameters {
|
|
15
16
|
struct Variation {
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
|
|
8
|
+
#ifndef SkFourByteTag_DEFINED
|
|
9
|
+
#define SkFourByteTag_DEFINED
|
|
10
|
+
|
|
11
|
+
#include <cstdint>
|
|
12
|
+
|
|
13
|
+
using SkFourByteTag = uint32_t;
|
|
14
|
+
|
|
15
|
+
static inline constexpr SkFourByteTag SkSetFourByteTag(char a, char b, char c, char d) {
|
|
16
|
+
return (((uint32_t)a << 24) | ((uint32_t)b << 16) | ((uint32_t)c << 8) | (uint32_t)d);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
#endif
|
|
@@ -98,6 +98,8 @@ SK_API sk_sp<SkImage> RasterFromCompressedTextureData(sk_sp<SkData> data,
|
|
|
98
98
|
*
|
|
99
99
|
* If the encoded format is not supported, nullptr is returned.
|
|
100
100
|
*
|
|
101
|
+
* If possible, clients should use SkCodecs::DeferredImage instead.
|
|
102
|
+
*
|
|
101
103
|
* @param encoded the encoded data
|
|
102
104
|
* @return created SkImage, or nullptr
|
|
103
105
|
|
|
@@ -466,6 +468,9 @@ public:
|
|
|
466
468
|
/** Copies SkRect of pixels from SkImage to dstPixels. Copy starts at offset (srcX, srcY),
|
|
467
469
|
and does not exceed SkImage (width(), height()).
|
|
468
470
|
|
|
471
|
+
Graphite has deprecated this API in favor of the equivalent asynchronous API on
|
|
472
|
+
skgpu::graphite::Context (with an optional explicit synchonization).
|
|
473
|
+
|
|
469
474
|
dstInfo specifies width, height, SkColorType, SkAlphaType, and SkColorSpace of
|
|
470
475
|
destination. dstRowBytes specifies the gap from one destination row to the next.
|
|
471
476
|
Returns true if pixels are copied. Returns false if:
|
|
@@ -506,6 +511,9 @@ public:
|
|
|
506
511
|
/** Copies a SkRect of pixels from SkImage to dst. Copy starts at (srcX, srcY), and
|
|
507
512
|
does not exceed SkImage (width(), height()).
|
|
508
513
|
|
|
514
|
+
Graphite has deprecated this API in favor of the equivalent asynchronous API on
|
|
515
|
+
skgpu::graphite::Context (with an optional explicit synchonization).
|
|
516
|
+
|
|
509
517
|
dst specifies width, height, SkColorType, SkAlphaType, SkColorSpace, pixel storage,
|
|
510
518
|
and row bytes of destination. dst.rowBytes() specifics the gap from one destination
|
|
511
519
|
row to the next. Returns true if pixels are copied. Returns false if:
|
|
@@ -557,8 +565,17 @@ public:
|
|
|
557
565
|
AsyncReadResult& operator=(AsyncReadResult&&) = delete;
|
|
558
566
|
|
|
559
567
|
virtual ~AsyncReadResult() = default;
|
|
568
|
+
/** Returns how many planes of data are in the result. e.g. 3 for YUV data. */
|
|
560
569
|
virtual int count() const = 0;
|
|
570
|
+
/** Returns the raw pixel data for a given plane.
|
|
571
|
+
*
|
|
572
|
+
* It will be organized as per the dst SkImageInfo passed in to the async read call.
|
|
573
|
+
*
|
|
574
|
+
* Clients may wish to create an SkPixmap with this data using the dst SkImageInfo
|
|
575
|
+
* and rowBytes(i).
|
|
576
|
+
*/
|
|
561
577
|
virtual const void* data(int i) const = 0;
|
|
578
|
+
/** Returns how many bytes correspond to a single row of image data */
|
|
562
579
|
virtual size_t rowBytes(int i) const = 0;
|
|
563
580
|
|
|
564
581
|
protected:
|
|
@@ -585,10 +602,13 @@ public:
|
|
|
585
602
|
/** Makes image pixel data available to caller, possibly asynchronously. It can also rescale
|
|
586
603
|
the image pixels.
|
|
587
604
|
|
|
588
|
-
Currently asynchronous reads are only supported
|
|
605
|
+
Currently asynchronous reads are only supported in the Ganesh GPU backend and only when the
|
|
589
606
|
underlying 3D API supports transfer buffers and CPU/GPU synchronization primitives. In all
|
|
590
607
|
other cases this operates synchronously.
|
|
591
608
|
|
|
609
|
+
For the Graphite backend this API has been deprecated in favor of the equivalent API
|
|
610
|
+
on skgpu::graphite::Context.
|
|
611
|
+
|
|
592
612
|
Data is read from the source sub-rectangle, is optionally converted to a linear gamma, is
|
|
593
613
|
rescaled to the size indicated by 'info', is then converted to the color space, color type,
|
|
594
614
|
and alpha type of 'info'. A 'srcRect' that is not contained by the bounds of the image
|
|
@@ -692,6 +712,26 @@ public:
|
|
|
692
712
|
bool scalePixels(const SkPixmap& dst, const SkSamplingOptions&,
|
|
693
713
|
CachingHint cachingHint = kAllow_CachingHint) const;
|
|
694
714
|
|
|
715
|
+
/**
|
|
716
|
+
* Create a new image by copying this image and scaling to fit the ImageInfo's dimensions
|
|
717
|
+
* and converting the pixels into the ImageInfo's ColorInfo.
|
|
718
|
+
* This is done retaining the domain (backend) of the image (e.g. gpu, raster)
|
|
719
|
+
*
|
|
720
|
+
* The Recorder parameter is required if the original image was created on a graphite Recorder,
|
|
721
|
+
* but must be nullptr if it was create in some other way (e.g. GrContext, raster, deferred).
|
|
722
|
+
*
|
|
723
|
+
* return nullptr if the requested ColorInfo is not supported, its dimesions are out of range,
|
|
724
|
+
* or if the recorder is null on a graphite Image.
|
|
725
|
+
*/
|
|
726
|
+
sk_sp<SkImage> makeScaled(skgpu::graphite::Recorder*,
|
|
727
|
+
const SkImageInfo&,
|
|
728
|
+
const SkSamplingOptions&) const;
|
|
729
|
+
|
|
730
|
+
sk_sp<SkImage> makeScaled(const SkImageInfo& info,
|
|
731
|
+
const SkSamplingOptions& sampling) const {
|
|
732
|
+
return this->makeScaled(nullptr, info, sampling);
|
|
733
|
+
}
|
|
734
|
+
|
|
695
735
|
/** Returns encoded SkImage pixels as SkData, if SkImage was created from supported
|
|
696
736
|
encoded stream format. Platform support for formats vary and may require building
|
|
697
737
|
with one or more of: SK_ENCODE_JPEG, SK_ENCODE_PNG, SK_ENCODE_WEBP.
|
|
@@ -15,11 +15,6 @@
|
|
|
15
15
|
#include "include/core/SkYUVAPixmaps.h"
|
|
16
16
|
#include "include/private/base/SkAPI.h"
|
|
17
17
|
|
|
18
|
-
#if defined(SK_GRAPHITE)
|
|
19
|
-
#include "include/core/SkImage.h"
|
|
20
|
-
#include "include/gpu/graphite/Recorder.h"
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
18
|
#include <cstddef>
|
|
24
19
|
#include <cstdint>
|
|
25
20
|
|
|
@@ -76,6 +76,24 @@ enum SkYUVColorSpace : int {
|
|
|
76
76
|
kBT2020_10bit_Limited_SkYUVColorSpace,
|
|
77
77
|
kBT2020_12bit_Full_SkYUVColorSpace,
|
|
78
78
|
kBT2020_12bit_Limited_SkYUVColorSpace,
|
|
79
|
+
kBT2020_16bit_Full_SkYUVColorSpace,
|
|
80
|
+
kBT2020_16bit_Limited_SkYUVColorSpace,
|
|
81
|
+
kFCC_Full_SkYUVColorSpace, //!< describes FCC range
|
|
82
|
+
kFCC_Limited_SkYUVColorSpace,
|
|
83
|
+
kSMPTE240_Full_SkYUVColorSpace, //!< describes SMPTE240M range
|
|
84
|
+
kSMPTE240_Limited_SkYUVColorSpace,
|
|
85
|
+
kYDZDX_Full_SkYUVColorSpace, //!< describes YDZDX range
|
|
86
|
+
kYDZDX_Limited_SkYUVColorSpace,
|
|
87
|
+
kGBR_Full_SkYUVColorSpace, //!< describes GBR range
|
|
88
|
+
kGBR_Limited_SkYUVColorSpace,
|
|
89
|
+
kYCgCo_8bit_Full_SkYUVColorSpace, //!< describes YCgCo matrix
|
|
90
|
+
kYCgCo_8bit_Limited_SkYUVColorSpace,
|
|
91
|
+
kYCgCo_10bit_Full_SkYUVColorSpace,
|
|
92
|
+
kYCgCo_10bit_Limited_SkYUVColorSpace,
|
|
93
|
+
kYCgCo_12bit_Full_SkYUVColorSpace,
|
|
94
|
+
kYCgCo_12bit_Limited_SkYUVColorSpace,
|
|
95
|
+
kYCgCo_16bit_Full_SkYUVColorSpace,
|
|
96
|
+
kYCgCo_16bit_Limited_SkYUVColorSpace,
|
|
79
97
|
kIdentity_SkYUVColorSpace, //!< maps Y->R, U->G, V->B
|
|
80
98
|
|
|
81
99
|
kLastEnum_SkYUVColorSpace = kIdentity_SkYUVColorSpace, //!< last valid value
|
|
@@ -87,6 +105,8 @@ enum SkYUVColorSpace : int {
|
|
|
87
105
|
kBT2020_SkYUVColorSpace = kBT2020_8bit_Limited_SkYUVColorSpace,
|
|
88
106
|
};
|
|
89
107
|
|
|
108
|
+
SK_API bool SkYUVColorSpaceIsLimitedRange(SkYUVColorSpace cs);
|
|
109
|
+
|
|
90
110
|
/** \struct SkColorInfo
|
|
91
111
|
Describes pixel and encoding. SkImageInfo can be created from SkColorInfo by
|
|
92
112
|
providing dimensions.
|
|
@@ -375,7 +375,7 @@ public:
|
|
|
375
375
|
|
|
376
376
|
@return true if matrix has only finite elements
|
|
377
377
|
*/
|
|
378
|
-
bool isFinite() const { return
|
|
378
|
+
bool isFinite() const { return SkIsFinite(fMat, 16); }
|
|
379
379
|
|
|
380
380
|
/** If this is invertible, return that in inverse and return true. If it is
|
|
381
381
|
* not invertible, return false and leave the inverse parameter unchanged.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include "include/core/SkRect.h"
|
|
13
13
|
#include "include/core/SkScalar.h"
|
|
14
14
|
#include "include/core/SkTypes.h"
|
|
15
|
+
#include "include/private/base/SkFloatingPoint.h"
|
|
15
16
|
#include "include/private/base/SkMacros.h"
|
|
16
17
|
#include "include/private/base/SkTo.h"
|
|
17
18
|
|
|
@@ -1830,7 +1831,7 @@ public:
|
|
|
1830
1831
|
|
|
1831
1832
|
@return true if matrix has only finite elements
|
|
1832
1833
|
*/
|
|
1833
|
-
bool isFinite() const { return
|
|
1834
|
+
bool isFinite() const { return SkIsFinite(fMat, 9); }
|
|
1834
1835
|
|
|
1835
1836
|
private:
|
|
1836
1837
|
/** Set if the matrix will map a rectangle to another rectangle. This
|
|
@@ -177,7 +177,7 @@ public:
|
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
/** Requests, but does not require, to distribute color error.
|
|
180
|
-
@param dither setting for
|
|
180
|
+
@param dither setting for dithering
|
|
181
181
|
*/
|
|
182
182
|
void setDither(bool dither) { fBitfields.fDither = static_cast<unsigned>(dither); }
|
|
183
183
|
|
|
@@ -137,6 +137,18 @@ public:
|
|
|
137
137
|
*/
|
|
138
138
|
~SkPath();
|
|
139
139
|
|
|
140
|
+
/** Returns a copy of this path in the current state. */
|
|
141
|
+
SkPath snapshot() const {
|
|
142
|
+
return *this;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** Returns a copy of this path in the current state, and resets the path to empty. */
|
|
146
|
+
SkPath detach() {
|
|
147
|
+
SkPath result = *this;
|
|
148
|
+
this->reset();
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
|
|
140
152
|
/** Constructs a copy of an existing path.
|
|
141
153
|
SkPath assignment makes two paths identical by value. Internally, assignment
|
|
142
154
|
shares pointer values. The underlying verb array, SkPoint array and weights
|
|
@@ -537,15 +549,17 @@ public:
|
|
|
537
549
|
*/
|
|
538
550
|
bool conservativelyContainsRect(const SkRect& rect) const;
|
|
539
551
|
|
|
540
|
-
/** Grows SkPath verb array
|
|
552
|
+
/** Grows SkPath verb array, SkPoint array, and conics to contain additional space.
|
|
541
553
|
May improve performance and use less memory by
|
|
542
554
|
reducing the number and size of allocations when creating SkPath.
|
|
543
555
|
|
|
544
556
|
@param extraPtCount number of additional SkPoint to allocate
|
|
557
|
+
@param extraVerbCount number of additional verbs
|
|
558
|
+
@param extraConicCount number of additional conics
|
|
545
559
|
|
|
546
560
|
example: https://fiddle.skia.org/c/@Path_incReserve
|
|
547
561
|
*/
|
|
548
|
-
void incReserve(int extraPtCount);
|
|
562
|
+
void incReserve(int extraPtCount, int extraVerbCount = 0, int extraConicCount = 0);
|
|
549
563
|
|
|
550
564
|
#ifdef SK_HIDE_PATH_EDIT_METHODS
|
|
551
565
|
private:
|
|
@@ -1332,8 +1346,9 @@ public:
|
|
|
1332
1346
|
@param dx offset added to SkPoint array x-axis coordinates
|
|
1333
1347
|
@param dy offset added to SkPoint array y-axis coordinates
|
|
1334
1348
|
*/
|
|
1335
|
-
|
|
1349
|
+
SkPath& offset(SkScalar dx, SkScalar dy) {
|
|
1336
1350
|
this->offset(dx, dy, this);
|
|
1351
|
+
return *this;
|
|
1337
1352
|
}
|
|
1338
1353
|
|
|
1339
1354
|
/** Transforms verb array, SkPoint array, and weight by matrix.
|
|
@@ -1357,9 +1372,10 @@ public:
|
|
|
1357
1372
|
@param matrix SkMatrix to apply to SkPath
|
|
1358
1373
|
@param pc whether to apply perspective clipping
|
|
1359
1374
|
*/
|
|
1360
|
-
|
|
1375
|
+
SkPath& transform(const SkMatrix& matrix,
|
|
1361
1376
|
SkApplyPerspectiveClip pc = SkApplyPerspectiveClip::kYes) {
|
|
1362
1377
|
this->transform(matrix, this, pc);
|
|
1378
|
+
return *this;
|
|
1363
1379
|
}
|
|
1364
1380
|
|
|
1365
1381
|
SkPath makeTransform(const SkMatrix& m,
|
|
@@ -1790,7 +1806,6 @@ private:
|
|
|
1790
1806
|
|
|
1791
1807
|
/** Resets all fields other than fPathRef to their initial 'empty' values.
|
|
1792
1808
|
* Assumes the caller has already emptied fPathRef.
|
|
1793
|
-
* On Android increments fGenerationID without reseting it.
|
|
1794
1809
|
*/
|
|
1795
1810
|
void resetFields();
|
|
1796
1811
|
|
|
@@ -1802,7 +1817,6 @@ private:
|
|
|
1802
1817
|
|
|
1803
1818
|
size_t writeToMemoryAsRRect(void* buffer) const;
|
|
1804
1819
|
size_t readAsRRect(const void*, size_t);
|
|
1805
|
-
size_t readFromMemory_EQ4Or5(const void*, size_t);
|
|
1806
1820
|
|
|
1807
1821
|
friend class Iter;
|
|
1808
1822
|
friend class SkPathPriv;
|