@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,6 +12,7 @@
|
|
|
12
12
|
#include "include/private/gpu/vk/SkiaVulkan.h"
|
|
13
13
|
|
|
14
14
|
#include <cstddef>
|
|
15
|
+
#include <cstdint>
|
|
15
16
|
#include <functional>
|
|
16
17
|
#include <string>
|
|
17
18
|
#include <vector>
|
|
@@ -65,14 +66,24 @@ struct VulkanYcbcrConversionInfo {
|
|
|
65
66
|
if (!this->isValid() && !that.isValid()) {
|
|
66
67
|
return true;
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this->
|
|
69
|
+
|
|
70
|
+
// Note that we do not need to check for fFormatFeatures equality. This is because the
|
|
71
|
+
// Vulkan spec dictates that Android hardware buffers with the same external format must
|
|
72
|
+
// have the same support for key features. See
|
|
73
|
+
// https://docs.vulkan.org/spec/latest/chapters/memory.html#_android_hardware_buffer_external_memory
|
|
74
|
+
// for more details.
|
|
75
|
+
return this->fFormat == that.fFormat &&
|
|
76
|
+
this->fExternalFormat == that.fExternalFormat &&
|
|
77
|
+
this->fYcbcrModel == that.fYcbcrModel &&
|
|
78
|
+
this->fYcbcrRange == that.fYcbcrRange &&
|
|
79
|
+
this->fXChromaOffset == that.fXChromaOffset &&
|
|
80
|
+
this->fYChromaOffset == that.fYChromaOffset &&
|
|
81
|
+
this->fChromaFilter == that.fChromaFilter &&
|
|
82
|
+
this->fForceExplicitReconstruction == that.fForceExplicitReconstruction &&
|
|
83
|
+
this->fComponents.r == that.fComponents.r &&
|
|
84
|
+
this->fComponents.g == that.fComponents.g &&
|
|
85
|
+
this->fComponents.b == that.fComponents.b &&
|
|
86
|
+
this->fComponents.a == that.fComponents.a;
|
|
76
87
|
}
|
|
77
88
|
bool operator!=(const VulkanYcbcrConversionInfo& that) const { return !(*this == that); }
|
|
78
89
|
|
|
@@ -99,6 +110,12 @@ struct VulkanYcbcrConversionInfo {
|
|
|
99
110
|
// For external images format features here should be those returned by a call to
|
|
100
111
|
// vkAndroidHardwareBufferFormatPropertiesANDROID
|
|
101
112
|
VkFormatFeatureFlags fFormatFeatures = 0;
|
|
113
|
+
|
|
114
|
+
// This is ignored when fExternalFormat is non-zero.
|
|
115
|
+
VkComponentMapping fComponents = {VK_COMPONENT_SWIZZLE_IDENTITY,
|
|
116
|
+
VK_COMPONENT_SWIZZLE_IDENTITY,
|
|
117
|
+
VK_COMPONENT_SWIZZLE_IDENTITY,
|
|
118
|
+
VK_COMPONENT_SWIZZLE_IDENTITY};
|
|
102
119
|
};
|
|
103
120
|
|
|
104
121
|
typedef void* VulkanDeviceLostContext;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Google Inc.
|
|
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 SkFontMgr_fontations_DEFINED
|
|
9
|
+
#define SkFontMgr_fontations_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
|
|
13
|
+
class SkFontMgr;
|
|
14
|
+
|
|
15
|
+
/** Create a font manager instantiating fonts using the Rust Fontations backend.
|
|
16
|
+
* This font manager does not support matching fonts, only instantiation.
|
|
17
|
+
*/
|
|
18
|
+
SK_API sk_sp<SkFontMgr> SkFontMgr_New_Fontations_Empty();
|
|
19
|
+
|
|
20
|
+
#endif // #ifndef SkFontMgr_fontations_DEFINED
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
|
12
12
|
|
|
13
|
+
#include <memory>
|
|
14
|
+
|
|
13
15
|
class SkFontMgr;
|
|
16
|
+
class SkFontScanner;
|
|
14
17
|
|
|
15
18
|
struct SkFontMgr_Android_CustomFonts {
|
|
16
19
|
/** When specifying custom fonts, indicates how to use system fonts. */
|
|
@@ -40,6 +43,10 @@ struct SkFontMgr_Android_CustomFonts {
|
|
|
40
43
|
};
|
|
41
44
|
|
|
42
45
|
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
|
|
46
|
+
|
|
47
|
+
// Deprecated
|
|
43
48
|
SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom);
|
|
44
49
|
|
|
50
|
+
SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
|
|
51
|
+
std::unique_ptr<SkFontScanner> scanner);
|
|
45
52
|
#endif // SkFontMgr_android_DEFINED
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
#ifndef SkImageGeneratorCG_DEFINED
|
|
8
8
|
#define SkImageGeneratorCG_DEFINED
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
// This is needed as clients may override the target platform
|
|
11
|
+
// using SkUserConfig
|
|
12
|
+
#include "include/private/base/SkLoadUserConfig.h"
|
|
11
13
|
|
|
12
14
|
#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
|
|
13
15
|
|
|
@@ -48,7 +48,6 @@ SK_API void SkTypeface_SetEnsureLOGFONTAccessibleProc(void (*)(const LOGFONT&));
|
|
|
48
48
|
// Experimental!
|
|
49
49
|
//
|
|
50
50
|
class SkFontMgr;
|
|
51
|
-
class SkRemotableFontMgr;
|
|
52
51
|
struct IDWriteFactory;
|
|
53
52
|
struct IDWriteFontCollection;
|
|
54
53
|
struct IDWriteFontFallback;
|
|
@@ -60,21 +59,5 @@ SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWrite(IDWriteFactory* factory,
|
|
|
60
59
|
IDWriteFontCollection* collection,
|
|
61
60
|
IDWriteFontFallback* fallback);
|
|
62
61
|
|
|
63
|
-
/**
|
|
64
|
-
* Creates an SkFontMgr which renders using DirectWrite and obtains its data
|
|
65
|
-
* from the SkRemotableFontMgr.
|
|
66
|
-
*
|
|
67
|
-
* If DirectWrite could not be initialized, will return NULL.
|
|
68
|
-
*/
|
|
69
|
-
SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWriteRenderer(sk_sp<SkRemotableFontMgr>);
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Creates an SkRemotableFontMgr backed by DirectWrite using the default
|
|
73
|
-
* system font collection in the current locale.
|
|
74
|
-
*
|
|
75
|
-
* If DirectWrite could not be initialized, will return NULL.
|
|
76
|
-
*/
|
|
77
|
-
SK_API sk_sp<SkRemotableFontMgr> SkRemotableFontMgr_New_DirectWrite();
|
|
78
|
-
|
|
79
62
|
#endif // SK_BUILD_FOR_WIN
|
|
80
63
|
#endif // SkTypeface_win_DEFINED
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "include/core/SkImageInfo.h"
|
|
16
16
|
#include "include/core/SkRefCnt.h"
|
|
17
17
|
#include "include/core/SkTypes.h"
|
|
18
|
+
#include "include/private/base/SkTo.h"
|
|
18
19
|
#include "modules/skcms/skcms.h"
|
|
19
20
|
|
|
20
21
|
#include <cstdint>
|
|
@@ -165,8 +166,13 @@ public:
|
|
|
165
166
|
break;
|
|
166
167
|
}
|
|
167
168
|
|
|
168
|
-
return SkEncodedInfo(width,
|
|
169
|
-
|
|
169
|
+
return SkEncodedInfo(width,
|
|
170
|
+
height,
|
|
171
|
+
color,
|
|
172
|
+
alpha,
|
|
173
|
+
SkToU8(bitsPerComponent),
|
|
174
|
+
SkToU8(colorDepth),
|
|
175
|
+
std::move(profile));
|
|
170
176
|
}
|
|
171
177
|
|
|
172
178
|
/*
|
|
@@ -9,94 +9,47 @@
|
|
|
9
9
|
#define SkExif_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/codec/SkEncodedOrigin.h"
|
|
12
|
-
#include "include/core/SkData.h"
|
|
13
|
-
#include "include/core/SkRefCnt.h"
|
|
14
12
|
#include "include/private/base/SkAPI.h"
|
|
15
13
|
|
|
16
14
|
#include <cstdint>
|
|
15
|
+
#include <optional>
|
|
17
16
|
|
|
18
|
-
class
|
|
19
|
-
public:
|
|
20
|
-
/*
|
|
21
|
-
* Parse the metadata specified in |data|.
|
|
22
|
-
*/
|
|
23
|
-
SkExifMetadata(const sk_sp<SkData> data);
|
|
17
|
+
class SkData;
|
|
24
18
|
|
|
25
|
-
|
|
26
|
-
* If the image encoded origin is specified, populate |out| and return true. Otherwise return
|
|
27
|
-
* false.
|
|
28
|
-
*/
|
|
29
|
-
bool getOrigin(SkEncodedOrigin* out) const {
|
|
30
|
-
if (fOriginPresent && out) *out = fOriginValue;
|
|
31
|
-
return fOriginPresent;
|
|
32
|
-
}
|
|
19
|
+
namespace SkExif {
|
|
33
20
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
21
|
+
// Tag values that are parsed by Parse and stored in Metadata.
|
|
22
|
+
static constexpr uint16_t kOriginTag = 0x112;
|
|
23
|
+
static constexpr uint16_t kResolutionUnitTag = 0x0128;
|
|
24
|
+
static constexpr uint16_t kXResolutionTag = 0x011a;
|
|
25
|
+
static constexpr uint16_t kYResolutionTag = 0x011b;
|
|
26
|
+
static constexpr uint16_t kPixelXDimensionTag = 0xa002;
|
|
27
|
+
static constexpr uint16_t kPixelYDimensionTag = 0xa003;
|
|
41
28
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*/
|
|
46
|
-
bool getResolutionUnit(uint16_t* out) const {
|
|
47
|
-
if (fResolutionUnitPresent && out) *out = fResolutionUnitValue;
|
|
48
|
-
return fResolutionUnitPresent;
|
|
49
|
-
}
|
|
50
|
-
bool getXResolution(float* out) const {
|
|
51
|
-
if (fXResolutionPresent && out) *out = fXResolutionValue;
|
|
52
|
-
return fXResolutionPresent;
|
|
53
|
-
}
|
|
54
|
-
bool getYResolution(float* out) const {
|
|
55
|
-
if (fYResolutionPresent && out) *out = fYResolutionValue;
|
|
56
|
-
return fYResolutionPresent;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/*
|
|
60
|
-
* If pixel dimension x or y is specified, populate |out| and return true. Otherwise return
|
|
61
|
-
* false.
|
|
62
|
-
*/
|
|
63
|
-
bool getPixelXDimension(uint32_t* out) const {
|
|
64
|
-
if (fPixelXDimensionPresent && out) *out = fPixelXDimensionValue;
|
|
65
|
-
return fPixelXDimensionPresent;
|
|
66
|
-
}
|
|
67
|
-
bool getPixelYDimension(uint32_t* out) const {
|
|
68
|
-
if (fPixelYDimensionPresent && out) *out = fPixelYDimensionValue;
|
|
69
|
-
return fPixelYDimensionPresent;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
private:
|
|
73
|
-
// Helper functions and constants for parsing the data.
|
|
74
|
-
void parseIfd(uint32_t ifdOffset, bool littleEndian, bool isRoot);
|
|
75
|
-
|
|
76
|
-
// The input data.
|
|
77
|
-
const sk_sp<SkData> fData;
|
|
78
|
-
|
|
79
|
-
// The origin property.
|
|
80
|
-
bool fOriginPresent = false;
|
|
81
|
-
SkEncodedOrigin fOriginValue = kTopLeft_SkEncodedOrigin;
|
|
29
|
+
struct Metadata {
|
|
30
|
+
// The image orientation.
|
|
31
|
+
std::optional<SkEncodedOrigin> fOrigin;
|
|
82
32
|
|
|
83
33
|
// The HDR headroom property.
|
|
84
|
-
|
|
85
|
-
float
|
|
34
|
+
// https://developer.apple.com/documentation/appkit/images_and_pdf/applying_apple_hdr_effect_to_your_photos
|
|
35
|
+
std::optional<float> fHdrHeadroom;
|
|
86
36
|
|
|
87
37
|
// Resolution.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
float fXResolutionValue = 0;
|
|
92
|
-
bool fYResolutionPresent = false;
|
|
93
|
-
float fYResolutionValue = 0;
|
|
38
|
+
std::optional<uint16_t> fResolutionUnit;
|
|
39
|
+
std::optional<float> fXResolution;
|
|
40
|
+
std::optional<float> fYResolution;
|
|
94
41
|
|
|
95
42
|
// Size in pixels.
|
|
96
|
-
|
|
97
|
-
uint32_t
|
|
98
|
-
bool fPixelYDimensionPresent = false;
|
|
99
|
-
uint32_t fPixelYDimensionValue = 0;
|
|
43
|
+
std::optional<uint32_t> fPixelXDimension;
|
|
44
|
+
std::optional<uint32_t> fPixelYDimension;
|
|
100
45
|
};
|
|
101
46
|
|
|
47
|
+
/*
|
|
48
|
+
* Parse the metadata specified in |data| and write them to |metadata|. Stop only at an
|
|
49
|
+
* unrecoverable error (allow truncated input).
|
|
50
|
+
*/
|
|
51
|
+
void SK_API Parse(Metadata& metadata, const SkData* data);
|
|
52
|
+
|
|
53
|
+
} // namespace SkExif
|
|
54
|
+
|
|
102
55
|
#endif
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkColor.h"
|
|
12
12
|
#include "include/core/SkColorSpace.h"
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
class SkData;
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* Gainmap rendering parameters. Suppose our display has HDR to SDR ratio of H and we wish to
|
|
@@ -72,29 +74,67 @@ struct SkGainmapInfo {
|
|
|
72
74
|
};
|
|
73
75
|
BaseImageType fBaseImageType = BaseImageType::kSDR;
|
|
74
76
|
|
|
77
|
+
/**
|
|
78
|
+
* The type of the gainmap image. If the type is kApple, then the gainmap image was originally
|
|
79
|
+
* encoded according to the specification at [0], and can be converted to the kDefault type by
|
|
80
|
+
* applying the transformation described at [1].
|
|
81
|
+
* [0] https://developer.apple.com/documentation/appkit/images_and_pdf/
|
|
82
|
+
* applying_apple_hdr_effect_to_your_photos
|
|
83
|
+
* [1] https://docs.google.com/document/d/1iUpYAThVV_FuDdeiO3t0vnlfoA1ryq0WfGS9FuydwKc
|
|
84
|
+
*/
|
|
85
|
+
enum class Type {
|
|
86
|
+
kDefault,
|
|
87
|
+
kApple,
|
|
88
|
+
};
|
|
89
|
+
Type fType = Type::kDefault;
|
|
90
|
+
|
|
75
91
|
/**
|
|
76
92
|
* If specified, color space to apply the gainmap in, otherwise the base image's color space
|
|
77
93
|
* is used. Only the color primaries are used, the transfer function is irrelevant.
|
|
78
94
|
*/
|
|
79
95
|
sk_sp<SkColorSpace> fGainmapMathColorSpace = nullptr;
|
|
80
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Return true if this can be encoded as an UltraHDR v1 image.
|
|
99
|
+
*/
|
|
100
|
+
bool isUltraHDRv1Compatible() const;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* If |data| contains an ISO 21496-1 version that is supported, return true. Otherwise return
|
|
104
|
+
* false.
|
|
105
|
+
*/
|
|
106
|
+
static bool ParseVersion(const SkData* data);
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* If |data| constains ISO 21496-1 metadata then parse that metadata then use it to populate
|
|
110
|
+
* |info| and return true, otherwise return false. If |data| indicates that that the base image
|
|
111
|
+
* color space primaries should be used for gainmap application then set
|
|
112
|
+
* |fGainmapMathColorSpace| to nullptr, otherwise set |fGainmapMathColorSpace| to sRGB (the
|
|
113
|
+
* default, to be overwritten by the image decoder).
|
|
114
|
+
*/
|
|
115
|
+
static bool Parse(const SkData* data, SkGainmapInfo& info);
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Serialize an ISO 21496-1 version 0 blob containing only the version structure.
|
|
119
|
+
*/
|
|
120
|
+
static sk_sp<SkData> SerializeVersion();
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Serialize an ISO 21496-1 version 0 blob containing this' gainmap parameters.
|
|
124
|
+
*/
|
|
125
|
+
sk_sp<SkData> serialize() const;
|
|
126
|
+
|
|
81
127
|
inline bool operator==(const SkGainmapInfo& other) const {
|
|
82
128
|
return fGainmapRatioMin == other.fGainmapRatioMin &&
|
|
83
129
|
fGainmapRatioMax == other.fGainmapRatioMax && fGainmapGamma == other.fGainmapGamma &&
|
|
84
130
|
fEpsilonSdr == other.fEpsilonSdr && fEpsilonHdr == other.fEpsilonHdr &&
|
|
85
131
|
fDisplayRatioSdr == other.fDisplayRatioSdr &&
|
|
86
132
|
fDisplayRatioHdr == other.fDisplayRatioHdr &&
|
|
87
|
-
fBaseImageType == other.fBaseImageType &&
|
|
133
|
+
fBaseImageType == other.fBaseImageType && fType == other.fType &&
|
|
88
134
|
SkColorSpace::Equals(fGainmapMathColorSpace.get(),
|
|
89
135
|
other.fGainmapMathColorSpace.get());
|
|
90
136
|
}
|
|
91
137
|
inline bool operator!=(const SkGainmapInfo& other) const { return !(*this == other); }
|
|
92
|
-
|
|
93
|
-
// TODO(ccameron): Remove these parameters once we are certain they are not used in Android.
|
|
94
|
-
enum class Type {
|
|
95
|
-
kDefault,
|
|
96
|
-
};
|
|
97
|
-
Type fType = Type::kDefault;
|
|
98
138
|
};
|
|
99
139
|
|
|
100
140
|
#endif
|
|
@@ -47,6 +47,11 @@ public:
|
|
|
47
47
|
*/
|
|
48
48
|
static std::unique_ptr<SkJpegMetadataDecoder> Make(std::vector<Segment> headerSegments);
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Create metadata for the specified encoded JPEG file. This may return nullptr.
|
|
52
|
+
*/
|
|
53
|
+
static std::unique_ptr<SkJpegMetadataDecoder> Make(sk_sp<SkData> data);
|
|
54
|
+
|
|
50
55
|
/**
|
|
51
56
|
* Return the Exif data attached to the image (if any) and nullptr otherwise. If |copyData| is
|
|
52
57
|
* false, then the returned SkData may directly reference the data provided when this object was
|
|
@@ -61,6 +66,13 @@ public:
|
|
|
61
66
|
*/
|
|
62
67
|
virtual sk_sp<SkData> getICCProfileData(bool copyData) const = 0;
|
|
63
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Return the ISO 21496-1 metadata, if any, and nullptr otherwise. If |copyData| is false,
|
|
71
|
+
* then the returned SkData may directly reference the data provided when this object was
|
|
72
|
+
* created.
|
|
73
|
+
*/
|
|
74
|
+
virtual sk_sp<SkData> getISOGainmapMetadata(bool copyData) const = 0;
|
|
75
|
+
|
|
64
76
|
/**
|
|
65
77
|
* Return true if there is a possibility that this image contains a gainmap image.
|
|
66
78
|
*/
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "include/core/SkTypes.h"
|
|
16
16
|
#include "include/private/SkIDChangeListener.h"
|
|
17
17
|
#include "include/private/base/SkDebug.h"
|
|
18
|
+
#include "include/private/base/SkSpan_impl.h"
|
|
18
19
|
#include "include/private/base/SkTArray.h"
|
|
19
20
|
#include "include/private/base/SkTo.h"
|
|
20
21
|
|
|
@@ -22,7 +23,6 @@
|
|
|
22
23
|
#include <cstddef>
|
|
23
24
|
#include <cstdint>
|
|
24
25
|
#include <tuple>
|
|
25
|
-
#include <utility>
|
|
26
26
|
|
|
27
27
|
class SkMatrix;
|
|
28
28
|
class SkRRect;
|
|
@@ -59,18 +59,23 @@ public:
|
|
|
59
59
|
using VerbsArray = skia_private::STArray<4, uint8_t>;
|
|
60
60
|
using ConicWeightsArray = skia_private::STArray<2, SkScalar>;
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
,
|
|
66
|
-
|
|
62
|
+
enum class PathType : uint8_t {
|
|
63
|
+
kGeneral,
|
|
64
|
+
kOval,
|
|
65
|
+
kRRect,
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
SkPathRef(SkSpan<const SkPoint> points, SkSpan<const uint8_t> verbs,
|
|
69
|
+
SkSpan<const SkScalar> weights, unsigned segmentMask)
|
|
70
|
+
: fPoints(points)
|
|
71
|
+
, fVerbs(verbs)
|
|
72
|
+
, fConicWeights(weights)
|
|
67
73
|
{
|
|
68
74
|
fBoundsIsDirty = true; // this also invalidates fIsFinite
|
|
69
75
|
fGenerationID = 0; // recompute
|
|
70
76
|
fSegmentMask = segmentMask;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// The next two values don't matter unless fIsOval or fIsRRect are true.
|
|
77
|
+
fType = PathType::kGeneral;
|
|
78
|
+
// The next two values don't matter unless fType is kOval or kRRect
|
|
74
79
|
fRRectOrOvalIsCCW = false;
|
|
75
80
|
fRRectOrOvalStartIdx = 0xAC;
|
|
76
81
|
SkDEBUGCODE(fEditorsAttached.store(0);)
|
|
@@ -83,7 +88,8 @@ public:
|
|
|
83
88
|
public:
|
|
84
89
|
Editor(sk_sp<SkPathRef>* pathRef,
|
|
85
90
|
int incReserveVerbs = 0,
|
|
86
|
-
int incReservePoints = 0
|
|
91
|
+
int incReservePoints = 0,
|
|
92
|
+
int incReserveConics = 0);
|
|
87
93
|
|
|
88
94
|
~Editor() { SkDEBUGCODE(fPathRef->fEditorsAttached--;) }
|
|
89
95
|
|
|
@@ -146,12 +152,12 @@ public:
|
|
|
146
152
|
*/
|
|
147
153
|
SkPathRef* pathRef() { return fPathRef; }
|
|
148
154
|
|
|
149
|
-
void setIsOval(bool
|
|
150
|
-
fPathRef->setIsOval(
|
|
155
|
+
void setIsOval(bool isCCW, unsigned start) {
|
|
156
|
+
fPathRef->setIsOval(isCCW, start);
|
|
151
157
|
}
|
|
152
158
|
|
|
153
|
-
void setIsRRect(bool
|
|
154
|
-
fPathRef->setIsRRect(
|
|
159
|
+
void setIsRRect(bool isCCW, unsigned start) {
|
|
160
|
+
fPathRef->setIsRRect(isCCW, start);
|
|
155
161
|
}
|
|
156
162
|
|
|
157
163
|
void setBounds(const SkRect& rect) { fPathRef->setBounds(rect); }
|
|
@@ -226,7 +232,7 @@ public:
|
|
|
226
232
|
* fact ovals can report false.
|
|
227
233
|
*/
|
|
228
234
|
bool isOval(SkRect* rect, bool* isCCW, unsigned* start) const {
|
|
229
|
-
if (
|
|
235
|
+
if (fType == PathType::kOval) {
|
|
230
236
|
if (rect) {
|
|
231
237
|
*rect = this->getBounds();
|
|
232
238
|
}
|
|
@@ -238,7 +244,7 @@ public:
|
|
|
238
244
|
}
|
|
239
245
|
}
|
|
240
246
|
|
|
241
|
-
return
|
|
247
|
+
return fType == PathType::kOval;
|
|
242
248
|
}
|
|
243
249
|
|
|
244
250
|
bool isRRect(SkRRect* rrect, bool* isCCW, unsigned* start) const;
|
|
@@ -351,13 +357,12 @@ private:
|
|
|
351
357
|
kSegmentMask_SerializationShift = 0 // requires 4 bits (deprecated)
|
|
352
358
|
};
|
|
353
359
|
|
|
354
|
-
SkPathRef(int numVerbs = 0, int numPoints = 0) {
|
|
360
|
+
SkPathRef(int numVerbs = 0, int numPoints = 0, int numConics = 0) {
|
|
355
361
|
fBoundsIsDirty = true; // this also invalidates fIsFinite
|
|
356
362
|
fGenerationID = kEmptyGenID;
|
|
357
363
|
fSegmentMask = 0;
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
// The next two values don't matter unless fIsOval or fIsRRect are true.
|
|
364
|
+
fType = PathType::kGeneral;
|
|
365
|
+
// The next two values don't matter unless fType is kOval or kRRect
|
|
361
366
|
fRRectOrOvalIsCCW = false;
|
|
362
367
|
fRRectOrOvalStartIdx = 0xAC;
|
|
363
368
|
if (numPoints > 0) {
|
|
@@ -366,11 +371,14 @@ private:
|
|
|
366
371
|
if (numVerbs > 0) {
|
|
367
372
|
fVerbs.reserve_exact(numVerbs);
|
|
368
373
|
}
|
|
374
|
+
if (numConics > 0) {
|
|
375
|
+
fConicWeights.reserve_exact(numConics);
|
|
376
|
+
}
|
|
369
377
|
SkDEBUGCODE(fEditorsAttached.store(0);)
|
|
370
378
|
SkDEBUGCODE(this->validate();)
|
|
371
379
|
}
|
|
372
380
|
|
|
373
|
-
void copy(const SkPathRef& ref, int additionalReserveVerbs, int additionalReservePoints);
|
|
381
|
+
void copy(const SkPathRef& ref, int additionalReserveVerbs, int additionalReservePoints, int additionalReserveConics);
|
|
374
382
|
|
|
375
383
|
// Return true if the computed bounds are finite.
|
|
376
384
|
static bool ComputePtBounds(SkRect* bounds, const SkPathRef& ref) {
|
|
@@ -396,14 +404,19 @@ private:
|
|
|
396
404
|
}
|
|
397
405
|
|
|
398
406
|
/** Makes additional room but does not change the counts or change the genID */
|
|
399
|
-
void incReserve(int additionalVerbs, int additionalPoints) {
|
|
407
|
+
void incReserve(int additionalVerbs, int additionalPoints, int additionalConics) {
|
|
400
408
|
SkDEBUGCODE(this->validate();)
|
|
401
409
|
// Use reserve() so that if there is not enough space, the array will grow with some
|
|
402
410
|
// additional space. This ensures repeated calls to grow won't always allocate.
|
|
403
|
-
if (additionalPoints > 0)
|
|
411
|
+
if (additionalPoints > 0) {
|
|
404
412
|
fPoints.reserve(fPoints.size() + additionalPoints);
|
|
405
|
-
|
|
413
|
+
}
|
|
414
|
+
if (additionalVerbs > 0) {
|
|
406
415
|
fVerbs.reserve(fVerbs.size() + additionalVerbs);
|
|
416
|
+
}
|
|
417
|
+
if (additionalConics > 0) {
|
|
418
|
+
fConicWeights.reserve(fConicWeights.size() + additionalConics);
|
|
419
|
+
}
|
|
407
420
|
SkDEBUGCODE(this->validate();)
|
|
408
421
|
}
|
|
409
422
|
|
|
@@ -418,14 +431,14 @@ private:
|
|
|
418
431
|
fGenerationID = 0;
|
|
419
432
|
|
|
420
433
|
fSegmentMask = 0;
|
|
421
|
-
|
|
422
|
-
fIsRRect = false;
|
|
434
|
+
fType = PathType::kGeneral;
|
|
423
435
|
}
|
|
424
436
|
|
|
425
437
|
/** Resets the path ref with verbCount verbs and pointCount points, all uninitialized. Also
|
|
426
438
|
* allocates space for reserveVerb additional verbs and reservePoints additional points.*/
|
|
427
439
|
void resetToSize(int verbCount, int pointCount, int conicCount,
|
|
428
|
-
int reserveVerbs = 0, int reservePoints = 0
|
|
440
|
+
int reserveVerbs = 0, int reservePoints = 0,
|
|
441
|
+
int reserveConics = 0) {
|
|
429
442
|
this->commonReset();
|
|
430
443
|
// Use reserve_exact() so the arrays are sized to exactly fit the data.
|
|
431
444
|
fPoints.reserve_exact(pointCount + reservePoints);
|
|
@@ -434,6 +447,7 @@ private:
|
|
|
434
447
|
fVerbs.reserve_exact(verbCount + reserveVerbs);
|
|
435
448
|
fVerbs.resize_back(verbCount);
|
|
436
449
|
|
|
450
|
+
fConicWeights.reserve_exact(conicCount + reserveConics);
|
|
437
451
|
fConicWeights.resize_back(conicCount);
|
|
438
452
|
SkDEBUGCODE(this->validate();)
|
|
439
453
|
}
|
|
@@ -471,14 +485,14 @@ private:
|
|
|
471
485
|
*/
|
|
472
486
|
friend SkPathRef* sk_create_empty_pathref();
|
|
473
487
|
|
|
474
|
-
void setIsOval(bool
|
|
475
|
-
|
|
488
|
+
void setIsOval(bool isCCW, unsigned start) {
|
|
489
|
+
fType = PathType::kOval;
|
|
476
490
|
fRRectOrOvalIsCCW = isCCW;
|
|
477
491
|
fRRectOrOvalStartIdx = SkToU8(start);
|
|
478
492
|
}
|
|
479
493
|
|
|
480
|
-
void setIsRRect(bool
|
|
481
|
-
|
|
494
|
+
void setIsRRect(bool isCCW, unsigned start) {
|
|
495
|
+
fType = PathType::kRRect;
|
|
482
496
|
fRRectOrOvalIsCCW = isCCW;
|
|
483
497
|
fRRectOrOvalStartIdx = SkToU8(start);
|
|
484
498
|
}
|
|
@@ -486,8 +500,7 @@ private:
|
|
|
486
500
|
// called only by the editor. Note that this is not a const function.
|
|
487
501
|
SkPoint* getWritablePoints() {
|
|
488
502
|
SkDEBUGCODE(this->validate();)
|
|
489
|
-
|
|
490
|
-
fIsRRect = false;
|
|
503
|
+
fType = PathType::kGeneral;
|
|
491
504
|
return fPoints.begin();
|
|
492
505
|
}
|
|
493
506
|
|
|
@@ -498,29 +511,24 @@ private:
|
|
|
498
511
|
|
|
499
512
|
void callGenIDChangeListeners();
|
|
500
513
|
|
|
514
|
+
mutable SkRect fBounds;
|
|
515
|
+
|
|
501
516
|
enum {
|
|
502
|
-
|
|
517
|
+
kEmptyGenID = 1, // GenID reserved for path ref with zero points and zero verbs.
|
|
503
518
|
};
|
|
504
|
-
|
|
505
|
-
|
|
519
|
+
mutable uint32_t fGenerationID;
|
|
520
|
+
SkIDChangeListener::List fGenIDChangeListeners;
|
|
506
521
|
|
|
507
522
|
PointsArray fPoints;
|
|
508
523
|
VerbsArray fVerbs;
|
|
509
524
|
ConicWeightsArray fConicWeights;
|
|
510
525
|
|
|
511
|
-
enum {
|
|
512
|
-
kEmptyGenID = 1, // GenID reserved for path ref with zero points and zero verbs.
|
|
513
|
-
};
|
|
514
|
-
mutable uint32_t fGenerationID;
|
|
515
526
|
SkDEBUGCODE(std::atomic<int> fEditorsAttached;) // assert only one editor in use at any time.
|
|
516
527
|
|
|
517
|
-
SkIDChangeListener::List fGenIDChangeListeners;
|
|
518
|
-
|
|
519
528
|
mutable uint8_t fBoundsIsDirty;
|
|
520
529
|
mutable bool fIsFinite; // only meaningful if bounds are valid
|
|
521
530
|
|
|
522
|
-
|
|
523
|
-
bool fIsRRect;
|
|
531
|
+
PathType fType;
|
|
524
532
|
// Both the circle and rrect special cases have a notion of direction and starting point
|
|
525
533
|
// The next two variables store that information for either.
|
|
526
534
|
bool fRRectOrOvalIsCCW;
|
|
@@ -35,10 +35,19 @@ public:
|
|
|
35
35
|
static std::unique_ptr<SkXmp> Make(sk_sp<SkData> xmpStandard, sk_sp<SkData> xmpExtended);
|
|
36
36
|
|
|
37
37
|
// Extract HDRGM gainmap parameters.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
// TODO(b/338342146): Remove this once all callers are removed.
|
|
39
|
+
bool getGainmapInfoHDRGM(SkGainmapInfo* info) const { return getGainmapInfoAdobe(info); }
|
|
40
|
+
|
|
41
|
+
// Extract gainmap parameters from http://ns.adobe.com/hdr-gain-map/1.0/.
|
|
42
|
+
virtual bool getGainmapInfoAdobe(SkGainmapInfo* info) const = 0;
|
|
43
|
+
|
|
44
|
+
// If the image specifies http://ns.apple.com/pixeldatainfo/1.0/ AuxiliaryImageType of
|
|
45
|
+
// urn:com:apple:photo:2020:aux:hdrgainmap, and includes a http://ns.apple.com/HDRGainMap/1.0/
|
|
46
|
+
// HDRGainMapVersion, then populate |info| with gainmap parameters that will approximate the
|
|
47
|
+
// math specified at [0] and return true.
|
|
48
|
+
// [0] https://developer.apple.com/documentation/appkit/images_and_pdf/
|
|
49
|
+
// applying_apple_hdr_effect_to_your_photos
|
|
50
|
+
virtual bool getGainmapInfoApple(float exifHdrHeadroom, SkGainmapInfo* info) const = 0;
|
|
42
51
|
|
|
43
52
|
// If this includes GContainer metadata and the GContainer contains an item with semantic
|
|
44
53
|
// GainMap and Mime of image/jpeg, then return true, and populate |offset| and |size| with
|