blob: f8bf31f9b4fe259651c1a8af00b05e8b2fa381bb [file] [log] [blame]
Ian Elliottd3ef02f2015-07-06 14:36:13 -06001/*
Ian Elliottd3ef02f2015-07-06 14:36:13 -06002 *
Courtney Goeltzenleuchterfcbe16f2015-10-29 13:50:34 -06003 * Copyright (C) 2015 Valve Corporation
Ian Elliottd3ef02f2015-07-06 14:36:13 -06004 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 *
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060023 * Author: Ian Elliott <ian@lunarg.com>
24 *
Ian Elliottd3ef02f2015-07-06 14:36:13 -060025 */
26
27#include "vk_loader_platform.h"
28#include "loader.h"
Ian Elliottd3ef02f2015-07-06 14:36:13 -060029
Jon Ashburn8a39efc2015-11-06 11:02:40 -070030bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
31 const char* name, void **addr);
Ian Elliott954fa342015-10-30 15:28:23 -060032void wsi_add_instance_extensions(
33 const struct loader_instance *inst,
34 struct loader_extension_list *ext_list);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060035
Ian Elliott954fa342015-10-30 15:28:23 -060036void wsi_create_instance(
37 struct loader_instance *ptr_instance,
38 const VkInstanceCreateInfo *pCreateInfo);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060039
Ian Elliottd3ef02f2015-07-06 14:36:13 -060040
Ian Elliottfb42cd72015-11-25 14:43:02 -070041VKAPI_ATTR void VKAPI_CALL loader_DestroySurfaceKHR(
42 VkInstance instance,
43 VkSurfaceKHR surface,
44 const VkAllocationCallbacks* pAllocator);
45
Chia-I Wu9ab61502015-11-06 06:42:02 +080046VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfaceSupportKHR(
Ian Elliottaf5c5952015-11-17 17:46:38 -070047 VkPhysicalDevice physicalDevice,
48 uint32_t queueFamilyIndex,
49 VkSurfaceKHR surface,
50 VkBool32* pSupported);
Ian Elliott486c5502015-11-19 16:05:09 -070051
52VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfaceCapabilitiesKHR(
53 VkPhysicalDevice physicalDevice,
54 VkSurfaceKHR surface,
55 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
56
57VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfaceFormatsKHR(
58 VkPhysicalDevice physicalDevice,
59 VkSurfaceKHR surface,
60 uint32_t* pSurfaceFormatCount,
61 VkSurfaceFormatKHR* pSurfaceFormats);
62
63VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfacePresentModesKHR(
64 VkPhysicalDevice physicalDevice,
65 VkSurfaceKHR surface,
66 uint32_t* pPresentModeCount,
67 VkPresentModeKHR* pPresentModes);
Ian Elliott919fa302015-11-24 15:39:10 -070068
69#ifdef VK_USE_PLATFORM_WIN32_KHR
Jon Ashburnf72a04b2015-11-25 17:55:49 -070070VKAPI_ATTR VkResult VKAPI_CALL loader_CreateWin32SurfaceKHR(
71 VkInstance instance,
Ian Elliott6e7e6002015-12-10 17:28:50 -070072 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jon Ashburnf72a04b2015-11-25 17:55:49 -070073 const VkAllocationCallbacks* pAllocator,
74 VkSurfaceKHR* pSurface);
Ian Elliott919fa302015-11-24 15:39:10 -070075VKAPI_ATTR VkBool32 VKAPI_CALL loader_GetPhysicalDeviceWin32PresentationSupportKHR(
76 VkPhysicalDevice physicalDevice,
77 uint32_t queueFamilyIndex);
78#endif
79#ifdef VK_USE_PLATFORM_MIR_KHR
Jon Ashburnf72a04b2015-11-25 17:55:49 -070080VKAPI_ATTR VkResult VKAPI_CALL loader_CreateMirSurfaceKHR(
81 VkInstance instance,
Ian Elliott6e7e6002015-12-10 17:28:50 -070082 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
Jon Ashburnf72a04b2015-11-25 17:55:49 -070083 const VkAllocationCallbacks* pAllocator,
84 VkSurfaceKHR* pSurface);
Ian Elliott919fa302015-11-24 15:39:10 -070085VKAPI_ATTR VkBool32 VKAPI_CALL loader_GetPhysicalDeviceMirPresentationSupportKHR(
86 VkPhysicalDevice physicalDevice,
87 uint32_t queueFamilyIndex,
88 MirConnection* connection);
89#endif
90#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jon Ashburnf72a04b2015-11-25 17:55:49 -070091VKAPI_ATTR VkResult VKAPI_CALL loader_CreateWaylandSurfaceKHR(
92 VkInstance instance,
Ian Elliott6e7e6002015-12-10 17:28:50 -070093 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jon Ashburnf72a04b2015-11-25 17:55:49 -070094 const VkAllocationCallbacks* pAllocator,
95 VkSurfaceKHR* pSurface);
Ian Elliott919fa302015-11-24 15:39:10 -070096VKAPI_ATTR VkBool32 VKAPI_CALL loader_GetPhysicalDeviceWaylandPresentationSupportKHR(
97 VkPhysicalDevice physicalDevice,
98 uint32_t queueFamilyIndex,
99 struct wl_display* display);
100#endif
101#ifdef VK_USE_PLATFORM_XCB_KHR
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700102VKAPI_ATTR VkResult VKAPI_CALL loader_CreateXcbSurfaceKHR(
103 VkInstance instance,
Ian Elliott6e7e6002015-12-10 17:28:50 -0700104 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700105 const VkAllocationCallbacks* pAllocator,
106 VkSurfaceKHR* pSurface);
107
Ian Elliott919fa302015-11-24 15:39:10 -0700108VKAPI_ATTR VkBool32 VKAPI_CALL loader_GetPhysicalDeviceXcbPresentationSupportKHR(
109 VkPhysicalDevice physicalDevice,
110 uint32_t queueFamilyIndex,
111 xcb_connection_t* connection,
112 xcb_visualid_t visual_id);
113#endif
114#ifdef VK_USE_PLATFORM_XLIB_KHR
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700115VKAPI_ATTR VkResult VKAPI_CALL loader_CreateXlibSurfaceKHR(
116 VkInstance instance,
Ian Elliott6e7e6002015-12-10 17:28:50 -0700117 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700118 const VkAllocationCallbacks* pAllocator,
119 VkSurfaceKHR* pSurface);
Ian Elliott919fa302015-11-24 15:39:10 -0700120VKAPI_ATTR VkBool32 VKAPI_CALL loader_GetPhysicalDeviceXlibPresentationSupportKHR(
121 VkPhysicalDevice physicalDevice,
122 uint32_t queueFamilyIndex,
123 Display* dpy,
124 VisualID visualID);
125#endif