@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
|
@@ -59,15 +59,40 @@ public:
|
|
|
59
59
|
/** Returns true if there is work that was submitted to the GPU that has not finished. */
|
|
60
60
|
bool hasUnfinishedGpuWork() const;
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
/** Makes image pixel data available to caller, possibly asynchronously. It can also rescale
|
|
63
|
+
the image pixels.
|
|
64
|
+
|
|
65
|
+
Data is read from the source sub-rectangle, is optionally converted to a linear gamma, is
|
|
66
|
+
rescaled to the size indicated by 'dstImageInfo', is then converted to the color space,
|
|
67
|
+
color type, and alpha type of 'dstImageInfo'. A 'srcRect' that is not contained by the
|
|
68
|
+
bounds of the image causes failure.
|
|
69
|
+
|
|
70
|
+
When the pixel data is ready the caller's ReadPixelsCallback is called with a
|
|
71
|
+
AsyncReadResult containing pixel data in the requested color type, alpha type, and color
|
|
72
|
+
space. The AsyncReadResult will have count() == 1. Upon failure the callback is called with
|
|
73
|
+
nullptr for AsyncReadResult. The callback can be triggered, for example, with a call to
|
|
74
|
+
Context::submit(SyncToCpu::kYes).
|
|
75
|
+
|
|
76
|
+
The data is valid for the lifetime of AsyncReadResult with the exception that the data is
|
|
77
|
+
immediately invalidated if the Graphite context is abandoned or destroyed.
|
|
78
|
+
|
|
79
|
+
@param src Graphite-backed image or surface to read the data from.
|
|
80
|
+
@param dstImageInfo info of the requested pixels
|
|
81
|
+
@param srcRect subrectangle of image to read
|
|
82
|
+
@param rescaleGamma controls whether rescaling is done in the image's gamma or whether
|
|
83
|
+
the source data is transformed to a linear gamma before rescaling.
|
|
84
|
+
@param rescaleMode controls the technique (and cost) of the rescaling
|
|
85
|
+
@param callback function to call with result of the read
|
|
86
|
+
@param context passed to callback
|
|
87
|
+
*/
|
|
88
|
+
void asyncRescaleAndReadPixels(const SkImage* src,
|
|
63
89
|
const SkImageInfo& dstImageInfo,
|
|
64
90
|
const SkIRect& srcRect,
|
|
65
91
|
SkImage::RescaleGamma rescaleGamma,
|
|
66
92
|
SkImage::RescaleMode rescaleMode,
|
|
67
93
|
SkImage::ReadPixelsCallback callback,
|
|
68
94
|
SkImage::ReadPixelsContext context);
|
|
69
|
-
|
|
70
|
-
void asyncRescaleAndReadPixels(const SkSurface* surface,
|
|
95
|
+
void asyncRescaleAndReadPixels(const SkSurface* src,
|
|
71
96
|
const SkImageInfo& dstImageInfo,
|
|
72
97
|
const SkIRect& srcRect,
|
|
73
98
|
SkImage::RescaleGamma rescaleGamma,
|
|
@@ -75,7 +100,35 @@ public:
|
|
|
75
100
|
SkImage::ReadPixelsCallback callback,
|
|
76
101
|
SkImage::ReadPixelsContext context);
|
|
77
102
|
|
|
78
|
-
|
|
103
|
+
/**
|
|
104
|
+
Similar to asyncRescaleAndReadPixels but performs an additional conversion to YUV. The
|
|
105
|
+
RGB->YUV conversion is controlled by 'yuvColorSpace'. The YUV data is returned as three
|
|
106
|
+
planes ordered y, u, v. The u and v planes are half the width and height of the resized
|
|
107
|
+
rectangle. The y, u, and v values are single bytes. Currently this fails if 'dstSize'
|
|
108
|
+
width and height are not even. A 'srcRect' that is not contained by the bounds of the
|
|
109
|
+
surface causes failure.
|
|
110
|
+
|
|
111
|
+
When the pixel data is ready the caller's ReadPixelsCallback is called with a
|
|
112
|
+
AsyncReadResult containing the planar data. The AsyncReadResult will have count() == 3.
|
|
113
|
+
Upon failure the callback is called with nullptr for AsyncReadResult. The callback can
|
|
114
|
+
be triggered, for example, with a call to Context::submit(SyncToCpu::kYes).
|
|
115
|
+
|
|
116
|
+
The data is valid for the lifetime of AsyncReadResult with the exception that the data
|
|
117
|
+
is immediately invalidated if the context is abandoned or destroyed.
|
|
118
|
+
|
|
119
|
+
@param src Graphite-backed image or surface to read the data from.
|
|
120
|
+
@param yuvColorSpace The transformation from RGB to YUV. Applied to the resized image
|
|
121
|
+
after it is converted to dstColorSpace.
|
|
122
|
+
@param dstColorSpace The color space to convert the resized image to, after rescaling.
|
|
123
|
+
@param srcRect The portion of the surface to rescale and convert to YUV planes.
|
|
124
|
+
@param dstSize The size to rescale srcRect to
|
|
125
|
+
@param rescaleGamma controls whether rescaling is done in the surface's gamma or whether
|
|
126
|
+
the source data is transformed to a linear gamma before rescaling.
|
|
127
|
+
@param rescaleMode controls the sampling technique of the rescaling
|
|
128
|
+
@param callback function to call with the planar read result
|
|
129
|
+
@param context passed to callback
|
|
130
|
+
*/
|
|
131
|
+
void asyncRescaleAndReadPixelsYUV420(const SkImage* src,
|
|
79
132
|
SkYUVColorSpace yuvColorSpace,
|
|
80
133
|
sk_sp<SkColorSpace> dstColorSpace,
|
|
81
134
|
const SkIRect& srcRect,
|
|
@@ -84,8 +137,7 @@ public:
|
|
|
84
137
|
SkImage::RescaleMode rescaleMode,
|
|
85
138
|
SkImage::ReadPixelsCallback callback,
|
|
86
139
|
SkImage::ReadPixelsContext context);
|
|
87
|
-
|
|
88
|
-
void asyncRescaleAndReadPixelsYUV420(const SkSurface*,
|
|
140
|
+
void asyncRescaleAndReadPixelsYUV420(const SkSurface* src,
|
|
89
141
|
SkYUVColorSpace yuvColorSpace,
|
|
90
142
|
sk_sp<SkColorSpace> dstColorSpace,
|
|
91
143
|
const SkIRect& srcRect,
|
|
@@ -95,7 +147,12 @@ public:
|
|
|
95
147
|
SkImage::ReadPixelsCallback callback,
|
|
96
148
|
SkImage::ReadPixelsContext context);
|
|
97
149
|
|
|
98
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Identical to asyncRescaleAndReadPixelsYUV420 but a fourth plane is returned in the
|
|
152
|
+
* AsyncReadResult passed to 'callback'. The fourth plane contains the alpha chanel at the
|
|
153
|
+
* same full resolution as the Y plane.
|
|
154
|
+
*/
|
|
155
|
+
void asyncRescaleAndReadPixelsYUVA420(const SkImage* src,
|
|
99
156
|
SkYUVColorSpace yuvColorSpace,
|
|
100
157
|
sk_sp<SkColorSpace> dstColorSpace,
|
|
101
158
|
const SkIRect& srcRect,
|
|
@@ -104,8 +161,7 @@ public:
|
|
|
104
161
|
SkImage::RescaleMode rescaleMode,
|
|
105
162
|
SkImage::ReadPixelsCallback callback,
|
|
106
163
|
SkImage::ReadPixelsContext context);
|
|
107
|
-
|
|
108
|
-
void asyncRescaleAndReadPixelsYUVA420(const SkSurface*,
|
|
164
|
+
void asyncRescaleAndReadPixelsYUVA420(const SkSurface* src,
|
|
109
165
|
SkYUVColorSpace yuvColorSpace,
|
|
110
166
|
sk_sp<SkColorSpace> dstColorSpace,
|
|
111
167
|
const SkIRect& srcRect,
|
|
@@ -147,10 +203,21 @@ public:
|
|
|
147
203
|
void performDeferredCleanup(std::chrono::milliseconds msNotUsed);
|
|
148
204
|
|
|
149
205
|
/**
|
|
150
|
-
* Returns the number of bytes of gpu memory
|
|
206
|
+
* Returns the number of bytes of the Context's gpu memory cache budget that are currently in
|
|
207
|
+
* use.
|
|
151
208
|
*/
|
|
152
209
|
size_t currentBudgetedBytes() const;
|
|
153
210
|
|
|
211
|
+
/**
|
|
212
|
+
* Returns the number of bytes of the Context's resource cache that are currently purgeable.
|
|
213
|
+
*/
|
|
214
|
+
size_t currentPurgeableBytes() const;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Returns the size of Context's gpu memory cache budget in bytes.
|
|
218
|
+
*/
|
|
219
|
+
size_t maxBudgetedBytes() const;
|
|
220
|
+
|
|
154
221
|
/**
|
|
155
222
|
* Enumerates all cached GPU resources owned by the Context and dumps their memory to
|
|
156
223
|
* traceMemoryDump.
|
|
@@ -163,6 +230,11 @@ public:
|
|
|
163
230
|
*/
|
|
164
231
|
bool isDeviceLost() const;
|
|
165
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Returns the maximum texture dimension supported by the underlying backend.
|
|
235
|
+
*/
|
|
236
|
+
int maxTextureSize() const;
|
|
237
|
+
|
|
166
238
|
/*
|
|
167
239
|
* Does this context support protected content?
|
|
168
240
|
*/
|
|
@@ -219,42 +291,48 @@ private:
|
|
|
219
291
|
// require Context::Make() to return a nullptr.
|
|
220
292
|
bool finishInitialization();
|
|
221
293
|
|
|
222
|
-
void
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const SkImageInfo& srcImageInfo,
|
|
294
|
+
void checkForFinishedWork(SyncToCpu);
|
|
295
|
+
|
|
296
|
+
std::unique_ptr<Recorder> makeInternalRecorder() const;
|
|
297
|
+
|
|
298
|
+
template <typename SrcPixels> struct AsyncParams;
|
|
299
|
+
|
|
300
|
+
template <typename ReadFn, typename... ExtraArgs>
|
|
301
|
+
void asyncRescaleAndReadImpl(ReadFn Context::* asyncRead,
|
|
302
|
+
SkImage::RescaleGamma rescaleGamma,
|
|
303
|
+
SkImage::RescaleMode rescaleMode,
|
|
304
|
+
const AsyncParams<SkImage>&,
|
|
305
|
+
ExtraArgs...);
|
|
306
|
+
|
|
307
|
+
// Recorder is optional and will be used if drawing operations are required. If no Recorder is
|
|
308
|
+
// provided but drawing operations are needed, a new Recorder will be created automatically.
|
|
309
|
+
void asyncReadPixels(std::unique_ptr<Recorder>, const AsyncParams<SkImage>&);
|
|
310
|
+
void asyncReadPixelsYUV420(std::unique_ptr<Recorder>,
|
|
311
|
+
const AsyncParams<SkImage>&,
|
|
312
|
+
SkYUVColorSpace);
|
|
313
|
+
|
|
314
|
+
// Like asyncReadPixels() except it performs no fallbacks, and requires that the texture be
|
|
315
|
+
// readable. However, the texture does not need to be sampleable.
|
|
316
|
+
void asyncReadTexture(std::unique_ptr<Recorder>,
|
|
317
|
+
const AsyncParams<TextureProxy>&,
|
|
318
|
+
const SkColorInfo& srcColorInfo);
|
|
319
|
+
|
|
320
|
+
// Inserts a texture to buffer transfer task, used by asyncReadPixels methods. If the
|
|
321
|
+
// Recorder is non-null, tasks will be added to the Recorder's list; otherwise the transfer
|
|
322
|
+
// tasks will be added to the queue manager directly.
|
|
323
|
+
PixelTransferResult transferPixels(Recorder*,
|
|
324
|
+
const TextureProxy* srcProxy,
|
|
325
|
+
const SkColorInfo& srcColorInfo,
|
|
255
326
|
const SkColorInfo& dstColorInfo,
|
|
256
327
|
const SkIRect& srcRect);
|
|
257
328
|
|
|
329
|
+
// If the recorder is non-null, it will be snapped and inserted with the assumption that the
|
|
330
|
+
// copy tasks (and possibly preparatory draw tasks) have already been added to the Recording.
|
|
331
|
+
void finalizeAsyncReadPixels(std::unique_ptr<Recorder>,
|
|
332
|
+
SkSpan<PixelTransferResult>,
|
|
333
|
+
SkImage::ReadPixelsCallback callback,
|
|
334
|
+
SkImage::ReadPixelsContext callbackContext);
|
|
335
|
+
|
|
258
336
|
sk_sp<SharedContext> fSharedContext;
|
|
259
337
|
std::unique_ptr<ResourceProvider> fResourceProvider;
|
|
260
338
|
std::unique_ptr<QueueManager> fQueueManager;
|
|
@@ -264,7 +342,7 @@ private:
|
|
|
264
342
|
// ResourceCache for the Context.
|
|
265
343
|
mutable SingleOwner fSingleOwner;
|
|
266
344
|
|
|
267
|
-
#if defined(
|
|
345
|
+
#if defined(GPU_TEST_UTILS)
|
|
268
346
|
// In test builds a Recorder may track the Context that was used to create it.
|
|
269
347
|
bool fStoreContextRefInRecorder = false;
|
|
270
348
|
// If this tracking is on, to allow the client to safely delete this Context or its Recorders
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
#include "include/private/base/SkAPI.h"
|
|
12
12
|
#include "include/private/base/SkMath.h"
|
|
13
13
|
|
|
14
|
+
#include <optional>
|
|
15
|
+
|
|
14
16
|
namespace skgpu { class ShaderErrorHandler; }
|
|
15
17
|
|
|
16
18
|
namespace skgpu::graphite {
|
|
@@ -71,10 +73,15 @@ struct SK_API ContextOptions {
|
|
|
71
73
|
#endif
|
|
72
74
|
|
|
73
75
|
/**
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
+
* The maximum size of textures used for Skia's PathAtlas caches.
|
|
77
|
+
*/
|
|
78
|
+
int fMaxPathAtlasTextureSize = 8192; // oversized, PathAtlas will likely be smaller
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Can the glyph and path atlases use multiple textures. If allowed, each texture's size is
|
|
82
|
+
* bound by fGlyphCacheTextureMaximumBytes and fMaxPathAtlasTextureSize, respectively.
|
|
76
83
|
*/
|
|
77
|
-
bool
|
|
84
|
+
bool fAllowMultipleAtlasTextures = true;
|
|
78
85
|
bool fSupportBilerpFromGlyphAtlas = false;
|
|
79
86
|
|
|
80
87
|
/**
|
|
@@ -91,6 +98,26 @@ struct SK_API ContextOptions {
|
|
|
91
98
|
*/
|
|
92
99
|
size_t fGpuBudgetInBytes = kDefaultContextBudget;
|
|
93
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Whether labels will be set on backend resources.
|
|
103
|
+
*/
|
|
104
|
+
#if defined(SK_DEBUG)
|
|
105
|
+
bool fSetBackendLabels = true;
|
|
106
|
+
#else
|
|
107
|
+
bool fSetBackendLabels = false;
|
|
108
|
+
#endif
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* If Skia is creating a default VMA allocator for the Vulkan backend this value will be used
|
|
112
|
+
* for the preferredLargeHeapBlockSize. If the value is not set, then Skia will use an
|
|
113
|
+
* inernally defined default size.
|
|
114
|
+
*
|
|
115
|
+
* However, it is highly discouraged to have Skia make a default allocator (and support for
|
|
116
|
+
* doing so will be removed soon, b/321962001). Instead clients should create their own
|
|
117
|
+
* allocator to pass into Skia where they can fine tune this value themeselves.
|
|
118
|
+
*/
|
|
119
|
+
std::optional<uint64_t> fVulkanVMALargeHeapBlockSize;
|
|
120
|
+
|
|
94
121
|
/**
|
|
95
122
|
* Private options that are only meant for testing within Skia's tools.
|
|
96
123
|
*/
|
|
@@ -103,25 +103,53 @@ enum class Volatile : bool {
|
|
|
103
103
|
kYes = true // fulfilled on every insertion call
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
* Graphite's different rendering methods each only apply to certain types of draws. This
|
|
108
|
-
* enum supports decision-making regarding the different renderers and what is being drawn.
|
|
109
|
-
*/
|
|
110
|
-
enum DrawTypeFlags : uint8_t {
|
|
111
|
-
|
|
106
|
+
enum class DepthStencilFlags : int {
|
|
112
107
|
kNone = 0b000,
|
|
108
|
+
kDepth = 0b001,
|
|
109
|
+
kStencil = 0b010,
|
|
110
|
+
kDepthStencil = kDepth | kStencil,
|
|
111
|
+
};
|
|
113
112
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
113
|
+
/*
|
|
114
|
+
* This enum allows mapping from a set of observed RenderSteps (e.g., from a GraphicsPipeline
|
|
115
|
+
* printout) to the correct 'drawTypes' parameter needed by the Precompilation API.
|
|
116
|
+
*/
|
|
117
|
+
enum DrawTypeFlags : uint16_t {
|
|
118
|
+
|
|
119
|
+
kNone = 0b000000000,
|
|
120
|
+
|
|
121
|
+
// kBitmapText_Mask should be used for the BitmapTextRenderStep[mask] RenderStep
|
|
122
|
+
kBitmapText_Mask = 0b00000001,
|
|
123
|
+
// kBitmapText_LCD should be used for the BitmapTextRenderStep[LCD] RenderStep
|
|
124
|
+
kBitmapText_LCD = 0b00000010,
|
|
125
|
+
// kBitmapText_Color should be used for the BitmapTextRenderStep[color] RenderStep
|
|
126
|
+
kBitmapText_Color = 0b00000100,
|
|
127
|
+
// kSDFText should be used for the SDFTextRenderStep RenderStep
|
|
128
|
+
kSDFText = 0b00001000,
|
|
129
|
+
// kSDFText_LCD should be used for the SDFTextLCDRenderStep RenderStep
|
|
130
|
+
kSDFText_LCD = 0b00010000,
|
|
131
|
+
|
|
132
|
+
// kDrawVertices should be used to generate Pipelines that use the following RenderSteps:
|
|
133
|
+
// VerticesRenderStep[*] for:
|
|
134
|
+
// [tris], [tris-texCoords], [tris-color], [tris-color-texCoords],
|
|
135
|
+
// [tristrips], [tristrips-texCoords], [tristrips-color], [tristrips-color-texCoords]
|
|
136
|
+
kDrawVertices = 0b00100000,
|
|
137
|
+
|
|
138
|
+
// kSimpleShape should be used to generate Pipelines that use the following RenderSteps:
|
|
139
|
+
// AnalyticBlurRenderStep
|
|
140
|
+
// AnalyticRRectRenderStep
|
|
141
|
+
// PerEdgeAAQuadRenderStep
|
|
142
|
+
// CoverBoundsRenderStep[non-aa-fill]
|
|
143
|
+
kSimpleShape = 0b01000000,
|
|
144
|
+
|
|
145
|
+
// kNonSimpleShape should be used to generate Pipelines that use the following RenderSteps:
|
|
146
|
+
// CoverageMaskRenderStep
|
|
147
|
+
// CoverBoundsRenderStep[*] for [inverse-cover], [regular-cover]
|
|
148
|
+
// TessellateStrokeRenderStep
|
|
149
|
+
// TessellateWedgesRenderStep[*] for [convex], [evenodd], [winding]
|
|
150
|
+
// TessellateCurvesRenderStep[*] for [even-odd], [winding]
|
|
151
|
+
// MiddleOutFanRenderStep[*] for [even-odd], [winding]
|
|
152
|
+
kNonSimpleShape = 0b10000000,
|
|
125
153
|
};
|
|
126
154
|
|
|
127
155
|
} // namespace skgpu::graphite
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
#include "include/core/SkSpan.h"
|
|
15
15
|
#include "include/gpu/GpuTypes.h"
|
|
16
16
|
|
|
17
|
+
#include <string_view>
|
|
18
|
+
|
|
17
19
|
class SkYUVAInfo;
|
|
18
20
|
class SkYUVAPixmaps;
|
|
19
21
|
struct SkIRect;
|
|
@@ -28,21 +30,21 @@ namespace skgpu::graphite {
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
namespace SkImages {
|
|
33
|
+
enum class GenerateMipmapsFromBase : bool { kNo, kYes };
|
|
34
|
+
|
|
31
35
|
using TextureReleaseProc = void (*)(ReleaseContext);
|
|
32
36
|
|
|
33
|
-
// Passed to
|
|
37
|
+
// Passed to imageRelease
|
|
34
38
|
using GraphitePromiseImageContext = void*;
|
|
35
|
-
// Passed to YUVA fulfill
|
|
36
|
-
|
|
39
|
+
// Passed to fulfill; for non-YUVA promise images, the image context is used as the fulfill context,
|
|
40
|
+
// while YUVA promise images have a per-plane fulfill context.
|
|
41
|
+
using GraphitePromiseTextureFulfillContext = void*;
|
|
37
42
|
// Returned from fulfill and passed into textureRelease
|
|
38
43
|
using GraphitePromiseTextureReleaseContext = void*;
|
|
39
44
|
|
|
40
|
-
using
|
|
45
|
+
using GraphitePromiseTextureFulfillProc =
|
|
41
46
|
std::tuple<skgpu::graphite::BackendTexture, GraphitePromiseTextureReleaseContext> (*)(
|
|
42
|
-
|
|
43
|
-
using GraphitePromiseImageYUVAFulfillProc =
|
|
44
|
-
std::tuple<skgpu::graphite::BackendTexture, GraphitePromiseTextureReleaseContext> (*)(
|
|
45
|
-
GraphitePromiseTextureContext);
|
|
47
|
+
GraphitePromiseTextureFulfillContext);
|
|
46
48
|
using GraphitePromiseImageReleaseProc = void (*)(GraphitePromiseImageContext);
|
|
47
49
|
using GraphitePromiseTextureReleaseProc = void (*)(GraphitePromiseTextureReleaseContext);
|
|
48
50
|
|
|
@@ -52,18 +54,24 @@ using GraphitePromiseTextureReleaseProc = void (*)(GraphitePromiseTextureRelease
|
|
|
52
54
|
SkImage is returned if the format of backendTexture is recognized and supported.
|
|
53
55
|
Recognized formats vary by GPU back-end.
|
|
54
56
|
|
|
55
|
-
@param recorder
|
|
56
|
-
@param backendTexture
|
|
57
|
-
@param colorSpace
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
@param origin
|
|
65
|
-
|
|
66
|
-
@
|
|
57
|
+
@param recorder The recorder
|
|
58
|
+
@param backendTexture texture residing on GPU
|
|
59
|
+
@param colorSpace This describes the color space of this image's contents, as
|
|
60
|
+
seen after sampling. In general, if the format of the backend
|
|
61
|
+
texture is SRGB, some linear colorSpace should be supplied
|
|
62
|
+
(e.g., SkColorSpace::MakeSRGBLinear()). If the format of the
|
|
63
|
+
backend texture is linear, then the colorSpace should include
|
|
64
|
+
a description of the transfer function as
|
|
65
|
+
well (e.g., SkColorSpace::MakeSRGB()).
|
|
66
|
+
@param origin Whether the Texture logically treats the origin as TopLeft or
|
|
67
|
+
BottomLeft
|
|
68
|
+
@param generateMipmapsFromBase If kYes then the pixel contents of the textures upper mipmap
|
|
69
|
+
levels are generated by successive downsampling of the base
|
|
70
|
+
level. If the texture is not mipmapped or isn't renderable then
|
|
71
|
+
image creation will fail. If kNo and the texture is mipmapped
|
|
72
|
+
then the contents of upper levels are assumed to already be
|
|
73
|
+
valid.
|
|
74
|
+
@return created SkImage, or nullptr
|
|
67
75
|
*/
|
|
68
76
|
SK_API sk_sp<SkImage> WrapTexture(skgpu::graphite::Recorder*,
|
|
69
77
|
const skgpu::graphite::BackendTexture&,
|
|
@@ -71,39 +79,29 @@ SK_API sk_sp<SkImage> WrapTexture(skgpu::graphite::Recorder*,
|
|
|
71
79
|
SkAlphaType alphaType,
|
|
72
80
|
sk_sp<SkColorSpace> colorSpace,
|
|
73
81
|
skgpu::Origin origin,
|
|
82
|
+
GenerateMipmapsFromBase generateMipmapsFromBase,
|
|
74
83
|
TextureReleaseProc = nullptr,
|
|
75
|
-
ReleaseContext = nullptr
|
|
84
|
+
ReleaseContext = nullptr,
|
|
85
|
+
std::string_view label = {});
|
|
76
86
|
|
|
77
87
|
SK_API sk_sp<SkImage> WrapTexture(skgpu::graphite::Recorder*,
|
|
78
88
|
const skgpu::graphite::BackendTexture&,
|
|
79
89
|
SkColorType colorType,
|
|
80
90
|
SkAlphaType alphaType,
|
|
81
91
|
sk_sp<SkColorSpace> colorSpace,
|
|
92
|
+
skgpu::Origin origin,
|
|
82
93
|
TextureReleaseProc = nullptr,
|
|
83
|
-
ReleaseContext = nullptr
|
|
84
|
-
|
|
85
|
-
#if !defined(SK_DISABLE_LEGACY_GRAPHITE_IMAGES)
|
|
86
|
-
inline sk_sp<SkImage> AdoptTextureFrom(skgpu::graphite::Recorder* recorder,
|
|
87
|
-
const skgpu::graphite::BackendTexture& tex,
|
|
88
|
-
SkColorType colorType,
|
|
89
|
-
SkAlphaType alphaType,
|
|
90
|
-
sk_sp<SkColorSpace> colorSpace,
|
|
91
|
-
skgpu::Origin origin,
|
|
92
|
-
TextureReleaseProc trProc = nullptr,
|
|
93
|
-
ReleaseContext ctx = nullptr) {
|
|
94
|
-
return WrapTexture(recorder, tex, colorType, alphaType, colorSpace, origin, trProc, ctx);
|
|
95
|
-
}
|
|
94
|
+
ReleaseContext = nullptr,
|
|
95
|
+
std::string_view label = {});
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
#endif
|
|
97
|
+
SK_API sk_sp<SkImage> WrapTexture(skgpu::graphite::Recorder*,
|
|
98
|
+
const skgpu::graphite::BackendTexture&,
|
|
99
|
+
SkColorType colorType,
|
|
100
|
+
SkAlphaType alphaType,
|
|
101
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
102
|
+
TextureReleaseProc = nullptr,
|
|
103
|
+
ReleaseContext = nullptr,
|
|
104
|
+
std::string_view label = {});
|
|
107
105
|
|
|
108
106
|
/** Create a new SkImage that is very similar to an SkImage created by WrapTexture. The difference
|
|
109
107
|
is that the caller need not have created the backend texture nor populated it with data when
|
|
@@ -156,17 +154,18 @@ SK_API sk_sp<SkImage> PromiseTextureFrom(skgpu::graphite::Recorder*,
|
|
|
156
154
|
const SkColorInfo&,
|
|
157
155
|
skgpu::Origin origin,
|
|
158
156
|
skgpu::graphite::Volatile,
|
|
159
|
-
|
|
157
|
+
GraphitePromiseTextureFulfillProc,
|
|
160
158
|
GraphitePromiseImageReleaseProc,
|
|
161
159
|
GraphitePromiseTextureReleaseProc,
|
|
162
|
-
GraphitePromiseImageContext
|
|
160
|
+
GraphitePromiseImageContext,
|
|
161
|
+
std::string_view label = {});
|
|
163
162
|
|
|
164
163
|
SK_API sk_sp<SkImage> PromiseTextureFrom(skgpu::graphite::Recorder*,
|
|
165
164
|
SkISize dimensions,
|
|
166
165
|
const skgpu::graphite::TextureInfo&,
|
|
167
166
|
const SkColorInfo&,
|
|
168
167
|
skgpu::graphite::Volatile,
|
|
169
|
-
|
|
168
|
+
GraphitePromiseTextureFulfillProc,
|
|
170
169
|
GraphitePromiseImageReleaseProc,
|
|
171
170
|
GraphitePromiseTextureReleaseProc,
|
|
172
171
|
GraphitePromiseImageContext);
|
|
@@ -176,8 +175,8 @@ SK_API sk_sp<SkImage> PromiseTextureFrom(skgpu::graphite::Recorder*,
|
|
|
176
175
|
and A are all in different planes and thus the image is specified by four textures.
|
|
177
176
|
'backendTextureInfo' describes the planar arrangement, texture formats, and conversion to RGB.
|
|
178
177
|
Separate 'fulfill' and 'textureRelease' calls are made for each texture. Each texture has its
|
|
179
|
-
own
|
|
180
|
-
failure. '
|
|
178
|
+
own GraphitePromiseFulfillContext. The GraphitePromiseImageReleaseProc will be made even on
|
|
179
|
+
failure. 'planeContexts' has one entry for each of the up to four textures, as indicated by
|
|
181
180
|
'backendTextureInfo'. Currently the mipmapped property of 'backendTextureInfo' is ignored.
|
|
182
181
|
However, in the near future it will be required that if it is kYes then the fulfillProc must
|
|
183
182
|
return a mip mapped texture for each plane in order to successfully draw the image.
|
|
@@ -192,18 +191,19 @@ SK_API sk_sp<SkImage> PromiseTextureFrom(skgpu::graphite::Recorder*,
|
|
|
192
191
|
@param imageRelease function called when any image-centric data can be deleted
|
|
193
192
|
@param textureRelease function called when the backend texture can be deleted
|
|
194
193
|
@param imageContext state passed to imageRelease
|
|
195
|
-
@param
|
|
194
|
+
@param planeContexts states passed to fulfill for each plane
|
|
196
195
|
@return created SkImage, or nullptr
|
|
197
196
|
*/
|
|
198
197
|
SK_API sk_sp<SkImage> PromiseTextureFromYUVA(skgpu::graphite::Recorder*,
|
|
199
198
|
const skgpu::graphite::YUVABackendTextureInfo&,
|
|
200
199
|
sk_sp<SkColorSpace> imageColorSpace,
|
|
201
200
|
skgpu::graphite::Volatile,
|
|
202
|
-
|
|
201
|
+
GraphitePromiseTextureFulfillProc,
|
|
203
202
|
GraphitePromiseImageReleaseProc,
|
|
204
203
|
GraphitePromiseTextureReleaseProc,
|
|
205
204
|
GraphitePromiseImageContext imageContext,
|
|
206
|
-
|
|
205
|
+
GraphitePromiseTextureFulfillContext planeContexts[],
|
|
206
|
+
std::string_view label = {});
|
|
207
207
|
|
|
208
208
|
|
|
209
209
|
/** Returns an SkImage backed by a Graphite texture, using the provided Recorder for creation and
|
|
@@ -259,7 +259,8 @@ SK_API sk_sp<SkImage> TextureFromYUVAPixmaps(skgpu::graphite::Recorder*,
|
|
|
259
259
|
const SkYUVAPixmaps& pixmaps,
|
|
260
260
|
SkImage::RequiredProperties = {},
|
|
261
261
|
bool limitToMaxTextureSize = false,
|
|
262
|
-
sk_sp<SkColorSpace> imgColorSpace = nullptr
|
|
262
|
+
sk_sp<SkColorSpace> imgColorSpace = nullptr,
|
|
263
|
+
std::string_view label = {});
|
|
263
264
|
|
|
264
265
|
/** Creates an SkImage from YUV[A] planar textures associated with the recorder.
|
|
265
266
|
@param recorder The recorder.
|
|
@@ -276,7 +277,8 @@ SK_API sk_sp<SkImage> TextureFromYUVATextures(
|
|
|
276
277
|
const skgpu::graphite::YUVABackendTextures& yuvaBackendTextures,
|
|
277
278
|
sk_sp<SkColorSpace> imageColorSpace,
|
|
278
279
|
TextureReleaseProc = nullptr,
|
|
279
|
-
ReleaseContext = nullptr
|
|
280
|
+
ReleaseContext = nullptr,
|
|
281
|
+
std::string_view label = {});
|
|
280
282
|
|
|
281
283
|
/** Creates an SkImage from YUV[A] planar SkImages associated with the recorder.
|
|
282
284
|
|