@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
package/cpp/api/JsiSkApi.h
CHANGED
|
@@ -69,6 +69,8 @@ public:
|
|
|
69
69
|
installFunction("Font", JsiSkFont::createCtor(context));
|
|
70
70
|
installFunction("Paint", JsiSkPaint::createCtor(context));
|
|
71
71
|
installFunction("RSXform", JsiSkRSXform::createCtor(context));
|
|
72
|
+
installFunction("RSXformFromRadians",
|
|
73
|
+
JsiSkRSXform::createCtorFromRadians(context));
|
|
72
74
|
installFunction("Matrix", JsiSkMatrix::createCtor(context));
|
|
73
75
|
installFunction("XYWHRect", JsiSkRect::createCtor(context));
|
|
74
76
|
installFunction("RRectXY", JsiSkRRect::createCtor(context));
|
package/cpp/api/JsiSkCanvas.h
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include "JsiSkPicture.h"
|
|
15
15
|
#include "JsiSkPoint.h"
|
|
16
16
|
#include "JsiSkRRect.h"
|
|
17
|
+
#include "JsiSkRSXform.h"
|
|
17
18
|
#include "JsiSkSVG.h"
|
|
18
19
|
#include "JsiSkTextBlob.h"
|
|
19
20
|
#include "JsiSkVertices.h"
|
|
@@ -495,6 +496,40 @@ public:
|
|
|
495
496
|
return jsi::Value::undefined();
|
|
496
497
|
}
|
|
497
498
|
|
|
499
|
+
JSI_HOST_FUNCTION(drawAtlas) {
|
|
500
|
+
auto atlas = JsiSkImage::fromValue(runtime, arguments[0]);
|
|
501
|
+
auto rects = arguments[1].asObject(runtime).asArray(runtime);
|
|
502
|
+
auto transforms = arguments[2].asObject(runtime).asArray(runtime);
|
|
503
|
+
auto paint = JsiSkPaint::fromValue(runtime, arguments[3]);
|
|
504
|
+
auto blendMode = count > 5 && !arguments[4].isUndefined()
|
|
505
|
+
? static_cast<SkBlendMode>(arguments[4].asNumber())
|
|
506
|
+
: SkBlendMode::kSrcOver;
|
|
507
|
+
|
|
508
|
+
std::vector<SkRSXform> xforms;
|
|
509
|
+
int xformsSize = static_cast<int>(transforms.size(runtime));
|
|
510
|
+
xforms.reserve(xformsSize);
|
|
511
|
+
for (int i = 0; i < xformsSize; i++) {
|
|
512
|
+
auto xform = JsiSkRSXform::fromValue(
|
|
513
|
+
runtime, transforms.getValueAtIndex(runtime, i).asObject(runtime));
|
|
514
|
+
xforms.push_back(*xform.get());
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
std::vector<SkRect> skRects;
|
|
518
|
+
int rectsSize = static_cast<int>(rects.size(runtime));
|
|
519
|
+
skRects.reserve(rectsSize);
|
|
520
|
+
for (int i = 0; i < rectsSize; i++) {
|
|
521
|
+
auto rect = JsiSkRect::fromValue(
|
|
522
|
+
runtime, rects.getValueAtIndex(runtime, i).asObject(runtime));
|
|
523
|
+
skRects.push_back(*rect.get());
|
|
524
|
+
}
|
|
525
|
+
SkSamplingOptions sampling;
|
|
526
|
+
_canvas->drawAtlas(atlas.get(), xforms.data(), skRects.data(), nullptr,
|
|
527
|
+
skRects.size(), blendMode, sampling, nullptr,
|
|
528
|
+
paint.get());
|
|
529
|
+
|
|
530
|
+
return jsi::Value::undefined();
|
|
531
|
+
}
|
|
532
|
+
|
|
498
533
|
JSI_HOST_FUNCTION(readPixels) {
|
|
499
534
|
auto srcX = static_cast<int>(arguments[0].asNumber());
|
|
500
535
|
auto srcY = static_cast<int>(arguments[1].asNumber());
|
|
@@ -567,6 +602,7 @@ public:
|
|
|
567
602
|
JSI_EXPORT_FUNC(JsiSkCanvas, clear),
|
|
568
603
|
JSI_EXPORT_FUNC(JsiSkCanvas, concat),
|
|
569
604
|
JSI_EXPORT_FUNC(JsiSkCanvas, drawPicture),
|
|
605
|
+
JSI_EXPORT_FUNC(JsiSkCanvas, drawAtlas),
|
|
570
606
|
JSI_EXPORT_FUNC(JsiSkCanvas, readPixels))
|
|
571
607
|
|
|
572
608
|
explicit JsiSkCanvas(std::shared_ptr<RNSkPlatformContext> context)
|
package/cpp/api/JsiSkRSXform.h
CHANGED
|
@@ -40,13 +40,23 @@ public:
|
|
|
40
40
|
return jsi::Value(SkScalarToDouble(getObject()->fTy));
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
JSI_HOST_FUNCTION(set) {
|
|
44
|
+
auto scos = arguments[0].asNumber();
|
|
45
|
+
auto ssin = arguments[1].asNumber();
|
|
46
|
+
auto tx = arguments[2].asNumber();
|
|
47
|
+
auto ty = arguments[3].asNumber();
|
|
48
|
+
getObject()->set(scos, ssin, tx, ty);
|
|
49
|
+
return jsi::Value::undefined();
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
JSI_EXPORT_PROPERTY_GETTERS(JSI_EXPORT_PROP_GET(JsiSkRSXform, __typename__),
|
|
44
53
|
JSI_EXPORT_PROP_GET(JsiSkRSXform, scos),
|
|
45
54
|
JSI_EXPORT_PROP_GET(JsiSkRSXform, ssin),
|
|
46
55
|
JSI_EXPORT_PROP_GET(JsiSkRSXform, tx),
|
|
47
56
|
JSI_EXPORT_PROP_GET(JsiSkRSXform, ty))
|
|
48
57
|
|
|
49
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRSXform,
|
|
58
|
+
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRSXform, set),
|
|
59
|
+
JSI_EXPORT_FUNC(JsiSkRSXform, dispose))
|
|
50
60
|
|
|
51
61
|
/**
|
|
52
62
|
Returns the underlying object from a host object of this type
|
|
@@ -57,12 +67,10 @@ public:
|
|
|
57
67
|
if (object.isHostObject(runtime)) {
|
|
58
68
|
return object.asHostObject<JsiSkRSXform>(runtime)->getObject();
|
|
59
69
|
} else {
|
|
60
|
-
auto scos =
|
|
61
|
-
|
|
62
|
-
auto
|
|
63
|
-
|
|
64
|
-
auto tx = object.getArray(runtime).getValueAtIndex(runtime, 2).asNumber();
|
|
65
|
-
auto ty = object.getArray(runtime).getValueAtIndex(runtime, 3).asNumber();
|
|
70
|
+
auto scos = object.getProperty(runtime, "scos").asNumber();
|
|
71
|
+
auto ssin = object.getProperty(runtime, "ssin").asNumber();
|
|
72
|
+
auto tx = object.getProperty(runtime, "tx").asNumber();
|
|
73
|
+
auto ty = object.getProperty(runtime, "ty").asNumber();
|
|
66
74
|
return std::make_shared<SkRSXform>(SkRSXform::Make(scos, ssin, tx, ty));
|
|
67
75
|
}
|
|
68
76
|
}
|
|
@@ -77,6 +85,26 @@ public:
|
|
|
77
85
|
runtime, std::make_shared<JsiSkRSXform>(std::move(context), rsxform));
|
|
78
86
|
}
|
|
79
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Creates the function for construction a new instance of the SkRSXform
|
|
90
|
+
* wrapper
|
|
91
|
+
* @param context platform context
|
|
92
|
+
* @return A function for creating a new host object wrapper for the SkRSXform
|
|
93
|
+
* class
|
|
94
|
+
*/
|
|
95
|
+
static const jsi::HostFunctionType
|
|
96
|
+
createCtorFromRadians(std::shared_ptr<RNSkPlatformContext> context) {
|
|
97
|
+
return JSI_HOST_FUNCTION_LAMBDA {
|
|
98
|
+
auto rsxform = SkRSXform::MakeFromRadians(
|
|
99
|
+
arguments[0].asNumber(), arguments[1].asNumber(),
|
|
100
|
+
arguments[2].asNumber(), arguments[3].asNumber(),
|
|
101
|
+
arguments[4].asNumber(), arguments[5].asNumber());
|
|
102
|
+
// Return the newly constructed object
|
|
103
|
+
return jsi::Object::createFromHostObject(
|
|
104
|
+
runtime, std::make_shared<JsiSkRSXform>(std::move(context),
|
|
105
|
+
std::move(rsxform)));
|
|
106
|
+
};
|
|
107
|
+
}
|
|
80
108
|
/**
|
|
81
109
|
* Creates the function for construction a new instance of the SkRSXform
|
|
82
110
|
* wrapper
|
|
@@ -17,7 +17,8 @@ class JsiSkTypefaceFactory : public JsiSkHostObject {
|
|
|
17
17
|
public:
|
|
18
18
|
JSI_HOST_FUNCTION(MakeFreeTypeFaceFromData) {
|
|
19
19
|
auto data = JsiSkData::fromValue(runtime, arguments[0]);
|
|
20
|
-
auto
|
|
20
|
+
auto fontMgr = JsiSkFontMgrFactory::getFontMgr(getContext());
|
|
21
|
+
auto typeface = fontMgr->makeFromData(std::move(data));
|
|
21
22
|
if (typeface == nullptr) {
|
|
22
23
|
return jsi::Value::null();
|
|
23
24
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
#include "JsiHostObject.h"
|
|
10
10
|
|
|
11
|
+
#include "nodes/JsiAtlasNode.h"
|
|
11
12
|
#include "nodes/JsiCircleNode.h"
|
|
12
13
|
#include "nodes/JsiDiffRectNode.h"
|
|
13
14
|
#include "nodes/JsiFillNode.h"
|
|
@@ -66,6 +67,7 @@ public:
|
|
|
66
67
|
installFunction("PatchNode", JsiPatchNode::createCtor(context));
|
|
67
68
|
installFunction("PointsNode", JsiPointsNode::createCtor(context));
|
|
68
69
|
installFunction("DiffRectNode", JsiDiffRectNode::createCtor(context));
|
|
70
|
+
installFunction("AtlasNode", JsiAtlasNode::createCtor(context));
|
|
69
71
|
|
|
70
72
|
installFunction("FillNode", JsiFillNode::createCtor(context));
|
|
71
73
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "JsiDomDrawingNode.h"
|
|
4
|
+
#include "RSXformProp.h"
|
|
5
|
+
#include "RectProp.h"
|
|
6
|
+
#include "SkImageProps.h"
|
|
7
|
+
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <tuple>
|
|
10
|
+
|
|
11
|
+
namespace RNSkia {
|
|
12
|
+
|
|
13
|
+
class JsiAtlasNode : public JsiDomDrawingNode,
|
|
14
|
+
public JsiDomNodeCtor<JsiAtlasNode> {
|
|
15
|
+
public:
|
|
16
|
+
explicit JsiAtlasNode(std::shared_ptr<RNSkPlatformContext> context)
|
|
17
|
+
: JsiDomDrawingNode(context, "skAtlas") {}
|
|
18
|
+
|
|
19
|
+
protected:
|
|
20
|
+
void draw(DrawingContext *context) override {
|
|
21
|
+
if (_rectsProp->isSet() && _imageProp->isSet() && _rsxFormsProp->isSet()) {
|
|
22
|
+
const auto image = _imageProp->getDerivedValue();
|
|
23
|
+
const auto sprites = _rectsProp->getDerivedValue();
|
|
24
|
+
const auto transforms = _rsxFormsProp->getDerivedValue();
|
|
25
|
+
const auto colors =
|
|
26
|
+
_colorsProp->isSet() ? _colorsProp->getDerivedValue() : nullptr;
|
|
27
|
+
const auto blendMode = _blendModeProp->isSet()
|
|
28
|
+
? *_blendModeProp->getDerivedValue()
|
|
29
|
+
: SkBlendMode::kDstOver;
|
|
30
|
+
auto paint = *context->getPaint();
|
|
31
|
+
SkSamplingOptions sampling(SkFilterMode::kLinear, SkMipmapMode::kNone);
|
|
32
|
+
context->getCanvas()->drawAtlas(
|
|
33
|
+
image.get(), transforms->data(), sprites->data(),
|
|
34
|
+
colors == nullptr ? nullptr : colors->data(), sprites->size(),
|
|
35
|
+
blendMode, sampling, nullptr, &paint);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void defineProperties(NodePropsContainer *container) override {
|
|
40
|
+
JsiDomDrawingNode::defineProperties(container);
|
|
41
|
+
_rectsProp = container->defineProperty<RectsProp>("sprites");
|
|
42
|
+
_rsxFormsProp = container->defineProperty<RSXFormsProp>("transforms");
|
|
43
|
+
_imageProp = container->defineProperty<ImageProp>("image");
|
|
44
|
+
_colorsProp = container->defineProperty<ColorsProp>("colors");
|
|
45
|
+
_blendModeProp = container->defineProperty<BlendModeProp>("blendMode");
|
|
46
|
+
|
|
47
|
+
_rectsProp->require();
|
|
48
|
+
_rsxFormsProp->require();
|
|
49
|
+
_imageProp->require();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private:
|
|
53
|
+
ImageProp *_imageProp;
|
|
54
|
+
RectsProp *_rectsProp;
|
|
55
|
+
RSXFormsProp *_rsxFormsProp;
|
|
56
|
+
ColorsProp *_colorsProp;
|
|
57
|
+
BlendModeProp *_blendModeProp;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
} // namespace RNSkia
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "JsiSkRSXform.h"
|
|
4
|
+
#include "NodeProp.h"
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <utility>
|
|
8
|
+
#include <vector>
|
|
9
|
+
|
|
10
|
+
#pragma clang diagnostic push
|
|
11
|
+
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
12
|
+
|
|
13
|
+
#include "SkRSXform.h"
|
|
14
|
+
|
|
15
|
+
#pragma clang diagnostic pop
|
|
16
|
+
|
|
17
|
+
namespace RNSkia {
|
|
18
|
+
|
|
19
|
+
// TODO: Factorize these array classes
|
|
20
|
+
class RSXFormsProp : public DerivedProp<std::vector<SkRSXform>> {
|
|
21
|
+
public:
|
|
22
|
+
explicit RSXFormsProp(PropId name,
|
|
23
|
+
const std::function<void(BaseNodeProp *)> &onChange)
|
|
24
|
+
: DerivedProp<std::vector<SkRSXform>>(onChange) {
|
|
25
|
+
_rsxFormsProp = defineProperty<NodeProp>(name);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void updateDerivedValue() override {
|
|
29
|
+
if (_rsxFormsProp->isSet()) {
|
|
30
|
+
auto rsxforms = _rsxFormsProp->value().getAsArray();
|
|
31
|
+
std::vector<SkRSXform> derivedRSXForms;
|
|
32
|
+
derivedRSXForms.reserve(rsxforms.size());
|
|
33
|
+
|
|
34
|
+
for (size_t i = 0; i < rsxforms.size(); ++i) {
|
|
35
|
+
auto val = rsxforms[i];
|
|
36
|
+
if (val.getType() == PropType::HostObject) {
|
|
37
|
+
auto rsx =
|
|
38
|
+
std::dynamic_pointer_cast<JsiSkRSXform>(val.getAsHostObject())
|
|
39
|
+
->getObject();
|
|
40
|
+
derivedRSXForms.push_back(*rsx);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
setDerivedValue(std::move(derivedRSXForms));
|
|
44
|
+
} else {
|
|
45
|
+
setDerivedValue(nullptr);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private:
|
|
50
|
+
NodeProp *_rsxFormsProp;
|
|
51
|
+
};
|
|
52
|
+
} // namespace RNSkia
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#include "JsiSkRSXform.h"
|
|
3
4
|
#include "NodeProp.h"
|
|
4
5
|
#include "PointProp.h"
|
|
5
6
|
|
|
6
7
|
#include <memory>
|
|
8
|
+
#include <utility>
|
|
9
|
+
#include <vector>
|
|
7
10
|
|
|
8
11
|
#pragma clang diagnostic push
|
|
9
12
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -130,4 +133,32 @@ private:
|
|
|
130
133
|
RectProp *_rectProp;
|
|
131
134
|
RectPropFromProps *_rectPropFromProps;
|
|
132
135
|
};
|
|
136
|
+
|
|
137
|
+
class RectsProp : public DerivedProp<std::vector<SkRect>> {
|
|
138
|
+
public:
|
|
139
|
+
explicit RectsProp(PropId name,
|
|
140
|
+
const std::function<void(BaseNodeProp *)> &onChange)
|
|
141
|
+
: DerivedProp<std::vector<SkRect>>(onChange) {
|
|
142
|
+
_rectsProp = defineProperty<NodeProp>(name);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
void updateDerivedValue() override {
|
|
146
|
+
if (_rectsProp->isSet()) {
|
|
147
|
+
auto rects = _rectsProp->value().getAsArray();
|
|
148
|
+
std::vector<SkRect> derivedRects;
|
|
149
|
+
derivedRects.reserve(rects.size());
|
|
150
|
+
|
|
151
|
+
for (size_t i = 0; i < rects.size(); ++i) {
|
|
152
|
+
derivedRects.push_back(*RectProp::processRect(rects[i]));
|
|
153
|
+
}
|
|
154
|
+
setDerivedValue(std::move(derivedRects));
|
|
155
|
+
} else {
|
|
156
|
+
setDerivedValue(nullptr);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private:
|
|
161
|
+
NodeProp *_rectsProp;
|
|
162
|
+
};
|
|
163
|
+
|
|
133
164
|
} // namespace RNSkia
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
#ifndef AHardwareBufferUtils_DEFINED
|
|
8
|
+
#define AHardwareBufferUtils_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/core/SkColorType.h"
|
|
11
|
+
#include "include/core/SkTypes.h"
|
|
12
|
+
|
|
13
|
+
#if __ANDROID_API__ >= 26
|
|
14
|
+
|
|
15
|
+
namespace AHardwareBufferUtils {
|
|
16
|
+
|
|
17
|
+
SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat);
|
|
18
|
+
|
|
19
|
+
} // namespace AHardwareBufferUtils
|
|
20
|
+
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#endif // AHardwareBufferUtils_DEFINED
|
|
@@ -22,6 +22,8 @@ extern "C" {
|
|
|
22
22
|
|
|
23
23
|
namespace GrAHardwareBufferUtils {
|
|
24
24
|
|
|
25
|
+
// TODO: remove this function once Android has been updated to call the AHardwareBufferUtils
|
|
26
|
+
// version
|
|
25
27
|
SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat);
|
|
26
28
|
|
|
27
29
|
#if !defined(SK_DISABLE_LEGACY_ANDROID_HW_UTILS)
|
|
@@ -0,0 +1,59 @@
|
|
|
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 SurfaceAndroid_DEFINED
|
|
9
|
+
#define SurfaceAndroid_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
|
|
13
|
+
struct AHardwareBuffer;
|
|
14
|
+
class SkColorSpace;
|
|
15
|
+
class SkSurface;
|
|
16
|
+
class SkSurfaceProps;
|
|
17
|
+
|
|
18
|
+
namespace skgpu::graphite {
|
|
19
|
+
class Recorder;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
namespace SkSurfaces {
|
|
23
|
+
|
|
24
|
+
using ReleaseContext = void*;
|
|
25
|
+
using BufferReleaseProc = void (*)(ReleaseContext);
|
|
26
|
+
|
|
27
|
+
/** Private; only to be used by Android Framework.
|
|
28
|
+
Creates an SkSurface from an Android hardware buffer.
|
|
29
|
+
|
|
30
|
+
Upon success bufferReleaseProc is called when it is safe to delete the buffer in the
|
|
31
|
+
backend API (accounting only for use of the buffer by this surface). If SkSurface creation
|
|
32
|
+
fails bufferReleaseProc is called before this function returns.
|
|
33
|
+
|
|
34
|
+
Currently this is only supported for buffers that can be textured as well as rendered to.
|
|
35
|
+
In other words the buffer must have both AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT and
|
|
36
|
+
AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE usage bits.
|
|
37
|
+
|
|
38
|
+
@param recorder the applicable Graphite recorder
|
|
39
|
+
@param hardwareBuffer an Android hardware buffer
|
|
40
|
+
@param colorSpace range of colors; may be nullptr
|
|
41
|
+
@param surfaceProps LCD striping orientation and setting for device independent
|
|
42
|
+
fonts; may be nullptr
|
|
43
|
+
@param bufferReleaseProc function called when the buffer can be released
|
|
44
|
+
@param ReleaseContext state passed to bufferReleaseProc
|
|
45
|
+
@param fromWindow Whether or not the AHardwareBuffer is part of an Android Window.
|
|
46
|
+
Currently only used with Vulkan backend.
|
|
47
|
+
@return created SkSurface, or nullptr
|
|
48
|
+
*/
|
|
49
|
+
SK_API sk_sp<SkSurface> WrapAndroidHardwareBuffer(skgpu::graphite::Recorder* recorder,
|
|
50
|
+
AHardwareBuffer* hardwareBuffer,
|
|
51
|
+
sk_sp<SkColorSpace> colorSpace,
|
|
52
|
+
const SkSurfaceProps* surfaceProps,
|
|
53
|
+
BufferReleaseProc = nullptr,
|
|
54
|
+
ReleaseContext = nullptr,
|
|
55
|
+
bool fromWindow = false);
|
|
56
|
+
|
|
57
|
+
} // namespace SkSurfaces
|
|
58
|
+
|
|
59
|
+
#endif // SurfaceAndroid_DEFINED
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include "include/core/SkRect.h"
|
|
15
15
|
#include "include/core/SkRefCnt.h"
|
|
16
16
|
#include "include/core/SkSize.h"
|
|
17
|
+
#include "include/core/SkSpan.h"
|
|
17
18
|
#include "include/core/SkTypes.h"
|
|
18
19
|
#include "include/core/SkYUVAPixmaps.h"
|
|
19
20
|
#include "include/private/SkEncodedInfo.h"
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
#include <cstddef>
|
|
24
25
|
#include <functional>
|
|
25
26
|
#include <memory>
|
|
26
|
-
#include <
|
|
27
|
+
#include <string_view>
|
|
27
28
|
#include <tuple>
|
|
28
29
|
#include <vector>
|
|
29
30
|
|
|
@@ -46,6 +47,10 @@ namespace DM {
|
|
|
46
47
|
class CodecSrc;
|
|
47
48
|
} // namespace DM
|
|
48
49
|
|
|
50
|
+
namespace SkCodecs {
|
|
51
|
+
struct Decoder;
|
|
52
|
+
}
|
|
53
|
+
|
|
49
54
|
/**
|
|
50
55
|
* Abstraction layer directly on top of an image codec.
|
|
51
56
|
*/
|
|
@@ -175,7 +180,15 @@ public:
|
|
|
175
180
|
* SkCodec takes ownership of it, and will delete it when done with it.
|
|
176
181
|
*/
|
|
177
182
|
static std::unique_ptr<SkCodec> MakeFromStream(
|
|
178
|
-
std::unique_ptr<SkStream>,
|
|
183
|
+
std::unique_ptr<SkStream>,
|
|
184
|
+
SkSpan<const SkCodecs::Decoder> decoders,
|
|
185
|
+
Result* = nullptr,
|
|
186
|
+
SkPngChunkReader* = nullptr,
|
|
187
|
+
SelectionPolicy selectionPolicy = SelectionPolicy::kPreferStillImage);
|
|
188
|
+
// deprecated
|
|
189
|
+
static std::unique_ptr<SkCodec> MakeFromStream(
|
|
190
|
+
std::unique_ptr<SkStream>,
|
|
191
|
+
Result* = nullptr,
|
|
179
192
|
SkPngChunkReader* = nullptr,
|
|
180
193
|
SelectionPolicy selectionPolicy = SelectionPolicy::kPreferStillImage);
|
|
181
194
|
|
|
@@ -195,6 +208,10 @@ public:
|
|
|
195
208
|
* If the PNG does not contain unknown chunks, the SkPngChunkReader
|
|
196
209
|
* will not be used or modified.
|
|
197
210
|
*/
|
|
211
|
+
static std::unique_ptr<SkCodec> MakeFromData(sk_sp<SkData>,
|
|
212
|
+
SkSpan<const SkCodecs::Decoder> decoders,
|
|
213
|
+
SkPngChunkReader* = nullptr);
|
|
214
|
+
// deprecated
|
|
198
215
|
static std::unique_ptr<SkCodec> MakeFromData(sk_sp<SkData>, SkPngChunkReader* = nullptr);
|
|
199
216
|
|
|
200
217
|
virtual ~SkCodec();
|
|
@@ -1012,6 +1029,7 @@ private:
|
|
|
1012
1029
|
friend class SkSampledCodec;
|
|
1013
1030
|
friend class SkIcoCodec;
|
|
1014
1031
|
friend class SkAndroidCodec; // for fEncodedInfo
|
|
1032
|
+
friend class SkPDFBitmap; // for fEncodedInfo
|
|
1015
1033
|
};
|
|
1016
1034
|
|
|
1017
1035
|
namespace SkCodecs {
|
|
@@ -1025,7 +1043,7 @@ using MakeFromStreamCallback = std::unique_ptr<SkCodec> (*)(std::unique_ptr<SkSt
|
|
|
1025
1043
|
struct SK_API Decoder {
|
|
1026
1044
|
// By convention, we use all lowercase letters and go with the primary filename extension.
|
|
1027
1045
|
// For example "png", "jpg", "ico", "webp", etc
|
|
1028
|
-
std::
|
|
1046
|
+
std::string_view id;
|
|
1029
1047
|
IsFormatCallback isFormat;
|
|
1030
1048
|
MakeFromStreamCallback makeFromStream;
|
|
1031
1049
|
};
|
|
@@ -41,7 +41,7 @@ SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
|
|
41
41
|
SkCodecs::DecodeContext = nullptr);
|
|
42
42
|
|
|
43
43
|
// This decoder will always be checked last, no matter when it is registered.
|
|
44
|
-
inline SkCodecs::Decoder Decoder() {
|
|
44
|
+
inline constexpr SkCodecs::Decoder Decoder() {
|
|
45
45
|
return { "raw", IsRaw, Decode };
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -94,6 +94,9 @@
|
|
|
94
94
|
//#define SK_HISTOGRAM_EXACT_LINEAR(name, sample, value_max)
|
|
95
95
|
//#define SK_HISTOGRAM_MEMORY_KB(name, sample)
|
|
96
96
|
|
|
97
|
+
// To use smaller but slower mipmap builder
|
|
98
|
+
//#define SK_USE_DRAWING_MIPMAP_DOWNSAMPLER
|
|
99
|
+
|
|
97
100
|
/* Skia tries to make use of some non-standard C++ language extensions.
|
|
98
101
|
By default, Skia provides msvc and clang/gcc versions of these macros.
|
|
99
102
|
Skia consumers can provide their own definitions of these macros to
|
|
@@ -115,5 +118,4 @@
|
|
|
115
118
|
*/
|
|
116
119
|
//#define SK_API __declspec(dllexport)
|
|
117
120
|
|
|
118
|
-
|
|
119
121
|
#endif
|