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