@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
|
@@ -4,50 +4,5 @@
|
|
|
4
4
|
* Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
* found in the LICENSE file.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
#define GrDriverBugWorkarounds_DEFINED
|
|
10
|
-
|
|
11
|
-
// External embedders of Skia can override this to use their own list
|
|
12
|
-
// of workaround names.
|
|
13
|
-
#ifdef SK_GPU_WORKAROUNDS_HEADER
|
|
14
|
-
#include SK_GPU_WORKAROUNDS_HEADER
|
|
15
|
-
#else
|
|
16
|
-
// To regenerate this file, set gn arg "skia_generate_workarounds = true"
|
|
17
|
-
// or invoke `bazel run //tools:generate_workarounds`
|
|
18
|
-
// This is not rebuilt by default to avoid embedders having to have extra
|
|
19
|
-
// build steps.
|
|
20
|
-
#include "include/gpu/GrDriverBugWorkaroundsAutogen.h"
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#include "include/core/SkTypes.h"
|
|
24
|
-
|
|
25
|
-
#include <stdint.h>
|
|
26
|
-
#include <vector>
|
|
27
|
-
|
|
28
|
-
enum GrDriverBugWorkaroundType {
|
|
29
|
-
#define GPU_OP(type, name) type,
|
|
30
|
-
GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
|
|
31
|
-
#undef GPU_OP
|
|
32
|
-
NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
class SK_API GrDriverBugWorkarounds {
|
|
36
|
-
public:
|
|
37
|
-
GrDriverBugWorkarounds();
|
|
38
|
-
GrDriverBugWorkarounds(const GrDriverBugWorkarounds&) = default;
|
|
39
|
-
explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
|
|
40
|
-
|
|
41
|
-
GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&) = default;
|
|
42
|
-
|
|
43
|
-
// Turn on any workarounds listed in |workarounds| (but don't turn any off).
|
|
44
|
-
void applyOverrides(const GrDriverBugWorkarounds& workarounds);
|
|
45
|
-
|
|
46
|
-
~GrDriverBugWorkarounds();
|
|
47
|
-
|
|
48
|
-
#define GPU_OP(type, name) bool name = false;
|
|
49
|
-
GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
|
|
50
|
-
#undef GPU_OP
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
#endif
|
|
7
|
+
// TODO(kjlubick, egdaniel) Delete this after migrating clients.
|
|
8
|
+
#include "include/gpu/ganesh/GrDriverBugWorkarounds.h"
|
|
@@ -2,44 +2,5 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
//
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#ifndef GPU_DRIVER_BUG_WORKAROUNDS
|
|
9
|
-
#define GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) \
|
|
10
|
-
GPU_OP(ADD_AND_TRUE_TO_LOOP_CONDITION, \
|
|
11
|
-
add_and_true_to_loop_condition) \
|
|
12
|
-
GPU_OP(DISABLE_BLEND_EQUATION_ADVANCED, \
|
|
13
|
-
disable_blend_equation_advanced) \
|
|
14
|
-
GPU_OP(DISABLE_DISCARD_FRAMEBUFFER, \
|
|
15
|
-
disable_discard_framebuffer) \
|
|
16
|
-
GPU_OP(DISABLE_DUAL_SOURCE_BLENDING_SUPPORT, \
|
|
17
|
-
disable_dual_source_blending_support) \
|
|
18
|
-
GPU_OP(DISABLE_TEXTURE_STORAGE, \
|
|
19
|
-
disable_texture_storage) \
|
|
20
|
-
GPU_OP(DISALLOW_LARGE_INSTANCED_DRAW, \
|
|
21
|
-
disallow_large_instanced_draw) \
|
|
22
|
-
GPU_OP(EMULATE_ABS_INT_FUNCTION, \
|
|
23
|
-
emulate_abs_int_function) \
|
|
24
|
-
GPU_OP(FLUSH_ON_FRAMEBUFFER_CHANGE, \
|
|
25
|
-
flush_on_framebuffer_change) \
|
|
26
|
-
GPU_OP(FORCE_UPDATE_SCISSOR_STATE_WHEN_BINDING_FBO0, \
|
|
27
|
-
force_update_scissor_state_when_binding_fbo0) \
|
|
28
|
-
GPU_OP(GL_CLEAR_BROKEN, \
|
|
29
|
-
gl_clear_broken) \
|
|
30
|
-
GPU_OP(MAX_FRAGMENT_UNIFORM_VECTORS_32, \
|
|
31
|
-
max_fragment_uniform_vectors_32) \
|
|
32
|
-
GPU_OP(MAX_MSAA_SAMPLE_COUNT_4, \
|
|
33
|
-
max_msaa_sample_count_4) \
|
|
34
|
-
GPU_OP(PACK_PARAMETERS_WORKAROUND_WITH_PACK_BUFFER, \
|
|
35
|
-
pack_parameters_workaround_with_pack_buffer) \
|
|
36
|
-
GPU_OP(REMOVE_POW_WITH_CONSTANT_EXPONENT, \
|
|
37
|
-
remove_pow_with_constant_exponent) \
|
|
38
|
-
GPU_OP(REWRITE_DO_WHILE_LOOPS, \
|
|
39
|
-
rewrite_do_while_loops) \
|
|
40
|
-
GPU_OP(UNBIND_ATTACHMENTS_ON_BOUND_RENDER_FBO_DELETE, \
|
|
41
|
-
unbind_attachments_on_bound_render_fbo_delete) \
|
|
42
|
-
GPU_OP(UNFOLD_SHORT_CIRCUIT_AS_TERNARY_OPERATION, \
|
|
43
|
-
unfold_short_circuit_as_ternary_operation) \
|
|
44
|
-
|
|
45
|
-
#endif // GPU_DRIVER_BUG_WORKAROUNDS
|
|
5
|
+
// TODO(kjlubick, egdaniel) Delete this after migrating clients.
|
|
6
|
+
#include "include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h"
|
|
@@ -4,282 +4,5 @@
|
|
|
4
4
|
* Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
* found in the LICENSE file.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
#define GrRecordingContext_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/core/SkColorType.h"
|
|
12
|
-
#include "include/core/SkRefCnt.h"
|
|
13
|
-
#include "include/core/SkString.h" // IWYU pragma: keep
|
|
14
|
-
#include "include/core/SkTypes.h"
|
|
15
|
-
#include "include/private/base/SkTArray.h"
|
|
16
|
-
#include "include/private/gpu/ganesh/GrContext_Base.h"
|
|
17
|
-
#include "include/private/gpu/ganesh/GrImageContext.h"
|
|
18
|
-
|
|
19
|
-
#include <map>
|
|
20
|
-
#include <memory>
|
|
21
|
-
#include <string>
|
|
22
|
-
|
|
23
|
-
class GrAuditTrail;
|
|
24
|
-
class GrContextThreadSafeProxy;
|
|
25
|
-
class GrDirectContext;
|
|
26
|
-
class GrDrawingManager;
|
|
27
|
-
class GrOnFlushCallbackObject;
|
|
28
|
-
class GrProgramDesc;
|
|
29
|
-
class GrProgramInfo;
|
|
30
|
-
class GrProxyProvider;
|
|
31
|
-
class GrRecordingContextPriv;
|
|
32
|
-
class GrThreadSafeCache;
|
|
33
|
-
class SkArenaAlloc;
|
|
34
|
-
class SkCapabilities;
|
|
35
|
-
class SkJSONWriter;
|
|
36
|
-
|
|
37
|
-
namespace sktext::gpu {
|
|
38
|
-
class SubRunAllocator;
|
|
39
|
-
class TextBlobRedrawCoordinator;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
class GrRecordingContext : public GrImageContext {
|
|
43
|
-
public:
|
|
44
|
-
~GrRecordingContext() override;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Reports whether the GrDirectContext associated with this GrRecordingContext is abandoned.
|
|
48
|
-
* When called on a GrDirectContext it may actively check whether the underlying 3D API
|
|
49
|
-
* device/context has been disconnected before reporting the status. If so, calling this
|
|
50
|
-
* method will transition the GrDirectContext to the abandoned state.
|
|
51
|
-
*/
|
|
52
|
-
bool abandoned() override { return GrImageContext::abandoned(); }
|
|
53
|
-
|
|
54
|
-
/*
|
|
55
|
-
* Can a SkSurface be created with the given color type. To check whether MSAA is supported
|
|
56
|
-
* use maxSurfaceSampleCountForColorType().
|
|
57
|
-
*/
|
|
58
|
-
SK_API bool colorTypeSupportedAsSurface(SkColorType colorType) const {
|
|
59
|
-
if (kR16G16_unorm_SkColorType == colorType ||
|
|
60
|
-
kA16_unorm_SkColorType == colorType ||
|
|
61
|
-
kA16_float_SkColorType == colorType ||
|
|
62
|
-
kR16G16_float_SkColorType == colorType ||
|
|
63
|
-
kR16G16B16A16_unorm_SkColorType == colorType ||
|
|
64
|
-
kGray_8_SkColorType == colorType) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return this->maxSurfaceSampleCountForColorType(colorType) > 0;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Gets the maximum supported texture size.
|
|
73
|
-
*/
|
|
74
|
-
SK_API int maxTextureSize() const;
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Gets the maximum supported render target size.
|
|
78
|
-
*/
|
|
79
|
-
SK_API int maxRenderTargetSize() const;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Can a SkImage be created with the given color type.
|
|
83
|
-
*/
|
|
84
|
-
SK_API bool colorTypeSupportedAsImage(SkColorType) const;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Does this context support protected content?
|
|
88
|
-
*/
|
|
89
|
-
SK_API bool supportsProtectedContent() const;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA
|
|
93
|
-
* rendering is supported for the color type. 0 is returned if rendering to this color type
|
|
94
|
-
* is not supported at all.
|
|
95
|
-
*/
|
|
96
|
-
SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const {
|
|
97
|
-
return GrImageContext::maxSurfaceSampleCountForColorType(colorType);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
SK_API sk_sp<const SkCapabilities> skCapabilities() const;
|
|
101
|
-
|
|
102
|
-
// Provides access to functions that aren't part of the public API.
|
|
103
|
-
GrRecordingContextPriv priv();
|
|
104
|
-
const GrRecordingContextPriv priv() const; // NOLINT(readability-const-return-type)
|
|
105
|
-
|
|
106
|
-
// The collection of specialized memory arenas for different types of data recorded by a
|
|
107
|
-
// GrRecordingContext. Arenas does not maintain ownership of the pools it groups together.
|
|
108
|
-
class Arenas {
|
|
109
|
-
public:
|
|
110
|
-
Arenas(SkArenaAlloc*, sktext::gpu::SubRunAllocator*);
|
|
111
|
-
|
|
112
|
-
// For storing pipelines and other complex data as-needed by ops
|
|
113
|
-
SkArenaAlloc* recordTimeAllocator() { return fRecordTimeAllocator; }
|
|
114
|
-
|
|
115
|
-
// For storing GrTextBlob SubRuns
|
|
116
|
-
sktext::gpu::SubRunAllocator* recordTimeSubRunAllocator() {
|
|
117
|
-
return fRecordTimeSubRunAllocator;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
private:
|
|
121
|
-
SkArenaAlloc* fRecordTimeAllocator;
|
|
122
|
-
sktext::gpu::SubRunAllocator* fRecordTimeSubRunAllocator;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
protected:
|
|
126
|
-
friend class GrRecordingContextPriv; // for hidden functions
|
|
127
|
-
friend class GrDeferredDisplayList; // for OwnedArenas
|
|
128
|
-
friend class GrDeferredDisplayListPriv; // for ProgramData
|
|
129
|
-
|
|
130
|
-
// Like Arenas, but preserves ownership of the underlying pools.
|
|
131
|
-
class OwnedArenas {
|
|
132
|
-
public:
|
|
133
|
-
OwnedArenas(bool ddlRecording);
|
|
134
|
-
~OwnedArenas();
|
|
135
|
-
|
|
136
|
-
Arenas get();
|
|
137
|
-
|
|
138
|
-
OwnedArenas& operator=(OwnedArenas&&);
|
|
139
|
-
|
|
140
|
-
private:
|
|
141
|
-
bool fDDLRecording;
|
|
142
|
-
std::unique_ptr<SkArenaAlloc> fRecordTimeAllocator;
|
|
143
|
-
std::unique_ptr<sktext::gpu::SubRunAllocator> fRecordTimeSubRunAllocator;
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
GrRecordingContext(sk_sp<GrContextThreadSafeProxy>, bool ddlRecording);
|
|
147
|
-
|
|
148
|
-
bool init() override;
|
|
149
|
-
|
|
150
|
-
void abandonContext() override;
|
|
151
|
-
|
|
152
|
-
GrDrawingManager* drawingManager();
|
|
153
|
-
|
|
154
|
-
// There is no going back from this method. It should only be called to control the timing
|
|
155
|
-
// during abandon or destruction of the context.
|
|
156
|
-
void destroyDrawingManager();
|
|
157
|
-
|
|
158
|
-
Arenas arenas() { return fArenas.get(); }
|
|
159
|
-
// This entry point should only be used for DDL creation where we want the ops' lifetime to
|
|
160
|
-
// match that of the DDL.
|
|
161
|
-
OwnedArenas&& detachArenas();
|
|
162
|
-
|
|
163
|
-
GrProxyProvider* proxyProvider() { return fProxyProvider.get(); }
|
|
164
|
-
const GrProxyProvider* proxyProvider() const { return fProxyProvider.get(); }
|
|
165
|
-
|
|
166
|
-
struct ProgramData {
|
|
167
|
-
ProgramData(std::unique_ptr<const GrProgramDesc>, const GrProgramInfo*);
|
|
168
|
-
ProgramData(ProgramData&&); // for SkTArray
|
|
169
|
-
ProgramData(const ProgramData&) = delete;
|
|
170
|
-
~ProgramData();
|
|
171
|
-
|
|
172
|
-
const GrProgramDesc& desc() const { return *fDesc; }
|
|
173
|
-
const GrProgramInfo& info() const { return *fInfo; }
|
|
174
|
-
|
|
175
|
-
private:
|
|
176
|
-
// TODO: store the GrProgramDescs in the 'fRecordTimeData' arena
|
|
177
|
-
std::unique_ptr<const GrProgramDesc> fDesc;
|
|
178
|
-
// The program infos should be stored in 'fRecordTimeData' so do not need to be ref
|
|
179
|
-
// counted or deleted in the destructor.
|
|
180
|
-
const GrProgramInfo* fInfo = nullptr;
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
// This entry point gives the recording context a chance to cache the provided
|
|
184
|
-
// programInfo. The DDL context takes this opportunity to store programInfos as a sidecar
|
|
185
|
-
// to the DDL.
|
|
186
|
-
virtual void recordProgramInfo(const GrProgramInfo*) {}
|
|
187
|
-
// This asks the recording context to return any programInfos it may have collected
|
|
188
|
-
// via the 'recordProgramInfo' call. It is up to the caller to ensure that the lifetime
|
|
189
|
-
// of the programInfos matches the intended use. For example, in DDL-record mode it
|
|
190
|
-
// is known that all the programInfos will have been allocated in an arena with the
|
|
191
|
-
// same lifetime at the DDL itself.
|
|
192
|
-
virtual void detachProgramData(skia_private::TArray<ProgramData>*) {}
|
|
193
|
-
|
|
194
|
-
sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator();
|
|
195
|
-
const sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator() const;
|
|
196
|
-
|
|
197
|
-
GrThreadSafeCache* threadSafeCache();
|
|
198
|
-
const GrThreadSafeCache* threadSafeCache() const;
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Registers an object for flush-related callbacks. (See GrOnFlushCallbackObject.)
|
|
202
|
-
*
|
|
203
|
-
* NOTE: the drawing manager tracks this object as a raw pointer; it is up to the caller to
|
|
204
|
-
* ensure its lifetime is tied to that of the context.
|
|
205
|
-
*/
|
|
206
|
-
void addOnFlushCallbackObject(GrOnFlushCallbackObject*);
|
|
207
|
-
|
|
208
|
-
GrRecordingContext* asRecordingContext() override { return this; }
|
|
209
|
-
|
|
210
|
-
class Stats {
|
|
211
|
-
public:
|
|
212
|
-
Stats() = default;
|
|
213
|
-
|
|
214
|
-
#if GR_GPU_STATS
|
|
215
|
-
void reset() { *this = {}; }
|
|
216
|
-
|
|
217
|
-
int numPathMasksGenerated() const { return fNumPathMasksGenerated; }
|
|
218
|
-
void incNumPathMasksGenerated() { fNumPathMasksGenerated++; }
|
|
219
|
-
|
|
220
|
-
int numPathMaskCacheHits() const { return fNumPathMaskCacheHits; }
|
|
221
|
-
void incNumPathMasksCacheHits() { fNumPathMaskCacheHits++; }
|
|
222
|
-
|
|
223
|
-
#if defined(GR_TEST_UTILS)
|
|
224
|
-
void dump(SkString* out) const;
|
|
225
|
-
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
226
|
-
skia_private::TArray<double>* values) const;
|
|
227
|
-
#endif
|
|
228
|
-
|
|
229
|
-
private:
|
|
230
|
-
int fNumPathMasksGenerated{0};
|
|
231
|
-
int fNumPathMaskCacheHits{0};
|
|
232
|
-
|
|
233
|
-
#else // GR_GPU_STATS
|
|
234
|
-
void incNumPathMasksGenerated() {}
|
|
235
|
-
void incNumPathMasksCacheHits() {}
|
|
236
|
-
|
|
237
|
-
#if defined(GR_TEST_UTILS)
|
|
238
|
-
void dump(SkString*) const {}
|
|
239
|
-
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
240
|
-
skia_private::TArray<double>* values) const {}
|
|
241
|
-
#endif
|
|
242
|
-
#endif // GR_GPU_STATS
|
|
243
|
-
} fStats;
|
|
244
|
-
|
|
245
|
-
#if GR_GPU_STATS && defined(GR_TEST_UTILS)
|
|
246
|
-
struct DMSAAStats {
|
|
247
|
-
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
248
|
-
skia_private::TArray<double>* values) const;
|
|
249
|
-
void dump() const;
|
|
250
|
-
void merge(const DMSAAStats&);
|
|
251
|
-
int fNumRenderPasses = 0;
|
|
252
|
-
int fNumMultisampleRenderPasses = 0;
|
|
253
|
-
std::map<std::string, int> fTriggerCounts;
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
DMSAAStats fDMSAAStats;
|
|
257
|
-
#endif
|
|
258
|
-
|
|
259
|
-
Stats* stats() { return &fStats; }
|
|
260
|
-
const Stats* stats() const { return &fStats; }
|
|
261
|
-
void dumpJSON(SkJSONWriter*) const;
|
|
262
|
-
|
|
263
|
-
protected:
|
|
264
|
-
// Delete last in case other objects call it during destruction.
|
|
265
|
-
std::unique_ptr<GrAuditTrail> fAuditTrail;
|
|
266
|
-
|
|
267
|
-
private:
|
|
268
|
-
OwnedArenas fArenas;
|
|
269
|
-
|
|
270
|
-
std::unique_ptr<GrDrawingManager> fDrawingManager;
|
|
271
|
-
std::unique_ptr<GrProxyProvider> fProxyProvider;
|
|
272
|
-
|
|
273
|
-
#if defined(GR_TEST_UTILS)
|
|
274
|
-
int fSuppressWarningMessages = 0;
|
|
275
|
-
#endif
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Safely cast a possibly-null base context to direct context.
|
|
280
|
-
*/
|
|
281
|
-
static inline GrDirectContext* GrAsDirectContext(GrContext_Base* base) {
|
|
282
|
-
return base ? base->asDirectContext() : nullptr;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
#endif
|
|
7
|
+
// TODO(kjlubick, egdaniel) Delete this after migrating clients.
|
|
8
|
+
#include "include/gpu/ganesh/GrRecordingContext.h"
|
|
@@ -4,241 +4,5 @@
|
|
|
4
4
|
* Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
* found in the LICENSE file.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
#define GrTypes_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/core/SkTypes.h"
|
|
12
|
-
#include "include/private/base/SkTo.h" // IWYU pragma: keep
|
|
13
|
-
|
|
14
|
-
#include <cstddef>
|
|
15
|
-
#include <cstdint>
|
|
16
|
-
class GrBackendSemaphore;
|
|
17
|
-
|
|
18
|
-
namespace skgpu {
|
|
19
|
-
enum class Protected : bool;
|
|
20
|
-
enum class Renderable : bool;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Wraps a C++11 enum that we use as a bitfield, and enables a limited amount of
|
|
27
|
-
* masking with type safety. Instantiated with the ~ operator.
|
|
28
|
-
*/
|
|
29
|
-
template<typename TFlags> class GrTFlagsMask {
|
|
30
|
-
public:
|
|
31
|
-
constexpr explicit GrTFlagsMask(TFlags value) : GrTFlagsMask(static_cast<int>(value)) {}
|
|
32
|
-
constexpr explicit GrTFlagsMask(int value) : fValue(value) {}
|
|
33
|
-
constexpr int value() const { return fValue; }
|
|
34
|
-
private:
|
|
35
|
-
const int fValue;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Defines bitwise operators that make it possible to use an enum class as a
|
|
40
|
-
* basic bitfield.
|
|
41
|
-
*/
|
|
42
|
-
#define GR_MAKE_BITFIELD_CLASS_OPS(X) \
|
|
43
|
-
[[maybe_unused]] constexpr GrTFlagsMask<X> operator~(X a) { \
|
|
44
|
-
return GrTFlagsMask<X>(~static_cast<int>(a)); \
|
|
45
|
-
} \
|
|
46
|
-
[[maybe_unused]] constexpr X operator|(X a, X b) { \
|
|
47
|
-
return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
|
|
48
|
-
} \
|
|
49
|
-
[[maybe_unused]] inline X& operator|=(X& a, X b) { \
|
|
50
|
-
return (a = a | b); \
|
|
51
|
-
} \
|
|
52
|
-
[[maybe_unused]] constexpr bool operator&(X a, X b) { \
|
|
53
|
-
return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
|
|
54
|
-
} \
|
|
55
|
-
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
|
|
56
|
-
return GrTFlagsMask<X>(a.value() | b.value()); \
|
|
57
|
-
} \
|
|
58
|
-
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, X b) { \
|
|
59
|
-
return GrTFlagsMask<X>(a.value() | static_cast<int>(b)); \
|
|
60
|
-
} \
|
|
61
|
-
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(X a, GrTFlagsMask<X> b) { \
|
|
62
|
-
return GrTFlagsMask<X>(static_cast<int>(a) | b.value()); \
|
|
63
|
-
} \
|
|
64
|
-
[[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
|
|
65
|
-
return static_cast<X>(a.value() & b.value()); \
|
|
66
|
-
} \
|
|
67
|
-
[[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, X b) { \
|
|
68
|
-
return static_cast<X>(a.value() & static_cast<int>(b)); \
|
|
69
|
-
} \
|
|
70
|
-
[[maybe_unused]] constexpr X operator&(X a, GrTFlagsMask<X> b) { \
|
|
71
|
-
return static_cast<X>(static_cast<int>(a) & b.value()); \
|
|
72
|
-
} \
|
|
73
|
-
[[maybe_unused]] inline X& operator&=(X& a, GrTFlagsMask<X> b) { \
|
|
74
|
-
return (a = a & b); \
|
|
75
|
-
} \
|
|
76
|
-
|
|
77
|
-
#define GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(X) \
|
|
78
|
-
friend constexpr GrTFlagsMask<X> operator ~(X); \
|
|
79
|
-
friend constexpr X operator |(X, X); \
|
|
80
|
-
friend X& operator |=(X&, X); \
|
|
81
|
-
friend constexpr bool operator &(X, X); \
|
|
82
|
-
friend constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X>, GrTFlagsMask<X>); \
|
|
83
|
-
friend constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X>, X); \
|
|
84
|
-
friend constexpr GrTFlagsMask<X> operator|(X, GrTFlagsMask<X>); \
|
|
85
|
-
friend constexpr X operator&(GrTFlagsMask<X>, GrTFlagsMask<X>); \
|
|
86
|
-
friend constexpr X operator&(GrTFlagsMask<X>, X); \
|
|
87
|
-
friend constexpr X operator&(X, GrTFlagsMask<X>); \
|
|
88
|
-
friend X& operator &=(X&, GrTFlagsMask<X>)
|
|
89
|
-
|
|
90
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Possible 3D APIs that may be used by Ganesh.
|
|
94
|
-
*/
|
|
95
|
-
enum class GrBackendApi : unsigned {
|
|
96
|
-
kOpenGL,
|
|
97
|
-
kVulkan,
|
|
98
|
-
kMetal,
|
|
99
|
-
kDirect3D,
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Mock is a backend that does not draw anything. It is used for unit tests
|
|
103
|
-
* and to measure CPU overhead.
|
|
104
|
-
*/
|
|
105
|
-
kMock,
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Ganesh doesn't support some context types (e.g. Dawn) and will return Unsupported.
|
|
109
|
-
*/
|
|
110
|
-
kUnsupported,
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Added here to support the legacy GrBackend enum value and clients who referenced it using
|
|
114
|
-
* GrBackend::kOpenGL_GrBackend.
|
|
115
|
-
*/
|
|
116
|
-
kOpenGL_GrBackend = kOpenGL,
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Previously the above enum was not an enum class but a normal enum. To support the legacy use of
|
|
121
|
-
* the enum values we define them below so that no clients break.
|
|
122
|
-
*/
|
|
123
|
-
typedef GrBackendApi GrBackend;
|
|
124
|
-
|
|
125
|
-
static constexpr GrBackendApi kMetal_GrBackend = GrBackendApi::kMetal;
|
|
126
|
-
static constexpr GrBackendApi kVulkan_GrBackend = GrBackendApi::kVulkan;
|
|
127
|
-
static constexpr GrBackendApi kMock_GrBackend = GrBackendApi::kMock;
|
|
128
|
-
|
|
129
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
130
|
-
|
|
131
|
-
/*
|
|
132
|
-
* Can a GrBackendObject be rendered to?
|
|
133
|
-
*/
|
|
134
|
-
using GrRenderable = skgpu::Renderable;
|
|
135
|
-
|
|
136
|
-
/*
|
|
137
|
-
* Used to say whether texture is backed by protected memory.
|
|
138
|
-
*/
|
|
139
|
-
using GrProtected = skgpu::Protected;
|
|
140
|
-
|
|
141
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* GPU SkImage and SkSurfaces can be stored such that (0, 0) in texture space may correspond to
|
|
145
|
-
* either the top-left or bottom-left content pixel.
|
|
146
|
-
*/
|
|
147
|
-
enum GrSurfaceOrigin : int {
|
|
148
|
-
kTopLeft_GrSurfaceOrigin,
|
|
149
|
-
kBottomLeft_GrSurfaceOrigin,
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* A GrContext's cache of backend context state can be partially invalidated.
|
|
154
|
-
* These enums are specific to the GL backend and we'd add a new set for an alternative backend.
|
|
155
|
-
*/
|
|
156
|
-
enum GrGLBackendState {
|
|
157
|
-
kRenderTarget_GrGLBackendState = 1 << 0,
|
|
158
|
-
// Also includes samplers bound to texture units.
|
|
159
|
-
kTextureBinding_GrGLBackendState = 1 << 1,
|
|
160
|
-
// View state stands for scissor and viewport
|
|
161
|
-
kView_GrGLBackendState = 1 << 2,
|
|
162
|
-
kBlend_GrGLBackendState = 1 << 3,
|
|
163
|
-
kMSAAEnable_GrGLBackendState = 1 << 4,
|
|
164
|
-
kVertex_GrGLBackendState = 1 << 5,
|
|
165
|
-
kStencil_GrGLBackendState = 1 << 6,
|
|
166
|
-
kPixelStore_GrGLBackendState = 1 << 7,
|
|
167
|
-
kProgram_GrGLBackendState = 1 << 8,
|
|
168
|
-
kFixedFunction_GrGLBackendState = 1 << 9,
|
|
169
|
-
kMisc_GrGLBackendState = 1 << 10,
|
|
170
|
-
kALL_GrGLBackendState = 0xffff
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* This value translates to reseting all the context state for any backend.
|
|
175
|
-
*/
|
|
176
|
-
static const uint32_t kAll_GrBackendState = 0xffffffff;
|
|
177
|
-
|
|
178
|
-
typedef void* GrGpuFinishedContext;
|
|
179
|
-
typedef void (*GrGpuFinishedProc)(GrGpuFinishedContext finishedContext);
|
|
180
|
-
|
|
181
|
-
typedef void* GrGpuSubmittedContext;
|
|
182
|
-
typedef void (*GrGpuSubmittedProc)(GrGpuSubmittedContext submittedContext, bool success);
|
|
183
|
-
|
|
184
|
-
typedef void* GrDirectContextDestroyedContext;
|
|
185
|
-
typedef void (*GrDirectContextDestroyedProc)(GrDirectContextDestroyedContext destroyedContext);
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Struct to supply options to flush calls.
|
|
189
|
-
*
|
|
190
|
-
* After issuing all commands, fNumSemaphore semaphores will be signaled by the gpu. The client
|
|
191
|
-
* passes in an array of fNumSemaphores GrBackendSemaphores. In general these GrBackendSemaphore's
|
|
192
|
-
* can be either initialized or not. If they are initialized, the backend uses the passed in
|
|
193
|
-
* semaphore. If it is not initialized, a new semaphore is created and the GrBackendSemaphore
|
|
194
|
-
* object is initialized with that semaphore. The semaphores are not sent to the GPU until the next
|
|
195
|
-
* GrContext::submit call is made. See the GrContext::submit for more information.
|
|
196
|
-
*
|
|
197
|
-
* The client will own and be responsible for deleting the underlying semaphores that are stored
|
|
198
|
-
* and returned in initialized GrBackendSemaphore objects. The GrBackendSemaphore objects
|
|
199
|
-
* themselves can be deleted as soon as this function returns.
|
|
200
|
-
*
|
|
201
|
-
* If a finishedProc is provided, the finishedProc will be called when all work submitted to the gpu
|
|
202
|
-
* from this flush call and all previous flush calls has finished on the GPU. If the flush call
|
|
203
|
-
* fails due to an error and nothing ends up getting sent to the GPU, the finished proc is called
|
|
204
|
-
* immediately.
|
|
205
|
-
*
|
|
206
|
-
* If a submittedProc is provided, the submittedProc will be called when all work from this flush
|
|
207
|
-
* call is submitted to the GPU. If the flush call fails due to an error and nothing will get sent
|
|
208
|
-
* to the GPU, the submitted proc is called immediately. It is possibly that when work is finally
|
|
209
|
-
* submitted, that the submission actual fails. In this case we will not reattempt to do the
|
|
210
|
-
* submission. Skia notifies the client of these via the success bool passed into the submittedProc.
|
|
211
|
-
* The submittedProc is useful to the client to know when semaphores that were sent with the flush
|
|
212
|
-
* have actually been submitted to the GPU so that they can be waited on (or deleted if the submit
|
|
213
|
-
* fails).
|
|
214
|
-
* GrBackendSemaphores are not supported for the GL backend and will be ignored if set.
|
|
215
|
-
*/
|
|
216
|
-
struct GrFlushInfo {
|
|
217
|
-
size_t fNumSemaphores = 0;
|
|
218
|
-
GrBackendSemaphore* fSignalSemaphores = nullptr;
|
|
219
|
-
GrGpuFinishedProc fFinishedProc = nullptr;
|
|
220
|
-
GrGpuFinishedContext fFinishedContext = nullptr;
|
|
221
|
-
GrGpuSubmittedProc fSubmittedProc = nullptr;
|
|
222
|
-
GrGpuSubmittedContext fSubmittedContext = nullptr;
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Enum used as return value when flush with semaphores so the client knows whether the valid
|
|
227
|
-
* semaphores will be submitted on the next GrContext::submit call.
|
|
228
|
-
*/
|
|
229
|
-
enum class GrSemaphoresSubmitted : bool {
|
|
230
|
-
kNo = false,
|
|
231
|
-
kYes = true
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
enum class GrPurgeResourceOptions {
|
|
235
|
-
kAllResources,
|
|
236
|
-
kScratchResourcesOnly,
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
enum class GrSyncCpu : bool {
|
|
240
|
-
kNo = false,
|
|
241
|
-
kYes = true,
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
#endif
|
|
7
|
+
// TODO(kjlubick, egdaniel) Delete this after migrating clients.
|
|
8
|
+
#include "include/gpu/ganesh/GrTypes.h"
|