@shopify/react-native-skia 1.3.13 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +9 -4
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkPath.h +29 -19
- package/cpp/api/JsiSkRuntimeEffect.h +7 -0
- package/cpp/api/JsiSkiaContext.h +79 -0
- package/cpp/rnskia/RNSkPlatformContext.h +4 -0
- package/cpp/rnskia/SkiaContext.h +22 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
- package/cpp/skia/include/android/SkImageAndroid.h +1 -1
- package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
- package/cpp/skia/include/codec/SkCodec.h +28 -5
- package/cpp/skia/include/core/SkArc.h +69 -0
- package/cpp/skia/include/core/SkBitmap.h +10 -0
- package/cpp/skia/include/core/SkBlender.h +2 -3
- package/cpp/skia/include/core/SkCanvas.h +86 -16
- package/cpp/skia/include/core/SkCapabilities.h +0 -4
- package/cpp/skia/include/core/SkColorFilter.h +4 -4
- package/cpp/skia/include/core/SkColorPriv.h +5 -7
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkFlattenable.h +1 -1
- package/cpp/skia/include/core/SkFontArguments.h +3 -1
- package/cpp/skia/include/core/SkFontParameters.h +3 -2
- package/cpp/skia/include/core/SkFourByteTag.h +19 -0
- package/cpp/skia/include/core/SkImage.h +41 -1
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkImageInfo.h +20 -0
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMatrix.h +2 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +20 -6
- package/cpp/skia/include/core/SkPathMeasure.h +1 -0
- package/cpp/skia/include/core/SkPicture.h +5 -5
- package/cpp/skia/include/core/SkPoint3.h +2 -12
- package/cpp/skia/include/core/SkRRect.h +5 -0
- package/cpp/skia/include/core/SkRect.h +5 -16
- package/cpp/skia/include/core/SkRefCnt.h +2 -0
- package/cpp/skia/include/core/SkScalar.h +20 -32
- package/cpp/skia/include/core/SkShader.h +17 -0
- package/cpp/skia/include/core/SkSize.h +2 -1
- package/cpp/skia/include/core/SkStream.h +2 -3
- package/cpp/skia/include/core/SkStrokeRec.h +6 -1
- package/cpp/skia/include/core/SkSurface.h +13 -4
- package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
- package/cpp/skia/include/core/SkSwizzle.h +3 -1
- package/cpp/skia/include/core/SkTypeface.h +1 -0
- package/cpp/skia/include/core/SkTypes.h +1 -19
- package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
- package/cpp/skia/include/core/SkVertices.h +4 -2
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
- package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
- package/cpp/skia/include/effects/SkImageFilters.h +49 -23
- package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
- package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
- package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
- package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
- package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
- package/cpp/skia/include/gpu/GrTypes.h +2 -238
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
- package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
- package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
- package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
- package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
- package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
- package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
- package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
- package/cpp/skia/include/gpu/graphite/Context.h +122 -44
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
- package/cpp/skia/include/gpu/graphite/Image.h +56 -54
- package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
- package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
- package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
- package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
- package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
- package/cpp/skia/include/private/SkExif.h +28 -75
- package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
- package/cpp/skia/include/private/SkPathRef.h +52 -44
- package/cpp/skia/include/private/SkXmp.h +13 -4
- package/cpp/skia/include/private/base/SkASAN.h +56 -0
- package/cpp/skia/include/private/base/SkAlign.h +5 -0
- package/cpp/skia/include/private/base/SkContainers.h +10 -2
- package/cpp/skia/include/private/base/SkFeatures.h +22 -1
- package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
- package/cpp/skia/include/private/base/SkMacros.h +67 -0
- package/cpp/skia/include/private/base/SkMalloc.h +8 -0
- package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
- package/cpp/skia/include/private/base/SkTArray.h +108 -23
- package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
- package/cpp/skia/include/private/chromium/Slug.h +5 -11
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
- package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
- package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
- package/cpp/skia/include/utils/SkParse.h +0 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
- package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
- package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
- package/cpp/skia/src/base/SkMathPriv.h +337 -0
- package/cpp/skia/src/base/SkTLazy.h +208 -0
- package/cpp/skia/src/core/SkTHash.h +58 -7
- package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +6 -1
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +4 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
- package/lib/commonjs/web/WithSkiaWeb.js +3 -2
- package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +6 -1
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +4 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/web/WithSkiaWeb.d.ts +11 -4
- package/lib/module/web/WithSkiaWeb.js +3 -2
- package/lib/module/web/WithSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
- package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode_core.a +0 -0
- package/libs/android/x86/libskunicode_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode_core.a +0 -0
- package/libs/android/x86_64/libskunicode_icu.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -5
- package/react-native-skia.podspec +2 -1
- package/src/renderer/HostConfig.ts +5 -1
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
- package/src/skia/types/Paragraph/TextStyle.ts +2 -2
- package/src/skia/types/Skia.ts +7 -1
- package/src/skia/web/JsiSkia.ts +3 -0
- package/src/web/WithSkiaWeb.tsx +17 -6
- package/cpp/skia/include/core/SkDrawLooper.h +0 -135
- package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
- package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
- package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
- package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
- package/cpp/skia/src/core/SkPathEnums.h +0 -25
- package/cpp/skia/src/core/SkPathPriv.h +0 -540
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
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 skgpu_graphite_precompile_PaintOptions_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PaintOptions_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkBlendMode.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkSpan.h"
|
|
14
|
+
#include "include/private/base/SkTArray.h"
|
|
15
|
+
#include "include/private/base/SkTDArray.h"
|
|
16
|
+
|
|
17
|
+
#include <functional>
|
|
18
|
+
|
|
19
|
+
namespace skgpu::graphite {
|
|
20
|
+
|
|
21
|
+
class PrecompileBlender;
|
|
22
|
+
class PrecompileColorFilter;
|
|
23
|
+
class PrecompileImageFilter;
|
|
24
|
+
class PrecompileMaskFilter;
|
|
25
|
+
class PrecompileShader;
|
|
26
|
+
|
|
27
|
+
enum class Coverage;
|
|
28
|
+
enum DrawTypeFlags : uint16_t;
|
|
29
|
+
enum class PrecompileImageFilterFlags : uint32_t;
|
|
30
|
+
|
|
31
|
+
class KeyContext;
|
|
32
|
+
class PaintOptionsPriv;
|
|
33
|
+
class PaintParamsKeyBuilder;
|
|
34
|
+
class PipelineDataGatherer;
|
|
35
|
+
class UniquePaintParamsID;
|
|
36
|
+
|
|
37
|
+
/** \class PaintOptions
|
|
38
|
+
This is the Precompilation analog to SkPaint. It encapsulates a set of options for each
|
|
39
|
+
field of the SkPaint (e.g., colorFilters, imageFilters, etc). Many of the specific details
|
|
40
|
+
of an SkPaint that are irrelevant to the final compiled Pipelines are abstracted away
|
|
41
|
+
(e.g., the SkPaint's color field).
|
|
42
|
+
|
|
43
|
+
How Precompilation works in practice is a PaintOptions object is created and a set of options
|
|
44
|
+
for each slot (e.g., shader, blender) are added. When passed to the Precompile() function,
|
|
45
|
+
all the combinations specified by the PaintOptions will be created and precompiled.
|
|
46
|
+
|
|
47
|
+
To be concrete, if a PaintOptions object had two shader options and two blender options,
|
|
48
|
+
four combinations would be precompiled.
|
|
49
|
+
*/
|
|
50
|
+
class SK_API PaintOptions {
|
|
51
|
+
public:
|
|
52
|
+
/** Constructs a PaintOptions object with default values. It is equivalent to a default
|
|
53
|
+
* initialized SkPaint.
|
|
54
|
+
|
|
55
|
+
@return default initialized PaintOptions
|
|
56
|
+
*/
|
|
57
|
+
PaintOptions();
|
|
58
|
+
PaintOptions(const PaintOptions&);
|
|
59
|
+
~PaintOptions();
|
|
60
|
+
PaintOptions& operator=(const PaintOptions&);
|
|
61
|
+
|
|
62
|
+
/** Sets the shader options used when generating precompilation combinations.
|
|
63
|
+
|
|
64
|
+
This corresponds to SkPaint's setShader() method
|
|
65
|
+
|
|
66
|
+
@param shaders The options used for shading when generating precompilation combinations.
|
|
67
|
+
*/
|
|
68
|
+
void setShaders(SkSpan<const sk_sp<PrecompileShader>> shaders);
|
|
69
|
+
SkSpan<const sk_sp<PrecompileShader>> getShaders() const {
|
|
70
|
+
return SkSpan<const sk_sp<PrecompileShader>>(fShaderOptions);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Sets the image filter options used when generating precompilation combinations.
|
|
74
|
+
|
|
75
|
+
This corresponds to SkPaint's setImageFilter() method
|
|
76
|
+
|
|
77
|
+
@param imageFilters The options used for image filtering when generating precompilation
|
|
78
|
+
combinations.
|
|
79
|
+
*/
|
|
80
|
+
void setImageFilters(SkSpan<const sk_sp<PrecompileImageFilter>> imageFilters);
|
|
81
|
+
SkSpan<const sk_sp<PrecompileImageFilter>> getImageFilters() const {
|
|
82
|
+
return SkSpan<const sk_sp<PrecompileImageFilter>>(fImageFilterOptions);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Sets the mask filter options used when generating precompilation combinations.
|
|
86
|
+
|
|
87
|
+
This corresponds to SkPaint's setMaskFilter() method
|
|
88
|
+
|
|
89
|
+
@param maskFilters The options used for mask filtering when generating precompilation
|
|
90
|
+
combinations.
|
|
91
|
+
*/
|
|
92
|
+
void setMaskFilters(SkSpan<const sk_sp<PrecompileMaskFilter>> maskFilters);
|
|
93
|
+
SkSpan<const sk_sp<PrecompileMaskFilter>> getMaskFilters() const {
|
|
94
|
+
return SkSpan<const sk_sp<PrecompileMaskFilter>>(fMaskFilterOptions);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** Sets the color filter options used when generating precompilation combinations.
|
|
98
|
+
|
|
99
|
+
This corresponds to SkPaint's setColorFilter() method
|
|
100
|
+
|
|
101
|
+
@param colorFilters The options used for color filtering when generating precompilation
|
|
102
|
+
combinations.
|
|
103
|
+
*/
|
|
104
|
+
void setColorFilters(SkSpan<const sk_sp<PrecompileColorFilter>> colorFilters);
|
|
105
|
+
SkSpan<const sk_sp<PrecompileColorFilter>> getColorFilters() const {
|
|
106
|
+
return SkSpan<const sk_sp<PrecompileColorFilter>>(fColorFilterOptions);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Sets the blend mode options used when generating precompilation combinations.
|
|
110
|
+
|
|
111
|
+
This corresponds to SkPaint's setBlendMode() method
|
|
112
|
+
|
|
113
|
+
@param blendModes The options used for blending when generating precompilation
|
|
114
|
+
combinations.
|
|
115
|
+
*/
|
|
116
|
+
void setBlendModes(SkSpan<const SkBlendMode> blendModes);
|
|
117
|
+
SkSpan<const SkBlendMode> getBlendModes() const {
|
|
118
|
+
return SkSpan<const SkBlendMode>(fBlendModeOptions.data(), fBlendModeOptions.size());
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** Sets the blender options used when generating precompilation combinations.
|
|
122
|
+
|
|
123
|
+
This corresponds to SkPaint's setBlender() method
|
|
124
|
+
|
|
125
|
+
@param blenders The options used for blending when generating precompilation combinations.
|
|
126
|
+
*/
|
|
127
|
+
void setBlenders(SkSpan<const sk_sp<PrecompileBlender>> blenders);
|
|
128
|
+
SkSpan<const sk_sp<PrecompileBlender>> getBlenders() const {
|
|
129
|
+
return SkSpan<const sk_sp<PrecompileBlender>>(fBlenderOptions);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** Sets the dither setting used when generating precompilation combinations
|
|
133
|
+
|
|
134
|
+
This corresponds to SkPaint's setDither() method
|
|
135
|
+
|
|
136
|
+
@param dither the dither setting used when generating precompilation combinations.
|
|
137
|
+
*/
|
|
138
|
+
void setDither(bool dither) { fDither = dither; }
|
|
139
|
+
bool isDither() const { return fDither; }
|
|
140
|
+
|
|
141
|
+
// Provides access to functions that aren't part of the public API.
|
|
142
|
+
PaintOptionsPriv priv();
|
|
143
|
+
const PaintOptionsPriv priv() const; // NOLINT(readability-const-return-type)
|
|
144
|
+
|
|
145
|
+
private:
|
|
146
|
+
friend class PaintOptionsPriv;
|
|
147
|
+
friend class PrecompileImageFilter; // for ProcessCombination access
|
|
148
|
+
friend class PrecompileMaskFilter; // for ProcessCombination access
|
|
149
|
+
|
|
150
|
+
void addColorFilter(sk_sp<PrecompileColorFilter> cf);
|
|
151
|
+
void addBlendMode(SkBlendMode bm) {
|
|
152
|
+
fBlendModeOptions.push_back(bm);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
void setClipShaders(SkSpan<const sk_sp<PrecompileShader>> clipShaders);
|
|
156
|
+
|
|
157
|
+
int numShaderCombinations() const;
|
|
158
|
+
int numColorFilterCombinations() const;
|
|
159
|
+
int numBlendCombinations() const;
|
|
160
|
+
int numClipShaderCombinations() const;
|
|
161
|
+
|
|
162
|
+
int numCombinations() const;
|
|
163
|
+
// 'desiredCombination' must be less than the result of the numCombinations call
|
|
164
|
+
void createKey(const KeyContext&,
|
|
165
|
+
PaintParamsKeyBuilder*,
|
|
166
|
+
PipelineDataGatherer*,
|
|
167
|
+
int desiredCombination,
|
|
168
|
+
bool addPrimitiveBlender,
|
|
169
|
+
Coverage coverage) const;
|
|
170
|
+
|
|
171
|
+
typedef std::function<void(UniquePaintParamsID id,
|
|
172
|
+
DrawTypeFlags,
|
|
173
|
+
bool withPrimitiveBlender,
|
|
174
|
+
Coverage)> ProcessCombination;
|
|
175
|
+
|
|
176
|
+
void buildCombinations(const KeyContext&,
|
|
177
|
+
PipelineDataGatherer*,
|
|
178
|
+
DrawTypeFlags drawTypes,
|
|
179
|
+
bool addPrimitiveBlender,
|
|
180
|
+
Coverage coverage,
|
|
181
|
+
const ProcessCombination& processCombination) const;
|
|
182
|
+
|
|
183
|
+
skia_private::TArray<sk_sp<PrecompileShader>> fShaderOptions;
|
|
184
|
+
skia_private::TArray<sk_sp<PrecompileColorFilter>> fColorFilterOptions;
|
|
185
|
+
skia_private::TArray<SkBlendMode> fBlendModeOptions;
|
|
186
|
+
skia_private::TArray<sk_sp<PrecompileBlender>> fBlenderOptions;
|
|
187
|
+
skia_private::TArray<sk_sp<PrecompileShader>> fClipShaderOptions;
|
|
188
|
+
|
|
189
|
+
skia_private::TArray<sk_sp<PrecompileImageFilter>> fImageFilterOptions;
|
|
190
|
+
skia_private::TArray<sk_sp<PrecompileMaskFilter>> fMaskFilterOptions;
|
|
191
|
+
|
|
192
|
+
bool fDither = false;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
} // namespace skgpu::graphite
|
|
196
|
+
|
|
197
|
+
#endif // skgpu_graphite_precompile_PaintOptions_DEFINED
|
|
@@ -0,0 +1,48 @@
|
|
|
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 skgpu_graphite_precompile_Precompile_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_Precompile_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkSpan.h"
|
|
12
|
+
#include "include/gpu/graphite/GraphiteTypes.h"
|
|
13
|
+
|
|
14
|
+
namespace skgpu::graphite {
|
|
15
|
+
|
|
16
|
+
class Context;
|
|
17
|
+
class PaintOptions;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Describes the required properties of a RenderPass that will be combined with the
|
|
21
|
+
* other portions of the Precompilation API (i.e., paintOptions and drawTypes) to yield
|
|
22
|
+
* a pipeline.
|
|
23
|
+
*/
|
|
24
|
+
struct SK_API RenderPassProperties {
|
|
25
|
+
DepthStencilFlags fDSFlags = DepthStencilFlags::kNone;
|
|
26
|
+
SkColorType fDstCT = kRGBA_8888_SkColorType;
|
|
27
|
+
bool fRequiresMSAA = false;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Precompilation allows clients to create pipelines ahead of time based on what they expect
|
|
32
|
+
* to draw. This can reduce performance hitches, due to inline compilation, during the actual
|
|
33
|
+
* drawing. Graphite will always be able to perform an inline compilation if some SkPaint
|
|
34
|
+
* combination was omitted from precompilation.
|
|
35
|
+
*
|
|
36
|
+
* @param context the Context to which the actual draws will be submitted
|
|
37
|
+
* @param paintOptions captures a set of SkPaints that will be drawn
|
|
38
|
+
* @param drawTypes communicates which primitives those paints will be drawn with
|
|
39
|
+
* @param renderPassProperties describes the RenderPasses needed for the desired Pipelines
|
|
40
|
+
*/
|
|
41
|
+
void SK_API Precompile(Context* context,
|
|
42
|
+
const PaintOptions& paintOptions,
|
|
43
|
+
DrawTypeFlags drawTypes,
|
|
44
|
+
SkSpan<const RenderPassProperties> renderPassProperties);
|
|
45
|
+
|
|
46
|
+
} // namespace skgpu::graphite
|
|
47
|
+
|
|
48
|
+
#endif // skgpu_graphite_precompile_Precompile_DEFINED
|
|
@@ -0,0 +1,84 @@
|
|
|
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 skgpu_graphite_precompile_PrecompileBase_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PrecompileBase_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkSpan.h"
|
|
13
|
+
|
|
14
|
+
namespace skgpu::graphite {
|
|
15
|
+
|
|
16
|
+
class KeyContext;
|
|
17
|
+
class PaintParamsKeyBuilder;
|
|
18
|
+
class PipelineDataGatherer;
|
|
19
|
+
class PrecompileBasePriv;
|
|
20
|
+
|
|
21
|
+
/** \class PrecompileBase
|
|
22
|
+
This is the base class for all the objects that can be attached to PaintOptions.
|
|
23
|
+
*/
|
|
24
|
+
class SK_API PrecompileBase : public SkRefCnt {
|
|
25
|
+
public:
|
|
26
|
+
enum class Type {
|
|
27
|
+
kBlender,
|
|
28
|
+
kColorFilter,
|
|
29
|
+
kImageFilter,
|
|
30
|
+
kMaskFilter,
|
|
31
|
+
kShader,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
Type type() const { return fType; }
|
|
35
|
+
|
|
36
|
+
// Provides access to functions that aren't part of the public API.
|
|
37
|
+
PrecompileBasePriv priv();
|
|
38
|
+
const PrecompileBasePriv priv() const; // NOLINT(readability-const-return-type)
|
|
39
|
+
|
|
40
|
+
protected:
|
|
41
|
+
PrecompileBase(Type type) : fType(type) {}
|
|
42
|
+
|
|
43
|
+
virtual int numIntrinsicCombinations() const { return 1; }
|
|
44
|
+
virtual int numChildCombinations() const { return 1; }
|
|
45
|
+
|
|
46
|
+
/** This call returns the number of combinations generated from this object and its childen.
|
|
47
|
+
|
|
48
|
+
@return number of precompilation combinations generated by this object
|
|
49
|
+
*/
|
|
50
|
+
int numCombinations() const {
|
|
51
|
+
return this->numIntrinsicCombinations() * this->numChildCombinations();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
virtual void addToKey(const KeyContext&,
|
|
55
|
+
PaintParamsKeyBuilder*,
|
|
56
|
+
PipelineDataGatherer*,
|
|
57
|
+
int desiredCombination) const = 0;
|
|
58
|
+
|
|
59
|
+
// This returns the desired option along with the child options.
|
|
60
|
+
template<typename T>
|
|
61
|
+
static std::pair<sk_sp<T>, int> SelectOption(SkSpan<const sk_sp<T>> options,
|
|
62
|
+
int desiredOption);
|
|
63
|
+
|
|
64
|
+
// In general, derived classes should use AddToKey to select the desired child option from
|
|
65
|
+
// a span and then have it added to the key with its reduced/nested child option.
|
|
66
|
+
template<typename T>
|
|
67
|
+
static void AddToKey(const KeyContext&,
|
|
68
|
+
PaintParamsKeyBuilder*,
|
|
69
|
+
PipelineDataGatherer*,
|
|
70
|
+
SkSpan<const sk_sp<T>> options,
|
|
71
|
+
int desiredOption);
|
|
72
|
+
|
|
73
|
+
private:
|
|
74
|
+
friend class PrecompileBasePriv;
|
|
75
|
+
|
|
76
|
+
friend class PaintOptions; // for access to SelectOption
|
|
77
|
+
friend class PrecompileBlenderList; // ""
|
|
78
|
+
|
|
79
|
+
Type fType;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
} // namespace skgpu::graphite
|
|
83
|
+
|
|
84
|
+
#endif // skgpu_graphite_precompile_PrecompileBase_DEFINED
|
|
@@ -0,0 +1,56 @@
|
|
|
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 skgpu_graphite_precompile_PrecompileBlender_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PrecompileBlender_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkBlendMode.h"
|
|
12
|
+
#include "include/gpu/graphite/precompile/PrecompileBase.h"
|
|
13
|
+
|
|
14
|
+
#include <optional>
|
|
15
|
+
|
|
16
|
+
namespace skgpu::graphite {
|
|
17
|
+
|
|
18
|
+
class PrecompileBlenderPriv;
|
|
19
|
+
|
|
20
|
+
/** \class PrecompileBlender
|
|
21
|
+
This class corresponds to the SkBlender class in the main API.
|
|
22
|
+
*/
|
|
23
|
+
class SK_API PrecompileBlender : public PrecompileBase {
|
|
24
|
+
public:
|
|
25
|
+
// Provides access to functions that aren't part of the public API.
|
|
26
|
+
PrecompileBlenderPriv priv();
|
|
27
|
+
const PrecompileBlenderPriv priv() const; // NOLINT(readability-const-return-type)
|
|
28
|
+
|
|
29
|
+
protected:
|
|
30
|
+
friend class PrecompileBlenderPriv;
|
|
31
|
+
|
|
32
|
+
virtual std::optional<SkBlendMode> asBlendMode() const { return {}; }
|
|
33
|
+
|
|
34
|
+
PrecompileBlender() : PrecompileBase(Type::kBlender) {}
|
|
35
|
+
~PrecompileBlender() override;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
//--------------------------------------------------------------------------------------------------
|
|
39
|
+
// This is the Precompile correlate to the SkBlenders namespace in the main API
|
|
40
|
+
namespace PrecompileBlenders {
|
|
41
|
+
|
|
42
|
+
// This factory creates a Precompilation object that represents the Arithmetic SkBlender from
|
|
43
|
+
// the main API. Note that the actual Arithmetic parameters (i.e., k1, k2, k3 and k4) are
|
|
44
|
+
// abstracted away since they do not impact the generated shader.
|
|
45
|
+
SK_API sk_sp<PrecompileBlender> Arithmetic();
|
|
46
|
+
|
|
47
|
+
// This is the Precompilation correlate to the SkBlender::Mode factory in the main API. It
|
|
48
|
+
// creates an object that represents SkBlendMode-based blending.
|
|
49
|
+
SK_API sk_sp<PrecompileBlender> Mode(SkBlendMode);
|
|
50
|
+
|
|
51
|
+
} // namespace PrecompileBlenders
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
} // namespace skgpu::graphite
|
|
55
|
+
|
|
56
|
+
#endif // skgpu_graphite_precompile_PrecompileBlender_DEFINED
|
|
@@ -0,0 +1,85 @@
|
|
|
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 skgpu_graphite_precompile_PrecompileColorFilter_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PrecompileColorFilter_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/gpu/graphite/precompile/PrecompileBase.h"
|
|
12
|
+
|
|
13
|
+
enum class SkBlendMode;
|
|
14
|
+
|
|
15
|
+
namespace skgpu::graphite {
|
|
16
|
+
|
|
17
|
+
/** \class PrecompileColorFilter
|
|
18
|
+
This class corresponds to the SkColorFilter class in the main API.
|
|
19
|
+
*/
|
|
20
|
+
class SK_API PrecompileColorFilter : public PrecompileBase {
|
|
21
|
+
public:
|
|
22
|
+
/**
|
|
23
|
+
* This is the Precompile correlate to SkColorFilter::makeComposed.
|
|
24
|
+
*
|
|
25
|
+
* The PrecompileColorFilters::Compose factory can be used to generate a set of color filters
|
|
26
|
+
* that would've been generated via multiple makeComposed calls. That is, rather than
|
|
27
|
+
* performing:
|
|
28
|
+
* sk_sp<PrecompileColorFilter> option1 = outer->makeComposed(colorFilter1);
|
|
29
|
+
* sk_sp<PrecompileColorFilter> option2 = outer->makeComposed(colorFilter2);
|
|
30
|
+
* one could call:
|
|
31
|
+
* sk_sp<PrecompileColorFilter> combinedOptions = Compose({ outer },
|
|
32
|
+
* { colorFilter1, colorFilter2 });
|
|
33
|
+
* With an alternative use case one could also use the Compose factory thusly:
|
|
34
|
+
* sk_sp<PrecompileColorFilter> combinedOptions = Compose({ outer1, outer2 },
|
|
35
|
+
* { innerColorFilter });
|
|
36
|
+
*/
|
|
37
|
+
sk_sp<PrecompileColorFilter> makeComposed(sk_sp<PrecompileColorFilter> inner) const;
|
|
38
|
+
|
|
39
|
+
protected:
|
|
40
|
+
PrecompileColorFilter() : PrecompileBase(Type::kColorFilter) {}
|
|
41
|
+
~PrecompileColorFilter() override;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//--------------------------------------------------------------------------------------------------
|
|
45
|
+
// This is the Precompile correlate to the SkColorFilters namespace in the main API
|
|
46
|
+
namespace PrecompileColorFilters {
|
|
47
|
+
|
|
48
|
+
// --- The next 9 entries match those in include/core/SkColorFilter.h
|
|
49
|
+
SK_API sk_sp<PrecompileColorFilter> Compose(SkSpan<const sk_sp<PrecompileColorFilter>> outer,
|
|
50
|
+
SkSpan<const sk_sp<PrecompileColorFilter>> inner);
|
|
51
|
+
|
|
52
|
+
// This encompasses both variants of SkColorFilters::Blend
|
|
53
|
+
SK_API sk_sp<PrecompileColorFilter> Blend(SkSpan<const SkBlendMode> blendModes);
|
|
54
|
+
SK_API sk_sp<PrecompileColorFilter> Blend(); // Prefer the explicit blend mode variant
|
|
55
|
+
|
|
56
|
+
// This encompasses both variants of SkColorFilters::Matrix
|
|
57
|
+
SK_API sk_sp<PrecompileColorFilter> Matrix();
|
|
58
|
+
|
|
59
|
+
// This encompasses both variants of SkColorFilters::HSLAMatrix
|
|
60
|
+
SK_API sk_sp<PrecompileColorFilter> HSLAMatrix();
|
|
61
|
+
|
|
62
|
+
SK_API sk_sp<PrecompileColorFilter> LinearToSRGBGamma();
|
|
63
|
+
SK_API sk_sp<PrecompileColorFilter> SRGBToLinearGamma();
|
|
64
|
+
SK_API sk_sp<PrecompileColorFilter> Lerp(SkSpan<const sk_sp<PrecompileColorFilter>> dstOptions,
|
|
65
|
+
SkSpan<const sk_sp<PrecompileColorFilter>> srcOptions);
|
|
66
|
+
|
|
67
|
+
// This encompases both the SkColorFilters::Table and TableARGB variants
|
|
68
|
+
SK_API sk_sp<PrecompileColorFilter> Table();
|
|
69
|
+
|
|
70
|
+
SK_API sk_sp<PrecompileColorFilter> Lighting();
|
|
71
|
+
|
|
72
|
+
// This matches the main API's factory in include/effects/SkHighContrastFilter.h
|
|
73
|
+
SK_API sk_sp<PrecompileColorFilter> HighContrast();
|
|
74
|
+
|
|
75
|
+
// This matches the main API's factory in include/effects/SkLumaColorFilter.h
|
|
76
|
+
SK_API sk_sp<PrecompileColorFilter> Luma();
|
|
77
|
+
|
|
78
|
+
// This matches the main API's factory in include/effects/SkOverdrawColorFilter.h
|
|
79
|
+
SK_API sk_sp<PrecompileColorFilter> Overdraw();
|
|
80
|
+
|
|
81
|
+
} // namespace PrecompileColorFilters
|
|
82
|
+
|
|
83
|
+
} // namespace skgpu::graphite
|
|
84
|
+
|
|
85
|
+
#endif // skgpu_graphite_precompile_PrecompileColorFilter_DEFINED
|
|
@@ -0,0 +1,119 @@
|
|
|
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 skgpu_graphite_precompile_PrecompileImageFilter_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PrecompileImageFilter_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/gpu/graphite/precompile/PrecompileBase.h"
|
|
12
|
+
|
|
13
|
+
#include "include/core/SkBlendMode.h"
|
|
14
|
+
#include "include/gpu/graphite/precompile/PaintOptions.h"
|
|
15
|
+
#include "include/private/base/SkTemplates.h"
|
|
16
|
+
|
|
17
|
+
namespace skgpu::graphite {
|
|
18
|
+
|
|
19
|
+
class PrecompileBlender;
|
|
20
|
+
class PrecompileColorFilter;
|
|
21
|
+
class PrecompileImageFilterPriv;
|
|
22
|
+
|
|
23
|
+
/** \class PrecompileImageFilter
|
|
24
|
+
This class corresponds to the SkImageFilter class in the main API.
|
|
25
|
+
*/
|
|
26
|
+
class SK_API PrecompileImageFilter : public PrecompileBase {
|
|
27
|
+
public:
|
|
28
|
+
~PrecompileImageFilter() override;
|
|
29
|
+
|
|
30
|
+
// Provides access to functions that aren't part of the public API.
|
|
31
|
+
PrecompileImageFilterPriv priv();
|
|
32
|
+
const PrecompileImageFilterPriv priv() const; // NOLINT(readability-const-return-type)
|
|
33
|
+
|
|
34
|
+
protected:
|
|
35
|
+
PrecompileImageFilter(SkSpan<sk_sp<PrecompileImageFilter>> inputs);
|
|
36
|
+
|
|
37
|
+
private:
|
|
38
|
+
friend class PaintOptions; // for createPipelines() access
|
|
39
|
+
friend class PrecompileImageFilterPriv;
|
|
40
|
+
|
|
41
|
+
int countInputs() const { return fInputs.count(); }
|
|
42
|
+
|
|
43
|
+
const PrecompileImageFilter* getInput(int index) const {
|
|
44
|
+
SkASSERT(index < this->countInputs());
|
|
45
|
+
return fInputs[index].get();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
virtual sk_sp<PrecompileColorFilter> isColorFilterNode() const { return nullptr; }
|
|
49
|
+
|
|
50
|
+
sk_sp<PrecompileColorFilter> asAColorFilter() const;
|
|
51
|
+
|
|
52
|
+
// The PrecompileImageFilter classes do not use the PrecompileBase::addToKey virtual since
|
|
53
|
+
// they, in general, do not themselves contribute to a given SkPaint/Pipeline but, rather,
|
|
54
|
+
// create separate SkPaints/Pipelines from whole cloth (in onCreatePipelines).
|
|
55
|
+
void addToKey(const KeyContext& /* keyContext */,
|
|
56
|
+
PaintParamsKeyBuilder* /* builder */,
|
|
57
|
+
PipelineDataGatherer* /* gatherer */,
|
|
58
|
+
int /* desiredCombination */) const final {
|
|
59
|
+
SkASSERT(false);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
virtual void onCreatePipelines(const KeyContext&,
|
|
63
|
+
PipelineDataGatherer*,
|
|
64
|
+
const PaintOptions::ProcessCombination&) const = 0;
|
|
65
|
+
|
|
66
|
+
void createPipelines(const KeyContext&,
|
|
67
|
+
PipelineDataGatherer*,
|
|
68
|
+
const PaintOptions::ProcessCombination&);
|
|
69
|
+
|
|
70
|
+
skia_private::AutoSTArray<2, sk_sp<PrecompileImageFilter>> fInputs;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
//--------------------------------------------------------------------------------------------------
|
|
74
|
+
// This is the Precompile correlate to the SkImageFilters class' factories in the main API
|
|
75
|
+
//
|
|
76
|
+
// Note: In order to make precompilation analysis more tractable we don't allow options for the
|
|
77
|
+
// internals of an PrecompileImageFilter nor in the structure of the DAG.
|
|
78
|
+
namespace PrecompileImageFilters {
|
|
79
|
+
|
|
80
|
+
// This is the Precompile correlate to SkImageFilters::Arithmetic
|
|
81
|
+
SK_API sk_sp<PrecompileImageFilter> Arithmetic(sk_sp<PrecompileImageFilter> background,
|
|
82
|
+
sk_sp<PrecompileImageFilter> foreground);
|
|
83
|
+
|
|
84
|
+
// This is the Precompile correlate to SkImageFilters::Blend(SkBlendMode, ...)
|
|
85
|
+
SK_API sk_sp<PrecompileImageFilter> Blend(SkBlendMode bm,
|
|
86
|
+
sk_sp<PrecompileImageFilter> background,
|
|
87
|
+
sk_sp<PrecompileImageFilter> foreground);
|
|
88
|
+
|
|
89
|
+
// This is the Precompile correlate to SkImageFilters::Blend(sk_sp<SkBlender>, ...)
|
|
90
|
+
SK_API sk_sp<PrecompileImageFilter> Blend(sk_sp<PrecompileBlender> blender,
|
|
91
|
+
sk_sp<PrecompileImageFilter> background,
|
|
92
|
+
sk_sp<PrecompileImageFilter> foreground);
|
|
93
|
+
|
|
94
|
+
// This is the Precompile correlate to the two SkImageFilters::Blur factories
|
|
95
|
+
SK_API sk_sp<PrecompileImageFilter> Blur(sk_sp<PrecompileImageFilter> input);
|
|
96
|
+
|
|
97
|
+
// This is the Precompile correlate to SkImageFilters::ColorFilter.
|
|
98
|
+
SK_API sk_sp<PrecompileImageFilter> ColorFilter(sk_sp<PrecompileColorFilter> colorFilter,
|
|
99
|
+
sk_sp<PrecompileImageFilter> input);
|
|
100
|
+
|
|
101
|
+
// This is the Precompile correlate to SkImageFilters::DisplacementMap
|
|
102
|
+
SK_API sk_sp<PrecompileImageFilter> DisplacementMap(sk_sp<PrecompileImageFilter> input);
|
|
103
|
+
|
|
104
|
+
// This is the Precompile correlate to all of SkImageFilters::
|
|
105
|
+
// DistantLitDiffuse, PointLitDiffuse, SpotLitDiffuse
|
|
106
|
+
// DistantLitSpecular, PointLitSpecular, SpotLitSpecular
|
|
107
|
+
SK_API sk_sp<PrecompileImageFilter> Lighting(sk_sp<PrecompileImageFilter> input);
|
|
108
|
+
|
|
109
|
+
// This is the Precompile correlate to SkImageFilters::MatrixConvolution
|
|
110
|
+
SK_API sk_sp<PrecompileImageFilter> MatrixConvolution(sk_sp<PrecompileImageFilter> input);
|
|
111
|
+
|
|
112
|
+
// This is the Precompile correlate to SkImageFilters::Erode and SkImageFilters::Dilate
|
|
113
|
+
SK_API sk_sp<PrecompileImageFilter> Morphology(sk_sp<PrecompileImageFilter> input);
|
|
114
|
+
|
|
115
|
+
} // namespace PrecompileImageFilters
|
|
116
|
+
|
|
117
|
+
} // namespace skgpu::graphite
|
|
118
|
+
|
|
119
|
+
#endif // skgpu_graphite_precompile_PrecompileImageFilter_DEFINED
|
|
@@ -0,0 +1,51 @@
|
|
|
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 skgpu_graphite_precompile_PrecompileMaskFilter_DEFINED
|
|
9
|
+
#define skgpu_graphite_precompile_PrecompileMaskFilter_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/gpu/graphite/precompile/PrecompileBase.h"
|
|
12
|
+
|
|
13
|
+
#include "include/gpu/graphite/precompile/PaintOptions.h"
|
|
14
|
+
|
|
15
|
+
namespace skgpu::graphite {
|
|
16
|
+
|
|
17
|
+
/** \class PrecompileMaskFilter
|
|
18
|
+
This class corresponds to the SkMaskFilter class in the main API.
|
|
19
|
+
*/
|
|
20
|
+
class SK_API PrecompileMaskFilter : public PrecompileBase {
|
|
21
|
+
protected:
|
|
22
|
+
friend class PaintOptions; // for createPipelines() access
|
|
23
|
+
|
|
24
|
+
PrecompileMaskFilter() : PrecompileBase(Type::kMaskFilter) {}
|
|
25
|
+
~PrecompileMaskFilter() override;
|
|
26
|
+
|
|
27
|
+
void addToKey(const KeyContext&,
|
|
28
|
+
PaintParamsKeyBuilder*,
|
|
29
|
+
PipelineDataGatherer*,
|
|
30
|
+
int desiredCombination) const final;
|
|
31
|
+
|
|
32
|
+
virtual void createPipelines(const KeyContext&,
|
|
33
|
+
PipelineDataGatherer*,
|
|
34
|
+
const PaintOptions::ProcessCombination&) const = 0;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//--------------------------------------------------------------------------------------------------
|
|
38
|
+
// This is the Precompile correlate to the SkMaskFilter class' factories in the main API
|
|
39
|
+
namespace PrecompileMaskFilters {
|
|
40
|
+
|
|
41
|
+
// This corresponds to the SkMaskFilter::MakeBlur factory in the main Skia API.
|
|
42
|
+
// The specific details of the blur have been elided since they don't impact the generated
|
|
43
|
+
// shader.
|
|
44
|
+
SK_API sk_sp<PrecompileMaskFilter> Blur();
|
|
45
|
+
|
|
46
|
+
} // namespace PrecompileMaskFilters
|
|
47
|
+
|
|
48
|
+
} // namespace skgpu::graphite
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
#endif // skgpu_graphite_precompile_PrecompileMaskFilter_DEFINED
|