@shopify/react-native-skia 2.0.5 → 2.0.7

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.
Files changed (180) hide show
  1. package/android/CMakeLists.txt +10 -0
  2. package/android/build.gradle +2 -1
  3. package/apple/SkiaCVPixelBufferUtils.mm +8 -4
  4. package/cpp/api/JsiSkCanvas.h +10 -8
  5. package/cpp/api/JsiSkFont.h +14 -18
  6. package/cpp/api/JsiSkPath.h +6 -3
  7. package/cpp/api/JsiSkPathEffectFactory.h +2 -2
  8. package/cpp/api/JsiSkPathFactory.h +1 -1
  9. package/cpp/api/JsiSkTextBlobFactory.h +5 -3
  10. package/cpp/api/JsiSkTypeface.h +5 -4
  11. package/cpp/api/recorder/Drawings.h +26 -20
  12. package/cpp/api/recorder/PathEffects.h +3 -2
  13. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +1 -1
  14. package/cpp/skia/include/android/SkImageAndroid.h +1 -8
  15. package/cpp/skia/include/config/SkUserConfig.h +9 -0
  16. package/cpp/skia/include/core/SkCPUContext.h +31 -0
  17. package/cpp/skia/include/core/SkCPURecorder.h +69 -0
  18. package/cpp/skia/include/core/SkCanvas.h +57 -13
  19. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  20. package/cpp/skia/include/core/SkData.h +63 -37
  21. package/cpp/skia/include/core/SkFont.h +94 -65
  22. package/cpp/skia/include/core/SkImage.h +10 -9
  23. package/cpp/skia/include/core/SkImageGenerator.h +3 -0
  24. package/cpp/skia/include/core/SkMatrix.h +102 -116
  25. package/cpp/skia/include/core/SkMilestone.h +1 -1
  26. package/cpp/skia/include/core/SkPath.h +163 -60
  27. package/cpp/skia/include/core/SkPathBuilder.h +713 -30
  28. package/cpp/skia/include/core/SkPathTypes.h +5 -1
  29. package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
  30. package/cpp/skia/include/core/SkRecorder.h +35 -0
  31. package/cpp/skia/include/core/SkRect.h +57 -27
  32. package/cpp/skia/include/core/SkRegion.h +1 -1
  33. package/cpp/skia/include/core/SkSurface.h +8 -1
  34. package/cpp/skia/include/core/SkTextBlob.h +50 -6
  35. package/cpp/skia/include/core/SkTraceMemoryDump.h +7 -0
  36. package/cpp/skia/include/core/SkTypeface.h +53 -26
  37. package/cpp/skia/include/core/SkTypes.h +6 -0
  38. package/cpp/skia/include/effects/SkDashPathEffect.h +9 -3
  39. package/cpp/skia/include/effects/SkRuntimeEffect.h +1 -1
  40. package/cpp/skia/include/encode/SkEncoder.h +1 -1
  41. package/cpp/skia/include/encode/SkICC.h +1 -1
  42. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +23 -0
  43. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +12 -0
  44. package/cpp/skia/include/gpu/graphite/Context.h +32 -8
  45. package/cpp/skia/include/gpu/graphite/ContextOptions.h +22 -4
  46. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +21 -4
  47. package/cpp/skia/include/gpu/graphite/PrecompileContext.h +16 -2
  48. package/cpp/skia/include/gpu/graphite/Recorder.h +30 -10
  49. package/cpp/skia/include/gpu/graphite/Recording.h +7 -3
  50. package/cpp/skia/include/gpu/graphite/TextureInfo.h +3 -3
  51. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +15 -0
  52. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +89 -13
  53. package/cpp/skia/include/gpu/graphite/vk/precompile/VulkanPrecompileShader.h +39 -0
  54. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +1 -1
  55. package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +214 -0
  56. package/cpp/skia/include/ports/SkFontMgr_fontconfig.h +3 -0
  57. package/cpp/skia/include/private/SkGainmapShader.h +10 -4
  58. package/cpp/skia/include/private/SkPathRef.h +6 -2
  59. package/cpp/skia/include/private/base/SkAlign.h +11 -0
  60. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
  61. package/cpp/skia/include/third_party/vulkan/vulkan/vk_icd.h +255 -0
  62. package/cpp/skia/include/third_party/vulkan/vulkan/vk_layer.h +203 -0
  63. package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +1 -2
  64. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +390 -0
  65. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +106 -0
  66. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +140 -0
  67. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +1 -1
  68. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +1 -1
  69. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +144 -0
  70. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +1 -1
  71. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +1 -1
  72. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +158 -0
  73. package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +1 -1
  74. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +1 -1
  75. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +1 -1
  76. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +242 -0
  77. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +10094 -5707
  78. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +55 -0
  79. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +288 -0
  80. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +59 -0
  81. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +1 -1
  82. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +1 -1
  83. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +238 -0
  84. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +110 -0
  85. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +47 -0
  86. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +55 -0
  87. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +1 -1
  88. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +1 -1
  89. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +60 -0
  90. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +46 -0
  91. package/cpp/skia/modules/skcms/src/skcms_internals.h +10 -2
  92. package/cpp/skia/modules/skcms/src/skcms_public.h +39 -10
  93. package/libs/android/arm64-v8a/libpathops.a +0 -0
  94. package/libs/android/arm64-v8a/libskia.a +0 -0
  95. package/libs/android/arm64-v8a/libskottie.a +0 -0
  96. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  97. package/libs/android/arm64-v8a/libsksg.a +0 -0
  98. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  99. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  100. package/libs/android/arm64-v8a/libsvg.a +0 -0
  101. package/libs/android/armeabi-v7a/libpathops.a +0 -0
  102. package/libs/android/armeabi-v7a/libskia.a +0 -0
  103. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  104. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  105. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  106. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  107. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  108. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  109. package/libs/android/x86/libpathops.a +0 -0
  110. package/libs/android/x86/libskia.a +0 -0
  111. package/libs/android/x86/libskottie.a +0 -0
  112. package/libs/android/x86/libskparagraph.a +0 -0
  113. package/libs/android/x86/libsksg.a +0 -0
  114. package/libs/android/x86/libskshaper.a +0 -0
  115. package/libs/android/x86/libskunicode_icu.a +0 -0
  116. package/libs/android/x86/libsvg.a +0 -0
  117. package/libs/android/x86_64/libpathops.a +0 -0
  118. package/libs/android/x86_64/libskia.a +0 -0
  119. package/libs/android/x86_64/libskottie.a +0 -0
  120. package/libs/android/x86_64/libskparagraph.a +0 -0
  121. package/libs/android/x86_64/libsksg.a +0 -0
  122. package/libs/android/x86_64/libskshaper.a +0 -0
  123. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  124. package/libs/android/x86_64/libsvg.a +0 -0
  125. package/libs/apple/libpathops.xcframework/Info.plist +94 -0
  126. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
  127. package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  128. package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
  129. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
  130. package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
  131. package/libs/apple/libskia.xcframework/Info.plist +14 -14
  132. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  133. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  134. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  135. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  136. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  137. package/libs/apple/libskottie.xcframework/Info.plist +8 -8
  138. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  139. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  140. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  141. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  142. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  143. package/libs/apple/libskparagraph.xcframework/Info.plist +14 -14
  144. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  145. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  146. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  147. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  148. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  149. package/libs/apple/libsksg.xcframework/Info.plist +8 -8
  150. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  151. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  152. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  153. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  154. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  155. package/libs/apple/libskshaper.xcframework/Info.plist +14 -14
  156. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  157. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  158. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  159. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  160. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  161. package/libs/apple/libskunicode_core.xcframework/Info.plist +12 -12
  162. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  163. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  164. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  165. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +13 -13
  166. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  167. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  168. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  169. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  170. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  171. package/libs/apple/libsvg.xcframework/Info.plist +12 -12
  172. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  173. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  174. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  175. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  176. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  177. package/package.json +1 -1
  178. package/react-native-skia.podspec +2 -1
  179. package/src/renderer/__tests__/e2e/BackdropFilters.spec.tsx +23 -0
  180. /package/cpp/skia/{include/pathops → modules/pathops/include}/SkPathOps.h +0 -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
@@ -2,7 +2,7 @@
2
2
  #define VULKAN_WIN32_H_ 1
3
3
 
4
4
  /*
5
- ** Copyright 2015-2023 The Khronos Group Inc.
5
+ ** Copyright 2015-2025 The Khronos Group Inc.
6
6
  **
7
7
  ** SPDX-License-Identifier: Apache-2.0
8
8
  */
@@ -2,7 +2,7 @@
2
2
  #define VULKAN_XCB_H_ 1
3
3
 
4
4
  /*
5
- ** Copyright 2015-2023 The Khronos Group Inc.
5
+ ** Copyright 2015-2025 The Khronos Group Inc.
6
6
  **
7
7
  ** SPDX-License-Identifier: Apache-2.0
8
8
  */
@@ -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
@@ -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(__clang__) && defined(__has_cpp_attribute)
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
- #ifndef SKCMS_HAS_MUSTTAIL
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 mapping encoded [0,1] to linear [0,1].
90
- static inline bool skcms_TransferFunction_makePQ(skcms_TransferFunction* tf) {
91
- return skcms_TransferFunction_makePQish(tf, -107/128.0f, 1.0f, 32/2523.0f
92
- , 2413/128.0f, -2392/128.0f, 8192/1305.0f);
93
- }
94
- // HLG mapping encoded [0,1] to linear [0,12].
95
- static inline bool skcms_TransferFunction_makeHLG(skcms_TransferFunction* tf) {
96
- return skcms_TransferFunction_makeHLGish(tf, 2.0f, 2.0f
97
- , 1/0.17883277f, 0.28466892f, 0.55991073f);
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 {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,94 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>AvailableLibraries</key>
6
+ <array>
7
+ <dict>
8
+ <key>BinaryPath</key>
9
+ <string>libpathops.a</string>
10
+ <key>LibraryIdentifier</key>
11
+ <string>ios-arm64_arm64e</string>
12
+ <key>LibraryPath</key>
13
+ <string>libpathops.a</string>
14
+ <key>SupportedArchitectures</key>
15
+ <array>
16
+ <string>arm64</string>
17
+ <string>arm64e</string>
18
+ </array>
19
+ <key>SupportedPlatform</key>
20
+ <string>ios</string>
21
+ </dict>
22
+ <dict>
23
+ <key>BinaryPath</key>
24
+ <string>libpathops.a</string>
25
+ <key>LibraryIdentifier</key>
26
+ <string>tvos-arm64_arm64e</string>
27
+ <key>LibraryPath</key>
28
+ <string>libpathops.a</string>
29
+ <key>SupportedArchitectures</key>
30
+ <array>
31
+ <string>arm64</string>
32
+ <string>arm64e</string>
33
+ </array>
34
+ <key>SupportedPlatform</key>
35
+ <string>tvos</string>
36
+ </dict>
37
+ <dict>
38
+ <key>BinaryPath</key>
39
+ <string>libpathops.a</string>
40
+ <key>LibraryIdentifier</key>
41
+ <string>macos-arm64_x86_64</string>
42
+ <key>LibraryPath</key>
43
+ <string>libpathops.a</string>
44
+ <key>SupportedArchitectures</key>
45
+ <array>
46
+ <string>arm64</string>
47
+ <string>x86_64</string>
48
+ </array>
49
+ <key>SupportedPlatform</key>
50
+ <string>macos</string>
51
+ </dict>
52
+ <dict>
53
+ <key>BinaryPath</key>
54
+ <string>libpathops.a</string>
55
+ <key>LibraryIdentifier</key>
56
+ <string>ios-arm64_arm64e_x86_64-simulator</string>
57
+ <key>LibraryPath</key>
58
+ <string>libpathops.a</string>
59
+ <key>SupportedArchitectures</key>
60
+ <array>
61
+ <string>arm64</string>
62
+ <string>arm64e</string>
63
+ <string>x86_64</string>
64
+ </array>
65
+ <key>SupportedPlatform</key>
66
+ <string>ios</string>
67
+ <key>SupportedPlatformVariant</key>
68
+ <string>simulator</string>
69
+ </dict>
70
+ <dict>
71
+ <key>BinaryPath</key>
72
+ <string>libpathops.a</string>
73
+ <key>LibraryIdentifier</key>
74
+ <string>tvos-arm64_arm64e_x86_64-simulator</string>
75
+ <key>LibraryPath</key>
76
+ <string>libpathops.a</string>
77
+ <key>SupportedArchitectures</key>
78
+ <array>
79
+ <string>arm64</string>
80
+ <string>arm64e</string>
81
+ <string>x86_64</string>
82
+ </array>
83
+ <key>SupportedPlatform</key>
84
+ <string>tvos</string>
85
+ <key>SupportedPlatformVariant</key>
86
+ <string>simulator</string>
87
+ </dict>
88
+ </array>
89
+ <key>CFBundlePackageType</key>
90
+ <string>XFWK</string>
91
+ <key>XCFrameworkFormatVersion</key>
92
+ <string>1.0</string>
93
+ </dict>
94
+ </plist>