@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
@@ -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 {
|