vulkan_xlib.h revision b8e80941
1b8e80941Smrg#ifndef VULKAN_XLIB_H_
2b8e80941Smrg#define VULKAN_XLIB_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_xlib_surface 1
32b8e80941Smrg#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
33b8e80941Smrg#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
34b8e80941Smrgtypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
35b8e80941Smrgtypedef struct VkXlibSurfaceCreateInfoKHR {
36b8e80941Smrg    VkStructureType                sType;
37b8e80941Smrg    const void*                    pNext;
38b8e80941Smrg    VkXlibSurfaceCreateFlagsKHR    flags;
39b8e80941Smrg    Display*                       dpy;
40b8e80941Smrg    Window                         window;
41b8e80941Smrg} VkXlibSurfaceCreateInfoKHR;
42b8e80941Smrg
43b8e80941Smrgtypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
44b8e80941Smrgtypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
45b8e80941Smrg
46b8e80941Smrg#ifndef VK_NO_PROTOTYPES
47b8e80941SmrgVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
48b8e80941Smrg    VkInstance                                  instance,
49b8e80941Smrg    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
50b8e80941Smrg    const VkAllocationCallbacks*                pAllocator,
51b8e80941Smrg    VkSurfaceKHR*                               pSurface);
52b8e80941Smrg
53b8e80941SmrgVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
54b8e80941Smrg    VkPhysicalDevice                            physicalDevice,
55b8e80941Smrg    uint32_t                                    queueFamilyIndex,
56b8e80941Smrg    Display*                                    dpy,
57b8e80941Smrg    VisualID                                    visualID);
58b8e80941Smrg#endif
59b8e80941Smrg
60b8e80941Smrg#ifdef __cplusplus
61b8e80941Smrg}
62b8e80941Smrg#endif
63b8e80941Smrg
64b8e80941Smrg#endif
65