@shopify/react-native-skia 1.3.13 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +9 -4
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkPath.h +29 -19
- package/cpp/api/JsiSkRuntimeEffect.h +7 -0
- package/cpp/api/JsiSkiaContext.h +79 -0
- package/cpp/rnskia/RNSkPlatformContext.h +4 -0
- package/cpp/rnskia/SkiaContext.h +22 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
- package/cpp/skia/include/android/SkImageAndroid.h +1 -1
- package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
- package/cpp/skia/include/codec/SkCodec.h +28 -5
- package/cpp/skia/include/core/SkArc.h +69 -0
- package/cpp/skia/include/core/SkBitmap.h +10 -0
- package/cpp/skia/include/core/SkBlender.h +2 -3
- package/cpp/skia/include/core/SkCanvas.h +86 -16
- package/cpp/skia/include/core/SkCapabilities.h +0 -4
- package/cpp/skia/include/core/SkColorFilter.h +4 -4
- package/cpp/skia/include/core/SkColorPriv.h +5 -7
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkFlattenable.h +1 -1
- package/cpp/skia/include/core/SkFontArguments.h +3 -1
- package/cpp/skia/include/core/SkFontParameters.h +3 -2
- package/cpp/skia/include/core/SkFourByteTag.h +19 -0
- package/cpp/skia/include/core/SkImage.h +41 -1
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkImageInfo.h +20 -0
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMatrix.h +2 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +20 -6
- package/cpp/skia/include/core/SkPathMeasure.h +1 -0
- package/cpp/skia/include/core/SkPicture.h +5 -5
- package/cpp/skia/include/core/SkPoint3.h +2 -12
- package/cpp/skia/include/core/SkRRect.h +5 -0
- package/cpp/skia/include/core/SkRect.h +5 -16
- package/cpp/skia/include/core/SkRefCnt.h +2 -0
- package/cpp/skia/include/core/SkScalar.h +20 -32
- package/cpp/skia/include/core/SkShader.h +17 -0
- package/cpp/skia/include/core/SkSize.h +2 -1
- package/cpp/skia/include/core/SkStream.h +2 -3
- package/cpp/skia/include/core/SkStrokeRec.h +6 -1
- package/cpp/skia/include/core/SkSurface.h +13 -4
- package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
- package/cpp/skia/include/core/SkSwizzle.h +3 -1
- package/cpp/skia/include/core/SkTypeface.h +1 -0
- package/cpp/skia/include/core/SkTypes.h +1 -19
- package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
- package/cpp/skia/include/core/SkVertices.h +4 -2
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
- package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
- package/cpp/skia/include/effects/SkImageFilters.h +49 -23
- package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
- package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
- package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
- package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
- package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
- package/cpp/skia/include/gpu/GrTypes.h +2 -238
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
- package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
- package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
- package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
- package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
- package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
- package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
- package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
- package/cpp/skia/include/gpu/graphite/Context.h +122 -44
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
- package/cpp/skia/include/gpu/graphite/Image.h +56 -54
- package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
- package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
- package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
- package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
- package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
- package/cpp/skia/include/private/SkExif.h +28 -75
- package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
- package/cpp/skia/include/private/SkPathRef.h +52 -44
- package/cpp/skia/include/private/SkXmp.h +13 -4
- package/cpp/skia/include/private/base/SkASAN.h +56 -0
- package/cpp/skia/include/private/base/SkAlign.h +5 -0
- package/cpp/skia/include/private/base/SkContainers.h +10 -2
- package/cpp/skia/include/private/base/SkFeatures.h +22 -1
- package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
- package/cpp/skia/include/private/base/SkMacros.h +67 -0
- package/cpp/skia/include/private/base/SkMalloc.h +8 -0
- package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
- package/cpp/skia/include/private/base/SkTArray.h +108 -23
- package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
- package/cpp/skia/include/private/chromium/Slug.h +5 -11
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
- package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
- package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
- package/cpp/skia/include/utils/SkParse.h +0 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
- package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
- package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
- package/cpp/skia/src/base/SkMathPriv.h +337 -0
- package/cpp/skia/src/base/SkTLazy.h +208 -0
- package/cpp/skia/src/core/SkTHash.h +58 -7
- package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +6 -1
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +4 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
- package/lib/commonjs/web/WithSkiaWeb.js +3 -2
- package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +6 -1
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +4 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/web/WithSkiaWeb.d.ts +11 -4
- package/lib/module/web/WithSkiaWeb.js +3 -2
- package/lib/module/web/WithSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
- package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode_core.a +0 -0
- package/libs/android/x86/libskunicode_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode_core.a +0 -0
- package/libs/android/x86_64/libskunicode_icu.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -5
- package/react-native-skia.podspec +2 -1
- package/src/renderer/HostConfig.ts +5 -1
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
- package/src/skia/types/Paragraph/TextStyle.ts +2 -2
- package/src/skia/types/Skia.ts +7 -1
- package/src/skia/web/JsiSkia.ts +3 -0
- package/src/web/WithSkiaWeb.tsx +17 -6
- package/cpp/skia/include/core/SkDrawLooper.h +0 -135
- package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
- package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
- package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
- package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
- package/cpp/skia/src/core/SkPathEnums.h +0 -25
- package/cpp/skia/src/core/SkPathPriv.h +0 -540
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -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
|
|