1b8e80941Smrg#ifndef VULKAN_XCB_H_
2b8e80941Smrg#define VULKAN_XCB_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_KHR_xcb_surface 1
32b8e80941Smrg#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
33b8e80941Smrg#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
34b8e80941Smrgtypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
35b8e80941Smrgtypedef struct VkXcbSurfaceCreateInfoKHR {
36b8e80941Smrg    VkStructureType               sType;
37b8e80941Smrg    const void*                   pNext;
38b8e80941Smrg    VkXcbSurfaceCreateFlagsKHR    flags;
39b8e80941Smrg    xcb_connection_t*             connection;
40b8e80941Smrg    xcb_window_t                  window;
41b8e80941Smrg} VkXcbSurfaceCreateInfoKHR;
42b8e80941Smrg
43b8e80941Smrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
44b8e80941Smrgtypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
45b8e80941Smrg
46b8e80941Smrg#ifndef VK_NO_PROTOTYPES
47b8e80941SmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
48b8e80941Smrg    VkInstance                                  instance,
49b8e80941Smrg    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
50b8e80941Smrg    const VkAllocationCallbacks*                pAllocator,
51b8e80941Smrg    VkSurfaceKHR*                               pSurface);
52b8e80941Smrg
53b8e80941SmrgVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
54b8e80941Smrg    VkPhysicalDevice                            physicalDevice,
55b8e80941Smrg    uint32_t                                    queueFamilyIndex,
56b8e80941Smrg    xcb_connection_t*                           connection,
57b8e80941Smrg    xcb_visualid_t                              visual_id);
58b8e80941Smrg#endif
59b8e80941Smrg
60b8e80941Smrg#ifdef __cplusplus
61b8e80941Smrg}
62b8e80941Smrg#endif
63b8e80941Smrg
64b8e80941Smrg#endif
65