1 #ifndef VULKAN_METAL_H_
2 #define VULKAN_METAL_H_ 1
3 
4 /*
5 ** Copyright (c) 2015-2020 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 
24 #ifdef __OBJC__
25 @class CAMetalLayer;
26 #else
27 typedef void CAMetalLayer;
28 #endif
29 
30 #define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
31 #define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface"
32 typedef VkFlags VkMetalSurfaceCreateFlagsEXT;
33 typedef struct VkMetalSurfaceCreateInfoEXT {
34     VkStructureType                 sType;
35     const void*                     pNext;
36     VkMetalSurfaceCreateFlagsEXT    flags;
37     const CAMetalLayer*             pLayer;
38 } VkMetalSurfaceCreateInfoEXT;
39 
40 typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
41 
42 #ifndef VK_NO_PROTOTYPES
43 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT(
44     VkInstance                                  instance,
45     const VkMetalSurfaceCreateInfoEXT*          pCreateInfo,
46     const VkAllocationCallbacks*                pAllocator,
47     VkSurfaceKHR*                               pSurface);
48 #endif
49 
50 #ifdef __cplusplus
51 }
52 #endif
53 
54 #endif
55