HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vulkan_metal.h
Go to the documentation of this file.
1 #ifndef VULKAN_METAL_H_
2 #define VULKAN_METAL_H_ 1
3 
4 /*
5 ** Copyright 2015-2022 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 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 #define VK_EXT_metal_surface 1
23 #ifdef __OBJC__
24 @class CAMetalLayer;
25 #else
26 typedef void CAMetalLayer;
27 #endif
28 
29 #define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
30 #define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface"
34  const void* pNext;
35  VkMetalSurfaceCreateFlagsEXT flags;
36  const CAMetalLayer* pLayer;
38 
39 typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
40 
41 #ifndef VK_NO_PROTOTYPES
43  VkInstance instance,
44  const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
45  const VkAllocationCallbacks* pAllocator,
46  VkSurfaceKHR* pSurface);
47 #endif
48 
49 
50 #define VK_EXT_metal_objects 1
51 #ifdef __OBJC__
52 @protocol MTLDevice;
54 #else
55 typedef void* MTLDevice_id;
56 #endif
57 
58 #ifdef __OBJC__
59 @protocol MTLCommandQueue;
61 #else
62 typedef void* MTLCommandQueue_id;
63 #endif
64 
65 #ifdef __OBJC__
66 @protocol MTLBuffer;
68 #else
69 typedef void* MTLBuffer_id;
70 #endif
71 
72 #ifdef __OBJC__
73 @protocol MTLTexture;
75 #else
76 typedef void* MTLTexture_id;
77 #endif
78 
79 typedef struct __IOSurface* IOSurfaceRef;
80 #ifdef __OBJC__
81 @protocol MTLSharedEvent;
83 #else
84 typedef void* MTLSharedEvent_id;
85 #endif
86 
87 #define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1
88 #define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects"
89 
102  const void* pNext;
105 
108  const void* pNext;
110 
113  const void* pNext;
114  MTLDevice_id mtlDevice;
116 
119  const void* pNext;
120  VkQueue queue;
121  MTLCommandQueue_id mtlCommandQueue;
123 
126  const void* pNext;
127  VkDeviceMemory memory;
128  MTLBuffer_id mtlBuffer;
130 
133  const void* pNext;
134  MTLBuffer_id mtlBuffer;
136 
139  const void* pNext;
140  VkImage image;
141  VkImageView imageView;
142  VkBufferView bufferView;
144  MTLTexture_id mtlTexture;
146 
149  const void* pNext;
151  MTLTexture_id mtlTexture;
153 
156  const void* pNext;
157  VkImage image;
158  IOSurfaceRef ioSurface;
160 
163  const void* pNext;
164  IOSurfaceRef ioSurface;
166 
169  const void* pNext;
170  VkSemaphore semaphore;
171  VkEvent event;
172  MTLSharedEvent_id mtlSharedEvent;
174 
177  const void* pNext;
178  MTLSharedEvent_id mtlSharedEvent;
180 
181 typedef void (VKAPI_PTR *PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
182 
183 #ifndef VK_NO_PROTOTYPES
185  VkDevice device,
186  VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
187 #endif
188 
189 #ifdef __cplusplus
190 }
191 #endif
192 
193 #endif
VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT(VkDevice device, VkExportMetalObjectsInfoEXT *pMetalObjectsInfo)
VkImageAspectFlagBits
Definition: vulkan_core.h:2157
VkStructureType
Definition: vulkan_core.h:208
VkResult
Definition: vulkan_core.h:139
#define VKAPI_CALL
Definition: vk_platform.h:57
struct VkExportMetalObjectCreateInfoEXT VkExportMetalObjectCreateInfoEXT
VkFlags VkExportMetalObjectTypeFlagsEXT
Definition: vulkan_metal.h:99
void
Definition: png.h:1083
struct VkExportMetalDeviceInfoEXT VkExportMetalDeviceInfoEXT
struct VkMetalSurfaceCreateInfoEXT VkMetalSurfaceCreateInfoEXT
struct VkExportMetalCommandQueueInfoEXT VkExportMetalCommandQueueInfoEXT
VkExportMetalObjectTypeFlagBitsEXT exportObjectType
Definition: vulkan_metal.h:103
void(VKAPI_PTR * PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT *pMetalObjectsInfo)
Definition: vulkan_metal.h:181
#define VKAPI_PTR
Definition: vk_platform.h:58
#define VKAPI_ATTR
Definition: vk_platform.h:56
void * MTLSharedEvent_id
Definition: vulkan_metal.h:84
VkImageAspectFlagBits plane
Definition: vulkan_metal.h:150
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT(VkInstance instance, const VkMetalSurfaceCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
MTLSharedEvent_id mtlSharedEvent
Definition: vulkan_metal.h:172
struct __IOSurface * IOSurfaceRef
Definition: vulkan_metal.h:79
struct VkImportMetalBufferInfoEXT VkImportMetalBufferInfoEXT
VkExportMetalObjectTypeFlagBitsEXT
Definition: vulkan_metal.h:90
void * MTLDevice_id
Definition: vulkan_metal.h:55
struct VkExportMetalBufferInfoEXT VkExportMetalBufferInfoEXT
struct VkImportMetalIOSurfaceInfoEXT VkImportMetalIOSurfaceInfoEXT
GLuint id
Definition: glcorearb.h:655
struct VkExportMetalObjectsInfoEXT VkExportMetalObjectsInfoEXT
struct VkExportMetalSharedEventInfoEXT VkExportMetalSharedEventInfoEXT
VkResult(VKAPI_PTR * PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
Definition: vulkan_metal.h:39
VkImageAspectFlagBits plane
Definition: vulkan_metal.h:143
void * MTLCommandQueue_id
Definition: vulkan_metal.h:62
struct VkImportMetalSharedEventInfoEXT VkImportMetalSharedEventInfoEXT
uint32_t VkFlags
Definition: vulkan_core.h:96
VkFlags VkMetalSurfaceCreateFlagsEXT
Definition: vulkan_metal.h:31
struct VkImportMetalTextureInfoEXT VkImportMetalTextureInfoEXT
const CAMetalLayer * pLayer
Definition: vulkan_metal.h:36
MTLCommandQueue_id mtlCommandQueue
Definition: vulkan_metal.h:121
struct VkExportMetalIOSurfaceInfoEXT VkExportMetalIOSurfaceInfoEXT
struct VkExportMetalTextureInfoEXT VkExportMetalTextureInfoEXT
void CAMetalLayer
Definition: vulkan_metal.h:26
VkMetalSurfaceCreateFlagsEXT flags
Definition: vulkan_metal.h:35
MTLSharedEvent_id mtlSharedEvent
Definition: vulkan_metal.h:178
void * MTLBuffer_id
Definition: vulkan_metal.h:69
void * MTLTexture_id
Definition: vulkan_metal.h:76