@shopify/react-native-skia 1.3.13 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|