@shopify/react-native-skia 0.1.234 → 0.1.237
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/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkCanvas.h +36 -0
- package/cpp/api/JsiSkRSXform.h +35 -7
- package/cpp/api/JsiSkTypefaceFactory.h +2 -1
- package/cpp/rnskia/dom/JsiDomApi.h +2 -0
- package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +60 -0
- package/cpp/rnskia/dom/props/RSXformProp.h +52 -0
- package/cpp/rnskia/dom/props/RectProp.h +31 -0
- package/cpp/skia/include/android/AHardwareBufferUtils.h +23 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -0
- package/cpp/skia/include/android/graphite/SurfaceAndroid.h +59 -0
- package/cpp/skia/include/codec/SkAvifDecoder.h +1 -1
- package/cpp/skia/include/codec/SkBmpDecoder.h +1 -1
- package/cpp/skia/include/codec/SkCodec.h +21 -3
- package/cpp/skia/include/codec/SkGifDecoder.h +1 -1
- package/cpp/skia/include/codec/SkIcoDecoder.h +1 -1
- package/cpp/skia/include/codec/SkJpegDecoder.h +1 -1
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -1
- package/cpp/skia/include/codec/SkPngDecoder.h +1 -1
- package/cpp/skia/include/codec/SkRawDecoder.h +1 -1
- package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -1
- package/cpp/skia/include/codec/SkWebpDecoder.h +1 -1
- package/cpp/skia/include/config/SkUserConfig.h +3 -1
- package/cpp/skia/include/core/SkCanvas.h +66 -37
- package/cpp/skia/include/core/SkColorFilter.h +5 -2
- package/cpp/skia/include/core/SkContourMeasure.h +1 -0
- package/cpp/skia/include/core/SkDocument.h +1 -0
- package/cpp/skia/include/core/SkFont.h +14 -24
- package/cpp/skia/include/core/SkFontArguments.h +1 -1
- package/cpp/skia/include/core/SkFontMetrics.h +1 -1
- package/cpp/skia/include/core/SkFontMgr.h +0 -7
- package/cpp/skia/include/core/SkGraphics.h +13 -0
- package/cpp/skia/include/core/SkMesh.h +9 -13
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPathMeasure.h +2 -0
- package/cpp/skia/include/core/SkSerialProcs.h +29 -11
- package/cpp/skia/include/core/SkSize.h +3 -3
- package/cpp/skia/include/core/SkStream.h +3 -13
- package/cpp/skia/include/core/SkSurface.h +6 -3
- package/cpp/skia/include/core/SkSurfaceProps.h +2 -4
- package/cpp/skia/include/core/SkTraceMemoryDump.h +15 -0
- package/cpp/skia/include/core/SkTypeface.h +8 -56
- package/cpp/skia/include/core/SkTypes.h +8 -0
- package/cpp/skia/include/core/SkVertices.h +1 -1
- package/cpp/skia/include/docs/SkMultiPictureDocument.h +53 -0
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -0
- package/cpp/skia/include/effects/SkGradientShader.h +9 -0
- package/cpp/skia/include/effects/SkRuntimeEffect.h +3 -7
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +33 -47
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -3
- package/cpp/skia/include/gpu/GrContextOptions.h +0 -6
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +44 -28
- package/cpp/skia/include/gpu/GrDirectContext.h +12 -31
- package/cpp/skia/include/gpu/GrTypes.h +1 -16
- package/cpp/skia/include/gpu/MutableTextureState.h +35 -80
- package/cpp/skia/include/gpu/ShaderErrorHandler.h +11 -1
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +2 -2
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +3 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +20 -0
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +30 -0
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -0
- package/cpp/skia/include/gpu/gl/glx/GrGLMakeGLXInterface.h +6 -0
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +3 -3
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +39 -27
- package/cpp/skia/include/gpu/graphite/Context.h +39 -13
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +2 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +2 -1
- package/cpp/skia/include/gpu/graphite/Image.h +106 -87
- package/cpp/skia/include/gpu/graphite/Recorder.h +24 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +7 -2
- package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +41 -2
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +11 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +1 -2
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +6 -6
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +1 -0
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +1 -44
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanMutableTextureState.h +25 -0
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +44 -0
- package/cpp/skia/include/ports/SkFontConfigInterface.h +3 -6
- package/cpp/skia/include/private/SkEncodedInfo.h +5 -0
- package/cpp/skia/include/private/SkExif.h +102 -0
- package/cpp/skia/include/private/SkGainmapInfo.h +11 -1
- package/cpp/skia/include/private/base/SkAssert.h +16 -0
- package/cpp/skia/include/private/base/SkDeque.h +2 -7
- package/cpp/skia/include/private/base/SkLoadUserConfig.h +1 -1
- package/cpp/skia/include/private/base/SkTArray.h +69 -28
- package/cpp/skia/include/private/base/SkThreadAnnotations.h +18 -5
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +26 -30
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +4 -3
- package/cpp/skia/include/private/chromium/SkImageChromium.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +8 -6
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +29 -0
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +12 -9
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +16 -11
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +312 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +77 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +446 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +67 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +36 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +9 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +31 -3
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +10624 -5716
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +28 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +2 -1
- package/cpp/skia/include/utils/mac/SkCGUtils.h +23 -11
- package/cpp/skia/modules/skcms/skcms.h +2 -410
- package/cpp/skia/modules/skcms/src/Transform_inl.h +831 -704
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +161 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +136 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +404 -0
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -0
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +4 -3
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +1 -3
- package/cpp/skia/modules/skresources/include/SkResources.h +28 -17
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +12 -0
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +4 -1
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +4 -1
- package/cpp/skia/src/base/SkUTF.h +7 -0
- package/cpp/skia/src/core/SkTHash.h +20 -8
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +5 -3
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +60 -57
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.js +47 -0
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.js.map +1 -0
- package/lib/commonjs/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/commonjs/dom/nodes/drawings/index.js +13 -0
- package/lib/commonjs/dom/nodes/drawings/index.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.d.ts +7 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/dom/types/NodeType.d.ts +1 -0
- package/lib/commonjs/dom/types/NodeType.js +1 -0
- package/lib/commonjs/dom/types/NodeType.js.map +1 -1
- package/lib/commonjs/dom/types/SkDOM.d.ts +2 -1
- package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
- package/lib/commonjs/external/reanimated/buffers.d.ts +5 -0
- package/lib/commonjs/external/reanimated/buffers.js +48 -0
- package/lib/commonjs/external/reanimated/buffers.js.map +1 -0
- package/lib/commonjs/external/reanimated/index.d.ts +2 -0
- package/lib/commonjs/external/reanimated/index.js +26 -0
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/interpolators.js +13 -1
- package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/commonjs/external/reanimated/moduleWrapper.js +5 -3
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/external/reanimated/textures.d.ts +5 -0
- package/lib/commonjs/external/reanimated/textures.js +38 -0
- package/lib/commonjs/external/reanimated/textures.js.map +1 -0
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +8 -1
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/commonjs/headless/index.js +1 -1
- package/lib/commonjs/headless/index.js.map +1 -1
- package/lib/commonjs/mock/index.js +8 -0
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +1 -1
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/Container.d.ts +1 -1
- package/lib/commonjs/renderer/Container.js +2 -1
- package/lib/commonjs/renderer/Container.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.d.ts +3 -1
- package/lib/commonjs/renderer/HostComponents.js +3 -0
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/Offscreen.d.ts +4 -1
- package/lib/commonjs/renderer/Offscreen.js +28 -10
- package/lib/commonjs/renderer/Offscreen.js.map +1 -1
- package/lib/commonjs/renderer/Reconciler.d.ts +1 -1
- package/lib/commonjs/renderer/Reconciler.js +7 -4
- package/lib/commonjs/renderer/Reconciler.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/commonjs/renderer/components/shapes/Atlas.js +17 -0
- package/lib/commonjs/renderer/components/shapes/Atlas.js.map +1 -0
- package/lib/commonjs/renderer/components/shapes/index.d.ts +1 -0
- package/lib/commonjs/renderer/components/shapes/index.js +13 -0
- package/lib/commonjs/renderer/components/shapes/index.js.map +1 -1
- package/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/commonjs/skia/core/AnimatedImage.js +4 -1
- package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
- package/lib/commonjs/skia/core/Data.d.ts +1 -1
- package/lib/commonjs/skia/core/Data.js +11 -4
- package/lib/commonjs/skia/core/Data.js.map +1 -1
- package/lib/commonjs/skia/core/Rect.d.ts +2 -2
- package/lib/commonjs/skia/types/Canvas.d.ts +16 -1
- package/lib/commonjs/skia/types/Canvas.js.map +1 -1
- package/lib/commonjs/skia/types/Image/Image.d.ts +8 -0
- package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix4.d.ts +2 -2
- package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
- package/lib/commonjs/skia/types/RSXform.d.ts +7 -1
- package/lib/commonjs/skia/types/RSXform.js.map +1 -1
- package/lib/commonjs/skia/types/Rect.d.ts +4 -0
- package/lib/commonjs/skia/types/Rect.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +3 -2
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +19 -0
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/commonjs/skia/web/JsiSkRSXform.js +33 -2
- package/lib/commonjs/skia/web/JsiSkRSXform.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRect.d.ts +3 -2
- package/lib/commonjs/skia/web/JsiSkRect.js +7 -0
- package/lib/commonjs/skia/web/JsiSkRect.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js +2 -1
- package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +5 -0
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +5 -3
- package/lib/module/dom/nodes/JsiSkDOM.js +61 -57
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/module/dom/nodes/drawings/AtlasNode.js +34 -0
- package/lib/module/dom/nodes/drawings/AtlasNode.js.map +1 -0
- package/lib/module/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/module/dom/nodes/drawings/index.js +1 -0
- package/lib/module/dom/nodes/drawings/index.js.map +1 -1
- package/lib/module/dom/types/Drawings.d.ts +7 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/dom/types/NodeType.d.ts +1 -0
- package/lib/module/dom/types/NodeType.js +1 -0
- package/lib/module/dom/types/NodeType.js.map +1 -1
- package/lib/module/dom/types/SkDOM.d.ts +2 -1
- package/lib/module/dom/types/SkDOM.js.map +1 -1
- package/lib/module/external/reanimated/buffers.d.ts +5 -0
- package/lib/module/external/reanimated/buffers.js +27 -0
- package/lib/module/external/reanimated/buffers.js.map +1 -0
- package/lib/module/external/reanimated/index.d.ts +2 -0
- package/lib/module/external/reanimated/index.js +2 -0
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/interpolators.js +13 -1
- package/lib/module/external/reanimated/interpolators.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/module/external/reanimated/moduleWrapper.js +3 -2
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/external/reanimated/textures.d.ts +5 -0
- package/lib/module/external/reanimated/textures.js +24 -0
- package/lib/module/external/reanimated/textures.js.map +1 -0
- package/lib/module/external/reanimated/useAnimatedImageValue.js +7 -1
- package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/module/headless/index.js +1 -1
- package/lib/module/headless/index.js.map +1 -1
- package/lib/module/mock/index.js +8 -0
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/Canvas.js +1 -1
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/Container.d.ts +1 -1
- package/lib/module/renderer/Container.js +2 -1
- package/lib/module/renderer/Container.js.map +1 -1
- package/lib/module/renderer/HostComponents.d.ts +3 -1
- package/lib/module/renderer/HostComponents.js +3 -0
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/Offscreen.d.ts +4 -1
- package/lib/module/renderer/Offscreen.js +19 -9
- package/lib/module/renderer/Offscreen.js.map +1 -1
- package/lib/module/renderer/Reconciler.d.ts +1 -1
- package/lib/module/renderer/Reconciler.js +7 -4
- package/lib/module/renderer/Reconciler.js.map +1 -1
- package/lib/module/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/module/renderer/components/shapes/Atlas.js +5 -0
- package/lib/module/renderer/components/shapes/Atlas.js.map +1 -0
- package/lib/module/renderer/components/shapes/index.d.ts +1 -0
- package/lib/module/renderer/components/shapes/index.js +1 -0
- package/lib/module/renderer/components/shapes/index.js.map +1 -1
- package/lib/module/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/module/skia/core/AnimatedImage.js +4 -1
- package/lib/module/skia/core/AnimatedImage.js.map +1 -1
- package/lib/module/skia/core/Data.d.ts +1 -1
- package/lib/module/skia/core/Data.js +11 -4
- package/lib/module/skia/core/Data.js.map +1 -1
- package/lib/module/skia/core/Rect.d.ts +2 -2
- package/lib/module/skia/types/Canvas.d.ts +16 -1
- package/lib/module/skia/types/Canvas.js.map +1 -1
- package/lib/module/skia/types/Image/Image.d.ts +8 -0
- package/lib/module/skia/types/Image/Image.js.map +1 -1
- package/lib/module/skia/types/Matrix4.d.ts +2 -2
- package/lib/module/skia/types/Matrix4.js.map +1 -1
- package/lib/module/skia/types/RSXform.d.ts +7 -1
- package/lib/module/skia/types/RSXform.js.map +1 -1
- package/lib/module/skia/types/Rect.d.ts +4 -0
- package/lib/module/skia/types/Rect.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +3 -2
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/module/skia/web/JsiSkCanvas.js +18 -0
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/module/skia/web/JsiSkRSXform.js +34 -3
- package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
- package/lib/module/skia/web/JsiSkRect.d.ts +3 -2
- package/lib/module/skia/web/JsiSkRect.js +7 -0
- package/lib/module/skia/web/JsiSkRect.js.map +1 -1
- package/lib/module/skia/web/JsiSkTextBlobFactory.js +2 -1
- package/lib/module/skia/web/JsiSkTextBlobFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +5 -0
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +5 -3
- package/lib/typescript/src/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/typescript/src/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/typescript/src/dom/types/Drawings.d.ts +7 -1
- package/lib/typescript/src/dom/types/NodeType.d.ts +1 -0
- package/lib/typescript/src/dom/types/SkDOM.d.ts +2 -1
- package/lib/typescript/src/external/reanimated/buffers.d.ts +5 -0
- package/lib/typescript/src/external/reanimated/index.d.ts +2 -0
- package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/textures.d.ts +5 -0
- package/lib/typescript/src/renderer/Container.d.ts +1 -1
- package/lib/typescript/src/renderer/HostComponents.d.ts +3 -1
- package/lib/typescript/src/renderer/Offscreen.d.ts +4 -1
- package/lib/typescript/src/renderer/Reconciler.d.ts +1 -1
- package/lib/typescript/src/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/typescript/src/renderer/components/shapes/index.d.ts +1 -0
- package/lib/typescript/src/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/typescript/src/skia/core/Data.d.ts +1 -1
- package/lib/typescript/src/skia/core/Rect.d.ts +2 -2
- package/lib/typescript/src/skia/types/Canvas.d.ts +16 -1
- package/lib/typescript/src/skia/types/Image/Image.d.ts +8 -0
- package/lib/typescript/src/skia/types/Matrix4.d.ts +2 -2
- package/lib/typescript/src/skia/types/RSXform.d.ts +7 -1
- package/lib/typescript/src/skia/types/Rect.d.ts +4 -0
- package/lib/typescript/src/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/typescript/src/skia/types/Skia.d.ts +3 -2
- package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/typescript/src/skia/web/JsiSkRect.d.ts +3 -2
- 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.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.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.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.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- 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/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/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/Info.plist +5 -5
- 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/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/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 +1 -1
- package/src/dom/nodes/JsiSkDOM.ts +63 -56
- package/src/dom/nodes/drawings/AtlasNode.ts +24 -0
- package/src/dom/nodes/drawings/index.ts +1 -0
- package/src/dom/types/Drawings.ts +9 -0
- package/src/dom/types/NodeType.ts +1 -0
- package/src/dom/types/SkDOM.ts +2 -0
- package/src/external/reanimated/buffers.ts +53 -0
- package/src/external/reanimated/index.ts +2 -0
- package/src/external/reanimated/interpolators.ts +15 -2
- package/src/external/reanimated/moduleWrapper.ts +1 -0
- package/src/external/reanimated/textures.tsx +38 -0
- package/src/external/reanimated/useAnimatedImageValue.ts +15 -4
- package/src/headless/index.ts +1 -1
- package/src/mock/index.ts +8 -0
- package/src/renderer/Canvas.tsx +1 -1
- package/src/renderer/Container.tsx +3 -2
- package/src/renderer/HostComponents.ts +6 -1
- package/src/renderer/Offscreen.tsx +24 -11
- package/src/renderer/Reconciler.tsx +5 -2
- package/src/renderer/components/shapes/Atlas.tsx +8 -0
- package/src/renderer/components/shapes/index.ts +1 -0
- package/src/skia/core/AnimatedImage.ts +3 -2
- package/src/skia/core/Data.ts +8 -4
- package/src/skia/types/Canvas.ts +32 -1
- package/src/skia/types/Image/Image.ts +10 -0
- package/src/skia/types/Matrix4.ts +2 -2
- package/src/skia/types/RSXform.ts +7 -1
- package/src/skia/types/Rect.ts +6 -0
- package/src/skia/types/Shader/Shader.ts +6 -1
- package/src/skia/types/Skia.ts +10 -2
- package/src/skia/web/JsiSkCanvas.ts +60 -23
- package/src/skia/web/JsiSkRSXform.ts +28 -4
- package/src/skia/web/JsiSkRect.ts +12 -2
- package/src/skia/web/JsiSkTextBlobFactory.ts +5 -5
- package/src/skia/web/JsiSkia.ts +15 -0
- package/cpp/skia/include/gpu/GrSurfaceInfo.h +0 -142
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +0 -107
- package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +0 -32
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +0 -83
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +0 -47
- package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +0 -57
- package/cpp/skia/include/utils/SkBase64.h +0 -53
- package/cpp/skia/modules/skcms/skcms_internal.h +0 -56
@@ -24,6 +24,7 @@
|
|
24
24
|
|
25
25
|
class SkData;
|
26
26
|
class SkDescriptor;
|
27
|
+
class SkFontMgr;
|
27
28
|
class SkFontDescriptor;
|
28
29
|
class SkScalerContext;
|
29
30
|
class SkStream;
|
@@ -36,10 +37,6 @@ struct SkScalerContextRec;
|
|
36
37
|
|
37
38
|
using SkTypefaceID = uint32_t;
|
38
39
|
|
39
|
-
// SkFontID is deprecated, please use SkTypefaceID.
|
40
|
-
using SkFontID = SkTypefaceID;
|
41
|
-
|
42
|
-
|
43
40
|
/** Machine endian. */
|
44
41
|
typedef uint32_t SkFontTableTag;
|
45
42
|
|
@@ -103,46 +100,13 @@ public:
|
|
103
100
|
*/
|
104
101
|
SkTypefaceID uniqueID() const { return fUniqueID; }
|
105
102
|
|
106
|
-
/** Return the uniqueID for the specified typeface. If the face is null,
|
107
|
-
resolve it to the default font and return its uniqueID. Will never
|
108
|
-
return 0.
|
109
|
-
*/
|
110
|
-
static SkTypefaceID UniqueID(const SkTypeface* face);
|
111
|
-
|
112
103
|
/** Returns true if the two typefaces reference the same underlying font,
|
113
|
-
handling either being null (treating null as
|
104
|
+
handling either being null (treating null as not equal to any font).
|
114
105
|
*/
|
115
106
|
static bool Equal(const SkTypeface* facea, const SkTypeface* faceb);
|
116
107
|
|
117
|
-
/** Returns
|
118
|
-
static sk_sp<SkTypeface>
|
119
|
-
|
120
|
-
/** Creates a new reference to the typeface that most closely matches the
|
121
|
-
requested familyName and fontStyle. This method allows extended font
|
122
|
-
face specifiers as in the SkFontStyle type. Will never return null.
|
123
|
-
|
124
|
-
@param familyName May be NULL. The name of the font family.
|
125
|
-
@param fontStyle The style of the typeface.
|
126
|
-
@return reference to the closest-matching typeface. Call must call
|
127
|
-
unref() when they are done.
|
128
|
-
*/
|
129
|
-
static sk_sp<SkTypeface> MakeFromName(const char familyName[], SkFontStyle fontStyle);
|
130
|
-
|
131
|
-
/** Return a new typeface given a file. If the file does not exist, or is
|
132
|
-
not a valid font file, returns nullptr.
|
133
|
-
*/
|
134
|
-
static sk_sp<SkTypeface> MakeFromFile(const char path[], int index = 0);
|
135
|
-
|
136
|
-
/** Return a new typeface given a stream. If the stream is
|
137
|
-
not a valid font file, returns nullptr. Ownership of the stream is
|
138
|
-
transferred, so the caller must not reference it again.
|
139
|
-
*/
|
140
|
-
static sk_sp<SkTypeface> MakeFromStream(std::unique_ptr<SkStreamAsset> stream, int index = 0);
|
141
|
-
|
142
|
-
/** Return a new typeface given a SkData. If the data is null, or is not a valid font file,
|
143
|
-
* returns nullptr.
|
144
|
-
*/
|
145
|
-
static sk_sp<SkTypeface> MakeFromData(sk_sp<SkData>, int index = 0);
|
108
|
+
/** Returns a non-null typeface which contains no glyphs. */
|
109
|
+
static sk_sp<SkTypeface> MakeEmpty();
|
146
110
|
|
147
111
|
/** Return a new typeface based on this typeface but parameterized as specified in the
|
148
112
|
SkFontArguments. If the SkFontArguments does not supply an argument for a parameter
|
@@ -177,9 +141,11 @@ public:
|
|
177
141
|
/** Given the data previously written by serialize(), return a new instance
|
178
142
|
of a typeface referring to the same font. If that font is not available,
|
179
143
|
return nullptr.
|
144
|
+
Goes through all registered typeface factories and lastResortMgr (if non-null).
|
180
145
|
Does not affect ownership of SkStream.
|
181
146
|
*/
|
182
|
-
|
147
|
+
|
148
|
+
static sk_sp<SkTypeface> MakeDeserialize(SkStream*, sk_sp<SkFontMgr> lastResortMgr);
|
183
149
|
|
184
150
|
/**
|
185
151
|
* Given an array of UTF32 character codes, return their corresponding glyph IDs.
|
@@ -454,21 +420,7 @@ private:
|
|
454
420
|
friend class SkRandomTypeface; // getAdvancedMetrics
|
455
421
|
friend class SkPDFFont; // getAdvancedMetrics
|
456
422
|
|
457
|
-
|
458
|
-
enum Style {
|
459
|
-
kNormal = 0,
|
460
|
-
kBold = 0x01,
|
461
|
-
kItalic = 0x02,
|
462
|
-
|
463
|
-
// helpers
|
464
|
-
kBoldItalic = 0x03
|
465
|
-
};
|
466
|
-
static SkFontStyle FromOldStyle(Style oldStyle);
|
467
|
-
static SkTypeface* GetDefaultTypeface(Style style = SkTypeface::kNormal);
|
468
|
-
|
469
|
-
friend class SkFontPriv; // GetDefaultTypeface
|
470
|
-
friend class SkPaintPriv; // GetDefaultTypeface
|
471
|
-
friend class SkFont; // getGlyphToUnicodeMap
|
423
|
+
friend class SkFontPriv; // getGlyphToUnicodeMap
|
472
424
|
|
473
425
|
private:
|
474
426
|
SkTypefaceID fUniqueID;
|
@@ -86,6 +86,14 @@
|
|
86
86
|
#define SK_GAMMA_EXPONENT (0.0f) // SRGB
|
87
87
|
#endif
|
88
88
|
|
89
|
+
#if !defined(SK_GAMMA_CONTRAST)
|
90
|
+
// A value of 0.5 for SK_GAMMA_CONTRAST appears to be a good compromise.
|
91
|
+
// With lower values small text appears washed out (though correctly so).
|
92
|
+
// With higher values lcd fringing is worse and the smoothing effect of
|
93
|
+
// partial coverage is diminished.
|
94
|
+
#define SK_GAMMA_CONTRAST (0.5f)
|
95
|
+
#endif
|
96
|
+
|
89
97
|
#if defined(SK_HISTOGRAM_ENUMERATION) || \
|
90
98
|
defined(SK_HISTOGRAM_BOOLEAN) || \
|
91
99
|
defined(SK_HISTOGRAM_EXACT_LINEAR) || \
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkMultiPictureDocument_DEFINED
|
9
|
+
#define SkMultiPictureDocument_DEFINED
|
10
|
+
|
11
|
+
#include "include/core/SkPicture.h"
|
12
|
+
#include "include/core/SkRefCnt.h"
|
13
|
+
#include "include/core/SkSize.h"
|
14
|
+
#include "include/core/SkTypes.h"
|
15
|
+
|
16
|
+
#include <functional>
|
17
|
+
|
18
|
+
class SkDocument;
|
19
|
+
class SkStreamSeekable;
|
20
|
+
class SkWStream;
|
21
|
+
struct SkDeserialProcs;
|
22
|
+
struct SkSerialProcs;
|
23
|
+
|
24
|
+
struct SkDocumentPage {
|
25
|
+
sk_sp<SkPicture> fPicture;
|
26
|
+
SkSize fSize;
|
27
|
+
};
|
28
|
+
|
29
|
+
namespace SkMultiPictureDocument {
|
30
|
+
/**
|
31
|
+
* Writes into a file format that is similar to SkPicture::serialize()
|
32
|
+
* Accepts a callback for endPage behavior
|
33
|
+
*/
|
34
|
+
SK_API sk_sp<SkDocument> Make(SkWStream* dst, const SkSerialProcs* = nullptr,
|
35
|
+
std::function<void(const SkPicture*)> onEndPage = nullptr);
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Returns the number of pages in the SkMultiPictureDocument.
|
39
|
+
*/
|
40
|
+
SK_API int ReadPageCount(SkStreamSeekable* src);
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Read the SkMultiPictureDocument into the provided array of pages.
|
44
|
+
* dstArrayCount must equal SkMultiPictureDocumentReadPageCount().
|
45
|
+
* Return false on error.
|
46
|
+
*/
|
47
|
+
SK_API bool Read(SkStreamSeekable* src,
|
48
|
+
SkDocumentPage* dstArray,
|
49
|
+
int dstArrayCount,
|
50
|
+
const SkDeserialProcs* = nullptr);
|
51
|
+
} // namespace SkMultiPictureDocument
|
52
|
+
|
53
|
+
#endif // SkMultiPictureDocument_DEFINED
|
@@ -117,6 +117,12 @@ struct Metadata {
|
|
117
117
|
*/
|
118
118
|
DateTime fModified = {0, 0, 0, 0, 0, 0, 0, 0};
|
119
119
|
|
120
|
+
/** The natural language of the text in the PDF. If fLang is empty, the root
|
121
|
+
StructureElementNode::fLang will be used (if not empty). Text not in
|
122
|
+
this language should be marked with StructureElementNode::fLang.
|
123
|
+
*/
|
124
|
+
SkString fLang;
|
125
|
+
|
120
126
|
/** The DPI (pixels-per-inch) at which features without native PDF support
|
121
127
|
will be rasterized (e.g. draw image with perspective, draw text with
|
122
128
|
perspective, ...) A larger DPI would create a PDF that reflects the
|
@@ -145,6 +151,11 @@ struct Metadata {
|
|
145
151
|
*/
|
146
152
|
StructureElementNode* fStructureElementTreeRoot = nullptr;
|
147
153
|
|
154
|
+
enum class Outline : int {
|
155
|
+
None = 0,
|
156
|
+
StructureElementHeaders = 1,
|
157
|
+
} fOutline = Outline::None;
|
158
|
+
|
148
159
|
/** Executor to handle threaded work within PDF Backend. If this is nullptr,
|
149
160
|
then all work will be done serially on the main thread. To have worker
|
150
161
|
threads assist with various tasks, set this to a valid SkExecutor
|
@@ -79,8 +79,17 @@ public:
|
|
79
79
|
kSRGBLinear,
|
80
80
|
kLab,
|
81
81
|
kOKLab,
|
82
|
+
// This is the same as kOKLab, except it has a simplified version of the CSS gamut
|
83
|
+
// mapping algorithm (https://www.w3.org/TR/css-color-4/#css-gamut-mapping)
|
84
|
+
// into Rec2020 space applied to it.
|
85
|
+
// Warning: This space is experimental and should not be used in production.
|
86
|
+
kOKLabGamutMap,
|
82
87
|
kLCH,
|
83
88
|
kOKLCH,
|
89
|
+
// This is the same as kOKLCH, except it has the same gamut mapping applied to it
|
90
|
+
// as kOKLabGamutMap does.
|
91
|
+
// Warning: This space is experimental and should not be used in production.
|
92
|
+
kOKLCHGamutMap,
|
84
93
|
kSRGB,
|
85
94
|
kHSL,
|
86
95
|
kHWB,
|
@@ -59,7 +59,7 @@ class Program;
|
|
59
59
|
class SK_API SkRuntimeEffect : public SkRefCnt {
|
60
60
|
public:
|
61
61
|
// Reflected description of a uniform variable in the effect's SkSL
|
62
|
-
struct Uniform {
|
62
|
+
struct SK_API Uniform {
|
63
63
|
enum class Type {
|
64
64
|
kFloat,
|
65
65
|
kFloat2,
|
@@ -180,7 +180,7 @@ public:
|
|
180
180
|
}
|
181
181
|
|
182
182
|
// Object that allows passing a SkShader, SkColorFilter or SkBlender as a child
|
183
|
-
class ChildPtr {
|
183
|
+
class SK_API ChildPtr {
|
184
184
|
public:
|
185
185
|
ChildPtr() = default;
|
186
186
|
ChildPtr(sk_sp<SkShader> s) : fChild(std::move(s)) {}
|
@@ -305,11 +305,7 @@ private:
|
|
305
305
|
|
306
306
|
const SkSL::RP::Program* getRPProgram(SkSL::DebugTracePriv* debugTrace) const;
|
307
307
|
|
308
|
-
|
309
|
-
friend class GrSkSLFP; // fBaseProgram, fSampleUsages
|
310
|
-
friend class GrGLSLSkSLFP; //
|
311
|
-
#endif
|
312
|
-
|
308
|
+
friend class GrSkSLFP; // usesColorTransform
|
313
309
|
friend class SkRuntimeShader; // fBaseProgram, fMain, fSampleUsages, getRPProgram()
|
314
310
|
friend class SkRuntimeBlender; //
|
315
311
|
friend class SkRuntimeColorFilter; //
|
@@ -8,60 +8,41 @@
|
|
8
8
|
#ifndef GrBackendSemaphore_DEFINED
|
9
9
|
#define GrBackendSemaphore_DEFINED
|
10
10
|
|
11
|
-
#include "include/gpu/GrTypes.h"
|
12
|
-
|
13
|
-
#include "include/
|
11
|
+
#include "include/gpu/GrTypes.h" // IWYU pragma: keep
|
12
|
+
#include "include/private/base/SkAPI.h"
|
13
|
+
#include "include/private/base/SkAnySubclass.h"
|
14
14
|
|
15
15
|
#ifdef SK_METAL
|
16
16
|
#include "include/gpu/mtl/GrMtlTypes.h"
|
17
17
|
#endif
|
18
18
|
|
19
|
-
#
|
20
|
-
#include "include/gpu/vk/
|
19
|
+
#if defined(SK_VULKAN) && !defined(SK_DISABLE_LEGACY_VULKAN_BACKENDSEMAPHORE)
|
20
|
+
#include "include/private/gpu/vk/SkiaVulkan.h"
|
21
21
|
#endif
|
22
22
|
|
23
23
|
#ifdef SK_DIRECT3D
|
24
24
|
#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h"
|
25
25
|
#endif
|
26
26
|
|
27
|
+
#include <cstddef>
|
28
|
+
|
29
|
+
class GrBackendSemaphoreData;
|
30
|
+
|
27
31
|
/**
|
28
32
|
* Wrapper class for passing into and receiving data from Ganesh about a backend semaphore object.
|
29
33
|
*/
|
30
|
-
class GrBackendSemaphore {
|
34
|
+
class SK_API GrBackendSemaphore {
|
31
35
|
public:
|
32
|
-
//
|
33
|
-
//
|
34
|
-
GrBackendSemaphore()
|
35
|
-
: fBackend(GrBackendApi::kOpenGL), fGLSync(nullptr), fIsInitialized(false) {}
|
36
|
-
|
37
|
-
#ifdef SK_DIRECT3D
|
38
|
-
// We only need to specify these if Direct3D is enabled, because it requires special copy
|
39
|
-
// characteristics.
|
36
|
+
// The GrBackendSemaphore cannot be used until either init* is called, which will set the
|
37
|
+
// appropriate GrBackend.
|
38
|
+
GrBackendSemaphore();
|
40
39
|
~GrBackendSemaphore();
|
41
40
|
GrBackendSemaphore(const GrBackendSemaphore&);
|
42
41
|
GrBackendSemaphore& operator=(const GrBackendSemaphore&);
|
43
|
-
#endif
|
44
|
-
|
45
|
-
void initGL(GrGLsync sync) {
|
46
|
-
fBackend = GrBackendApi::kOpenGL;
|
47
|
-
fGLSync = sync;
|
48
|
-
fIsInitialized = true;
|
49
|
-
}
|
50
|
-
|
51
|
-
#ifdef SK_VULKAN
|
52
|
-
void initVulkan(VkSemaphore semaphore) {
|
53
|
-
fBackend = GrBackendApi::kVulkan;
|
54
|
-
fVkSemaphore = semaphore;
|
55
|
-
|
56
|
-
fIsInitialized = true;
|
57
|
-
}
|
58
42
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
return fVkSemaphore;
|
64
|
-
}
|
43
|
+
#if defined(SK_VULKAN) && !defined(SK_DISABLE_LEGACY_VULKAN_BACKENDSEMAPHORE)
|
44
|
+
void initVulkan(VkSemaphore semaphore);
|
45
|
+
VkSemaphore vkSemaphore() const;
|
65
46
|
#endif
|
66
47
|
|
67
48
|
#ifdef SK_METAL
|
@@ -100,30 +81,35 @@ public:
|
|
100
81
|
#endif
|
101
82
|
|
102
83
|
bool isInitialized() const { return fIsInitialized; }
|
103
|
-
|
104
|
-
GrGLsync glSync() const {
|
105
|
-
if (!fIsInitialized || GrBackendApi::kOpenGL != fBackend) {
|
106
|
-
return nullptr;
|
107
|
-
}
|
108
|
-
return fGLSync;
|
109
|
-
}
|
110
|
-
|
84
|
+
GrBackendApi backend() const { return fBackend; }
|
111
85
|
|
112
86
|
#ifdef SK_DIRECT3D
|
113
87
|
bool getD3DFenceInfo(GrD3DFenceInfo* outInfo) const;
|
114
88
|
#endif
|
115
89
|
|
116
90
|
private:
|
91
|
+
friend class GrBackendSemaphorePriv;
|
92
|
+
friend class GrBackendSemaphoreData;
|
93
|
+
// Size determined by looking at the GrBackendSemaphoreData subclasses, then
|
94
|
+
// guessing-and-checking. Compiler will complain if this is too small - in that case,
|
95
|
+
// just increase the number.
|
96
|
+
inline constexpr static size_t kMaxSubclassSize = 16;
|
97
|
+
using AnySemaphoreData = SkAnySubclass<GrBackendSemaphoreData, kMaxSubclassSize>;
|
98
|
+
|
99
|
+
template <typename SemaphoreData>
|
100
|
+
GrBackendSemaphore(GrBackendApi api, SemaphoreData data) : fBackend(api), fIsInitialized(true) {
|
101
|
+
fSemaphoreData.emplace<SemaphoreData>(data);
|
102
|
+
}
|
103
|
+
|
117
104
|
#ifdef SK_DIRECT3D
|
118
105
|
void assignD3DFenceInfo(const GrD3DFenceInfo& info);
|
119
106
|
#endif
|
120
107
|
|
121
108
|
GrBackendApi fBackend;
|
109
|
+
AnySemaphoreData fSemaphoreData;
|
110
|
+
|
122
111
|
union {
|
123
|
-
|
124
|
-
#ifdef SK_VULKAN
|
125
|
-
VkSemaphore fVkSemaphore;
|
126
|
-
#endif
|
112
|
+
void* fPlaceholder; // TODO(293490566)
|
127
113
|
#ifdef SK_METAL
|
128
114
|
GrMTLHandle fMtlEvent; // Expected to be an id<MTLEvent>
|
129
115
|
#endif
|
@@ -25,7 +25,6 @@ class GrBackendRenderTargetData;
|
|
25
25
|
|
26
26
|
namespace skgpu {
|
27
27
|
class MutableTextureState;
|
28
|
-
class MutableTextureStateRef;
|
29
28
|
}
|
30
29
|
|
31
30
|
#ifdef SK_METAL
|
@@ -290,7 +289,7 @@ private:
|
|
290
289
|
}
|
291
290
|
|
292
291
|
friend class GrVkGpu; // for getMutableState
|
293
|
-
sk_sp<skgpu::
|
292
|
+
sk_sp<skgpu::MutableTextureState> getMutableState() const;
|
294
293
|
|
295
294
|
#ifdef SK_DIRECT3D
|
296
295
|
friend class GrD3DTexture;
|
@@ -433,7 +432,7 @@ private:
|
|
433
432
|
}
|
434
433
|
|
435
434
|
friend class GrVkGpu; // for getMutableState
|
436
|
-
sk_sp<skgpu::
|
435
|
+
sk_sp<skgpu::MutableTextureState> getMutableState() const;
|
437
436
|
|
438
437
|
#ifdef SK_DIRECT3D
|
439
438
|
friend class GrD3DGpu;
|
@@ -20,7 +20,6 @@
|
|
20
20
|
|
21
21
|
class SkExecutor;
|
22
22
|
|
23
|
-
#if defined(SK_GANESH)
|
24
23
|
struct SK_API GrContextOptions {
|
25
24
|
enum class Enable {
|
26
25
|
/** Forces an option to be disabled. */
|
@@ -371,10 +370,5 @@ struct SK_API GrContextOptions {
|
|
371
370
|
|
372
371
|
GrDriverBugWorkarounds fDriverBugWorkarounds;
|
373
372
|
};
|
374
|
-
#else
|
375
|
-
struct GrContextOptions {
|
376
|
-
struct PersistentCache {};
|
377
|
-
};
|
378
|
-
#endif
|
379
373
|
|
380
374
|
#endif
|
@@ -8,11 +8,8 @@
|
|
8
8
|
#ifndef GrContextThreadSafeProxy_DEFINED
|
9
9
|
#define GrContextThreadSafeProxy_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/SkRefCnt.h"
|
12
|
-
|
13
|
-
#if defined(SK_GANESH)
|
14
|
-
|
15
11
|
#include "include/core/SkImageInfo.h"
|
12
|
+
#include "include/core/SkRefCnt.h"
|
16
13
|
#include "include/gpu/GpuTypes.h"
|
17
14
|
#include "include/gpu/GrContextOptions.h"
|
18
15
|
#include "include/gpu/GrTypes.h"
|
@@ -34,9 +31,9 @@ namespace sktext::gpu { class TextBlobRedrawCoordinator; }
|
|
34
31
|
* Can be used to perform actions related to the generating GrContext in a thread safe manner. The
|
35
32
|
* proxy does not access the 3D API (e.g. OpenGL) that backs the generating GrContext.
|
36
33
|
*/
|
37
|
-
class SK_API GrContextThreadSafeProxy
|
34
|
+
class SK_API GrContextThreadSafeProxy : public SkNVRefCnt<GrContextThreadSafeProxy> {
|
38
35
|
public:
|
39
|
-
~GrContextThreadSafeProxy();
|
36
|
+
virtual ~GrContextThreadSafeProxy();
|
40
37
|
|
41
38
|
/**
|
42
39
|
* Create a surface characterization for a DDL that will be replayed into the GrContext
|
@@ -68,7 +65,7 @@ public:
|
|
68
65
|
* @param surfaceProps The surface properties of the SkSurface that the DDL
|
69
66
|
* created with this characterization will be replayed
|
70
67
|
* into
|
71
|
-
* @param
|
68
|
+
* @param isMipmapped Will the surface the DDL will be replayed into have
|
72
69
|
* space allocated for mipmaps?
|
73
70
|
* @param willUseGLFBO0 Will the surface the DDL will be replayed into be
|
74
71
|
* backed by GL FBO 0. This flag is only valid if using
|
@@ -81,24 +78,39 @@ public:
|
|
81
78
|
* command buffer via a GrVkSecondaryCBDrawContext? If
|
82
79
|
* this is true then the following is required:
|
83
80
|
* isTexureable = false
|
84
|
-
*
|
81
|
+
* isMipmapped = false
|
85
82
|
* willUseGLFBO0 = false
|
86
83
|
* vkRTSupportsInputAttachment = false
|
87
84
|
*/
|
88
85
|
GrSurfaceCharacterization createCharacterization(
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
86
|
+
size_t cacheMaxResourceBytes,
|
87
|
+
const SkImageInfo& ii,
|
88
|
+
const GrBackendFormat& backendFormat,
|
89
|
+
int sampleCount,
|
90
|
+
GrSurfaceOrigin origin,
|
91
|
+
const SkSurfaceProps& surfaceProps,
|
92
|
+
skgpu::Mipmapped isMipmapped,
|
93
|
+
bool willUseGLFBO0 = false,
|
94
|
+
bool isTextureable = true,
|
95
|
+
skgpu::Protected isProtected = GrProtected::kNo,
|
96
|
+
bool vkRTSupportsInputAttachment = false,
|
97
|
+
bool forVulkanSecondaryCommandBuffer = false);
|
98
|
+
|
99
|
+
#if !defined(SK_DISABLE_LEGACY_CREATE_CHARACTERIZATION)
|
100
|
+
GrSurfaceCharacterization createCharacterization(
|
101
|
+
size_t cacheMaxResourceBytes,
|
102
|
+
const SkImageInfo& ii,
|
103
|
+
const GrBackendFormat& backendFormat,
|
104
|
+
int sampleCount,
|
105
|
+
GrSurfaceOrigin origin,
|
106
|
+
const SkSurfaceProps& surfaceProps,
|
107
|
+
bool isMipmapped,
|
108
|
+
bool willUseGLFBO0 = false,
|
109
|
+
bool isTextureable = true,
|
110
|
+
skgpu::Protected isProtected = GrProtected::kNo,
|
111
|
+
bool vkRTSupportsInputAttachment = false,
|
112
|
+
bool forVulkanSecondaryCommandBuffer = false);
|
113
|
+
#endif
|
102
114
|
/*
|
103
115
|
* Retrieve the default GrBackendFormat for a given SkColorType and renderability.
|
104
116
|
* It is guaranteed that this backend format will be the one used by the following
|
@@ -138,12 +150,13 @@ public:
|
|
138
150
|
GrContextThreadSafeProxyPriv priv();
|
139
151
|
const GrContextThreadSafeProxyPriv priv() const; // NOLINT(readability-const-return-type)
|
140
152
|
|
141
|
-
|
142
|
-
friend class GrContextThreadSafeProxyPriv; // for ctor and hidden methods
|
143
|
-
|
153
|
+
protected:
|
144
154
|
// DDL TODO: need to add unit tests for backend & maybe options
|
145
155
|
GrContextThreadSafeProxy(GrBackendApi, const GrContextOptions&);
|
146
156
|
|
157
|
+
private:
|
158
|
+
friend class GrContextThreadSafeProxyPriv; // for ctor and hidden methods
|
159
|
+
|
147
160
|
void abandonContext();
|
148
161
|
bool abandoned() const;
|
149
162
|
|
@@ -152,6 +165,13 @@ private:
|
|
152
165
|
// `init` method on GrContext_Base).
|
153
166
|
void init(sk_sp<const GrCaps>, sk_sp<GrThreadSafePipelineBuilder>);
|
154
167
|
|
168
|
+
virtual bool isValidCharacterizationForVulkan(sk_sp<const GrCaps>,
|
169
|
+
bool isTextureable,
|
170
|
+
skgpu::Mipmapped isMipmapped,
|
171
|
+
skgpu::Protected isProtected,
|
172
|
+
bool vkRTSupportsInputAttachment,
|
173
|
+
bool forVulkanSecondaryCommandBuffer);
|
174
|
+
|
155
175
|
const GrBackendApi fBackend;
|
156
176
|
const GrContextOptions fOptions;
|
157
177
|
const uint32_t fContextID;
|
@@ -162,8 +182,4 @@ private:
|
|
162
182
|
std::atomic<bool> fAbandoned{false};
|
163
183
|
};
|
164
184
|
|
165
|
-
#else // !defined(SK_GANESH)
|
166
|
-
class SK_API GrContextThreadSafeProxy final : public SkNVRefCnt<GrContextThreadSafeProxy> {};
|
167
|
-
#endif
|
168
|
-
|
169
185
|
#endif
|
@@ -41,9 +41,7 @@ class SkTaskGroup;
|
|
41
41
|
class SkTraceMemoryDump;
|
42
42
|
enum SkColorType : int;
|
43
43
|
enum class SkTextureCompressionType;
|
44
|
-
struct GrGLInterface;
|
45
44
|
struct GrMockOptions;
|
46
|
-
struct GrVkBackendContext; // IWYU pragma: keep
|
47
45
|
struct GrD3DBackendContext; // IWYU pragma: keep
|
48
46
|
struct GrMtlBackendContext; // IWYU pragma: keep
|
49
47
|
|
@@ -62,28 +60,6 @@ enum class BackendSurfaceAccess;
|
|
62
60
|
|
63
61
|
class SK_API GrDirectContext : public GrRecordingContext {
|
64
62
|
public:
|
65
|
-
#if defined(SK_GL) && !defined(SK_DISABLE_LEGACY_GL_GRDIRECTCONTEXT_FACTORIES)
|
66
|
-
/**
|
67
|
-
* Creates a GrDirectContext for a backend context. If no GrGLInterface is provided then the
|
68
|
-
* result of GrGLMakeNativeInterface() is used if it succeeds.
|
69
|
-
*/
|
70
|
-
static sk_sp<GrDirectContext> MakeGL(sk_sp<const GrGLInterface>, const GrContextOptions&);
|
71
|
-
static sk_sp<GrDirectContext> MakeGL(sk_sp<const GrGLInterface>);
|
72
|
-
static sk_sp<GrDirectContext> MakeGL(const GrContextOptions&);
|
73
|
-
static sk_sp<GrDirectContext> MakeGL();
|
74
|
-
#endif
|
75
|
-
|
76
|
-
#ifdef SK_VULKAN
|
77
|
-
/**
|
78
|
-
* The Vulkan context (VkQueue, VkDevice, VkInstance) must be kept alive until the returned
|
79
|
-
* GrDirectContext is destroyed. This also means that any objects created with this
|
80
|
-
* GrDirectContext (e.g. SkSurfaces, SkImages, etc.) must also be released as they may hold
|
81
|
-
* refs on the GrDirectContext. Once all these objects and the GrDirectContext are released,
|
82
|
-
* then it is safe to delete the vulkan objects.
|
83
|
-
*/
|
84
|
-
static sk_sp<GrDirectContext> MakeVulkan(const GrVkBackendContext&, const GrContextOptions&);
|
85
|
-
static sk_sp<GrDirectContext> MakeVulkan(const GrVkBackendContext&);
|
86
|
-
#endif
|
87
63
|
|
88
64
|
#ifdef SK_METAL
|
89
65
|
/**
|
@@ -357,14 +333,17 @@ public:
|
|
357
333
|
|
358
334
|
/**
|
359
335
|
* Inserts a list of GPU semaphores that the current GPU-backed API must wait on before
|
360
|
-
* executing any more commands on the GPU.
|
361
|
-
*
|
362
|
-
*
|
336
|
+
* executing any more commands on the GPU. We only guarantee blocking transfer and fragment
|
337
|
+
* shader work, but may block earlier stages as well depending on the backend.If this call
|
338
|
+
* returns false, then the GPU back-end will not wait on any passed in semaphores, and the
|
339
|
+
* client will still own the semaphores, regardless of the value of deleteSemaphoresAfterWait.
|
363
340
|
*
|
364
341
|
* If deleteSemaphoresAfterWait is false then Skia will not delete the semaphores. In this case
|
365
342
|
* it is the client's responsibility to not destroy or attempt to reuse the semaphores until it
|
366
343
|
* knows that Skia has finished waiting on them. This can be done by using finishedProcs on
|
367
344
|
* flush calls.
|
345
|
+
*
|
346
|
+
* This is not supported on the GL backend.
|
368
347
|
*/
|
369
348
|
bool wait(int numSemaphores, const GrBackendSemaphore* waitSemaphores,
|
370
349
|
bool deleteSemaphoresAfterWait = true);
|
@@ -416,13 +395,13 @@ public:
|
|
416
395
|
* @param image the non-null image to flush.
|
417
396
|
* @param info flush options
|
418
397
|
*/
|
419
|
-
GrSemaphoresSubmitted flush(sk_sp<const SkImage
|
420
|
-
void flush(sk_sp<const SkImage
|
398
|
+
GrSemaphoresSubmitted flush(const sk_sp<const SkImage>& image, const GrFlushInfo& info);
|
399
|
+
void flush(const sk_sp<const SkImage>& image);
|
421
400
|
|
422
401
|
/** Version of flush() that uses a default GrFlushInfo. Also submits the flushed work to the
|
423
402
|
* GPU.
|
424
403
|
*/
|
425
|
-
void flushAndSubmit(sk_sp<const SkImage
|
404
|
+
void flushAndSubmit(const sk_sp<const SkImage>& image);
|
426
405
|
|
427
406
|
/** Issues pending SkSurface commands to the GPU-backed API objects and resolves any SkSurface
|
428
407
|
* MSAA. A call to GrDirectContext::submit is always required to ensure work is actually sent
|
@@ -952,7 +931,9 @@ public:
|
|
952
931
|
const GrDirectContextPriv priv() const; // NOLINT(readability-const-return-type)
|
953
932
|
|
954
933
|
protected:
|
955
|
-
GrDirectContext(GrBackendApi backend,
|
934
|
+
GrDirectContext(GrBackendApi backend,
|
935
|
+
const GrContextOptions& options,
|
936
|
+
sk_sp<GrContextThreadSafeProxy> proxy);
|
956
937
|
|
957
938
|
bool init() override;
|
958
939
|
|