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