@shopify/react-native-skia 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +10 -0
- package/android/build.gradle +2 -1
- package/apple/SkiaCVPixelBufferUtils.mm +8 -4
- package/cpp/api/JsiSkCanvas.h +10 -8
- package/cpp/api/JsiSkFont.h +14 -18
- package/cpp/api/JsiSkPath.h +4 -2
- package/cpp/api/JsiSkPathEffectFactory.h +2 -2
- package/cpp/api/JsiSkTextBlobFactory.h +5 -3
- package/cpp/api/JsiSkTypeface.h +5 -4
- package/cpp/api/recorder/Drawings.h +26 -20
- package/cpp/api/recorder/PathEffects.h +3 -2
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +1 -1
- package/cpp/skia/include/android/SkImageAndroid.h +1 -8
- package/cpp/skia/include/config/SkUserConfig.h +9 -0
- package/cpp/skia/include/core/SkCPUContext.h +31 -0
- package/cpp/skia/include/core/SkCPURecorder.h +69 -0
- package/cpp/skia/include/core/SkCanvas.h +57 -13
- package/cpp/skia/include/core/SkContourMeasure.h +1 -1
- package/cpp/skia/include/core/SkData.h +63 -37
- package/cpp/skia/include/core/SkFont.h +94 -65
- package/cpp/skia/include/core/SkImage.h +10 -9
- package/cpp/skia/include/core/SkImageGenerator.h +3 -0
- package/cpp/skia/include/core/SkMatrix.h +102 -116
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPath.h +163 -60
- package/cpp/skia/include/core/SkPathBuilder.h +713 -30
- package/cpp/skia/include/core/SkPathTypes.h +5 -1
- package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
- package/cpp/skia/include/core/SkRecorder.h +35 -0
- package/cpp/skia/include/core/SkRect.h +57 -27
- package/cpp/skia/include/core/SkRegion.h +1 -1
- package/cpp/skia/include/core/SkSurface.h +8 -1
- package/cpp/skia/include/core/SkTextBlob.h +50 -6
- package/cpp/skia/include/core/SkTraceMemoryDump.h +7 -0
- package/cpp/skia/include/core/SkTypeface.h +53 -26
- package/cpp/skia/include/core/SkTypes.h +6 -0
- package/cpp/skia/include/effects/SkDashPathEffect.h +9 -3
- package/cpp/skia/include/effects/SkRuntimeEffect.h +1 -1
- package/cpp/skia/include/encode/SkEncoder.h +1 -1
- package/cpp/skia/include/encode/SkICC.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +23 -0
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +12 -0
- package/cpp/skia/include/gpu/graphite/Context.h +32 -8
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +22 -4
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +21 -4
- package/cpp/skia/include/gpu/graphite/PrecompileContext.h +16 -2
- package/cpp/skia/include/gpu/graphite/Recorder.h +30 -10
- package/cpp/skia/include/gpu/graphite/Recording.h +7 -3
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +3 -3
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +15 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +89 -13
- package/cpp/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +39 -0
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +214 -0
- package/cpp/skia/include/pathops/SkPathOps.h +7 -111
- package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +3 -0
- package/cpp/skia/include/private/SkGainmapShader.h +10 -4
- package/cpp/skia/include/private/SkPathRef.h +6 -2
- package/cpp/skia/include/private/base/SkAlign.h +11 -0
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_icd.h +255 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_layer.h +203 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +1 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +390 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +106 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +140 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +144 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +158 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +242 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +10094 -5707
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +55 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +288 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +59 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +238 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +110 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +47 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +55 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +60 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +46 -0
- package/cpp/skia/modules/pathops/include/SkPathOps.h +121 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +10 -2
- package/cpp/skia/modules/skcms/src/skcms_public.h +39 -10
- package/lib/commonjs/sksg/Container.d.ts +1 -0
- package/lib/commonjs/sksg/Container.js +3 -0
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/Reconciler.js +1 -0
- package/lib/commonjs/sksg/Reconciler.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +1 -0
- package/lib/module/sksg/Container.js +3 -0
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/Reconciler.js +1 -0
- package/lib/module/sksg/Reconciler.js.map +1 -1
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -1
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -3
- package/lib/typescript/lib/module/sksg/Container.d.ts +2 -1
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -3
- package/lib/typescript/src/sksg/Container.d.ts +1 -0
- package/libs/android/arm64-v8a/libpathops.a +0 -0
- 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_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libpathops.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_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libpathops.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_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libpathops.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_icu.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/apple/libpathops.xcframework/Info.plist +94 -0
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libskia.xcframework/Info.plist +7 -7
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskottie.xcframework/Info.plist +10 -10
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskparagraph.xcframework/Info.plist +13 -13
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libsksg.xcframework/Info.plist +11 -11
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libskshaper.xcframework/Info.plist +12 -12
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/Info.plist +14 -14
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +13 -13
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libsvg.xcframework/Info.plist +17 -17
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +1 -1
- package/react-native-skia.podspec +2 -1
- package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +23 -0
- package/src/sksg/Container.ts +4 -0
- package/src/sksg/Reconciler.ts +1 -0
@@ -0,0 +1,110 @@
|
|
1
|
+
#ifndef VULKAN_SCREEN_H_
|
2
|
+
#define VULKAN_SCREEN_H_ 1
|
3
|
+
|
4
|
+
/*
|
5
|
+
** Copyright 2015-2025 The Khronos Group Inc.
|
6
|
+
**
|
7
|
+
** SPDX-License-Identifier: Apache-2.0
|
8
|
+
*/
|
9
|
+
|
10
|
+
/*
|
11
|
+
** This header is generated from the Khronos Vulkan XML API Registry.
|
12
|
+
**
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif
|
18
|
+
|
19
|
+
// VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls.
|
20
|
+
#define VK_QNX_screen_surface 1
|
21
|
+
#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
|
22
|
+
#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
|
23
|
+
typedef VkFlags VkScreenSurfaceCreateFlagsQNX;
|
24
|
+
typedef struct VkScreenSurfaceCreateInfoQNX {
|
25
|
+
VkStructureType sType;
|
26
|
+
const void* pNext;
|
27
|
+
VkScreenSurfaceCreateFlagsQNX flags;
|
28
|
+
struct _screen_context* context;
|
29
|
+
struct _screen_window* window;
|
30
|
+
} VkScreenSurfaceCreateInfoQNX;
|
31
|
+
|
32
|
+
typedef VkResult(VKAPI_PTR* PFN_vkCreateScreenSurfaceQNX)(
|
33
|
+
VkInstance instance,
|
34
|
+
const VkScreenSurfaceCreateInfoQNX* pCreateInfo,
|
35
|
+
const VkAllocationCallbacks* pAllocator,
|
36
|
+
VkSurfaceKHR* pSurface);
|
37
|
+
typedef VkBool32(VKAPI_PTR* PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(
|
38
|
+
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window);
|
39
|
+
|
40
|
+
#ifndef VK_NO_PROTOTYPES
|
41
|
+
VKAPI_ATTR VkResult VKAPI_CALL
|
42
|
+
vkCreateScreenSurfaceQNX(VkInstance instance,
|
43
|
+
const VkScreenSurfaceCreateInfoQNX* pCreateInfo,
|
44
|
+
const VkAllocationCallbacks* pAllocator,
|
45
|
+
VkSurfaceKHR* pSurface);
|
46
|
+
|
47
|
+
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX(
|
48
|
+
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window);
|
49
|
+
#endif
|
50
|
+
|
51
|
+
// VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls.
|
52
|
+
#define VK_QNX_external_memory_screen_buffer 1
|
53
|
+
#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1
|
54
|
+
#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer"
|
55
|
+
typedef struct VkScreenBufferPropertiesQNX {
|
56
|
+
VkStructureType sType;
|
57
|
+
void* pNext;
|
58
|
+
VkDeviceSize allocationSize;
|
59
|
+
uint32_t memoryTypeBits;
|
60
|
+
} VkScreenBufferPropertiesQNX;
|
61
|
+
|
62
|
+
typedef struct VkScreenBufferFormatPropertiesQNX {
|
63
|
+
VkStructureType sType;
|
64
|
+
void* pNext;
|
65
|
+
VkFormat format;
|
66
|
+
uint64_t externalFormat;
|
67
|
+
uint64_t screenUsage;
|
68
|
+
VkFormatFeatureFlags formatFeatures;
|
69
|
+
VkComponentMapping samplerYcbcrConversionComponents;
|
70
|
+
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
|
71
|
+
VkSamplerYcbcrRange suggestedYcbcrRange;
|
72
|
+
VkChromaLocation suggestedXChromaOffset;
|
73
|
+
VkChromaLocation suggestedYChromaOffset;
|
74
|
+
} VkScreenBufferFormatPropertiesQNX;
|
75
|
+
|
76
|
+
typedef struct VkImportScreenBufferInfoQNX {
|
77
|
+
VkStructureType sType;
|
78
|
+
const void* pNext;
|
79
|
+
struct _screen_buffer* buffer;
|
80
|
+
} VkImportScreenBufferInfoQNX;
|
81
|
+
|
82
|
+
typedef struct VkExternalFormatQNX {
|
83
|
+
VkStructureType sType;
|
84
|
+
void* pNext;
|
85
|
+
uint64_t externalFormat;
|
86
|
+
} VkExternalFormatQNX;
|
87
|
+
|
88
|
+
typedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
|
89
|
+
VkStructureType sType;
|
90
|
+
void* pNext;
|
91
|
+
VkBool32 screenBufferImport;
|
92
|
+
} VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
|
93
|
+
|
94
|
+
typedef VkResult(VKAPI_PTR* PFN_vkGetScreenBufferPropertiesQNX)(
|
95
|
+
VkDevice device,
|
96
|
+
const struct _screen_buffer* buffer,
|
97
|
+
VkScreenBufferPropertiesQNX* pProperties);
|
98
|
+
|
99
|
+
#ifndef VK_NO_PROTOTYPES
|
100
|
+
VKAPI_ATTR VkResult VKAPI_CALL
|
101
|
+
vkGetScreenBufferPropertiesQNX(VkDevice device,
|
102
|
+
const struct _screen_buffer* buffer,
|
103
|
+
VkScreenBufferPropertiesQNX* pProperties);
|
104
|
+
#endif
|
105
|
+
|
106
|
+
#ifdef __cplusplus
|
107
|
+
}
|
108
|
+
#endif
|
109
|
+
|
110
|
+
#endif
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#ifndef VULKAN_VI_H_
|
2
|
+
#define VULKAN_VI_H_ 1
|
3
|
+
|
4
|
+
/*
|
5
|
+
** Copyright 2015-2025 The Khronos Group Inc.
|
6
|
+
**
|
7
|
+
** SPDX-License-Identifier: Apache-2.0
|
8
|
+
*/
|
9
|
+
|
10
|
+
/*
|
11
|
+
** This header is generated from the Khronos Vulkan XML API Registry.
|
12
|
+
**
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif
|
18
|
+
|
19
|
+
// VK_NN_vi_surface is a preprocessor guard. Do not pass it to API calls.
|
20
|
+
#define VK_NN_vi_surface 1
|
21
|
+
#define VK_NN_VI_SURFACE_SPEC_VERSION 1
|
22
|
+
#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
|
23
|
+
typedef VkFlags VkViSurfaceCreateFlagsNN;
|
24
|
+
typedef struct VkViSurfaceCreateInfoNN {
|
25
|
+
VkStructureType sType;
|
26
|
+
const void* pNext;
|
27
|
+
VkViSurfaceCreateFlagsNN flags;
|
28
|
+
void* window;
|
29
|
+
} VkViSurfaceCreateInfoNN;
|
30
|
+
|
31
|
+
typedef VkResult(VKAPI_PTR* PFN_vkCreateViSurfaceNN)(VkInstance instance,
|
32
|
+
const VkViSurfaceCreateInfoNN* pCreateInfo,
|
33
|
+
const VkAllocationCallbacks* pAllocator,
|
34
|
+
VkSurfaceKHR* pSurface);
|
35
|
+
|
36
|
+
#ifndef VK_NO_PROTOTYPES
|
37
|
+
VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(VkInstance instance,
|
38
|
+
const VkViSurfaceCreateInfoNN* pCreateInfo,
|
39
|
+
const VkAllocationCallbacks* pAllocator,
|
40
|
+
VkSurfaceKHR* pSurface);
|
41
|
+
#endif
|
42
|
+
|
43
|
+
#ifdef __cplusplus
|
44
|
+
}
|
45
|
+
#endif
|
46
|
+
|
47
|
+
#endif
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#ifndef VULKAN_WAYLAND_H_
|
2
|
+
#define VULKAN_WAYLAND_H_ 1
|
3
|
+
|
4
|
+
/*
|
5
|
+
** Copyright 2015-2025 The Khronos Group Inc.
|
6
|
+
**
|
7
|
+
** SPDX-License-Identifier: Apache-2.0
|
8
|
+
*/
|
9
|
+
|
10
|
+
/*
|
11
|
+
** This header is generated from the Khronos Vulkan XML API Registry.
|
12
|
+
**
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif
|
18
|
+
|
19
|
+
// VK_KHR_wayland_surface is a preprocessor guard. Do not pass it to API calls.
|
20
|
+
#define VK_KHR_wayland_surface 1
|
21
|
+
#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
|
22
|
+
#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
|
23
|
+
typedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
|
24
|
+
typedef struct VkWaylandSurfaceCreateInfoKHR {
|
25
|
+
VkStructureType sType;
|
26
|
+
const void* pNext;
|
27
|
+
VkWaylandSurfaceCreateFlagsKHR flags;
|
28
|
+
struct wl_display* display;
|
29
|
+
struct wl_surface* surface;
|
30
|
+
} VkWaylandSurfaceCreateInfoKHR;
|
31
|
+
|
32
|
+
typedef VkResult(VKAPI_PTR* PFN_vkCreateWaylandSurfaceKHR)(
|
33
|
+
VkInstance instance,
|
34
|
+
const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
|
35
|
+
const VkAllocationCallbacks* pAllocator,
|
36
|
+
VkSurfaceKHR* pSurface);
|
37
|
+
typedef VkBool32(VKAPI_PTR* PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(
|
38
|
+
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
|
39
|
+
|
40
|
+
#ifndef VK_NO_PROTOTYPES
|
41
|
+
VKAPI_ATTR VkResult VKAPI_CALL
|
42
|
+
vkCreateWaylandSurfaceKHR(VkInstance instance,
|
43
|
+
const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
|
44
|
+
const VkAllocationCallbacks* pAllocator,
|
45
|
+
VkSurfaceKHR* pSurface);
|
46
|
+
|
47
|
+
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
|
48
|
+
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
|
49
|
+
#endif
|
50
|
+
|
51
|
+
#ifdef __cplusplus
|
52
|
+
}
|
53
|
+
#endif
|
54
|
+
|
55
|
+
#endif
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#ifndef VULKAN_XLIB_H_
|
2
|
+
#define VULKAN_XLIB_H_ 1
|
3
|
+
|
4
|
+
/*
|
5
|
+
** Copyright 2015-2025 The Khronos Group Inc.
|
6
|
+
**
|
7
|
+
** SPDX-License-Identifier: Apache-2.0
|
8
|
+
*/
|
9
|
+
|
10
|
+
/*
|
11
|
+
** This header is generated from the Khronos Vulkan XML API Registry.
|
12
|
+
**
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif
|
18
|
+
|
19
|
+
// VK_KHR_xlib_surface is a preprocessor guard. Do not pass it to API calls.
|
20
|
+
#define VK_KHR_xlib_surface 1
|
21
|
+
#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
|
22
|
+
#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
|
23
|
+
typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
|
24
|
+
typedef struct VkXlibSurfaceCreateInfoKHR {
|
25
|
+
VkStructureType sType;
|
26
|
+
const void* pNext;
|
27
|
+
VkXlibSurfaceCreateFlagsKHR flags;
|
28
|
+
Display* dpy;
|
29
|
+
Window window;
|
30
|
+
} VkXlibSurfaceCreateInfoKHR;
|
31
|
+
|
32
|
+
typedef VkResult(VKAPI_PTR* PFN_vkCreateXlibSurfaceKHR)(
|
33
|
+
VkInstance instance,
|
34
|
+
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
35
|
+
const VkAllocationCallbacks* pAllocator,
|
36
|
+
VkSurfaceKHR* pSurface);
|
37
|
+
typedef VkBool32(VKAPI_PTR* PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(
|
38
|
+
VkPhysicalDevice physicalDevice,
|
39
|
+
uint32_t queueFamilyIndex,
|
40
|
+
Display* dpy,
|
41
|
+
VisualID visualID);
|
42
|
+
|
43
|
+
#ifndef VK_NO_PROTOTYPES
|
44
|
+
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(VkInstance instance,
|
45
|
+
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
46
|
+
const VkAllocationCallbacks* pAllocator,
|
47
|
+
VkSurfaceKHR* pSurface);
|
48
|
+
|
49
|
+
VKAPI_ATTR VkBool32 VKAPI_CALL
|
50
|
+
vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,
|
51
|
+
uint32_t queueFamilyIndex,
|
52
|
+
Display* dpy,
|
53
|
+
VisualID visualID);
|
54
|
+
#endif
|
55
|
+
|
56
|
+
#ifdef __cplusplus
|
57
|
+
}
|
58
|
+
#endif
|
59
|
+
|
60
|
+
#endif
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#ifndef VULKAN_XLIB_XRANDR_H_
|
2
|
+
#define VULKAN_XLIB_XRANDR_H_ 1
|
3
|
+
|
4
|
+
/*
|
5
|
+
** Copyright 2015-2025 The Khronos Group Inc.
|
6
|
+
**
|
7
|
+
** SPDX-License-Identifier: Apache-2.0
|
8
|
+
*/
|
9
|
+
|
10
|
+
/*
|
11
|
+
** This header is generated from the Khronos Vulkan XML API Registry.
|
12
|
+
**
|
13
|
+
*/
|
14
|
+
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif
|
18
|
+
|
19
|
+
// VK_EXT_acquire_xlib_display is a preprocessor guard. Do not pass it to API calls.
|
20
|
+
#define VK_EXT_acquire_xlib_display 1
|
21
|
+
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
|
22
|
+
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
|
23
|
+
typedef VkResult(VKAPI_PTR* PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice,
|
24
|
+
Display* dpy,
|
25
|
+
VkDisplayKHR display);
|
26
|
+
typedef VkResult(VKAPI_PTR* PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice,
|
27
|
+
Display* dpy,
|
28
|
+
RROutput rrOutput,
|
29
|
+
VkDisplayKHR* pDisplay);
|
30
|
+
|
31
|
+
#ifndef VK_NO_PROTOTYPES
|
32
|
+
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice,
|
33
|
+
Display* dpy,
|
34
|
+
VkDisplayKHR display);
|
35
|
+
|
36
|
+
VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice,
|
37
|
+
Display* dpy,
|
38
|
+
RROutput rrOutput,
|
39
|
+
VkDisplayKHR* pDisplay);
|
40
|
+
#endif
|
41
|
+
|
42
|
+
#ifdef __cplusplus
|
43
|
+
}
|
44
|
+
#endif
|
45
|
+
|
46
|
+
#endif
|
@@ -0,0 +1,121 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2012 Google Inc.
|
3
|
+
*
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
5
|
+
* found in the LICENSE file.
|
6
|
+
*/
|
7
|
+
#ifndef SkPathOps_DEFINED
|
8
|
+
#define SkPathOps_DEFINED
|
9
|
+
|
10
|
+
#include "include/core/SkPath.h"
|
11
|
+
#include "include/core/SkTypes.h"
|
12
|
+
#include "include/private/base/SkTArray.h"
|
13
|
+
#include "include/private/base/SkTDArray.h"
|
14
|
+
|
15
|
+
struct SkRect;
|
16
|
+
|
17
|
+
|
18
|
+
// FIXME: move everything below into the SkPath class
|
19
|
+
/**
|
20
|
+
* The logical operations that can be performed when combining two paths.
|
21
|
+
*/
|
22
|
+
enum SkPathOp {
|
23
|
+
kDifference_SkPathOp, //!< subtract the op path from the first path
|
24
|
+
kIntersect_SkPathOp, //!< intersect the two paths
|
25
|
+
kUnion_SkPathOp, //!< union (inclusive-or) the two paths
|
26
|
+
kXOR_SkPathOp, //!< exclusive-or the two paths
|
27
|
+
kReverseDifference_SkPathOp, //!< subtract the first path from the op path
|
28
|
+
};
|
29
|
+
|
30
|
+
/** Set this path to the result of applying the Op to this path and the
|
31
|
+
specified path: this = (this op operand).
|
32
|
+
The resulting path will be constructed from non-overlapping contours.
|
33
|
+
The curve order is reduced where possible so that cubics may be turned
|
34
|
+
into quadratics, and quadratics maybe turned into lines.
|
35
|
+
|
36
|
+
Returns true if operation was able to produce a result;
|
37
|
+
otherwise, result is unmodified.
|
38
|
+
|
39
|
+
@param one The first operand (for difference, the minuend)
|
40
|
+
@param two The second operand (for difference, the subtrahend)
|
41
|
+
@param op The operator to apply.
|
42
|
+
@param result The product of the operands. The result may be one of the
|
43
|
+
inputs.
|
44
|
+
@return True if the operation succeeded.
|
45
|
+
*/
|
46
|
+
bool SK_API Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result);
|
47
|
+
|
48
|
+
/** Set this path to a set of non-overlapping contours that describe the
|
49
|
+
same area as the original path.
|
50
|
+
The curve order is reduced where possible so that cubics may
|
51
|
+
be turned into quadratics, and quadratics maybe turned into lines.
|
52
|
+
|
53
|
+
Returns true if operation was able to produce a result;
|
54
|
+
otherwise, result is unmodified.
|
55
|
+
|
56
|
+
@param path The path to simplify.
|
57
|
+
@param result The simplified path. The result may be the input.
|
58
|
+
@return True if simplification succeeded.
|
59
|
+
*/
|
60
|
+
bool SK_API Simplify(const SkPath& path, SkPath* result);
|
61
|
+
|
62
|
+
/** Set the resulting rectangle to the tight bounds of the path.
|
63
|
+
|
64
|
+
@param path The path measured.
|
65
|
+
@param result The tight bounds of the path.
|
66
|
+
@return True if the bounds could be computed.
|
67
|
+
*/
|
68
|
+
[[deprecated]]
|
69
|
+
static inline bool TightBounds(const SkPath& path, SkRect* result) {
|
70
|
+
auto rect = path.computeTightBounds();
|
71
|
+
if (rect.isFinite()) {
|
72
|
+
*result = rect;
|
73
|
+
return true;
|
74
|
+
}
|
75
|
+
return false;
|
76
|
+
}
|
77
|
+
|
78
|
+
/** Set the result with fill type winding to area equivalent to path.
|
79
|
+
Returns true if successful. Does not detect if path contains contours which
|
80
|
+
contain self-crossings or cross other contours; in these cases, may return
|
81
|
+
true even though result does not fill same area as path.
|
82
|
+
|
83
|
+
Returns true if operation was able to produce a result;
|
84
|
+
otherwise, result is unmodified. The result may be the input.
|
85
|
+
|
86
|
+
@param path The path typically with fill type set to even odd.
|
87
|
+
@param result The equivalent path with fill type set to winding.
|
88
|
+
@return True if winding path was set.
|
89
|
+
*/
|
90
|
+
bool SK_API AsWinding(const SkPath& path, SkPath* result);
|
91
|
+
|
92
|
+
/** Perform a series of path operations, optimized for unioning many paths together.
|
93
|
+
*/
|
94
|
+
class SK_API SkOpBuilder {
|
95
|
+
public:
|
96
|
+
/** Add one or more paths and their operand. The builder is empty before the first
|
97
|
+
path is added, so the result of a single add is (emptyPath OP path).
|
98
|
+
|
99
|
+
@param path The second operand.
|
100
|
+
@param _operator The operator to apply to the existing and supplied paths.
|
101
|
+
*/
|
102
|
+
void add(const SkPath& path, SkPathOp _operator);
|
103
|
+
|
104
|
+
/** Computes the sum of all paths and operands, and resets the builder to its
|
105
|
+
initial state.
|
106
|
+
|
107
|
+
@param result The product of the operands.
|
108
|
+
@return True if the operation succeeded.
|
109
|
+
*/
|
110
|
+
bool resolve(SkPath* result);
|
111
|
+
|
112
|
+
private:
|
113
|
+
skia_private::TArray<SkPath> fPathRefs;
|
114
|
+
SkTDArray<SkPathOp> fOps;
|
115
|
+
|
116
|
+
static bool FixWinding(SkPath* path);
|
117
|
+
static void ReversePath(SkPath* path);
|
118
|
+
void reset();
|
119
|
+
};
|
120
|
+
|
121
|
+
#endif
|
@@ -21,12 +21,14 @@ extern "C" {
|
|
21
21
|
// skcms can leverage some C++ extensions when they are present.
|
22
22
|
#define ARRAY_COUNT(arr) (int)(sizeof((arr)) / sizeof(*(arr)))
|
23
23
|
|
24
|
-
#if defined(
|
24
|
+
#if defined(__has_cpp_attribute)
|
25
25
|
#if __has_cpp_attribute(clang::fallthrough)
|
26
26
|
#define SKCMS_FALLTHROUGH [[clang::fallthrough]]
|
27
|
+
#elif __has_cpp_attribute(gnu::fallthrough)
|
28
|
+
#define SKCMS_FALLTHROUGH [[gnu::fallthrough]]
|
27
29
|
#endif
|
28
30
|
|
29
|
-
#
|
31
|
+
#if defined(__clang__) && !defined(SKCMS_HAS_MUSTTAIL)
|
30
32
|
// [[clang::musttail]] is great for performance, but it's not well supported and we run into
|
31
33
|
// a variety of problems when we use it. Fortunately, it's an optional feature that doesn't
|
32
34
|
// affect correctness, and usually the compiler will generate a tail-call even for us
|
@@ -54,6 +56,12 @@ extern "C" {
|
|
54
56
|
&& !defined(_WIN32) && !defined(__SYMBIAN32__)
|
55
57
|
#define SKCMS_HAS_MUSTTAIL 1
|
56
58
|
#endif
|
59
|
+
#elif !defined(__clang__) && !defined(SKCMS_HAS_MUSTTAIL)
|
60
|
+
#if __has_cpp_attribute(clang::musttail)
|
61
|
+
#define SKCMS_HAS_MUSTTAIL 1
|
62
|
+
#else
|
63
|
+
#define SKCMS_HAS_MUSTTAIL 0
|
64
|
+
#endif
|
57
65
|
#endif
|
58
66
|
#endif
|
59
67
|
|
@@ -57,6 +57,8 @@ typedef enum skcms_TFType {
|
|
57
57
|
skcms_TFType_PQish,
|
58
58
|
skcms_TFType_HLGish,
|
59
59
|
skcms_TFType_HLGinvish,
|
60
|
+
skcms_TFType_PQ,
|
61
|
+
skcms_TFType_HLG,
|
60
62
|
} skcms_TFType;
|
61
63
|
|
62
64
|
// Identify which kind of transfer function is encoded in an skcms_TransferFunction
|
@@ -86,21 +88,48 @@ static inline bool skcms_TransferFunction_makeHLGish(skcms_TransferFunction* fn,
|
|
86
88
|
return skcms_TransferFunction_makeScaledHLGish(fn, 1.0f, R,G, a,b,c);
|
87
89
|
}
|
88
90
|
|
89
|
-
// PQ
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
//
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
91
|
+
// The PQ transfer function. The function skcms_TransferFunction_eval will always evaluate to the
|
92
|
+
// unit PQ EOTF, which maps [0, 1] to [0, 1], regardless of the other parameters.
|
93
|
+
// This is stored differently from PQish transfer functions. In particular:
|
94
|
+
// - the constant -5 is stored in g
|
95
|
+
// - the hdr_reference_white_luminance parameter is stored in a
|
96
|
+
// - all other parameters are set to 0
|
97
|
+
// When this is used as an SkColorSpace, the transformation to XYZD50 will be as follows:
|
98
|
+
// 1. Apply the unit PQ EOTF to each channel
|
99
|
+
// 2. Multiply by 10,000 nits
|
100
|
+
// 3. Divide by hdr_reference_white_luminance nits (default is 203)
|
101
|
+
// 4. Transform primaries to XYZD50
|
102
|
+
SKCMS_API void skcms_TransferFunction_makePQ(
|
103
|
+
skcms_TransferFunction*,
|
104
|
+
float hdr_reference_white_luminance);
|
105
|
+
|
106
|
+
// The HLG transfer function. The function skcms_TransferFunction_eval will always evaluate to the
|
107
|
+
// HLG inverse OETF, which maps [0, 1] to [0, 1], regardless of the other parameters.
|
108
|
+
// This is stored differently from PQish transfer functions. In particular:
|
109
|
+
// - the constant -6 is stored in g
|
110
|
+
// - the hdr_reference_white_luminance parameter is stored in a
|
111
|
+
// - the peak_white_luminance parameter is stored in b
|
112
|
+
// - the system_gamma parameter is stored in c
|
113
|
+
// - all other parameters are set to 0
|
114
|
+
// When this is used as an SkColorSpace, the transformation to XYZD50 will be as follows:
|
115
|
+
// 1. Apply the HLG inverse OETF to each channel
|
116
|
+
// 2. Transform primaries to Rec2020
|
117
|
+
// 3. Apply the channel-mixing HLG OOTF using system_gamma (default is 1.2)
|
118
|
+
// 4. Multiply by peak_luminance nits (default is 1,000)
|
119
|
+
// 5. Divide by hdr_reference_white nits (default is 203)
|
120
|
+
// 6. Transform primaries to XYZD50
|
121
|
+
SKCMS_API void skcms_TransferFunction_makeHLG(
|
122
|
+
skcms_TransferFunction*,
|
123
|
+
float hdr_reference_white_luminance,
|
124
|
+
float peak_luminance,
|
125
|
+
float system_gamma);
|
99
126
|
|
100
127
|
// Is this an ordinary sRGB-ish transfer function, or one of the HDR forms we support?
|
101
128
|
SKCMS_API bool skcms_TransferFunction_isSRGBish(const skcms_TransferFunction*);
|
102
129
|
SKCMS_API bool skcms_TransferFunction_isPQish (const skcms_TransferFunction*);
|
103
130
|
SKCMS_API bool skcms_TransferFunction_isHLGish (const skcms_TransferFunction*);
|
131
|
+
SKCMS_API bool skcms_TransferFunction_isPQ (const skcms_TransferFunction*);
|
132
|
+
SKCMS_API bool skcms_TransferFunction_isHLG (const skcms_TransferFunction*);
|
104
133
|
|
105
134
|
// Unified representation of 'curv' or 'para' tag data, or a 1D table from 'mft1' or 'mft2'
|
106
135
|
typedef union skcms_Curve {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ReanimatedProxy","_interopRequireDefault","require","_renderHelpers","_Recorder","_Visitor","_Player","_DrawingContext","_ReanimatedRecorder","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","drawOnscreen","Skia","nativeId","recording","rec","PictureRecorder","canvas","beginRecording","ctx","createDrawingContext","paintPool","replay","commands","picture","finishRecordingAsPicture","SkiaViewApi","setJsiProperty","nativeDrawOnscreen","recorder","play","Container","constructor","root","_root","unmount","unmounted","drawOnCanvas","Error","exports","StaticContainer","redraw","Recorder","visit","getRecording","isOnScreen","ReanimatedContainer","mapperId","Rea","stopMapper","record","animationValues","size","startMapper","Array","from","runOnUI","NativeReanimatedContainer","ReanimatedRecorder","sharedValues","getSharedValues","sharedRecorder","getRecorder","length","applyUpdates","createContainer","web","global","HAS_REANIMATED_3"],"sources":["Container.ts"],"sourcesContent":["import Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas } from \"../skia/types\";\nimport { HAS_REANIMATED_3 } from \"../external/reanimated/renderHelpers\";\nimport type { JsiRecorder } from \"../skia/types/Recorder\";\n\nimport type { Node } from \"./Node\";\nimport type { Recording } from \"./Recorder/Recorder\";\nimport { Recorder } from \"./Recorder/Recorder\";\nimport { visit } from \"./Recorder/Visitor\";\nimport { replay } from \"./Recorder/Player\";\nimport { createDrawingContext } from \"./Recorder/DrawingContext\";\nimport { ReanimatedRecorder } from \"./Recorder/ReanimatedRecorder\";\n\nimport \"../views/api\";\n\nconst drawOnscreen = (Skia: Skia, nativeId: number, recording: Recording) => {\n \"worklet\";\n\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n //const start = performance.now();\n\n const ctx = createDrawingContext(Skia, recording.paintPool, canvas);\n replay(ctx, recording.commands);\n const picture = rec.finishRecordingAsPicture();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nconst nativeDrawOnscreen = (nativeId: number, recorder: JsiRecorder) => {\n \"worklet\";\n\n //const start = performance.now();\n\n const picture = recorder.play();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport abstract class Container {\n private _root: Node[] = [];\n protected recording: Recording | null = null;\n protected unmounted = false;\n\n constructor(protected Skia: Skia, protected nativeId: number) {}\n\n get root() {\n return this._root;\n }\n\n set root(value: Node[]) {\n this._root = value;\n }\n\n unmount() {\n this.unmounted = true;\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n if (!this.recording) {\n throw new Error(\"No recording to draw\");\n }\n const ctx = createDrawingContext(\n this.Skia,\n this.recording.paintPool,\n canvas\n );\n replay(ctx, this.recording.commands);\n }\n\n abstract redraw(): void;\n}\n\nclass StaticContainer extends Container {\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n const recorder = new Recorder();\n visit(recorder, this.root);\n this.recording = recorder.getRecording();\n const isOnScreen = this.nativeId !== -1;\n if (isOnScreen) {\n const rec = this.Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n this.drawOnCanvas(canvas);\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(this.nativeId, \"picture\", picture);\n }\n }\n}\n\nclass ReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const recorder = new Recorder();\n visit(recorder, this.root);\n const record = recorder.getRecording();\n const { animationValues } = record;\n this.recording = {\n commands: record.commands,\n paintPool: record.paintPool,\n };\n const { nativeId, Skia, recording } = this;\n if (animationValues.size > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n }, Array.from(animationValues));\n }\n Rea.runOnUI(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n })();\n }\n}\n\nclass NativeReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const { nativeId, Skia } = this;\n const recorder = new ReanimatedRecorder(Skia);\n visit(recorder, this.root);\n const sharedValues = recorder.getSharedValues();\n const sharedRecorder = recorder.getRecorder();\n Rea.runOnUI(() => {\n \"worklet\";\n nativeDrawOnscreen(nativeId, sharedRecorder);\n })();\n if (sharedValues.length > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n sharedRecorder.applyUpdates(sharedValues);\n nativeDrawOnscreen(nativeId, sharedRecorder);\n }, sharedValues);\n }\n }\n}\n\nexport const createContainer = (Skia: Skia, nativeId: number) => {\n const web = global.SkiaViewApi && global.SkiaViewApi.web;\n if (HAS_REANIMATED_3 && nativeId !== -1) {\n if (!web) {\n return new NativeReanimatedContainer(Skia, nativeId);\n } else {\n return new ReanimatedContainer(Skia, nativeId);\n }\n } else {\n return new StaticContainer(Skia, nativeId);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_ReanimatedProxy","_interopRequireDefault","require","_renderHelpers","_Recorder","_Visitor","_Player","_DrawingContext","_ReanimatedRecorder","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","drawOnscreen","Skia","nativeId","recording","rec","PictureRecorder","canvas","beginRecording","ctx","createDrawingContext","paintPool","replay","commands","picture","finishRecordingAsPicture","SkiaViewApi","setJsiProperty","nativeDrawOnscreen","recorder","play","Container","constructor","root","_root","mount","unmounted","unmount","drawOnCanvas","Error","exports","StaticContainer","redraw","Recorder","visit","getRecording","isOnScreen","ReanimatedContainer","mapperId","Rea","stopMapper","record","animationValues","size","startMapper","Array","from","runOnUI","NativeReanimatedContainer","ReanimatedRecorder","sharedValues","getSharedValues","sharedRecorder","getRecorder","length","applyUpdates","createContainer","web","global","HAS_REANIMATED_3"],"sources":["Container.ts"],"sourcesContent":["import Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas } from \"../skia/types\";\nimport { HAS_REANIMATED_3 } from \"../external/reanimated/renderHelpers\";\nimport type { JsiRecorder } from \"../skia/types/Recorder\";\n\nimport type { Node } from \"./Node\";\nimport type { Recording } from \"./Recorder/Recorder\";\nimport { Recorder } from \"./Recorder/Recorder\";\nimport { visit } from \"./Recorder/Visitor\";\nimport { replay } from \"./Recorder/Player\";\nimport { createDrawingContext } from \"./Recorder/DrawingContext\";\nimport { ReanimatedRecorder } from \"./Recorder/ReanimatedRecorder\";\n\nimport \"../views/api\";\n\nconst drawOnscreen = (Skia: Skia, nativeId: number, recording: Recording) => {\n \"worklet\";\n\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n //const start = performance.now();\n\n const ctx = createDrawingContext(Skia, recording.paintPool, canvas);\n replay(ctx, recording.commands);\n const picture = rec.finishRecordingAsPicture();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nconst nativeDrawOnscreen = (nativeId: number, recorder: JsiRecorder) => {\n \"worklet\";\n\n //const start = performance.now();\n\n const picture = recorder.play();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport abstract class Container {\n private _root: Node[] = [];\n protected recording: Recording | null = null;\n protected unmounted = false;\n\n constructor(protected Skia: Skia, protected nativeId: number) {}\n\n get root() {\n return this._root;\n }\n\n set root(value: Node[]) {\n this._root = value;\n }\n\n mount() {\n this.unmounted = false;\n }\n\n unmount() {\n this.unmounted = true;\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n if (!this.recording) {\n throw new Error(\"No recording to draw\");\n }\n const ctx = createDrawingContext(\n this.Skia,\n this.recording.paintPool,\n canvas\n );\n replay(ctx, this.recording.commands);\n }\n\n abstract redraw(): void;\n}\n\nclass StaticContainer extends Container {\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n const recorder = new Recorder();\n visit(recorder, this.root);\n this.recording = recorder.getRecording();\n const isOnScreen = this.nativeId !== -1;\n if (isOnScreen) {\n const rec = this.Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n this.drawOnCanvas(canvas);\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(this.nativeId, \"picture\", picture);\n }\n }\n}\n\nclass ReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const recorder = new Recorder();\n visit(recorder, this.root);\n const record = recorder.getRecording();\n const { animationValues } = record;\n this.recording = {\n commands: record.commands,\n paintPool: record.paintPool,\n };\n const { nativeId, Skia, recording } = this;\n if (animationValues.size > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n }, Array.from(animationValues));\n }\n Rea.runOnUI(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n })();\n }\n}\n\nclass NativeReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const { nativeId, Skia } = this;\n const recorder = new ReanimatedRecorder(Skia);\n visit(recorder, this.root);\n const sharedValues = recorder.getSharedValues();\n const sharedRecorder = recorder.getRecorder();\n Rea.runOnUI(() => {\n \"worklet\";\n nativeDrawOnscreen(nativeId, sharedRecorder);\n })();\n if (sharedValues.length > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n sharedRecorder.applyUpdates(sharedValues);\n nativeDrawOnscreen(nativeId, sharedRecorder);\n }, sharedValues);\n }\n }\n}\n\nexport const createContainer = (Skia: Skia, nativeId: number) => {\n const web = global.SkiaViewApi && global.SkiaViewApi.web;\n if (HAS_REANIMATED_3 && nativeId !== -1) {\n if (!web) {\n return new NativeReanimatedContainer(Skia, nativeId);\n } else {\n return new ReanimatedContainer(Skia, nativeId);\n }\n } else {\n return new StaticContainer(Skia, nativeId);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|