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