@shopify/react-native-skia 1.3.13 → 1.4.1
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
@@ -1,540 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2015 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 SkPathPriv_DEFINED
|
9
|
-
#define SkPathPriv_DEFINED
|
10
|
-
|
11
|
-
#include "include/core/SkPath.h"
|
12
|
-
#include "include/core/SkPathBuilder.h"
|
13
|
-
#include "include/core/SkPathTypes.h"
|
14
|
-
#include "include/core/SkPoint.h"
|
15
|
-
#include "include/core/SkRect.h"
|
16
|
-
#include "include/core/SkRefCnt.h"
|
17
|
-
#include "include/core/SkScalar.h"
|
18
|
-
#include "include/core/SkTypes.h"
|
19
|
-
#include "include/private/SkIDChangeListener.h"
|
20
|
-
#include "include/private/SkPathRef.h"
|
21
|
-
#include "include/private/base/SkDebug.h"
|
22
|
-
#include "src/core/SkPathEnums.h"
|
23
|
-
|
24
|
-
#include <cstdint>
|
25
|
-
#include <iterator>
|
26
|
-
#include <utility>
|
27
|
-
|
28
|
-
class SkMatrix;
|
29
|
-
class SkRRect;
|
30
|
-
|
31
|
-
static_assert(0 == static_cast<int>(SkPathFillType::kWinding), "fill_type_mismatch");
|
32
|
-
static_assert(1 == static_cast<int>(SkPathFillType::kEvenOdd), "fill_type_mismatch");
|
33
|
-
static_assert(2 == static_cast<int>(SkPathFillType::kInverseWinding), "fill_type_mismatch");
|
34
|
-
static_assert(3 == static_cast<int>(SkPathFillType::kInverseEvenOdd), "fill_type_mismatch");
|
35
|
-
|
36
|
-
class SkPathPriv {
|
37
|
-
public:
|
38
|
-
// skbug.com/9906: Not a perfect solution for W plane clipping, but 1/16384 is a
|
39
|
-
// reasonable limit (roughly 5e-5)
|
40
|
-
inline static constexpr SkScalar kW0PlaneDistance = 1.f / (1 << 14);
|
41
|
-
|
42
|
-
static SkPathFirstDirection AsFirstDirection(SkPathDirection dir) {
|
43
|
-
// since we agree numerically for the values in Direction, we can just cast.
|
44
|
-
return (SkPathFirstDirection)dir;
|
45
|
-
}
|
46
|
-
|
47
|
-
/**
|
48
|
-
* Return the opposite of the specified direction. kUnknown is its own
|
49
|
-
* opposite.
|
50
|
-
*/
|
51
|
-
static SkPathFirstDirection OppositeFirstDirection(SkPathFirstDirection dir) {
|
52
|
-
static const SkPathFirstDirection gOppositeDir[] = {
|
53
|
-
SkPathFirstDirection::kCCW, SkPathFirstDirection::kCW, SkPathFirstDirection::kUnknown,
|
54
|
-
};
|
55
|
-
return gOppositeDir[(unsigned)dir];
|
56
|
-
}
|
57
|
-
|
58
|
-
/**
|
59
|
-
* Tries to compute the direction of the outer-most non-degenerate
|
60
|
-
* contour. If it can be computed, return that direction. If it cannot be determined,
|
61
|
-
* or the contour is known to be convex, return kUnknown. If the direction was determined,
|
62
|
-
* it is cached to make subsequent calls return quickly.
|
63
|
-
*/
|
64
|
-
static SkPathFirstDirection ComputeFirstDirection(const SkPath&);
|
65
|
-
|
66
|
-
static bool IsClosedSingleContour(const SkPath& path) {
|
67
|
-
int verbCount = path.countVerbs();
|
68
|
-
if (verbCount == 0)
|
69
|
-
return false;
|
70
|
-
int moveCount = 0;
|
71
|
-
auto verbs = path.fPathRef->verbsBegin();
|
72
|
-
for (int i = 0; i < verbCount; i++) {
|
73
|
-
switch (verbs[i]) {
|
74
|
-
case SkPath::Verb::kMove_Verb:
|
75
|
-
moveCount += 1;
|
76
|
-
if (moveCount > 1) {
|
77
|
-
return false;
|
78
|
-
}
|
79
|
-
break;
|
80
|
-
case SkPath::Verb::kClose_Verb:
|
81
|
-
if (i == verbCount - 1) {
|
82
|
-
return true;
|
83
|
-
}
|
84
|
-
return false;
|
85
|
-
default: break;
|
86
|
-
}
|
87
|
-
}
|
88
|
-
return false;
|
89
|
-
}
|
90
|
-
|
91
|
-
// In some scenarios (e.g. fill or convexity checking all but the last leading move to are
|
92
|
-
// irrelevant to behavior). SkPath::injectMoveToIfNeeded should ensure that this is always at
|
93
|
-
// least 1.
|
94
|
-
static int LeadingMoveToCount(const SkPath& path) {
|
95
|
-
int verbCount = path.countVerbs();
|
96
|
-
auto verbs = path.fPathRef->verbsBegin();
|
97
|
-
for (int i = 0; i < verbCount; i++) {
|
98
|
-
if (verbs[i] != SkPath::Verb::kMove_Verb) {
|
99
|
-
return i;
|
100
|
-
}
|
101
|
-
}
|
102
|
-
return verbCount; // path is all move verbs
|
103
|
-
}
|
104
|
-
|
105
|
-
static void AddGenIDChangeListener(const SkPath& path, sk_sp<SkIDChangeListener> listener) {
|
106
|
-
path.fPathRef->addGenIDChangeListener(std::move(listener));
|
107
|
-
}
|
108
|
-
|
109
|
-
/**
|
110
|
-
* This returns true for a rect that has a move followed by 3 or 4 lines and a close. If
|
111
|
-
* 'isSimpleFill' is true, an uncloseed rect will also be accepted as long as it starts and
|
112
|
-
* ends at the same corner. This does not permit degenerate line or point rectangles.
|
113
|
-
*/
|
114
|
-
static bool IsSimpleRect(const SkPath& path, bool isSimpleFill, SkRect* rect,
|
115
|
-
SkPathDirection* direction, unsigned* start);
|
116
|
-
|
117
|
-
/**
|
118
|
-
* Creates a path from arc params using the semantics of SkCanvas::drawArc. This function
|
119
|
-
* assumes empty ovals and zero sweeps have already been filtered out.
|
120
|
-
*/
|
121
|
-
static void CreateDrawArcPath(SkPath* path, const SkRect& oval, SkScalar startAngle,
|
122
|
-
SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect);
|
123
|
-
|
124
|
-
/**
|
125
|
-
* Determines whether an arc produced by CreateDrawArcPath will be convex. Assumes a non-empty
|
126
|
-
* oval.
|
127
|
-
*/
|
128
|
-
static bool DrawArcIsConvex(SkScalar sweepAngle, bool useCenter, bool isFillNoPathEffect);
|
129
|
-
|
130
|
-
static void ShrinkToFit(SkPath* path) {
|
131
|
-
path->shrinkToFit();
|
132
|
-
}
|
133
|
-
|
134
|
-
/**
|
135
|
-
* Returns a C++11-iterable object that traverses a path's verbs in order. e.g:
|
136
|
-
*
|
137
|
-
* for (SkPath::Verb verb : SkPathPriv::Verbs(path)) {
|
138
|
-
* ...
|
139
|
-
* }
|
140
|
-
*/
|
141
|
-
struct Verbs {
|
142
|
-
public:
|
143
|
-
Verbs(const SkPath& path) : fPathRef(path.fPathRef.get()) {}
|
144
|
-
struct Iter {
|
145
|
-
void operator++() { fVerb++; }
|
146
|
-
bool operator!=(const Iter& b) { return fVerb != b.fVerb; }
|
147
|
-
SkPath::Verb operator*() { return static_cast<SkPath::Verb>(*fVerb); }
|
148
|
-
const uint8_t* fVerb;
|
149
|
-
};
|
150
|
-
Iter begin() { return Iter{fPathRef->verbsBegin()}; }
|
151
|
-
Iter end() { return Iter{fPathRef->verbsEnd()}; }
|
152
|
-
private:
|
153
|
-
Verbs(const Verbs&) = delete;
|
154
|
-
Verbs& operator=(const Verbs&) = delete;
|
155
|
-
SkPathRef* fPathRef;
|
156
|
-
};
|
157
|
-
|
158
|
-
/**
|
159
|
-
* Iterates through a raw range of path verbs, points, and conics. All values are returned
|
160
|
-
* unaltered.
|
161
|
-
*
|
162
|
-
* NOTE: This class's definition will be moved into SkPathPriv once RangeIter is removed.
|
163
|
-
*/
|
164
|
-
using RangeIter = SkPath::RangeIter;
|
165
|
-
|
166
|
-
/**
|
167
|
-
* Iterable object for traversing verbs, points, and conic weights in a path:
|
168
|
-
*
|
169
|
-
* for (auto [verb, pts, weights] : SkPathPriv::Iterate(skPath)) {
|
170
|
-
* ...
|
171
|
-
* }
|
172
|
-
*/
|
173
|
-
struct Iterate {
|
174
|
-
public:
|
175
|
-
Iterate(const SkPath& path)
|
176
|
-
: Iterate(path.fPathRef->verbsBegin(),
|
177
|
-
// Don't allow iteration through non-finite points.
|
178
|
-
(!path.isFinite()) ? path.fPathRef->verbsBegin()
|
179
|
-
: path.fPathRef->verbsEnd(),
|
180
|
-
path.fPathRef->points(), path.fPathRef->conicWeights()) {
|
181
|
-
}
|
182
|
-
Iterate(const uint8_t* verbsBegin, const uint8_t* verbsEnd, const SkPoint* points,
|
183
|
-
const SkScalar* weights)
|
184
|
-
: fVerbsBegin(verbsBegin), fVerbsEnd(verbsEnd), fPoints(points), fWeights(weights) {
|
185
|
-
}
|
186
|
-
SkPath::RangeIter begin() { return {fVerbsBegin, fPoints, fWeights}; }
|
187
|
-
SkPath::RangeIter end() { return {fVerbsEnd, nullptr, nullptr}; }
|
188
|
-
private:
|
189
|
-
const uint8_t* fVerbsBegin;
|
190
|
-
const uint8_t* fVerbsEnd;
|
191
|
-
const SkPoint* fPoints;
|
192
|
-
const SkScalar* fWeights;
|
193
|
-
};
|
194
|
-
|
195
|
-
/**
|
196
|
-
* Returns a pointer to the verb data.
|
197
|
-
*/
|
198
|
-
static const uint8_t* VerbData(const SkPath& path) {
|
199
|
-
return path.fPathRef->verbsBegin();
|
200
|
-
}
|
201
|
-
|
202
|
-
/** Returns a raw pointer to the path points */
|
203
|
-
static const SkPoint* PointData(const SkPath& path) {
|
204
|
-
return path.fPathRef->points();
|
205
|
-
}
|
206
|
-
|
207
|
-
/** Returns the number of conic weights in the path */
|
208
|
-
static int ConicWeightCnt(const SkPath& path) {
|
209
|
-
return path.fPathRef->countWeights();
|
210
|
-
}
|
211
|
-
|
212
|
-
/** Returns a raw pointer to the path conic weights. */
|
213
|
-
static const SkScalar* ConicWeightData(const SkPath& path) {
|
214
|
-
return path.fPathRef->conicWeights();
|
215
|
-
}
|
216
|
-
|
217
|
-
/** Returns true if the underlying SkPathRef has one single owner. */
|
218
|
-
static bool TestingOnly_unique(const SkPath& path) {
|
219
|
-
return path.fPathRef->unique();
|
220
|
-
}
|
221
|
-
|
222
|
-
// Won't be needed once we can make path's immutable (with their bounds always computed)
|
223
|
-
static bool HasComputedBounds(const SkPath& path) {
|
224
|
-
return path.hasComputedBounds();
|
225
|
-
}
|
226
|
-
|
227
|
-
/** Returns true if constructed by addCircle(), addOval(); and in some cases,
|
228
|
-
addRoundRect(), addRRect(). SkPath constructed with conicTo() or rConicTo() will not
|
229
|
-
return true though SkPath draws oval.
|
230
|
-
|
231
|
-
rect receives bounds of oval.
|
232
|
-
dir receives SkPathDirection of oval: kCW_Direction if clockwise, kCCW_Direction if
|
233
|
-
counterclockwise.
|
234
|
-
start receives start of oval: 0 for top, 1 for right, 2 for bottom, 3 for left.
|
235
|
-
|
236
|
-
rect, dir, and start are unmodified if oval is not found.
|
237
|
-
|
238
|
-
Triggers performance optimizations on some GPU surface implementations.
|
239
|
-
|
240
|
-
@param rect storage for bounding SkRect of oval; may be nullptr
|
241
|
-
@param dir storage for SkPathDirection; may be nullptr
|
242
|
-
@param start storage for start of oval; may be nullptr
|
243
|
-
@return true if SkPath was constructed by method that reduces to oval
|
244
|
-
*/
|
245
|
-
static bool IsOval(const SkPath& path, SkRect* rect, SkPathDirection* dir, unsigned* start) {
|
246
|
-
bool isCCW = false;
|
247
|
-
bool result = path.fPathRef->isOval(rect, &isCCW, start);
|
248
|
-
if (dir && result) {
|
249
|
-
*dir = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
250
|
-
}
|
251
|
-
return result;
|
252
|
-
}
|
253
|
-
|
254
|
-
/** Returns true if constructed by addRoundRect(), addRRect(); and if construction
|
255
|
-
is not empty, not SkRect, and not oval. SkPath constructed with other calls
|
256
|
-
will not return true though SkPath draws SkRRect.
|
257
|
-
|
258
|
-
rrect receives bounds of SkRRect.
|
259
|
-
dir receives SkPathDirection of oval: kCW_Direction if clockwise, kCCW_Direction if
|
260
|
-
counterclockwise.
|
261
|
-
start receives start of SkRRect: 0 for top, 1 for right, 2 for bottom, 3 for left.
|
262
|
-
|
263
|
-
rrect, dir, and start are unmodified if SkRRect is not found.
|
264
|
-
|
265
|
-
Triggers performance optimizations on some GPU surface implementations.
|
266
|
-
|
267
|
-
@param rrect storage for bounding SkRect of SkRRect; may be nullptr
|
268
|
-
@param dir storage for SkPathDirection; may be nullptr
|
269
|
-
@param start storage for start of SkRRect; may be nullptr
|
270
|
-
@return true if SkPath contains only SkRRect
|
271
|
-
*/
|
272
|
-
static bool IsRRect(const SkPath& path, SkRRect* rrect, SkPathDirection* dir,
|
273
|
-
unsigned* start) {
|
274
|
-
bool isCCW = false;
|
275
|
-
bool result = path.fPathRef->isRRect(rrect, &isCCW, start);
|
276
|
-
if (dir && result) {
|
277
|
-
*dir = isCCW ? SkPathDirection::kCCW : SkPathDirection::kCW;
|
278
|
-
}
|
279
|
-
return result;
|
280
|
-
}
|
281
|
-
|
282
|
-
/**
|
283
|
-
* Sometimes in the drawing pipeline, we have to perform math on path coordinates, even after
|
284
|
-
* the path is in device-coordinates. Tessellation and clipping are two examples. Usually this
|
285
|
-
* is pretty modest, but it can involve subtracting/adding coordinates, or multiplying by
|
286
|
-
* small constants (e.g. 2,3,4). To try to preflight issues where these optionations could turn
|
287
|
-
* finite path values into infinities (or NaNs), we allow the upper drawing code to reject
|
288
|
-
* the path if its bounds (in device coordinates) is too close to max float.
|
289
|
-
*/
|
290
|
-
static bool TooBigForMath(const SkRect& bounds) {
|
291
|
-
// This value is just a guess. smaller is safer, but we don't want to reject largish paths
|
292
|
-
// that we don't have to.
|
293
|
-
constexpr SkScalar scale_down_to_allow_for_small_multiplies = 0.25f;
|
294
|
-
constexpr SkScalar max = SK_ScalarMax * scale_down_to_allow_for_small_multiplies;
|
295
|
-
|
296
|
-
// use ! expression so we return true if bounds contains NaN
|
297
|
-
return !(bounds.fLeft >= -max && bounds.fTop >= -max &&
|
298
|
-
bounds.fRight <= max && bounds.fBottom <= max);
|
299
|
-
}
|
300
|
-
static bool TooBigForMath(const SkPath& path) {
|
301
|
-
return TooBigForMath(path.getBounds());
|
302
|
-
}
|
303
|
-
|
304
|
-
// Returns number of valid points for each SkPath::Iter verb
|
305
|
-
static int PtsInIter(unsigned verb) {
|
306
|
-
static const uint8_t gPtsInVerb[] = {
|
307
|
-
1, // kMove pts[0]
|
308
|
-
2, // kLine pts[0..1]
|
309
|
-
3, // kQuad pts[0..2]
|
310
|
-
3, // kConic pts[0..2]
|
311
|
-
4, // kCubic pts[0..3]
|
312
|
-
0, // kClose
|
313
|
-
0 // kDone
|
314
|
-
};
|
315
|
-
|
316
|
-
SkASSERT(verb < std::size(gPtsInVerb));
|
317
|
-
return gPtsInVerb[verb];
|
318
|
-
}
|
319
|
-
|
320
|
-
// Returns number of valid points for each verb, not including the "starter"
|
321
|
-
// point that the Iterator adds for line/quad/conic/cubic
|
322
|
-
static int PtsInVerb(unsigned verb) {
|
323
|
-
static const uint8_t gPtsInVerb[] = {
|
324
|
-
1, // kMove pts[0]
|
325
|
-
1, // kLine pts[0..1]
|
326
|
-
2, // kQuad pts[0..2]
|
327
|
-
2, // kConic pts[0..2]
|
328
|
-
3, // kCubic pts[0..3]
|
329
|
-
0, // kClose
|
330
|
-
0 // kDone
|
331
|
-
};
|
332
|
-
|
333
|
-
SkASSERT(verb < std::size(gPtsInVerb));
|
334
|
-
return gPtsInVerb[verb];
|
335
|
-
}
|
336
|
-
|
337
|
-
static bool IsAxisAligned(const SkPath& path);
|
338
|
-
|
339
|
-
static bool AllPointsEq(const SkPoint pts[], int count) {
|
340
|
-
for (int i = 1; i < count; ++i) {
|
341
|
-
if (pts[0] != pts[i]) {
|
342
|
-
return false;
|
343
|
-
}
|
344
|
-
}
|
345
|
-
return true;
|
346
|
-
}
|
347
|
-
|
348
|
-
static int LastMoveToIndex(const SkPath& path) { return path.fLastMoveToIndex; }
|
349
|
-
|
350
|
-
static bool IsRectContour(const SkPath&, bool allowPartial, int* currVerb,
|
351
|
-
const SkPoint** ptsPtr, bool* isClosed, SkPathDirection* direction,
|
352
|
-
SkRect* rect);
|
353
|
-
|
354
|
-
/** Returns true if SkPath is equivalent to nested SkRect pair when filled.
|
355
|
-
If false, rect and dirs are unchanged.
|
356
|
-
If true, rect and dirs are written to if not nullptr:
|
357
|
-
setting rect[0] to outer SkRect, and rect[1] to inner SkRect;
|
358
|
-
setting dirs[0] to SkPathDirection of outer SkRect, and dirs[1] to SkPathDirection of
|
359
|
-
inner SkRect.
|
360
|
-
|
361
|
-
@param rect storage for SkRect pair; may be nullptr
|
362
|
-
@param dirs storage for SkPathDirection pair; may be nullptr
|
363
|
-
@return true if SkPath contains nested SkRect pair
|
364
|
-
*/
|
365
|
-
static bool IsNestedFillRects(const SkPath&, SkRect rect[2],
|
366
|
-
SkPathDirection dirs[2] = nullptr);
|
367
|
-
|
368
|
-
static bool IsInverseFillType(SkPathFillType fill) {
|
369
|
-
return (static_cast<int>(fill) & 2) != 0;
|
370
|
-
}
|
371
|
-
|
372
|
-
/** Returns equivalent SkPath::FillType representing SkPath fill inside its bounds.
|
373
|
-
.
|
374
|
-
|
375
|
-
@param fill one of: kWinding_FillType, kEvenOdd_FillType,
|
376
|
-
kInverseWinding_FillType, kInverseEvenOdd_FillType
|
377
|
-
@return fill, or kWinding_FillType or kEvenOdd_FillType if fill is inverted
|
378
|
-
*/
|
379
|
-
static SkPathFillType ConvertToNonInverseFillType(SkPathFillType fill) {
|
380
|
-
return (SkPathFillType)(static_cast<int>(fill) & 1);
|
381
|
-
}
|
382
|
-
|
383
|
-
/**
|
384
|
-
* If needed (to not blow-up under a perspective matrix), clip the path, returning the
|
385
|
-
* answer in "result", and return true.
|
386
|
-
*
|
387
|
-
* Note result might be empty (if the path was completely clipped out).
|
388
|
-
*
|
389
|
-
* If no clipping is needed, returns false and "result" is left unchanged.
|
390
|
-
*/
|
391
|
-
static bool PerspectiveClip(const SkPath& src, const SkMatrix&, SkPath* result);
|
392
|
-
|
393
|
-
/**
|
394
|
-
* Gets the number of GenIDChangeListeners. If another thread has access to this path then
|
395
|
-
* this may be stale before return and only indicates that the count was the return value
|
396
|
-
* at some point during the execution of the function.
|
397
|
-
*/
|
398
|
-
static int GenIDChangeListenersCount(const SkPath&);
|
399
|
-
|
400
|
-
static void UpdatePathPoint(SkPath* path, int index, const SkPoint& pt) {
|
401
|
-
SkASSERT(index < path->countPoints());
|
402
|
-
SkPathRef::Editor ed(&path->fPathRef);
|
403
|
-
ed.writablePoints()[index] = pt;
|
404
|
-
path->dirtyAfterEdit();
|
405
|
-
}
|
406
|
-
|
407
|
-
static SkPathConvexity GetConvexity(const SkPath& path) {
|
408
|
-
return path.getConvexity();
|
409
|
-
}
|
410
|
-
static SkPathConvexity GetConvexityOrUnknown(const SkPath& path) {
|
411
|
-
return path.getConvexityOrUnknown();
|
412
|
-
}
|
413
|
-
static void SetConvexity(const SkPath& path, SkPathConvexity c) {
|
414
|
-
path.setConvexity(c);
|
415
|
-
}
|
416
|
-
static void ForceComputeConvexity(const SkPath& path) {
|
417
|
-
path.setConvexity(SkPathConvexity::kUnknown);
|
418
|
-
(void)path.isConvex();
|
419
|
-
}
|
420
|
-
|
421
|
-
static void ReverseAddPath(SkPathBuilder* builder, const SkPath& reverseMe) {
|
422
|
-
builder->privateReverseAddPath(reverseMe);
|
423
|
-
}
|
424
|
-
|
425
|
-
static SkPath MakePath(const SkPathVerbAnalysis& analysis,
|
426
|
-
const SkPoint points[],
|
427
|
-
const uint8_t verbs[],
|
428
|
-
int verbCount,
|
429
|
-
const SkScalar conics[],
|
430
|
-
SkPathFillType fillType,
|
431
|
-
bool isVolatile) {
|
432
|
-
return SkPath::MakeInternal(analysis, points, verbs, verbCount, conics, fillType,
|
433
|
-
isVolatile);
|
434
|
-
}
|
435
|
-
};
|
436
|
-
|
437
|
-
// Lightweight variant of SkPath::Iter that only returns segments (e.g. lines/conics).
|
438
|
-
// Does not return kMove or kClose.
|
439
|
-
// Always "auto-closes" each contour.
|
440
|
-
// Roughly the same as SkPath::Iter(path, true), but does not return moves or closes
|
441
|
-
//
|
442
|
-
class SkPathEdgeIter {
|
443
|
-
const uint8_t* fVerbs;
|
444
|
-
const uint8_t* fVerbsStop;
|
445
|
-
const SkPoint* fPts;
|
446
|
-
const SkPoint* fMoveToPtr;
|
447
|
-
const SkScalar* fConicWeights;
|
448
|
-
SkPoint fScratch[2]; // for auto-close lines
|
449
|
-
bool fNeedsCloseLine;
|
450
|
-
bool fNextIsNewContour;
|
451
|
-
SkDEBUGCODE(bool fIsConic;)
|
452
|
-
|
453
|
-
enum {
|
454
|
-
kIllegalEdgeValue = 99
|
455
|
-
};
|
456
|
-
|
457
|
-
public:
|
458
|
-
SkPathEdgeIter(const SkPath& path);
|
459
|
-
|
460
|
-
SkScalar conicWeight() const {
|
461
|
-
SkASSERT(fIsConic);
|
462
|
-
return *fConicWeights;
|
463
|
-
}
|
464
|
-
|
465
|
-
enum class Edge {
|
466
|
-
kLine = SkPath::kLine_Verb,
|
467
|
-
kQuad = SkPath::kQuad_Verb,
|
468
|
-
kConic = SkPath::kConic_Verb,
|
469
|
-
kCubic = SkPath::kCubic_Verb,
|
470
|
-
};
|
471
|
-
|
472
|
-
static SkPath::Verb EdgeToVerb(Edge e) {
|
473
|
-
return SkPath::Verb(e);
|
474
|
-
}
|
475
|
-
|
476
|
-
struct Result {
|
477
|
-
const SkPoint* fPts; // points for the segment, or null if done
|
478
|
-
Edge fEdge;
|
479
|
-
bool fIsNewContour;
|
480
|
-
|
481
|
-
// Returns true when it holds an Edge, false when the path is done.
|
482
|
-
explicit operator bool() { return fPts != nullptr; }
|
483
|
-
};
|
484
|
-
|
485
|
-
Result next() {
|
486
|
-
auto closeline = [&]() {
|
487
|
-
fScratch[0] = fPts[-1];
|
488
|
-
fScratch[1] = *fMoveToPtr;
|
489
|
-
fNeedsCloseLine = false;
|
490
|
-
fNextIsNewContour = true;
|
491
|
-
return Result{ fScratch, Edge::kLine, false };
|
492
|
-
};
|
493
|
-
|
494
|
-
for (;;) {
|
495
|
-
SkASSERT(fVerbs <= fVerbsStop);
|
496
|
-
if (fVerbs == fVerbsStop) {
|
497
|
-
return fNeedsCloseLine
|
498
|
-
? closeline()
|
499
|
-
: Result{ nullptr, Edge(kIllegalEdgeValue), false };
|
500
|
-
}
|
501
|
-
|
502
|
-
SkDEBUGCODE(fIsConic = false;)
|
503
|
-
|
504
|
-
const auto v = *fVerbs++;
|
505
|
-
switch (v) {
|
506
|
-
case SkPath::kMove_Verb: {
|
507
|
-
if (fNeedsCloseLine) {
|
508
|
-
auto res = closeline();
|
509
|
-
fMoveToPtr = fPts++;
|
510
|
-
return res;
|
511
|
-
}
|
512
|
-
fMoveToPtr = fPts++;
|
513
|
-
fNextIsNewContour = true;
|
514
|
-
} break;
|
515
|
-
case SkPath::kClose_Verb:
|
516
|
-
if (fNeedsCloseLine) return closeline();
|
517
|
-
break;
|
518
|
-
default: {
|
519
|
-
// Actual edge.
|
520
|
-
const int pts_count = (v+2) / 2,
|
521
|
-
cws_count = (v & (v-1)) / 2;
|
522
|
-
SkASSERT(pts_count == SkPathPriv::PtsInIter(v) - 1);
|
523
|
-
|
524
|
-
fNeedsCloseLine = true;
|
525
|
-
fPts += pts_count;
|
526
|
-
fConicWeights += cws_count;
|
527
|
-
|
528
|
-
SkDEBUGCODE(fIsConic = (v == SkPath::kConic_Verb);)
|
529
|
-
SkASSERT(fIsConic == (cws_count > 0));
|
530
|
-
|
531
|
-
bool isNewContour = fNextIsNewContour;
|
532
|
-
fNextIsNewContour = false;
|
533
|
-
return { &fPts[-(pts_count + 1)], Edge(v), isNewContour };
|
534
|
-
}
|
535
|
-
}
|
536
|
-
}
|
537
|
-
}
|
538
|
-
};
|
539
|
-
|
540
|
-
#endif
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,46 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
-
<plist version="1.0">
|
4
|
-
<dict>
|
5
|
-
<key>AvailableLibraries</key>
|
6
|
-
<array>
|
7
|
-
<dict>
|
8
|
-
<key>BinaryPath</key>
|
9
|
-
<string>libskunicode.a</string>
|
10
|
-
<key>LibraryIdentifier</key>
|
11
|
-
<string>ios-arm64_arm64e_x86_64-simulator</string>
|
12
|
-
<key>LibraryPath</key>
|
13
|
-
<string>libskunicode.a</string>
|
14
|
-
<key>SupportedArchitectures</key>
|
15
|
-
<array>
|
16
|
-
<string>arm64</string>
|
17
|
-
<string>arm64e</string>
|
18
|
-
<string>x86_64</string>
|
19
|
-
</array>
|
20
|
-
<key>SupportedPlatform</key>
|
21
|
-
<string>ios</string>
|
22
|
-
<key>SupportedPlatformVariant</key>
|
23
|
-
<string>simulator</string>
|
24
|
-
</dict>
|
25
|
-
<dict>
|
26
|
-
<key>BinaryPath</key>
|
27
|
-
<string>libskunicode.a</string>
|
28
|
-
<key>LibraryIdentifier</key>
|
29
|
-
<string>ios-arm64_arm64e</string>
|
30
|
-
<key>LibraryPath</key>
|
31
|
-
<string>libskunicode.a</string>
|
32
|
-
<key>SupportedArchitectures</key>
|
33
|
-
<array>
|
34
|
-
<string>arm64</string>
|
35
|
-
<string>arm64e</string>
|
36
|
-
</array>
|
37
|
-
<key>SupportedPlatform</key>
|
38
|
-
<string>ios</string>
|
39
|
-
</dict>
|
40
|
-
</array>
|
41
|
-
<key>CFBundlePackageType</key>
|
42
|
-
<string>XFWK</string>
|
43
|
-
<key>XCFrameworkFormatVersion</key>
|
44
|
-
<string>1.0</string>
|
45
|
-
</dict>
|
46
|
-
</plist>
|
Binary file
|
Binary file
|
File without changes
|