1/* 2 * Copyright (c) 2015-2016 The Khronos Group Inc. 3 * Copyright (c) 2015-2016 Valve Corporation 4 * Copyright (c) 2015-2016 LunarG, Inc. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and/or associated documentation files (the "Materials"), to 8 * deal in the Materials without restriction, including without limitation the 9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10 * sell copies of the Materials, and to permit persons to whom the Materials are 11 * furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice(s) and this permission notice shall be included in 14 * all copies or substantial portions of the Materials. 15 * 16 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 * 20 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE 23 * USE OR OTHER DEALINGS IN THE MATERIALS. 24 * 25 * Author: Ian Elliott <ian@lunarg.com> 26 * 27 */ 28 29#include "vk_loader_platform.h" 30#include "loader.h" 31 32bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance, 33 const char *name, void **addr); 34void wsi_add_instance_extensions(const struct loader_instance *inst, 35 struct loader_extension_list *ext_list); 36 37void wsi_create_instance(struct loader_instance *ptr_instance, 38 const VkInstanceCreateInfo *pCreateInfo); 39 40VKAPI_ATTR void VKAPI_CALL 41terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, 42 const VkAllocationCallbacks *pAllocator); 43 44VKAPI_ATTR VkResult VKAPI_CALL 45terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, 46 uint32_t queueFamilyIndex, 47 VkSurfaceKHR surface, 48 VkBool32 *pSupported); 49 50VKAPI_ATTR VkResult VKAPI_CALL 51terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR( 52 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 53 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities); 54 55VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR( 56 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 57 uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats); 58 59VKAPI_ATTR VkResult VKAPI_CALL 60terminator_GetPhysicalDeviceSurfacePresentModesKHR( 61 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 62 uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes); 63 64#ifdef VK_USE_PLATFORM_WIN32_KHR 65VKAPI_ATTR VkResult VKAPI_CALL 66terminator_CreateWin32SurfaceKHR(VkInstance instance, 67 const VkWin32SurfaceCreateInfoKHR *pCreateInfo, 68 const VkAllocationCallbacks *pAllocator, 69 VkSurfaceKHR *pSurface); 70VKAPI_ATTR VkBool32 VKAPI_CALL 71terminator_GetPhysicalDeviceWin32PresentationSupportKHR( 72 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); 73#endif 74#ifdef VK_USE_PLATFORM_MIR_KHR 75VKAPI_ATTR VkResult VKAPI_CALL 76terminator_CreateMirSurfaceKHR(VkInstance instance, 77 const VkMirSurfaceCreateInfoKHR *pCreateInfo, 78 const VkAllocationCallbacks *pAllocator, 79 VkSurfaceKHR *pSurface); 80VKAPI_ATTR VkBool32 VKAPI_CALL 81terminator_GetPhysicalDeviceMirPresentationSupportKHR( 82 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, 83 MirConnection *connection); 84#endif 85#ifdef VK_USE_PLATFORM_WAYLAND_KHR 86VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR( 87 VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo, 88 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface); 89VKAPI_ATTR VkBool32 VKAPI_CALL 90terminator_GetPhysicalDeviceWaylandPresentationSupportKHR( 91 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, 92 struct wl_display *display); 93#endif 94#ifdef VK_USE_PLATFORM_XCB_KHR 95VKAPI_ATTR VkResult VKAPI_CALL 96terminator_CreateXcbSurfaceKHR(VkInstance instance, 97 const VkXcbSurfaceCreateInfoKHR *pCreateInfo, 98 const VkAllocationCallbacks *pAllocator, 99 VkSurfaceKHR *pSurface); 100 101VKAPI_ATTR VkBool32 VKAPI_CALL 102terminator_GetPhysicalDeviceXcbPresentationSupportKHR( 103 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, 104 xcb_connection_t *connection, xcb_visualid_t visual_id); 105#endif 106#ifdef VK_USE_PLATFORM_XLIB_KHR 107VKAPI_ATTR VkResult VKAPI_CALL 108terminator_CreateXlibSurfaceKHR(VkInstance instance, 109 const VkXlibSurfaceCreateInfoKHR *pCreateInfo, 110 const VkAllocationCallbacks *pAllocator, 111 VkSurfaceKHR *pSurface); 112VKAPI_ATTR VkBool32 VKAPI_CALL 113terminator_GetPhysicalDeviceXlibPresentationSupportKHR( 114 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy, 115 VisualID visualID); 116#endif 117VKAPI_ATTR VkResult VKAPI_CALL 118terminator_GetPhysicalDeviceDisplayPropertiesKHR( 119 VkPhysicalDevice physicalDevice, 120 uint32_t* pPropertyCount, 121 VkDisplayPropertiesKHR* pProperties); 122VKAPI_ATTR VkResult VKAPI_CALL 123terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR( 124 VkPhysicalDevice physicalDevice, 125 uint32_t* pPropertyCount, 126 VkDisplayPlanePropertiesKHR* pProperties); 127VKAPI_ATTR VkResult VKAPI_CALL 128terminator_GetDisplayPlaneSupportedDisplaysKHR( 129 VkPhysicalDevice physicalDevice, 130 uint32_t planeIndex, 131 uint32_t* pDisplayCount, 132 VkDisplayKHR* pDisplays); 133VKAPI_ATTR VkResult VKAPI_CALL 134terminator_GetDisplayModePropertiesKHR( 135 VkPhysicalDevice physicalDevice, 136 VkDisplayKHR display, 137 uint32_t* pPropertyCount, 138 VkDisplayModePropertiesKHR* pProperties); 139VKAPI_ATTR VkResult VKAPI_CALL 140terminator_CreateDisplayModeKHR( 141 VkPhysicalDevice physicalDevice, 142 VkDisplayKHR display, 143 const VkDisplayModeCreateInfoKHR* pCreateInfo, 144 const VkAllocationCallbacks* pAllocator, 145 VkDisplayModeKHR* pMode); 146VKAPI_ATTR VkResult VKAPI_CALL 147terminator_GetDisplayPlaneCapabilitiesKHR( 148 VkPhysicalDevice physicalDevice, 149 VkDisplayModeKHR mode, 150 uint32_t planeIndex, 151 VkDisplayPlaneCapabilitiesKHR* pCapabilities); 152VKAPI_ATTR VkResult VKAPI_CALL 153terminator_CreateDisplayPlaneSurfaceKHR( 154 VkInstance instance, 155 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, 156 const VkAllocationCallbacks* pAllocator, 157 VkSurfaceKHR* pSurface);