1 #ifndef VULKAN_METAL_H_ 2 #define VULKAN_METAL_H_ 1 3 4 /* 5 ** Copyright (c) 2015-2020 The Khronos Group Inc. 6 ** 7 ** Licensed under the Apache License, Version 2.0 (the "License"); 8 ** you may not use this file except in compliance with the License. 9 ** You may obtain a copy of the License at 10 ** 11 ** http://www.apache.org/licenses/LICENSE-2.0 12 ** 13 ** Unless required by applicable law or agreed to in writing, software 14 ** distributed under the License is distributed on an "AS IS" BASIS, 15 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 ** See the License for the specific language governing permissions and 17 ** limitations under the License. 18 */ 19 20 /* 21 ** This header is generated from the Khronos Vulkan XML API Registry. 22 ** 23 */ 24 25 26 #ifdef __cplusplus 27 extern "C" { 28 #endif 29 30 31 32 #define VK_EXT_metal_surface 1 33 34 #ifdef __OBJC__ 35 @class CAMetalLayer; 36 #else 37 typedef void CAMetalLayer; 38 #endif 39 40 #define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 41 #define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" 42 typedef VkFlags VkMetalSurfaceCreateFlagsEXT; 43 typedef struct VkMetalSurfaceCreateInfoEXT { 44 VkStructureType sType; 45 const void* pNext; 46 VkMetalSurfaceCreateFlagsEXT flags; 47 const CAMetalLayer* pLayer; 48 } VkMetalSurfaceCreateInfoEXT; 49 50 typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 51 52 #ifndef VK_NO_PROTOTYPES 53 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( 54 VkInstance instance, 55 const VkMetalSurfaceCreateInfoEXT* pCreateInfo, 56 const VkAllocationCallbacks* pAllocator, 57 VkSurfaceKHR* pSurface); 58 #endif 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif 65