@shopify/react-native-skia 1.3.13 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +9 -4
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkPath.h +29 -19
- package/cpp/api/JsiSkRuntimeEffect.h +7 -0
- package/cpp/api/JsiSkiaContext.h +79 -0
- package/cpp/rnskia/RNSkPlatformContext.h +4 -0
- package/cpp/rnskia/SkiaContext.h +22 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
- package/cpp/skia/include/android/SkImageAndroid.h +1 -1
- package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
- package/cpp/skia/include/codec/SkCodec.h +28 -5
- package/cpp/skia/include/core/SkArc.h +69 -0
- package/cpp/skia/include/core/SkBitmap.h +10 -0
- package/cpp/skia/include/core/SkBlender.h +2 -3
- package/cpp/skia/include/core/SkCanvas.h +86 -16
- package/cpp/skia/include/core/SkCapabilities.h +0 -4
- package/cpp/skia/include/core/SkColorFilter.h +4 -4
- package/cpp/skia/include/core/SkColorPriv.h +5 -7
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkFlattenable.h +1 -1
- package/cpp/skia/include/core/SkFontArguments.h +3 -1
- package/cpp/skia/include/core/SkFontParameters.h +3 -2
- package/cpp/skia/include/core/SkFourByteTag.h +19 -0
- package/cpp/skia/include/core/SkImage.h +41 -1
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkImageInfo.h +20 -0
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMatrix.h +2 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +20 -6
- package/cpp/skia/include/core/SkPathMeasure.h +1 -0
- package/cpp/skia/include/core/SkPicture.h +5 -5
- package/cpp/skia/include/core/SkPoint3.h +2 -12
- package/cpp/skia/include/core/SkRRect.h +5 -0
- package/cpp/skia/include/core/SkRect.h +5 -16
- package/cpp/skia/include/core/SkRefCnt.h +2 -0
- package/cpp/skia/include/core/SkScalar.h +20 -32
- package/cpp/skia/include/core/SkShader.h +17 -0
- package/cpp/skia/include/core/SkSize.h +2 -1
- package/cpp/skia/include/core/SkStream.h +2 -3
- package/cpp/skia/include/core/SkStrokeRec.h +6 -1
- package/cpp/skia/include/core/SkSurface.h +13 -4
- package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
- package/cpp/skia/include/core/SkSwizzle.h +3 -1
- package/cpp/skia/include/core/SkTypeface.h +1 -0
- package/cpp/skia/include/core/SkTypes.h +1 -19
- package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
- package/cpp/skia/include/core/SkVertices.h +4 -2
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
- package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
- package/cpp/skia/include/effects/SkImageFilters.h +49 -23
- package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
- package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
- package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
- package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
- package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
- package/cpp/skia/include/gpu/GrTypes.h +2 -238
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
- package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
- package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
- package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
- package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
- package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
- package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
- package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
- package/cpp/skia/include/gpu/graphite/Context.h +122 -44
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
- package/cpp/skia/include/gpu/graphite/Image.h +56 -54
- package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
- package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
- package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
- package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
- package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
- package/cpp/skia/include/private/SkExif.h +28 -75
- package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
- package/cpp/skia/include/private/SkPathRef.h +52 -44
- package/cpp/skia/include/private/SkXmp.h +13 -4
- package/cpp/skia/include/private/base/SkASAN.h +56 -0
- package/cpp/skia/include/private/base/SkAlign.h +5 -0
- package/cpp/skia/include/private/base/SkContainers.h +10 -2
- package/cpp/skia/include/private/base/SkFeatures.h +22 -1
- package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
- package/cpp/skia/include/private/base/SkMacros.h +67 -0
- package/cpp/skia/include/private/base/SkMalloc.h +8 -0
- package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
- package/cpp/skia/include/private/base/SkTArray.h +108 -23
- package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
- package/cpp/skia/include/private/chromium/Slug.h +5 -11
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
- package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
- package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
- package/cpp/skia/include/utils/SkParse.h +0 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
- package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
- package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
- package/cpp/skia/src/base/SkMathPriv.h +337 -0
- package/cpp/skia/src/base/SkTLazy.h +208 -0
- package/cpp/skia/src/core/SkTHash.h +58 -7
- package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +6 -1
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +4 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
- package/lib/commonjs/web/WithSkiaWeb.js +3 -2
- package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +6 -1
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +4 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/web/WithSkiaWeb.d.ts +11 -4
- package/lib/module/web/WithSkiaWeb.js +3 -2
- package/lib/module/web/WithSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
- package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode_core.a +0 -0
- package/libs/android/x86/libskunicode_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode_core.a +0 -0
- package/libs/android/x86_64/libskunicode_icu.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -5
- package/react-native-skia.podspec +2 -1
- package/src/renderer/HostConfig.ts +5 -1
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
- package/src/skia/types/Paragraph/TextStyle.ts +2 -2
- package/src/skia/types/Skia.ts +7 -1
- package/src/skia/web/JsiSkia.ts +3 -0
- package/src/web/WithSkiaWeb.tsx +17 -6
- package/cpp/skia/include/core/SkDrawLooper.h +0 -135
- package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
- package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
- package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
- package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
- package/cpp/skia/src/core/SkPathEnums.h +0 -25
- package/cpp/skia/src/core/SkPathPriv.h +0 -540
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef GrYUVABackendTextures_DEFINED
|
|
9
|
+
#define GrYUVABackendTextures_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkTypes.h"
|
|
12
|
+
#include "include/core/SkYUVAInfo.h"
|
|
13
|
+
#include "include/gpu/GpuTypes.h"
|
|
14
|
+
#include "include/gpu/ganesh/GrBackendSurface.h"
|
|
15
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
16
|
+
|
|
17
|
+
#include <array>
|
|
18
|
+
#include <cstddef>
|
|
19
|
+
|
|
20
|
+
enum SkYUVColorSpace : int;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* A description of a set GrBackendTextures that hold the planar data described by a SkYUVAInfo.
|
|
24
|
+
*/
|
|
25
|
+
class SK_API GrYUVABackendTextureInfo {
|
|
26
|
+
public:
|
|
27
|
+
static constexpr auto kMaxPlanes = SkYUVAInfo::kMaxPlanes;
|
|
28
|
+
|
|
29
|
+
/** Default GrYUVABackendTextureInfo is invalid. */
|
|
30
|
+
GrYUVABackendTextureInfo() = default;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Initializes a GrYUVABackendTextureInfo to describe a set of textures that can store the
|
|
34
|
+
* planes indicated by the SkYUVAInfo. The texture dimensions are taken from the SkYUVAInfo's
|
|
35
|
+
* plane dimensions. All the described textures share a common origin. The planar image this
|
|
36
|
+
* describes will be mip mapped if all the textures are individually mip mapped as indicated
|
|
37
|
+
* by skgpu::Mipmapped. This will produce an invalid result (return false from isValid()) if the
|
|
38
|
+
* passed formats' channels don't agree with SkYUVAInfo.
|
|
39
|
+
*/
|
|
40
|
+
GrYUVABackendTextureInfo(const SkYUVAInfo&,
|
|
41
|
+
const GrBackendFormat[kMaxPlanes],
|
|
42
|
+
skgpu::Mipmapped,
|
|
43
|
+
GrSurfaceOrigin);
|
|
44
|
+
|
|
45
|
+
GrYUVABackendTextureInfo(const GrYUVABackendTextureInfo&) = default;
|
|
46
|
+
|
|
47
|
+
GrYUVABackendTextureInfo& operator=(const GrYUVABackendTextureInfo&) = default;
|
|
48
|
+
|
|
49
|
+
bool operator==(const GrYUVABackendTextureInfo&) const;
|
|
50
|
+
bool operator!=(const GrYUVABackendTextureInfo& that) const { return !(*this == that); }
|
|
51
|
+
|
|
52
|
+
const SkYUVAInfo& yuvaInfo() const { return fYUVAInfo; }
|
|
53
|
+
|
|
54
|
+
SkYUVColorSpace yuvColorSpace() const { return fYUVAInfo.yuvColorSpace(); }
|
|
55
|
+
|
|
56
|
+
skgpu::Mipmapped mipmapped() const { return fMipmapped; }
|
|
57
|
+
|
|
58
|
+
GrSurfaceOrigin textureOrigin() const { return fTextureOrigin; }
|
|
59
|
+
|
|
60
|
+
/** The number of SkPixmap planes, 0 if this GrYUVABackendTextureInfo is invalid. */
|
|
61
|
+
int numPlanes() const { return fYUVAInfo.numPlanes(); }
|
|
62
|
+
|
|
63
|
+
/** Format of the ith plane, or invalid format if i >= numPlanes() */
|
|
64
|
+
const GrBackendFormat& planeFormat(int i) const { return fPlaneFormats[i]; }
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Returns true if this has been configured with a valid SkYUVAInfo with compatible texture
|
|
68
|
+
* formats.
|
|
69
|
+
*/
|
|
70
|
+
bool isValid() const { return fYUVAInfo.isValid(); }
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Computes a YUVALocations representation of the planar layout. The result is guaranteed to be
|
|
74
|
+
* valid if this->isValid().
|
|
75
|
+
*/
|
|
76
|
+
SkYUVAInfo::YUVALocations toYUVALocations() const;
|
|
77
|
+
|
|
78
|
+
private:
|
|
79
|
+
SkYUVAInfo fYUVAInfo;
|
|
80
|
+
GrBackendFormat fPlaneFormats[kMaxPlanes];
|
|
81
|
+
skgpu::Mipmapped fMipmapped = skgpu::Mipmapped::kNo;
|
|
82
|
+
GrSurfaceOrigin fTextureOrigin = kTopLeft_GrSurfaceOrigin;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* A set of GrBackendTextures that hold the planar data for an image described a SkYUVAInfo.
|
|
87
|
+
*/
|
|
88
|
+
class SK_API GrYUVABackendTextures {
|
|
89
|
+
public:
|
|
90
|
+
GrYUVABackendTextures() = default;
|
|
91
|
+
GrYUVABackendTextures(const GrYUVABackendTextures&) = delete;
|
|
92
|
+
GrYUVABackendTextures(GrYUVABackendTextures&&) = default;
|
|
93
|
+
|
|
94
|
+
GrYUVABackendTextures& operator=(const GrYUVABackendTextures&) = delete;
|
|
95
|
+
GrYUVABackendTextures& operator=(GrYUVABackendTextures&&) = default;
|
|
96
|
+
|
|
97
|
+
GrYUVABackendTextures(const SkYUVAInfo&,
|
|
98
|
+
const GrBackendTexture[SkYUVAInfo::kMaxPlanes],
|
|
99
|
+
GrSurfaceOrigin textureOrigin);
|
|
100
|
+
|
|
101
|
+
const std::array<GrBackendTexture, SkYUVAInfo::kMaxPlanes>& textures() const {
|
|
102
|
+
return fTextures;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
GrBackendTexture texture(int i) const {
|
|
106
|
+
SkASSERT(i >= 0 && i < SkYUVAInfo::kMaxPlanes);
|
|
107
|
+
return fTextures[static_cast<size_t>(i)];
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const SkYUVAInfo& yuvaInfo() const { return fYUVAInfo; }
|
|
111
|
+
|
|
112
|
+
int numPlanes() const { return fYUVAInfo.numPlanes(); }
|
|
113
|
+
|
|
114
|
+
GrSurfaceOrigin textureOrigin() const { return fTextureOrigin; }
|
|
115
|
+
|
|
116
|
+
bool isValid() const { return fYUVAInfo.isValid(); }
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Computes a YUVALocations representation of the planar layout. The result is guaranteed to be
|
|
120
|
+
* valid if this->isValid().
|
|
121
|
+
*/
|
|
122
|
+
SkYUVAInfo::YUVALocations toYUVALocations() const;
|
|
123
|
+
|
|
124
|
+
private:
|
|
125
|
+
SkYUVAInfo fYUVAInfo;
|
|
126
|
+
std::array<GrBackendTexture, SkYUVAInfo::kMaxPlanes> fTextures;
|
|
127
|
+
GrSurfaceOrigin fTextureOrigin = kTopLeft_GrSurfaceOrigin;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
#endif
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#include "include/core/SkImage.h"
|
|
12
12
|
#include "include/core/SkRefCnt.h"
|
|
13
13
|
#include "include/gpu/GpuTypes.h"
|
|
14
|
-
#include "include/gpu/GrTypes.h"
|
|
14
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
15
15
|
#include "include/private/base/SkAPI.h"
|
|
16
16
|
|
|
17
17
|
#include <functional>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#include "include/core/SkImageInfo.h"
|
|
12
12
|
#include "include/core/SkRefCnt.h"
|
|
13
13
|
#include "include/core/SkSurface.h"
|
|
14
|
-
#include "include/gpu/GrTypes.h"
|
|
14
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
15
15
|
#include "include/private/base/SkAPI.h"
|
|
16
16
|
|
|
17
17
|
class GrBackendRenderTarget;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef GrD3DBackendContext_DEFINED
|
|
9
|
+
#define GrD3DBackendContext_DEFINED
|
|
10
|
+
|
|
11
|
+
// GrD3DTypes.h includes d3d12.h, which in turn includes windows.h, which redefines many
|
|
12
|
+
// common identifiers such as:
|
|
13
|
+
// * interface
|
|
14
|
+
// * small
|
|
15
|
+
// * near
|
|
16
|
+
// * far
|
|
17
|
+
// * CreateSemaphore
|
|
18
|
+
// * MemoryBarrier
|
|
19
|
+
//
|
|
20
|
+
// You should only include GrD3DBackendContext.h if you are prepared to rename those identifiers.
|
|
21
|
+
#include "include/gpu/ganesh/d3d/GrD3DTypes.h"
|
|
22
|
+
|
|
23
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
24
|
+
|
|
25
|
+
// The BackendContext contains all of the base D3D objects needed by the GrD3DGpu. The assumption
|
|
26
|
+
// is that the client will set these up and pass them to the GrD3DGpu constructor.
|
|
27
|
+
struct SK_API GrD3DBackendContext {
|
|
28
|
+
gr_cp<IDXGIAdapter1> fAdapter;
|
|
29
|
+
gr_cp<ID3D12Device> fDevice;
|
|
30
|
+
gr_cp<ID3D12CommandQueue> fQueue;
|
|
31
|
+
sk_sp<GrD3DMemoryAllocator> fMemoryAllocator;
|
|
32
|
+
GrProtected fProtectedContext = GrProtected::kNo;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
#endif
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2020 Google LLC
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
6
|
+
* found in the LICENSE file.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef GrD3DTypes_DEFINED
|
|
10
|
+
#define GrD3DTypes_DEFINED
|
|
11
|
+
|
|
12
|
+
// This file includes d3d12.h, which in turn includes windows.h, which redefines many
|
|
13
|
+
// common identifiers such as:
|
|
14
|
+
// * interface
|
|
15
|
+
// * small
|
|
16
|
+
// * near
|
|
17
|
+
// * far
|
|
18
|
+
// * CreateSemaphore
|
|
19
|
+
// * MemoryBarrier
|
|
20
|
+
//
|
|
21
|
+
// You should only include this header if you need the Direct3D definitions and are
|
|
22
|
+
// prepared to rename those identifiers.
|
|
23
|
+
|
|
24
|
+
#include "include/core/SkRefCnt.h"
|
|
25
|
+
#include "include/gpu/GpuTypes.h"
|
|
26
|
+
#include <d3d12.h>
|
|
27
|
+
#include <dxgi1_4.h>
|
|
28
|
+
|
|
29
|
+
class GrD3DGpu;
|
|
30
|
+
|
|
31
|
+
/** Check if the argument is non-null, and if so, call obj->AddRef() and return obj.
|
|
32
|
+
*/
|
|
33
|
+
template <typename T> static inline T* GrSafeComAddRef(T* obj) {
|
|
34
|
+
if (obj) {
|
|
35
|
+
obj->AddRef();
|
|
36
|
+
}
|
|
37
|
+
return obj;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Check if the argument is non-null, and if so, call obj->Release()
|
|
41
|
+
*/
|
|
42
|
+
template <typename T> static inline void GrSafeComRelease(T* obj) {
|
|
43
|
+
if (obj) {
|
|
44
|
+
obj->Release();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
template <typename T> class gr_cp {
|
|
49
|
+
public:
|
|
50
|
+
using element_type = T;
|
|
51
|
+
|
|
52
|
+
constexpr gr_cp() : fObject(nullptr) {}
|
|
53
|
+
constexpr gr_cp(std::nullptr_t) : fObject(nullptr) {}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Shares the underlying object by calling AddRef(), so that both the argument and the newly
|
|
57
|
+
* created gr_cp both have a reference to it.
|
|
58
|
+
*/
|
|
59
|
+
gr_cp(const gr_cp<T>& that) : fObject(GrSafeComAddRef(that.get())) {}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Move the underlying object from the argument to the newly created gr_cp. Afterwards only
|
|
63
|
+
* the new gr_cp will have a reference to the object, and the argument will point to null.
|
|
64
|
+
* No call to AddRef() or Release() will be made.
|
|
65
|
+
*/
|
|
66
|
+
gr_cp(gr_cp<T>&& that) : fObject(that.release()) {}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Adopt the bare object into the newly created gr_cp.
|
|
70
|
+
* No call to AddRef() or Release() will be made.
|
|
71
|
+
*/
|
|
72
|
+
explicit gr_cp(T* obj) {
|
|
73
|
+
fObject = obj;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Calls Release() on the underlying object pointer.
|
|
78
|
+
*/
|
|
79
|
+
~gr_cp() {
|
|
80
|
+
GrSafeComRelease(fObject);
|
|
81
|
+
SkDEBUGCODE(fObject = nullptr);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Shares the underlying object referenced by the argument by calling AddRef() on it. If this
|
|
86
|
+
* gr_cp previously had a reference to an object (i.e. not null) it will call Release()
|
|
87
|
+
* on that object.
|
|
88
|
+
*/
|
|
89
|
+
gr_cp<T>& operator=(const gr_cp<T>& that) {
|
|
90
|
+
if (this != &that) {
|
|
91
|
+
this->reset(GrSafeComAddRef(that.get()));
|
|
92
|
+
}
|
|
93
|
+
return *this;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Move the underlying object from the argument to the gr_cp. If the gr_cp
|
|
98
|
+
* previously held a reference to another object, Release() will be called on that object.
|
|
99
|
+
* No call to AddRef() will be made.
|
|
100
|
+
*/
|
|
101
|
+
gr_cp<T>& operator=(gr_cp<T>&& that) {
|
|
102
|
+
this->reset(that.release());
|
|
103
|
+
return *this;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
explicit operator bool() const { return this->get() != nullptr; }
|
|
107
|
+
|
|
108
|
+
T* get() const { return fObject; }
|
|
109
|
+
T* operator->() const { return fObject; }
|
|
110
|
+
T** operator&() { return &fObject; }
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Adopt the new object, and call Release() on any previously held object (if not null).
|
|
114
|
+
* No call to AddRef() will be made.
|
|
115
|
+
*/
|
|
116
|
+
void reset(T* object = nullptr) {
|
|
117
|
+
T* oldObject = fObject;
|
|
118
|
+
fObject = object;
|
|
119
|
+
GrSafeComRelease(oldObject);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Shares the new object by calling AddRef() on it. If this gr_cp previously had a
|
|
124
|
+
* reference to an object (i.e. not null) it will call Release() on that object.
|
|
125
|
+
*/
|
|
126
|
+
void retain(T* object) {
|
|
127
|
+
if (this->fObject != object) {
|
|
128
|
+
this->reset(GrSafeComAddRef(object));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Return the original object, and set the internal object to nullptr.
|
|
134
|
+
* The caller must assume ownership of the object, and manage its reference count directly.
|
|
135
|
+
* No call to Release() will be made.
|
|
136
|
+
*/
|
|
137
|
+
[[nodiscard]] T* release() {
|
|
138
|
+
T* obj = fObject;
|
|
139
|
+
fObject = nullptr;
|
|
140
|
+
return obj;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
private:
|
|
144
|
+
T* fObject;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
template <typename T> inline bool operator==(const gr_cp<T>& a,
|
|
148
|
+
const gr_cp<T>& b) {
|
|
149
|
+
return a.get() == b.get();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
template <typename T> inline bool operator!=(const gr_cp<T>& a,
|
|
153
|
+
const gr_cp<T>& b) {
|
|
154
|
+
return a.get() != b.get();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// interface classes for the GPU memory allocator
|
|
158
|
+
class GrD3DAlloc : public SkRefCnt {
|
|
159
|
+
public:
|
|
160
|
+
~GrD3DAlloc() override = default;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
class GrD3DMemoryAllocator : public SkRefCnt {
|
|
164
|
+
public:
|
|
165
|
+
virtual gr_cp<ID3D12Resource> createResource(D3D12_HEAP_TYPE, const D3D12_RESOURCE_DESC*,
|
|
166
|
+
D3D12_RESOURCE_STATES initialResourceState,
|
|
167
|
+
sk_sp<GrD3DAlloc>* allocation,
|
|
168
|
+
const D3D12_CLEAR_VALUE*) = 0;
|
|
169
|
+
virtual gr_cp<ID3D12Resource> createAliasingResource(sk_sp<GrD3DAlloc>& allocation,
|
|
170
|
+
uint64_t localOffset,
|
|
171
|
+
const D3D12_RESOURCE_DESC*,
|
|
172
|
+
D3D12_RESOURCE_STATES initialResourceState,
|
|
173
|
+
const D3D12_CLEAR_VALUE*) = 0;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
// Note: there is no notion of Borrowed or Adopted resources in the D3D backend,
|
|
177
|
+
// so Ganesh will ref fResource once it's asked to wrap it.
|
|
178
|
+
// Clients are responsible for releasing their own ref to avoid memory leaks.
|
|
179
|
+
struct GrD3DTextureResourceInfo {
|
|
180
|
+
gr_cp<ID3D12Resource> fResource = nullptr;
|
|
181
|
+
sk_sp<GrD3DAlloc> fAlloc = nullptr;
|
|
182
|
+
D3D12_RESOURCE_STATES fResourceState = D3D12_RESOURCE_STATE_COMMON;
|
|
183
|
+
DXGI_FORMAT fFormat = DXGI_FORMAT_UNKNOWN;
|
|
184
|
+
uint32_t fSampleCount = 1;
|
|
185
|
+
uint32_t fLevelCount = 0;
|
|
186
|
+
unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
|
|
187
|
+
skgpu::Protected fProtected = skgpu::Protected::kNo;
|
|
188
|
+
|
|
189
|
+
GrD3DTextureResourceInfo() = default;
|
|
190
|
+
|
|
191
|
+
GrD3DTextureResourceInfo(ID3D12Resource* resource,
|
|
192
|
+
const sk_sp<GrD3DAlloc> alloc,
|
|
193
|
+
D3D12_RESOURCE_STATES resourceState,
|
|
194
|
+
DXGI_FORMAT format,
|
|
195
|
+
uint32_t sampleCount,
|
|
196
|
+
uint32_t levelCount,
|
|
197
|
+
unsigned int sampleQualityLevel,
|
|
198
|
+
skgpu::Protected isProtected = skgpu::Protected::kNo)
|
|
199
|
+
: fResource(resource)
|
|
200
|
+
, fAlloc(alloc)
|
|
201
|
+
, fResourceState(resourceState)
|
|
202
|
+
, fFormat(format)
|
|
203
|
+
, fSampleCount(sampleCount)
|
|
204
|
+
, fLevelCount(levelCount)
|
|
205
|
+
, fSampleQualityPattern(sampleQualityLevel)
|
|
206
|
+
, fProtected(isProtected) {}
|
|
207
|
+
|
|
208
|
+
GrD3DTextureResourceInfo(const GrD3DTextureResourceInfo& info,
|
|
209
|
+
D3D12_RESOURCE_STATES resourceState)
|
|
210
|
+
: fResource(info.fResource)
|
|
211
|
+
, fAlloc(info.fAlloc)
|
|
212
|
+
, fResourceState(resourceState)
|
|
213
|
+
, fFormat(info.fFormat)
|
|
214
|
+
, fSampleCount(info.fSampleCount)
|
|
215
|
+
, fLevelCount(info.fLevelCount)
|
|
216
|
+
, fSampleQualityPattern(info.fSampleQualityPattern)
|
|
217
|
+
, fProtected(info.fProtected) {}
|
|
218
|
+
|
|
219
|
+
#if defined(GPU_TEST_UTILS)
|
|
220
|
+
bool operator==(const GrD3DTextureResourceInfo& that) const {
|
|
221
|
+
return fResource == that.fResource && fResourceState == that.fResourceState &&
|
|
222
|
+
fFormat == that.fFormat && fSampleCount == that.fSampleCount &&
|
|
223
|
+
fLevelCount == that.fLevelCount &&
|
|
224
|
+
fSampleQualityPattern == that.fSampleQualityPattern && fProtected == that.fProtected;
|
|
225
|
+
}
|
|
226
|
+
#endif
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
struct GrD3DFenceInfo {
|
|
230
|
+
GrD3DFenceInfo()
|
|
231
|
+
: fFence(nullptr)
|
|
232
|
+
, fValue(0) {
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
gr_cp<ID3D12Fence> fFence;
|
|
236
|
+
uint64_t fValue; // signal value for the fence
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
struct GrD3DSurfaceInfo {
|
|
240
|
+
uint32_t fSampleCount = 1;
|
|
241
|
+
uint32_t fLevelCount = 0;
|
|
242
|
+
skgpu::Protected fProtected = skgpu::Protected::kNo;
|
|
243
|
+
|
|
244
|
+
DXGI_FORMAT fFormat = DXGI_FORMAT_UNKNOWN;
|
|
245
|
+
unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
#endif
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2019 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef GrGLAssembleHelpers_DEFINED
|
|
8
|
+
#define GrGLAssembleHelpers_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/gpu/ganesh/gl/GrGLAssembleInterface.h"
|
|
11
|
+
#include "include/gpu/ganesh/gl/GrGLFunctions.h"
|
|
12
|
+
#include "include/gpu/ganesh/gl/GrGLTypes.h"
|
|
13
|
+
|
|
14
|
+
void GrGetEGLQueryAndDisplay(GrEGLQueryStringFn** queryString, GrEGLDisplay* display,
|
|
15
|
+
void* ctx, GrGLGetProc get);
|
|
16
|
+
|
|
17
|
+
#endif // GrGLAssembleHelpers_DEFINED
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2014 Google Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef GrGLAssembleInterface_DEFINED
|
|
8
|
+
#define GrGLAssembleInterface_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/core/SkRefCnt.h"
|
|
11
|
+
#include "include/gpu/ganesh/gl/GrGLInterface.h"
|
|
12
|
+
#include "include/private/base/SkAPI.h"
|
|
13
|
+
|
|
14
|
+
typedef GrGLFuncPtr (*GrGLGetProc)(void* ctx, const char name[]);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Generic function for creating a GrGLInterface for an either OpenGL or GLES. It calls
|
|
18
|
+
* get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
|
|
19
|
+
*/
|
|
20
|
+
SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledInterface(void *ctx, GrGLGetProc get);
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Generic function for creating a GrGLInterface for an OpenGL (but not GLES) context. It calls
|
|
24
|
+
* get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
|
|
25
|
+
*/
|
|
26
|
+
SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc get);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Generic function for creating a GrGLInterface for an OpenGL ES (but not Open GL) context. It
|
|
30
|
+
* calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
|
|
31
|
+
* get().
|
|
32
|
+
*/
|
|
33
|
+
SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc get);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generic function for creating a GrGLInterface for a WebGL (similar to OpenGL ES) context. It
|
|
37
|
+
* calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
|
|
38
|
+
* get().
|
|
39
|
+
*/
|
|
40
|
+
SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get);
|
|
41
|
+
|
|
42
|
+
/** Deprecated version of GrGLMakeAssembledInterface() that returns a bare pointer. */
|
|
43
|
+
SK_API const GrGLInterface* GrGLAssembleInterface(void *ctx, GrGLGetProc get);
|
|
44
|
+
|
|
45
|
+
#endif // GrGLAssembleInterface_DEFINED
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2011 Google Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef GrGLConfig_DEFINED
|
|
9
|
+
#define GrGLConfig_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/private/base/SkLoadUserConfig.h"
|
|
12
|
+
|
|
13
|
+
#if !defined(GR_GL_FUNCTION_TYPE)
|
|
14
|
+
#if defined(SK_BUILD_FOR_WIN)
|
|
15
|
+
#define GR_GL_FUNCTION_TYPE __stdcall
|
|
16
|
+
#else
|
|
17
|
+
#define GR_GL_FUNCTION_TYPE
|
|
18
|
+
#endif
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The following are optional defines that can be enabled at the compiler
|
|
23
|
+
* command line, in a IDE project, in a GrUserConfig.h file, or in a GL custom
|
|
24
|
+
* file (if one is in use). If a GR_GL_CUSTOM_SETUP_HEADER is used they can
|
|
25
|
+
* also be placed there.
|
|
26
|
+
*
|
|
27
|
+
* GR_GL_LOG_CALLS: if 1 Gr can print every GL call using SkDebugf. Defaults to
|
|
28
|
+
* 0. Logging can be enabled and disabled at runtime using a debugger via to
|
|
29
|
+
* global gLogCallsGL. The initial value of gLogCallsGL is controlled by
|
|
30
|
+
* GR_GL_LOG_CALLS_START.
|
|
31
|
+
*
|
|
32
|
+
* GR_GL_LOG_CALLS_START: controls the initial value of gLogCallsGL when
|
|
33
|
+
* GR_GL_LOG_CALLS is 1. Defaults to 0.
|
|
34
|
+
*
|
|
35
|
+
* GR_GL_CHECK_ERROR: if enabled Gr can do a glGetError() after every GL call.
|
|
36
|
+
* Defaults to 1 if SK_DEBUG is set, otherwise 0. When GR_GL_CHECK_ERROR is 1
|
|
37
|
+
* this can be toggled in a debugger using the gCheckErrorGL global. The initial
|
|
38
|
+
* value of gCheckErrorGL is controlled by by GR_GL_CHECK_ERROR_START.
|
|
39
|
+
*
|
|
40
|
+
* GR_GL_CHECK_ERROR_START: controls the initial value of gCheckErrorGL
|
|
41
|
+
* when GR_GL_CHECK_ERROR is 1. Defaults to 1.
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
#if !defined(GR_GL_LOG_CALLS)
|
|
46
|
+
#ifdef SK_DEBUG
|
|
47
|
+
#define GR_GL_LOG_CALLS 1
|
|
48
|
+
#else
|
|
49
|
+
#define GR_GL_LOG_CALLS 0
|
|
50
|
+
#endif
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
#if !defined(GR_GL_LOG_CALLS_START)
|
|
54
|
+
#define GR_GL_LOG_CALLS_START 0
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
#if !defined(GR_GL_CHECK_ERROR)
|
|
58
|
+
#ifdef SK_DEBUG
|
|
59
|
+
#define GR_GL_CHECK_ERROR 1
|
|
60
|
+
#else
|
|
61
|
+
#define GR_GL_CHECK_ERROR 0
|
|
62
|
+
#endif
|
|
63
|
+
#endif
|
|
64
|
+
|
|
65
|
+
#if !defined(GR_GL_CHECK_ERROR_START)
|
|
66
|
+
#define GR_GL_CHECK_ERROR_START 1
|
|
67
|
+
#endif
|
|
68
|
+
|
|
69
|
+
#endif
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2013 Google Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef GrGLExtensions_DEFINED
|
|
9
|
+
#define GrGLExtensions_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkString.h"
|
|
12
|
+
#include "include/gpu/ganesh/gl/GrGLFunctions.h"
|
|
13
|
+
#include "include/gpu/ganesh/gl/GrGLTypes.h"
|
|
14
|
+
#include "include/private/base/SkAPI.h"
|
|
15
|
+
#include "include/private/base/SkTArray.h"
|
|
16
|
+
|
|
17
|
+
#include <utility>
|
|
18
|
+
|
|
19
|
+
class SkJSONWriter;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This helper queries the current GL context for its extensions, remembers them, and can be
|
|
23
|
+
* queried. It supports both glGetString- and glGetStringi-style extension string APIs and will
|
|
24
|
+
* use the latter if it is available. It also will query for EGL extensions if a eglQueryString
|
|
25
|
+
* implementation is provided.
|
|
26
|
+
*/
|
|
27
|
+
class SK_API GrGLExtensions {
|
|
28
|
+
public:
|
|
29
|
+
GrGLExtensions() {}
|
|
30
|
+
|
|
31
|
+
GrGLExtensions(const GrGLExtensions&);
|
|
32
|
+
|
|
33
|
+
GrGLExtensions& operator=(const GrGLExtensions&);
|
|
34
|
+
|
|
35
|
+
void swap(GrGLExtensions* that) {
|
|
36
|
+
using std::swap;
|
|
37
|
+
swap(fStrings, that->fStrings);
|
|
38
|
+
swap(fInitialized, that->fInitialized);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* We sometimes need to use this class without having yet created a GrGLInterface. This version
|
|
43
|
+
* of init expects that getString is always non-NULL while getIntegerv and getStringi are non-
|
|
44
|
+
* NULL if on desktop GL with version 3.0 or higher. Otherwise it will fail.
|
|
45
|
+
*/
|
|
46
|
+
bool init(GrGLStandard standard,
|
|
47
|
+
GrGLFunction<GrGLGetStringFn> getString,
|
|
48
|
+
GrGLFunction<GrGLGetStringiFn> getStringi,
|
|
49
|
+
GrGLFunction<GrGLGetIntegervFn> getIntegerv,
|
|
50
|
+
GrGLFunction<GrEGLQueryStringFn> queryString = nullptr,
|
|
51
|
+
GrEGLDisplay eglDisplay = nullptr);
|
|
52
|
+
|
|
53
|
+
bool isInitialized() const { return fInitialized; }
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Queries whether an extension is present. This will fail if init() has not been called.
|
|
57
|
+
*/
|
|
58
|
+
bool has(const char[]) const;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Removes an extension if present. Returns true if the extension was present before the call.
|
|
62
|
+
*/
|
|
63
|
+
bool remove(const char[]);
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Adds an extension to list
|
|
67
|
+
*/
|
|
68
|
+
void add(const char[]);
|
|
69
|
+
|
|
70
|
+
void reset() { fStrings.clear(); }
|
|
71
|
+
|
|
72
|
+
void dumpJSON(SkJSONWriter*) const;
|
|
73
|
+
|
|
74
|
+
private:
|
|
75
|
+
bool fInitialized = false;
|
|
76
|
+
skia_private::TArray<SkString> fStrings;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
#endif
|