@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,55 @@
1
+ #ifndef VULKAN_DIRECTFB_H_
2
+ #define VULKAN_DIRECTFB_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_directfb_surface is a preprocessor guard. Do not pass it to API calls.
20
+ #define VK_EXT_directfb_surface 1
21
+ #define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1
22
+ #define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface"
23
+ typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT;
24
+ typedef struct VkDirectFBSurfaceCreateInfoEXT {
25
+ VkStructureType sType;
26
+ const void* pNext;
27
+ VkDirectFBSurfaceCreateFlagsEXT flags;
28
+ IDirectFB* dfb;
29
+ IDirectFBSurface* surface;
30
+ } VkDirectFBSurfaceCreateInfoEXT;
31
+
32
+ typedef VkResult(VKAPI_PTR* PFN_vkCreateDirectFBSurfaceEXT)(
33
+ VkInstance instance,
34
+ const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
35
+ const VkAllocationCallbacks* pAllocator,
36
+ VkSurfaceKHR* pSurface);
37
+ typedef VkBool32(VKAPI_PTR* PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(
38
+ VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb);
39
+
40
+ #ifndef VK_NO_PROTOTYPES
41
+ VKAPI_ATTR VkResult VKAPI_CALL
42
+ vkCreateDirectFBSurfaceEXT(VkInstance instance,
43
+ const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
44
+ const VkAllocationCallbacks* pAllocator,
45
+ VkSurfaceKHR* pSurface);
46
+
47
+ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
48
+ VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb);
49
+ #endif
50
+
51
+ #ifdef __cplusplus
52
+ }
53
+ #endif
54
+
55
+ #endif
@@ -0,0 +1,288 @@
1
+ #ifndef VULKAN_FUCHSIA_H_
2
+ #define VULKAN_FUCHSIA_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_FUCHSIA_imagepipe_surface is a preprocessor guard. Do not pass it to API calls.
20
+ #define VK_FUCHSIA_imagepipe_surface 1
21
+ #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
22
+ #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
23
+ typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA;
24
+ typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA {
25
+ VkStructureType sType;
26
+ const void* pNext;
27
+ VkImagePipeSurfaceCreateFlagsFUCHSIA flags;
28
+ zx_handle_t imagePipeHandle;
29
+ } VkImagePipeSurfaceCreateInfoFUCHSIA;
30
+
31
+ typedef VkResult(VKAPI_PTR* PFN_vkCreateImagePipeSurfaceFUCHSIA)(
32
+ VkInstance instance,
33
+ const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
34
+ const VkAllocationCallbacks* pAllocator,
35
+ VkSurfaceKHR* pSurface);
36
+
37
+ #ifndef VK_NO_PROTOTYPES
38
+ VKAPI_ATTR VkResult VKAPI_CALL
39
+ vkCreateImagePipeSurfaceFUCHSIA(VkInstance instance,
40
+ const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
41
+ const VkAllocationCallbacks* pAllocator,
42
+ VkSurfaceKHR* pSurface);
43
+ #endif
44
+
45
+ // VK_FUCHSIA_external_memory is a preprocessor guard. Do not pass it to API calls.
46
+ #define VK_FUCHSIA_external_memory 1
47
+ #define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
48
+ #define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory"
49
+ typedef struct VkImportMemoryZirconHandleInfoFUCHSIA {
50
+ VkStructureType sType;
51
+ const void* pNext;
52
+ VkExternalMemoryHandleTypeFlagBits handleType;
53
+ zx_handle_t handle;
54
+ } VkImportMemoryZirconHandleInfoFUCHSIA;
55
+
56
+ typedef struct VkMemoryZirconHandlePropertiesFUCHSIA {
57
+ VkStructureType sType;
58
+ void* pNext;
59
+ uint32_t memoryTypeBits;
60
+ } VkMemoryZirconHandlePropertiesFUCHSIA;
61
+
62
+ typedef struct VkMemoryGetZirconHandleInfoFUCHSIA {
63
+ VkStructureType sType;
64
+ const void* pNext;
65
+ VkDeviceMemory memory;
66
+ VkExternalMemoryHandleTypeFlagBits handleType;
67
+ } VkMemoryGetZirconHandleInfoFUCHSIA;
68
+
69
+ typedef VkResult(VKAPI_PTR* PFN_vkGetMemoryZirconHandleFUCHSIA)(
70
+ VkDevice device,
71
+ const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
72
+ zx_handle_t* pZirconHandle);
73
+ typedef VkResult(VKAPI_PTR* PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(
74
+ VkDevice device,
75
+ VkExternalMemoryHandleTypeFlagBits handleType,
76
+ zx_handle_t zirconHandle,
77
+ VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
78
+
79
+ #ifndef VK_NO_PROTOTYPES
80
+ VKAPI_ATTR VkResult VKAPI_CALL
81
+ vkGetMemoryZirconHandleFUCHSIA(VkDevice device,
82
+ const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
83
+ zx_handle_t* pZirconHandle);
84
+
85
+ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA(
86
+ VkDevice device,
87
+ VkExternalMemoryHandleTypeFlagBits handleType,
88
+ zx_handle_t zirconHandle,
89
+ VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
90
+ #endif
91
+
92
+ // VK_FUCHSIA_external_semaphore is a preprocessor guard. Do not pass it to API calls.
93
+ #define VK_FUCHSIA_external_semaphore 1
94
+ #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
95
+ #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore"
96
+ typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA {
97
+ VkStructureType sType;
98
+ const void* pNext;
99
+ VkSemaphore semaphore;
100
+ VkSemaphoreImportFlags flags;
101
+ VkExternalSemaphoreHandleTypeFlagBits handleType;
102
+ zx_handle_t zirconHandle;
103
+ } VkImportSemaphoreZirconHandleInfoFUCHSIA;
104
+
105
+ typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA {
106
+ VkStructureType sType;
107
+ const void* pNext;
108
+ VkSemaphore semaphore;
109
+ VkExternalSemaphoreHandleTypeFlagBits handleType;
110
+ } VkSemaphoreGetZirconHandleInfoFUCHSIA;
111
+
112
+ typedef VkResult(VKAPI_PTR* PFN_vkImportSemaphoreZirconHandleFUCHSIA)(
113
+ VkDevice device,
114
+ const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
115
+ typedef VkResult(VKAPI_PTR* PFN_vkGetSemaphoreZirconHandleFUCHSIA)(
116
+ VkDevice device,
117
+ const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
118
+ zx_handle_t* pZirconHandle);
119
+
120
+ #ifndef VK_NO_PROTOTYPES
121
+ VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA(
122
+ VkDevice device,
123
+ const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
124
+
125
+ VKAPI_ATTR VkResult VKAPI_CALL
126
+ vkGetSemaphoreZirconHandleFUCHSIA(VkDevice device,
127
+ const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
128
+ zx_handle_t* pZirconHandle);
129
+ #endif
130
+
131
+ // VK_FUCHSIA_buffer_collection is a preprocessor guard. Do not pass it to API calls.
132
+ #define VK_FUCHSIA_buffer_collection 1
133
+ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA)
134
+ #define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
135
+ #define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection"
136
+ typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA;
137
+
138
+ typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA {
139
+ VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001,
140
+ VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002,
141
+ VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004,
142
+ VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008,
143
+ VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010,
144
+ VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF
145
+ } VkImageConstraintsInfoFlagBitsFUCHSIA;
146
+ typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA;
147
+ typedef struct VkBufferCollectionCreateInfoFUCHSIA {
148
+ VkStructureType sType;
149
+ const void* pNext;
150
+ zx_handle_t collectionToken;
151
+ } VkBufferCollectionCreateInfoFUCHSIA;
152
+
153
+ typedef struct VkImportMemoryBufferCollectionFUCHSIA {
154
+ VkStructureType sType;
155
+ const void* pNext;
156
+ VkBufferCollectionFUCHSIA collection;
157
+ uint32_t index;
158
+ } VkImportMemoryBufferCollectionFUCHSIA;
159
+
160
+ typedef struct VkBufferCollectionImageCreateInfoFUCHSIA {
161
+ VkStructureType sType;
162
+ const void* pNext;
163
+ VkBufferCollectionFUCHSIA collection;
164
+ uint32_t index;
165
+ } VkBufferCollectionImageCreateInfoFUCHSIA;
166
+
167
+ typedef struct VkBufferCollectionConstraintsInfoFUCHSIA {
168
+ VkStructureType sType;
169
+ const void* pNext;
170
+ uint32_t minBufferCount;
171
+ uint32_t maxBufferCount;
172
+ uint32_t minBufferCountForCamping;
173
+ uint32_t minBufferCountForDedicatedSlack;
174
+ uint32_t minBufferCountForSharedSlack;
175
+ } VkBufferCollectionConstraintsInfoFUCHSIA;
176
+
177
+ typedef struct VkBufferConstraintsInfoFUCHSIA {
178
+ VkStructureType sType;
179
+ const void* pNext;
180
+ VkBufferCreateInfo createInfo;
181
+ VkFormatFeatureFlags requiredFormatFeatures;
182
+ VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints;
183
+ } VkBufferConstraintsInfoFUCHSIA;
184
+
185
+ typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA {
186
+ VkStructureType sType;
187
+ const void* pNext;
188
+ VkBufferCollectionFUCHSIA collection;
189
+ uint32_t index;
190
+ } VkBufferCollectionBufferCreateInfoFUCHSIA;
191
+
192
+ typedef struct VkSysmemColorSpaceFUCHSIA {
193
+ VkStructureType sType;
194
+ const void* pNext;
195
+ uint32_t colorSpace;
196
+ } VkSysmemColorSpaceFUCHSIA;
197
+
198
+ typedef struct VkBufferCollectionPropertiesFUCHSIA {
199
+ VkStructureType sType;
200
+ void* pNext;
201
+ uint32_t memoryTypeBits;
202
+ uint32_t bufferCount;
203
+ uint32_t createInfoIndex;
204
+ uint64_t sysmemPixelFormat;
205
+ VkFormatFeatureFlags formatFeatures;
206
+ VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex;
207
+ VkComponentMapping samplerYcbcrConversionComponents;
208
+ VkSamplerYcbcrModelConversion suggestedYcbcrModel;
209
+ VkSamplerYcbcrRange suggestedYcbcrRange;
210
+ VkChromaLocation suggestedXChromaOffset;
211
+ VkChromaLocation suggestedYChromaOffset;
212
+ } VkBufferCollectionPropertiesFUCHSIA;
213
+
214
+ typedef struct VkImageFormatConstraintsInfoFUCHSIA {
215
+ VkStructureType sType;
216
+ const void* pNext;
217
+ VkImageCreateInfo imageCreateInfo;
218
+ VkFormatFeatureFlags requiredFormatFeatures;
219
+ VkImageFormatConstraintsFlagsFUCHSIA flags;
220
+ uint64_t sysmemPixelFormat;
221
+ uint32_t colorSpaceCount;
222
+ const VkSysmemColorSpaceFUCHSIA* pColorSpaces;
223
+ } VkImageFormatConstraintsInfoFUCHSIA;
224
+
225
+ typedef struct VkImageConstraintsInfoFUCHSIA {
226
+ VkStructureType sType;
227
+ const void* pNext;
228
+ uint32_t formatConstraintsCount;
229
+ const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints;
230
+ VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints;
231
+ VkImageConstraintsInfoFlagsFUCHSIA flags;
232
+ } VkImageConstraintsInfoFUCHSIA;
233
+
234
+ typedef VkResult(VKAPI_PTR* PFN_vkCreateBufferCollectionFUCHSIA)(
235
+ VkDevice device,
236
+ const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
237
+ const VkAllocationCallbacks* pAllocator,
238
+ VkBufferCollectionFUCHSIA* pCollection);
239
+ typedef VkResult(VKAPI_PTR* PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(
240
+ VkDevice device,
241
+ VkBufferCollectionFUCHSIA collection,
242
+ const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
243
+ typedef VkResult(VKAPI_PTR* PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(
244
+ VkDevice device,
245
+ VkBufferCollectionFUCHSIA collection,
246
+ const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
247
+ typedef void(VKAPI_PTR* PFN_vkDestroyBufferCollectionFUCHSIA)(
248
+ VkDevice device,
249
+ VkBufferCollectionFUCHSIA collection,
250
+ const VkAllocationCallbacks* pAllocator);
251
+ typedef VkResult(VKAPI_PTR* PFN_vkGetBufferCollectionPropertiesFUCHSIA)(
252
+ VkDevice device,
253
+ VkBufferCollectionFUCHSIA collection,
254
+ VkBufferCollectionPropertiesFUCHSIA* pProperties);
255
+
256
+ #ifndef VK_NO_PROTOTYPES
257
+ VKAPI_ATTR VkResult VKAPI_CALL
258
+ vkCreateBufferCollectionFUCHSIA(VkDevice device,
259
+ const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
260
+ const VkAllocationCallbacks* pAllocator,
261
+ VkBufferCollectionFUCHSIA* pCollection);
262
+
263
+ VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA(
264
+ VkDevice device,
265
+ VkBufferCollectionFUCHSIA collection,
266
+ const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
267
+
268
+ VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA(
269
+ VkDevice device,
270
+ VkBufferCollectionFUCHSIA collection,
271
+ const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
272
+
273
+ VKAPI_ATTR void VKAPI_CALL
274
+ vkDestroyBufferCollectionFUCHSIA(VkDevice device,
275
+ VkBufferCollectionFUCHSIA collection,
276
+ const VkAllocationCallbacks* pAllocator);
277
+
278
+ VKAPI_ATTR VkResult VKAPI_CALL
279
+ vkGetBufferCollectionPropertiesFUCHSIA(VkDevice device,
280
+ VkBufferCollectionFUCHSIA collection,
281
+ VkBufferCollectionPropertiesFUCHSIA* pProperties);
282
+ #endif
283
+
284
+ #ifdef __cplusplus
285
+ }
286
+ #endif
287
+
288
+ #endif
@@ -0,0 +1,59 @@
1
+ #ifndef VULKAN_GGP_H_
2
+ #define VULKAN_GGP_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_GGP_stream_descriptor_surface is a preprocessor guard. Do not pass it to API calls.
20
+ #define VK_GGP_stream_descriptor_surface 1
21
+ #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
22
+ #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface"
23
+ typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP;
24
+ typedef struct VkStreamDescriptorSurfaceCreateInfoGGP {
25
+ VkStructureType sType;
26
+ const void* pNext;
27
+ VkStreamDescriptorSurfaceCreateFlagsGGP flags;
28
+ GgpStreamDescriptor streamDescriptor;
29
+ } VkStreamDescriptorSurfaceCreateInfoGGP;
30
+
31
+ typedef VkResult(VKAPI_PTR* PFN_vkCreateStreamDescriptorSurfaceGGP)(
32
+ VkInstance instance,
33
+ const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
34
+ const VkAllocationCallbacks* pAllocator,
35
+ VkSurfaceKHR* pSurface);
36
+
37
+ #ifndef VK_NO_PROTOTYPES
38
+ VKAPI_ATTR VkResult VKAPI_CALL
39
+ vkCreateStreamDescriptorSurfaceGGP(VkInstance instance,
40
+ const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
41
+ const VkAllocationCallbacks* pAllocator,
42
+ VkSurfaceKHR* pSurface);
43
+ #endif
44
+
45
+ // VK_GGP_frame_token is a preprocessor guard. Do not pass it to API calls.
46
+ #define VK_GGP_frame_token 1
47
+ #define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
48
+ #define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token"
49
+ typedef struct VkPresentFrameTokenGGP {
50
+ VkStructureType sType;
51
+ const void* pNext;
52
+ GgpFrameToken frameToken;
53
+ } VkPresentFrameTokenGGP;
54
+
55
+ #ifdef __cplusplus
56
+ }
57
+ #endif
58
+
59
+ #endif
@@ -2,7 +2,7 @@
2
2
  #define VULKAN_IOS_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_MACOS_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,238 @@
1
+ #ifndef VULKAN_METAL_H_
2
+ #define VULKAN_METAL_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_metal_surface is a preprocessor guard. Do not pass it to API calls.
20
+ #define VK_EXT_metal_surface 1
21
+ #ifdef __OBJC__
22
+ @class CAMetalLayer;
23
+ #else
24
+ typedef void CAMetalLayer;
25
+ #endif
26
+
27
+ #define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
28
+ #define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface"
29
+ typedef VkFlags VkMetalSurfaceCreateFlagsEXT;
30
+ typedef struct VkMetalSurfaceCreateInfoEXT {
31
+ VkStructureType sType;
32
+ const void* pNext;
33
+ VkMetalSurfaceCreateFlagsEXT flags;
34
+ const CAMetalLayer* pLayer;
35
+ } VkMetalSurfaceCreateInfoEXT;
36
+
37
+ typedef VkResult(VKAPI_PTR* PFN_vkCreateMetalSurfaceEXT)(
38
+ VkInstance instance,
39
+ const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
40
+ const VkAllocationCallbacks* pAllocator,
41
+ VkSurfaceKHR* pSurface);
42
+
43
+ #ifndef VK_NO_PROTOTYPES
44
+ VKAPI_ATTR VkResult VKAPI_CALL
45
+ vkCreateMetalSurfaceEXT(VkInstance instance,
46
+ const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
47
+ const VkAllocationCallbacks* pAllocator,
48
+ VkSurfaceKHR* pSurface);
49
+ #endif
50
+
51
+ // VK_EXT_metal_objects is a preprocessor guard. Do not pass it to API calls.
52
+ #define VK_EXT_metal_objects 1
53
+ #ifdef __OBJC__
54
+ @protocol MTLDevice;
55
+ typedef __unsafe_unretained id<MTLDevice> MTLDevice_id;
56
+ #else
57
+ typedef void* MTLDevice_id;
58
+ #endif
59
+
60
+ #ifdef __OBJC__
61
+ @protocol MTLCommandQueue;
62
+ typedef __unsafe_unretained id<MTLCommandQueue> MTLCommandQueue_id;
63
+ #else
64
+ typedef void* MTLCommandQueue_id;
65
+ #endif
66
+
67
+ #ifdef __OBJC__
68
+ @protocol MTLBuffer;
69
+ typedef __unsafe_unretained id<MTLBuffer> MTLBuffer_id;
70
+ #else
71
+ typedef void* MTLBuffer_id;
72
+ #endif
73
+
74
+ #ifdef __OBJC__
75
+ @protocol MTLTexture;
76
+ typedef __unsafe_unretained id<MTLTexture> MTLTexture_id;
77
+ #else
78
+ typedef void* MTLTexture_id;
79
+ #endif
80
+
81
+ typedef struct __IOSurface* IOSurfaceRef;
82
+ #ifdef __OBJC__
83
+ @protocol MTLSharedEvent;
84
+ typedef __unsafe_unretained id<MTLSharedEvent> MTLSharedEvent_id;
85
+ #else
86
+ typedef void* MTLSharedEvent_id;
87
+ #endif
88
+
89
+ #define VK_EXT_METAL_OBJECTS_SPEC_VERSION 2
90
+ #define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects"
91
+
92
+ typedef enum VkExportMetalObjectTypeFlagBitsEXT {
93
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x00000001,
94
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002,
95
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x00000004,
96
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x00000008,
97
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x00000010,
98
+ VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x00000020,
99
+ VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
100
+ } VkExportMetalObjectTypeFlagBitsEXT;
101
+ typedef VkFlags VkExportMetalObjectTypeFlagsEXT;
102
+ typedef struct VkExportMetalObjectCreateInfoEXT {
103
+ VkStructureType sType;
104
+ const void* pNext;
105
+ VkExportMetalObjectTypeFlagBitsEXT exportObjectType;
106
+ } VkExportMetalObjectCreateInfoEXT;
107
+
108
+ typedef struct VkExportMetalObjectsInfoEXT {
109
+ VkStructureType sType;
110
+ const void* pNext;
111
+ } VkExportMetalObjectsInfoEXT;
112
+
113
+ typedef struct VkExportMetalDeviceInfoEXT {
114
+ VkStructureType sType;
115
+ const void* pNext;
116
+ MTLDevice_id mtlDevice;
117
+ } VkExportMetalDeviceInfoEXT;
118
+
119
+ typedef struct VkExportMetalCommandQueueInfoEXT {
120
+ VkStructureType sType;
121
+ const void* pNext;
122
+ VkQueue queue;
123
+ MTLCommandQueue_id mtlCommandQueue;
124
+ } VkExportMetalCommandQueueInfoEXT;
125
+
126
+ typedef struct VkExportMetalBufferInfoEXT {
127
+ VkStructureType sType;
128
+ const void* pNext;
129
+ VkDeviceMemory memory;
130
+ MTLBuffer_id mtlBuffer;
131
+ } VkExportMetalBufferInfoEXT;
132
+
133
+ typedef struct VkImportMetalBufferInfoEXT {
134
+ VkStructureType sType;
135
+ const void* pNext;
136
+ MTLBuffer_id mtlBuffer;
137
+ } VkImportMetalBufferInfoEXT;
138
+
139
+ typedef struct VkExportMetalTextureInfoEXT {
140
+ VkStructureType sType;
141
+ const void* pNext;
142
+ VkImage image;
143
+ VkImageView imageView;
144
+ VkBufferView bufferView;
145
+ VkImageAspectFlagBits plane;
146
+ MTLTexture_id mtlTexture;
147
+ } VkExportMetalTextureInfoEXT;
148
+
149
+ typedef struct VkImportMetalTextureInfoEXT {
150
+ VkStructureType sType;
151
+ const void* pNext;
152
+ VkImageAspectFlagBits plane;
153
+ MTLTexture_id mtlTexture;
154
+ } VkImportMetalTextureInfoEXT;
155
+
156
+ typedef struct VkExportMetalIOSurfaceInfoEXT {
157
+ VkStructureType sType;
158
+ const void* pNext;
159
+ VkImage image;
160
+ IOSurfaceRef ioSurface;
161
+ } VkExportMetalIOSurfaceInfoEXT;
162
+
163
+ typedef struct VkImportMetalIOSurfaceInfoEXT {
164
+ VkStructureType sType;
165
+ const void* pNext;
166
+ IOSurfaceRef ioSurface;
167
+ } VkImportMetalIOSurfaceInfoEXT;
168
+
169
+ typedef struct VkExportMetalSharedEventInfoEXT {
170
+ VkStructureType sType;
171
+ const void* pNext;
172
+ VkSemaphore semaphore;
173
+ VkEvent event;
174
+ MTLSharedEvent_id mtlSharedEvent;
175
+ } VkExportMetalSharedEventInfoEXT;
176
+
177
+ typedef struct VkImportMetalSharedEventInfoEXT {
178
+ VkStructureType sType;
179
+ const void* pNext;
180
+ MTLSharedEvent_id mtlSharedEvent;
181
+ } VkImportMetalSharedEventInfoEXT;
182
+
183
+ typedef void(VKAPI_PTR* PFN_vkExportMetalObjectsEXT)(
184
+ VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
185
+
186
+ #ifndef VK_NO_PROTOTYPES
187
+ VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT(VkDevice device,
188
+ VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
189
+ #endif
190
+
191
+ // VK_EXT_external_memory_metal is a preprocessor guard. Do not pass it to API calls.
192
+ #define VK_EXT_external_memory_metal 1
193
+ #define VK_EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION 1
194
+ #define VK_EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME "VK_EXT_external_memory_metal"
195
+ typedef struct VkImportMemoryMetalHandleInfoEXT {
196
+ VkStructureType sType;
197
+ const void* pNext;
198
+ VkExternalMemoryHandleTypeFlagBits handleType;
199
+ void* handle;
200
+ } VkImportMemoryMetalHandleInfoEXT;
201
+
202
+ typedef struct VkMemoryMetalHandlePropertiesEXT {
203
+ VkStructureType sType;
204
+ void* pNext;
205
+ uint32_t memoryTypeBits;
206
+ } VkMemoryMetalHandlePropertiesEXT;
207
+
208
+ typedef struct VkMemoryGetMetalHandleInfoEXT {
209
+ VkStructureType sType;
210
+ const void* pNext;
211
+ VkDeviceMemory memory;
212
+ VkExternalMemoryHandleTypeFlagBits handleType;
213
+ } VkMemoryGetMetalHandleInfoEXT;
214
+
215
+ typedef VkResult(VKAPI_PTR* PFN_vkGetMemoryMetalHandleEXT)(
216
+ VkDevice device, const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo, void** pHandle);
217
+ typedef VkResult(VKAPI_PTR* PFN_vkGetMemoryMetalHandlePropertiesEXT)(
218
+ VkDevice device,
219
+ VkExternalMemoryHandleTypeFlagBits handleType,
220
+ const void* pHandle,
221
+ VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties);
222
+
223
+ #ifndef VK_NO_PROTOTYPES
224
+ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryMetalHandleEXT(
225
+ VkDevice device, const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo, void** pHandle);
226
+
227
+ VKAPI_ATTR VkResult VKAPI_CALL
228
+ vkGetMemoryMetalHandlePropertiesEXT(VkDevice device,
229
+ VkExternalMemoryHandleTypeFlagBits handleType,
230
+ const void* pHandle,
231
+ VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties);
232
+ #endif
233
+
234
+ #ifdef __cplusplus
235
+ }
236
+ #endif
237
+
238
+ #endif