@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
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include <stack>
|
|
7
7
|
#include <string>
|
|
8
8
|
#include <tuple>
|
|
9
|
+
#include <vector>
|
|
9
10
|
#include "modules/skparagraph/include/FontCollection.h"
|
|
10
11
|
#include "modules/skparagraph/include/Paragraph.h"
|
|
11
12
|
#include "modules/skparagraph/include/ParagraphStyle.h"
|
|
@@ -60,6 +61,7 @@ public:
|
|
|
60
61
|
virtual SkSpan<char> getText() = 0;
|
|
61
62
|
virtual const ParagraphStyle& getParagraphStyle() const = 0;
|
|
62
63
|
|
|
64
|
+
#if !defined(SK_DISABLE_LEGACY_CLIENT_UNICODE) && defined(SK_UNICODE_CLIENT_IMPLEMENTATION)
|
|
63
65
|
// Mainly, support for "Client" unicode
|
|
64
66
|
virtual void setWordsUtf8(std::vector<SkUnicode::Position> wordsUtf8) = 0;
|
|
65
67
|
virtual void setWordsUtf16(std::vector<SkUnicode::Position> wordsUtf16) = 0;
|
|
@@ -70,15 +72,27 @@ public:
|
|
|
70
72
|
virtual void setLineBreaksUtf8(std::vector<SkUnicode::LineBreakBefore> lineBreaksUtf8) = 0;
|
|
71
73
|
virtual void setLineBreaksUtf16(std::vector<SkUnicode::LineBreakBefore> lineBreaksUtf16) = 0;
|
|
72
74
|
|
|
73
|
-
virtual
|
|
75
|
+
virtual std::tuple<std::vector<SkUnicode::Position>,
|
|
76
|
+
std::vector<SkUnicode::Position>,
|
|
77
|
+
std::vector<SkUnicode::LineBreakBefore>>
|
|
78
|
+
getClientICUData() const = 0;
|
|
79
|
+
|
|
80
|
+
virtual void SetUnicode(sk_sp<SkUnicode> unicode) = 0;
|
|
81
|
+
#endif
|
|
74
82
|
|
|
75
83
|
// Resets this builder to its initial state, discarding any text, styles, placeholders that have
|
|
76
84
|
// been added, but keeping the initial ParagraphStyle.
|
|
77
85
|
virtual void Reset() = 0;
|
|
78
86
|
|
|
79
87
|
// Just until we fix all the google3 code
|
|
88
|
+
static std::unique_ptr<ParagraphBuilder> make(const ParagraphStyle& style,
|
|
89
|
+
sk_sp<FontCollection> fontCollection,
|
|
90
|
+
sk_sp<SkUnicode> unicode);
|
|
91
|
+
|
|
92
|
+
#if !defined(SK_DISABLE_LEGACY_PARAGRAPH_UNICODE)
|
|
80
93
|
static std::unique_ptr<ParagraphBuilder> make(const ParagraphStyle& style,
|
|
81
94
|
sk_sp<FontCollection> fontCollection);
|
|
95
|
+
#endif
|
|
82
96
|
};
|
|
83
97
|
} // namespace textlayout
|
|
84
98
|
} // namespace skia
|
|
@@ -22,14 +22,14 @@ namespace skia {
|
|
|
22
22
|
namespace textlayout {
|
|
23
23
|
|
|
24
24
|
static inline bool nearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZero) {
|
|
25
|
-
if (
|
|
25
|
+
if (SkIsFinite(x)) {
|
|
26
26
|
return SkScalarNearlyZero(x, tolerance);
|
|
27
27
|
}
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
static inline bool nearlyEqual(SkScalar x, SkScalar y, SkScalar tolerance = SK_ScalarNearlyZero) {
|
|
32
|
-
if (
|
|
32
|
+
if (SkIsFinite(x, y)) {
|
|
33
33
|
return SkScalarNearlyEqual(x, y, tolerance);
|
|
34
34
|
}
|
|
35
35
|
// Inf == Inf, anything else is false
|
|
@@ -46,7 +46,7 @@ public:
|
|
|
46
46
|
|
|
47
47
|
sk_sp<SkFontStyleSet> onMatchFamily(const char familyName[]) const override;
|
|
48
48
|
|
|
49
|
-
sk_sp<SkFontStyleSet> onCreateStyleSet(int) const override
|
|
49
|
+
sk_sp<SkFontStyleSet> onCreateStyleSet(int) const override;
|
|
50
50
|
sk_sp<SkTypeface> onMatchFamilyStyle(const char familyName[], const SkFontStyle& pattern) const override;
|
|
51
51
|
sk_sp<SkTypeface> onMatchFamilyStyleCharacter(const char[], const SkFontStyle&,
|
|
52
52
|
const char*[], int,
|
|
@@ -66,9 +66,7 @@ public:
|
|
|
66
66
|
return nullptr;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
sk_sp<SkTypeface> onLegacyMakeTypeface(const char[], SkFontStyle) const override
|
|
70
|
-
return nullptr;
|
|
71
|
-
}
|
|
69
|
+
sk_sp<SkTypeface> onLegacyMakeTypeface(const char[], SkFontStyle) const override;
|
|
72
70
|
|
|
73
71
|
private:
|
|
74
72
|
skia_private::THashMap<SkString, sk_sp<TypefaceFontStyleSet>> fRegisteredFamilies;
|
|
@@ -260,7 +260,7 @@ private:
|
|
|
260
260
|
using INHERITED = ResourceProviderProxyBase;
|
|
261
261
|
};
|
|
262
262
|
|
|
263
|
-
class DataURIResourceProviderProxy final : public ResourceProviderProxyBase {
|
|
263
|
+
class SK_API DataURIResourceProviderProxy final : public ResourceProviderProxyBase {
|
|
264
264
|
public:
|
|
265
265
|
// If font data is supplied via base64 encoding, this needs a provided SkFontMgr to process
|
|
266
266
|
// that font data into an SkTypeface. To decode images, clients must call SkCodecs::Register()
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2016 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 SkShaper_DEFINED
|
|
9
|
+
#define SkShaper_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkFont.h"
|
|
12
|
+
#include "include/core/SkFourByteTag.h"
|
|
13
|
+
#include "include/core/SkPoint.h"
|
|
14
|
+
#include "include/core/SkRefCnt.h"
|
|
15
|
+
#include "include/core/SkScalar.h"
|
|
16
|
+
#include "include/core/SkString.h"
|
|
17
|
+
#include "include/core/SkTextBlob.h"
|
|
18
|
+
#include "include/core/SkTypes.h"
|
|
19
|
+
|
|
20
|
+
#include <cstddef>
|
|
21
|
+
#include <cstdint>
|
|
22
|
+
#include <memory>
|
|
23
|
+
#include <type_traits>
|
|
24
|
+
|
|
25
|
+
class SkFontStyle;
|
|
26
|
+
|
|
27
|
+
#if defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
28
|
+
class SkFontMgr;
|
|
29
|
+
#else
|
|
30
|
+
#include "include/core/SkFontMgr.h"
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
#if !defined(SKSHAPER_IMPLEMENTATION)
|
|
34
|
+
#define SKSHAPER_IMPLEMENTATION 0
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
#if !defined(SKSHAPER_API)
|
|
38
|
+
#if defined(SKSHAPER_DLL)
|
|
39
|
+
#if defined(_MSC_VER)
|
|
40
|
+
#if SKSHAPER_IMPLEMENTATION
|
|
41
|
+
#define SKSHAPER_API __declspec(dllexport)
|
|
42
|
+
#else
|
|
43
|
+
#define SKSHAPER_API __declspec(dllimport)
|
|
44
|
+
#endif
|
|
45
|
+
#else
|
|
46
|
+
#define SKSHAPER_API __attribute__((visibility("default")))
|
|
47
|
+
#endif
|
|
48
|
+
#else
|
|
49
|
+
#define SKSHAPER_API
|
|
50
|
+
#endif
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
class SKSHAPER_API SkShaper {
|
|
54
|
+
public:
|
|
55
|
+
#if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
56
|
+
static std::unique_ptr<SkShaper> MakePrimitive();
|
|
57
|
+
|
|
58
|
+
#if defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
|
|
59
|
+
static std::unique_ptr<SkShaper> MakeShaperDrivenWrapper(sk_sp<SkFontMgr> fallback);
|
|
60
|
+
static std::unique_ptr<SkShaper> MakeShapeThenWrap(sk_sp<SkFontMgr> fallback);
|
|
61
|
+
static void PurgeHarfBuzzCache();
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
#if defined(SK_SHAPER_CORETEXT_AVAILABLE)
|
|
65
|
+
static std::unique_ptr<SkShaper> MakeCoreText();
|
|
66
|
+
#endif
|
|
67
|
+
|
|
68
|
+
static std::unique_ptr<SkShaper> Make(sk_sp<SkFontMgr> fallback = nullptr);
|
|
69
|
+
static void PurgeCaches();
|
|
70
|
+
#endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
71
|
+
|
|
72
|
+
SkShaper();
|
|
73
|
+
virtual ~SkShaper();
|
|
74
|
+
|
|
75
|
+
class RunIterator {
|
|
76
|
+
public:
|
|
77
|
+
virtual ~RunIterator() = default;
|
|
78
|
+
/** Set state to that of current run and move iterator to end of that run. */
|
|
79
|
+
virtual void consume() = 0;
|
|
80
|
+
/** Offset to one past the last (utf8) element in the current run. */
|
|
81
|
+
virtual size_t endOfCurrentRun() const = 0;
|
|
82
|
+
/** Return true if consume should no longer be called. */
|
|
83
|
+
virtual bool atEnd() const = 0;
|
|
84
|
+
};
|
|
85
|
+
class FontRunIterator : public RunIterator {
|
|
86
|
+
public:
|
|
87
|
+
virtual const SkFont& currentFont() const = 0;
|
|
88
|
+
};
|
|
89
|
+
class BiDiRunIterator : public RunIterator {
|
|
90
|
+
public:
|
|
91
|
+
/** The unicode bidi embedding level (even ltr, odd rtl) */
|
|
92
|
+
virtual uint8_t currentLevel() const = 0;
|
|
93
|
+
};
|
|
94
|
+
class ScriptRunIterator : public RunIterator {
|
|
95
|
+
public:
|
|
96
|
+
/** Should be iso15924 codes. */
|
|
97
|
+
virtual SkFourByteTag currentScript() const = 0;
|
|
98
|
+
};
|
|
99
|
+
class LanguageRunIterator : public RunIterator {
|
|
100
|
+
public:
|
|
101
|
+
/** Should be BCP-47, c locale names may also work. */
|
|
102
|
+
virtual const char* currentLanguage() const = 0;
|
|
103
|
+
};
|
|
104
|
+
struct Feature {
|
|
105
|
+
SkFourByteTag tag;
|
|
106
|
+
uint32_t value;
|
|
107
|
+
size_t start; // Offset to the start (utf8) element of the run.
|
|
108
|
+
size_t end; // Offset to one past the last (utf8) element of the run.
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
private:
|
|
112
|
+
template <typename RunIteratorSubclass>
|
|
113
|
+
class TrivialRunIterator : public RunIteratorSubclass {
|
|
114
|
+
public:
|
|
115
|
+
static_assert(std::is_base_of<RunIterator, RunIteratorSubclass>::value, "");
|
|
116
|
+
TrivialRunIterator(size_t utf8Bytes) : fEnd(utf8Bytes), fAtEnd(fEnd == 0) {}
|
|
117
|
+
void consume() override { SkASSERT(!fAtEnd); fAtEnd = true; }
|
|
118
|
+
size_t endOfCurrentRun() const override { return fAtEnd ? fEnd : 0; }
|
|
119
|
+
bool atEnd() const override { return fAtEnd; }
|
|
120
|
+
private:
|
|
121
|
+
size_t fEnd;
|
|
122
|
+
bool fAtEnd;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
public:
|
|
126
|
+
static std::unique_ptr<FontRunIterator>
|
|
127
|
+
MakeFontMgrRunIterator(const char* utf8, size_t utf8Bytes,
|
|
128
|
+
const SkFont& font, sk_sp<SkFontMgr> fallback);
|
|
129
|
+
static std::unique_ptr<SkShaper::FontRunIterator>
|
|
130
|
+
MakeFontMgrRunIterator(const char* utf8, size_t utf8Bytes,
|
|
131
|
+
const SkFont& font, sk_sp<SkFontMgr> fallback,
|
|
132
|
+
const char* requestName, SkFontStyle requestStyle,
|
|
133
|
+
const SkShaper::LanguageRunIterator*);
|
|
134
|
+
class TrivialFontRunIterator : public TrivialRunIterator<FontRunIterator> {
|
|
135
|
+
public:
|
|
136
|
+
TrivialFontRunIterator(const SkFont& font, size_t utf8Bytes)
|
|
137
|
+
: TrivialRunIterator(utf8Bytes), fFont(font) {}
|
|
138
|
+
const SkFont& currentFont() const override { return fFont; }
|
|
139
|
+
private:
|
|
140
|
+
SkFont fFont;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
#if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
144
|
+
static std::unique_ptr<BiDiRunIterator>
|
|
145
|
+
MakeBiDiRunIterator(const char* utf8, size_t utf8Bytes, uint8_t bidiLevel);
|
|
146
|
+
#if defined(SK_SHAPER_UNICODE_AVAILABLE)
|
|
147
|
+
static std::unique_ptr<BiDiRunIterator>
|
|
148
|
+
MakeIcuBiDiRunIterator(const char* utf8, size_t utf8Bytes, uint8_t bidiLevel);
|
|
149
|
+
#endif // defined(SK_SHAPER_UNICODE_AVAILABLE)
|
|
150
|
+
#endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
151
|
+
|
|
152
|
+
class TrivialBiDiRunIterator : public TrivialRunIterator<BiDiRunIterator> {
|
|
153
|
+
public:
|
|
154
|
+
TrivialBiDiRunIterator(uint8_t bidiLevel, size_t utf8Bytes)
|
|
155
|
+
: TrivialRunIterator(utf8Bytes), fBidiLevel(bidiLevel) {}
|
|
156
|
+
uint8_t currentLevel() const override { return fBidiLevel; }
|
|
157
|
+
private:
|
|
158
|
+
uint8_t fBidiLevel;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
#if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
162
|
+
static std::unique_ptr<ScriptRunIterator>
|
|
163
|
+
MakeScriptRunIterator(const char* utf8, size_t utf8Bytes, SkFourByteTag script);
|
|
164
|
+
#if defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
|
|
165
|
+
static std::unique_ptr<ScriptRunIterator>
|
|
166
|
+
MakeSkUnicodeHbScriptRunIterator(const char* utf8, size_t utf8Bytes);
|
|
167
|
+
static std::unique_ptr<ScriptRunIterator>
|
|
168
|
+
MakeSkUnicodeHbScriptRunIterator(const char* utf8, size_t utf8Bytes, SkFourByteTag script);
|
|
169
|
+
// Still used in some cases
|
|
170
|
+
static std::unique_ptr<ScriptRunIterator>
|
|
171
|
+
MakeHbIcuScriptRunIterator(const char* utf8, size_t utf8Bytes);
|
|
172
|
+
#endif // defined(SK_SHAPER_HARFBUZZ_AVAILABLE)
|
|
173
|
+
#endif // !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
174
|
+
|
|
175
|
+
class TrivialScriptRunIterator : public TrivialRunIterator<ScriptRunIterator> {
|
|
176
|
+
public:
|
|
177
|
+
TrivialScriptRunIterator(SkFourByteTag script, size_t utf8Bytes)
|
|
178
|
+
: TrivialRunIterator(utf8Bytes), fScript(script) {}
|
|
179
|
+
SkFourByteTag currentScript() const override { return fScript; }
|
|
180
|
+
private:
|
|
181
|
+
SkFourByteTag fScript;
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
static std::unique_ptr<LanguageRunIterator>
|
|
185
|
+
MakeStdLanguageRunIterator(const char* utf8, size_t utf8Bytes);
|
|
186
|
+
class TrivialLanguageRunIterator : public TrivialRunIterator<LanguageRunIterator> {
|
|
187
|
+
public:
|
|
188
|
+
TrivialLanguageRunIterator(const char* language, size_t utf8Bytes)
|
|
189
|
+
: TrivialRunIterator(utf8Bytes), fLanguage(language) {}
|
|
190
|
+
const char* currentLanguage() const override { return fLanguage.c_str(); }
|
|
191
|
+
private:
|
|
192
|
+
SkString fLanguage;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
class RunHandler {
|
|
196
|
+
public:
|
|
197
|
+
virtual ~RunHandler() = default;
|
|
198
|
+
|
|
199
|
+
struct Range {
|
|
200
|
+
constexpr Range() : fBegin(0), fSize(0) {}
|
|
201
|
+
constexpr Range(size_t begin, size_t size) : fBegin(begin), fSize(size) {}
|
|
202
|
+
size_t fBegin;
|
|
203
|
+
size_t fSize;
|
|
204
|
+
constexpr size_t begin() const { return fBegin; }
|
|
205
|
+
constexpr size_t end() const { return begin() + size(); }
|
|
206
|
+
constexpr size_t size() const { return fSize; }
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
struct RunInfo {
|
|
210
|
+
const SkFont& fFont;
|
|
211
|
+
uint8_t fBidiLevel;
|
|
212
|
+
SkVector fAdvance;
|
|
213
|
+
size_t glyphCount;
|
|
214
|
+
Range utf8Range;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
struct Buffer {
|
|
218
|
+
SkGlyphID* glyphs; // required
|
|
219
|
+
SkPoint* positions; // required, if (!offsets) put glyphs[i] at positions[i]
|
|
220
|
+
// if ( offsets) positions[i+1]-positions[i] are advances
|
|
221
|
+
SkPoint* offsets; // optional, if ( offsets) put glyphs[i] at positions[i]+offsets[i]
|
|
222
|
+
uint32_t* clusters; // optional, utf8+clusters[i] starts run which produced glyphs[i]
|
|
223
|
+
SkPoint point; // offset to add to all positions
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
/** Called when beginning a line. */
|
|
227
|
+
virtual void beginLine() = 0;
|
|
228
|
+
|
|
229
|
+
/** Called once for each run in a line. Can compute baselines and offsets. */
|
|
230
|
+
virtual void runInfo(const RunInfo&) = 0;
|
|
231
|
+
|
|
232
|
+
/** Called after all runInfo calls for a line. */
|
|
233
|
+
virtual void commitRunInfo() = 0;
|
|
234
|
+
|
|
235
|
+
/** Called for each run in a line after commitRunInfo. The buffer will be filled out. */
|
|
236
|
+
virtual Buffer runBuffer(const RunInfo&) = 0;
|
|
237
|
+
|
|
238
|
+
/** Called after each runBuffer is filled out. */
|
|
239
|
+
virtual void commitRunBuffer(const RunInfo&) = 0;
|
|
240
|
+
|
|
241
|
+
/** Called when ending a line. */
|
|
242
|
+
virtual void commitLine() = 0;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
#if !defined(SK_DISABLE_LEGACY_SKSHAPER_FUNCTIONS)
|
|
246
|
+
virtual void shape(const char* utf8, size_t utf8Bytes,
|
|
247
|
+
const SkFont& srcFont,
|
|
248
|
+
bool leftToRight,
|
|
249
|
+
SkScalar width,
|
|
250
|
+
RunHandler*) const = 0;
|
|
251
|
+
|
|
252
|
+
virtual void shape(const char* utf8, size_t utf8Bytes,
|
|
253
|
+
FontRunIterator&,
|
|
254
|
+
BiDiRunIterator&,
|
|
255
|
+
ScriptRunIterator&,
|
|
256
|
+
LanguageRunIterator&,
|
|
257
|
+
SkScalar width,
|
|
258
|
+
RunHandler*) const = 0;
|
|
259
|
+
#endif
|
|
260
|
+
virtual void shape(const char* utf8,
|
|
261
|
+
size_t utf8Bytes,
|
|
262
|
+
FontRunIterator&,
|
|
263
|
+
BiDiRunIterator&,
|
|
264
|
+
ScriptRunIterator&,
|
|
265
|
+
LanguageRunIterator&,
|
|
266
|
+
const Feature* features,
|
|
267
|
+
size_t featuresSize,
|
|
268
|
+
SkScalar width,
|
|
269
|
+
RunHandler*) const = 0;
|
|
270
|
+
|
|
271
|
+
private:
|
|
272
|
+
SkShaper(const SkShaper&) = delete;
|
|
273
|
+
SkShaper& operator=(const SkShaper&) = delete;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Helper for shaping text directly into a SkTextBlob.
|
|
278
|
+
*/
|
|
279
|
+
class SKSHAPER_API SkTextBlobBuilderRunHandler final : public SkShaper::RunHandler {
|
|
280
|
+
public:
|
|
281
|
+
SkTextBlobBuilderRunHandler(const char* utf8Text, SkPoint offset)
|
|
282
|
+
: fUtf8Text(utf8Text)
|
|
283
|
+
, fOffset(offset) {}
|
|
284
|
+
sk_sp<SkTextBlob> makeBlob();
|
|
285
|
+
SkPoint endPoint() { return fOffset; }
|
|
286
|
+
|
|
287
|
+
void beginLine() override;
|
|
288
|
+
void runInfo(const RunInfo&) override;
|
|
289
|
+
void commitRunInfo() override;
|
|
290
|
+
Buffer runBuffer(const RunInfo&) override;
|
|
291
|
+
void commitRunBuffer(const RunInfo&) override;
|
|
292
|
+
void commitLine() override;
|
|
293
|
+
|
|
294
|
+
private:
|
|
295
|
+
SkTextBlobBuilder fBuilder;
|
|
296
|
+
char const * const fUtf8Text;
|
|
297
|
+
uint32_t* fClusters;
|
|
298
|
+
int fClusterOffset;
|
|
299
|
+
int fGlyphCount;
|
|
300
|
+
SkScalar fMaxRunAscent;
|
|
301
|
+
SkScalar fMaxRunDescent;
|
|
302
|
+
SkScalar fMaxRunLeading;
|
|
303
|
+
SkPoint fCurrentPosition;
|
|
304
|
+
SkPoint fOffset;
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
namespace SkShapers::Primitive {
|
|
308
|
+
SKSHAPER_API std::unique_ptr<SkShaper> PrimitiveText();
|
|
309
|
+
|
|
310
|
+
SKSHAPER_API std::unique_ptr<SkShaper::BiDiRunIterator> TrivialBiDiRunIterator
|
|
311
|
+
(size_t utf8Bytes, uint8_t bidiLevel);
|
|
312
|
+
SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> TrivialScriptRunIterator
|
|
313
|
+
(size_t utf8Bytes, SkFourByteTag scriptTag);
|
|
314
|
+
} // namespace SkShapers
|
|
315
|
+
|
|
316
|
+
#endif // SkShaper_DEFINED
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkShaper_coretext_DEFINED
|
|
9
|
+
#define SkShaper_coretext_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "modules/skshaper/include/SkShaper.h"
|
|
12
|
+
|
|
13
|
+
#include <memory>
|
|
14
|
+
|
|
15
|
+
namespace SkShapers::CT {
|
|
16
|
+
SKSHAPER_API std::unique_ptr<SkShaper> CoreText();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
#endif
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef SkShaperFactory_DEFINED
|
|
8
|
+
#define SkShaperFactory_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/core/SkFourByteTag.h"
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkTypes.h"
|
|
13
|
+
#include "modules/skshaper/include/SkShaper.h"
|
|
14
|
+
|
|
15
|
+
#include <cstddef>
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#include <memory>
|
|
18
|
+
|
|
19
|
+
class SkFontMgr;
|
|
20
|
+
class SkUnicode;
|
|
21
|
+
|
|
22
|
+
namespace SkShapers {
|
|
23
|
+
|
|
24
|
+
class SKSHAPER_API Factory : public SkRefCnt {
|
|
25
|
+
public:
|
|
26
|
+
virtual std::unique_ptr<SkShaper> makeShaper(sk_sp<SkFontMgr> fallback) = 0;
|
|
27
|
+
virtual std::unique_ptr<SkShaper::BiDiRunIterator> makeBidiRunIterator(
|
|
28
|
+
const char* utf8, size_t utf8Bytes, uint8_t bidiLevel) = 0;
|
|
29
|
+
virtual std::unique_ptr<SkShaper::ScriptRunIterator> makeScriptRunIterator(
|
|
30
|
+
const char* utf8, size_t utf8Bytes, SkFourByteTag script) = 0;
|
|
31
|
+
|
|
32
|
+
virtual SkUnicode* getUnicode() = 0;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
namespace Primitive {
|
|
36
|
+
SKSHAPER_API sk_sp<Factory> Factory();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
} // namespace SkShapers
|
|
40
|
+
|
|
41
|
+
#endif // SkShaperFactory_DEFINED
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkShaper_harfbuzz_DEFINED
|
|
9
|
+
#define SkShaper_harfbuzz_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkFourByteTag.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
14
|
+
#include "modules/skshaper/include/SkShaper.h"
|
|
15
|
+
|
|
16
|
+
#include <cstddef>
|
|
17
|
+
#include <memory>
|
|
18
|
+
|
|
19
|
+
class SkFontMgr;
|
|
20
|
+
class SkUnicode;
|
|
21
|
+
|
|
22
|
+
namespace SkShapers::HB {
|
|
23
|
+
SKSHAPER_API std::unique_ptr<SkShaper> ShaperDrivenWrapper(sk_sp<SkUnicode> unicode,
|
|
24
|
+
sk_sp<SkFontMgr> fallback);
|
|
25
|
+
SKSHAPER_API std::unique_ptr<SkShaper> ShapeThenWrap(sk_sp<SkUnicode> unicode,
|
|
26
|
+
sk_sp<SkFontMgr> fallback);
|
|
27
|
+
SKSHAPER_API std::unique_ptr<SkShaper> ShapeDontWrapOrReorder(sk_sp<SkUnicode> unicode,
|
|
28
|
+
sk_sp<SkFontMgr> fallback);
|
|
29
|
+
|
|
30
|
+
SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> ScriptRunIterator(const char* utf8,
|
|
31
|
+
size_t utf8Bytes);
|
|
32
|
+
SKSHAPER_API std::unique_ptr<SkShaper::ScriptRunIterator> ScriptRunIterator(const char* utf8,
|
|
33
|
+
size_t utf8Bytes,
|
|
34
|
+
SkFourByteTag script);
|
|
35
|
+
|
|
36
|
+
SKSHAPER_API void PurgeCaches();
|
|
37
|
+
} // namespace SkShapers::HB
|
|
38
|
+
|
|
39
|
+
#endif
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkShaper_skunicode_DEFINED
|
|
9
|
+
#define SkShaper_skunicode_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "modules/skshaper/include/SkShaper.h"
|
|
13
|
+
|
|
14
|
+
#include <cstddef>
|
|
15
|
+
#include <cstdint>
|
|
16
|
+
#include <memory>
|
|
17
|
+
|
|
18
|
+
class SkUnicode;
|
|
19
|
+
|
|
20
|
+
namespace SkShapers::unicode {
|
|
21
|
+
SKSHAPER_API std::unique_ptr<SkShaper::BiDiRunIterator> BidiRunIterator(sk_sp<SkUnicode> unicode,
|
|
22
|
+
const char* utf8,
|
|
23
|
+
size_t utf8Bytes,
|
|
24
|
+
uint8_t bidiLevel);
|
|
25
|
+
|
|
26
|
+
} // namespace SkShapers::unicode
|
|
27
|
+
|
|
28
|
+
#endif
|
|
@@ -6,18 +6,19 @@
|
|
|
6
6
|
*/
|
|
7
7
|
#ifndef SkUnicode_DEFINED
|
|
8
8
|
#define SkUnicode_DEFINED
|
|
9
|
+
#include "include/core/SkRefCnt.h"
|
|
9
10
|
#include "include/core/SkSpan.h"
|
|
10
11
|
#include "include/core/SkString.h"
|
|
11
12
|
#include "include/core/SkTypes.h"
|
|
12
13
|
#include "include/private/base/SkTArray.h"
|
|
13
14
|
#include "include/private/base/SkTo.h"
|
|
14
15
|
#include "src/base/SkUTF.h"
|
|
15
|
-
|
|
16
16
|
#include <cstddef>
|
|
17
17
|
#include <cstdint>
|
|
18
18
|
#include <memory>
|
|
19
19
|
#include <string>
|
|
20
20
|
#include <vector>
|
|
21
|
+
namespace sknonstd { template <typename T> struct is_bitmask_enum; }
|
|
21
22
|
|
|
22
23
|
#if !defined(SKUNICODE_IMPLEMENTATION)
|
|
23
24
|
#define SKUNICODE_IMPLEMENTATION 0
|
|
@@ -39,10 +40,6 @@
|
|
|
39
40
|
#endif
|
|
40
41
|
#endif
|
|
41
42
|
|
|
42
|
-
namespace sknonstd {
|
|
43
|
-
template <typename T> struct is_bitmask_enum;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
43
|
class SKUNICODE_API SkBidiIterator {
|
|
47
44
|
public:
|
|
48
45
|
typedef int32_t Position;
|
|
@@ -77,7 +74,7 @@ public:
|
|
|
77
74
|
virtual bool setText(const char16_t utftext16[], int utf16Units) = 0;
|
|
78
75
|
};
|
|
79
76
|
|
|
80
|
-
class SKUNICODE_API SkUnicode {
|
|
77
|
+
class SKUNICODE_API SkUnicode : public SkRefCnt {
|
|
81
78
|
public:
|
|
82
79
|
enum CodeUnitFlags {
|
|
83
80
|
kNoCodeUnitFlag = 0x00,
|
|
@@ -120,9 +117,11 @@ class SKUNICODE_API SkUnicode {
|
|
|
120
117
|
LineBreakType breakType;
|
|
121
118
|
};
|
|
122
119
|
|
|
123
|
-
|
|
120
|
+
~SkUnicode() override = default;
|
|
124
121
|
|
|
122
|
+
// deprecated
|
|
125
123
|
virtual SkString toUpper(const SkString&) = 0;
|
|
124
|
+
virtual SkString toUpper(const SkString&, const char* locale) = 0;
|
|
126
125
|
|
|
127
126
|
virtual bool isControl(SkUnichar utf8) = 0;
|
|
128
127
|
virtual bool isWhitespace(SkUnichar utf8) = 0;
|
|
@@ -299,22 +298,6 @@ class SKUNICODE_API SkUnicode {
|
|
|
299
298
|
}
|
|
300
299
|
|
|
301
300
|
virtual void reorderVisual(const BidiLevel runLevels[], int levelsCount, int32_t logicalFromVisual[]) = 0;
|
|
302
|
-
|
|
303
|
-
virtual std::unique_ptr<SkUnicode> copy() = 0;
|
|
304
|
-
|
|
305
|
-
static std::unique_ptr<SkUnicode> Make();
|
|
306
|
-
|
|
307
|
-
static std::unique_ptr<SkUnicode> MakeIcuBasedUnicode();
|
|
308
|
-
|
|
309
|
-
static std::unique_ptr<SkUnicode> MakeClientBasedUnicode(
|
|
310
|
-
SkSpan<char> text,
|
|
311
|
-
std::vector<SkUnicode::Position> words,
|
|
312
|
-
std::vector<SkUnicode::Position> graphemeBreaks,
|
|
313
|
-
std::vector<SkUnicode::LineBreakBefore> lineBreaks);
|
|
314
|
-
|
|
315
|
-
static std::unique_ptr<SkUnicode> MakeLibgraphemeBasedUnicode();
|
|
316
|
-
|
|
317
|
-
static std::unique_ptr<SkUnicode> MakeIcu4xBasedUnicode();
|
|
318
301
|
};
|
|
319
302
|
|
|
320
303
|
namespace sknonstd {
|
|
@@ -8,12 +8,22 @@
|
|
|
8
8
|
#ifndef SkSVGAttributeParser_DEFINED
|
|
9
9
|
#define SkSVGAttributeParser_DEFINED
|
|
10
10
|
|
|
11
|
-
#include
|
|
12
|
-
|
|
11
|
+
#include "include/core/SkColor.h"
|
|
12
|
+
#include "include/core/SkScalar.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
13
14
|
#include "include/private/base/SkNoncopyable.h"
|
|
14
15
|
#include "modules/svg/include/SkSVGTypes.h"
|
|
16
|
+
|
|
15
17
|
#include "src/base/SkTLazy.h"
|
|
16
18
|
|
|
19
|
+
#include <cstdint>
|
|
20
|
+
#include <cstring>
|
|
21
|
+
#include <tuple>
|
|
22
|
+
#include <vector>
|
|
23
|
+
|
|
24
|
+
class SkMatrix;
|
|
25
|
+
class SkString;
|
|
26
|
+
|
|
17
27
|
class SkSVGAttributeParser : public SkNoncopyable {
|
|
18
28
|
public:
|
|
19
29
|
SkSVGAttributeParser(const char[]);
|
|
@@ -8,9 +8,22 @@
|
|
|
8
8
|
#ifndef SkSVGCircle_DEFINED
|
|
9
9
|
#define SkSVGCircle_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkPath.h"
|
|
12
|
+
#include "include/core/SkRect.h"
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
#include "include/core/SkScalar.h"
|
|
15
|
+
#include "include/private/base/SkAPI.h"
|
|
16
|
+
#include "modules/svg/include/SkSVGNode.h"
|
|
11
17
|
#include "modules/svg/include/SkSVGShape.h"
|
|
12
18
|
#include "modules/svg/include/SkSVGTypes.h"
|
|
13
19
|
|
|
20
|
+
#include <tuple>
|
|
21
|
+
|
|
22
|
+
class SkCanvas;
|
|
23
|
+
class SkPaint;
|
|
24
|
+
class SkSVGLengthContext;
|
|
25
|
+
class SkSVGRenderContext;
|
|
26
|
+
enum class SkPathFillType;
|
|
14
27
|
struct SkPoint;
|
|
15
28
|
|
|
16
29
|
class SK_API SkSVGCircle final : public SkSVGShape {
|