173 lines
7.5 KiB
C
173 lines
7.5 KiB
C
/*
|
|
* Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
* Copyright (c) 2015-2016 Valve Corporation
|
|
* Copyright (c) 2015-2016 LunarG, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* Author: Ian Elliott <ian@lunarg.com>
|
|
*
|
|
*/
|
|
|
|
#ifndef WSI_H
|
|
#define WSI_H
|
|
|
|
#include "vk_loader_platform.h"
|
|
#include "loader.h"
|
|
|
|
typedef struct {
|
|
union {
|
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
|
VkIcdSurfaceMir mir_surf;
|
|
#endif // VK_USE_PLATFORM_MIR_KHR
|
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
|
VkIcdSurfaceWayland wayland_surf;
|
|
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
VkIcdSurfaceWin32 win_surf;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
|
VkIcdSurfaceXcb xcb_surf;
|
|
#endif // VK_USE_PLATFORM_XCB_KHR
|
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
|
VkIcdSurfaceXlib xlib_surf;
|
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
|
VkIcdSurfaceDisplay display_surf;
|
|
};
|
|
uint32_t base_size; // Size of VkIcdSurfaceBase
|
|
uint32_t platform_size; // Size of corresponding VkIcdSurfaceXXX
|
|
uint32_t non_platform_offset; // Start offset to base_size
|
|
uint32_t entire_size; // Size of entire VkIcdSurface
|
|
VkSurfaceKHR *real_icd_surfaces;
|
|
} VkIcdSurface;
|
|
|
|
bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
|
|
const char *name, void **addr);
|
|
|
|
void wsi_create_instance(struct loader_instance *ptr_instance,
|
|
const VkInstanceCreateInfo *pCreateInfo);
|
|
bool wsi_unsupported_instance_extension(const VkExtensionProperties *ext_prop);
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_vkCreateSwapchainKHR(
|
|
VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain);
|
|
|
|
VKAPI_ATTR void VKAPI_CALL
|
|
terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
|
|
const VkAllocationCallbacks *pAllocator);
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
VkSurfaceKHR surface,
|
|
VkBool32 *pSupported);
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(
|
|
VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
|
VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(
|
|
VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
|
uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats);
|
|
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetPhysicalDeviceSurfacePresentModesKHR(
|
|
VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
|
|
uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes);
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_CreateWin32SurfaceKHR(VkInstance instance,
|
|
const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkSurfaceKHR *pSurface);
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL
|
|
terminator_GetPhysicalDeviceWin32PresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
|
|
#endif
|
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_CreateMirSurfaceKHR(VkInstance instance,
|
|
const VkMirSurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkSurfaceKHR *pSurface);
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL
|
|
terminator_GetPhysicalDeviceMirPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
|
|
MirConnection *connection);
|
|
#endif
|
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(
|
|
VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL
|
|
terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
|
|
struct wl_display *display);
|
|
#endif
|
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_CreateXcbSurfaceKHR(VkInstance instance,
|
|
const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkSurfaceKHR *pSurface);
|
|
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL
|
|
terminator_GetPhysicalDeviceXcbPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
|
|
xcb_connection_t *connection, xcb_visualid_t visual_id);
|
|
#endif
|
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_CreateXlibSurfaceKHR(VkInstance instance,
|
|
const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkSurfaceKHR *pSurface);
|
|
VKAPI_ATTR VkBool32 VKAPI_CALL
|
|
terminator_GetPhysicalDeviceXlibPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy,
|
|
VisualID visualID);
|
|
#endif
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
|
|
VkDisplayPropertiesKHR *pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(
|
|
VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
|
|
VkDisplayPlanePropertiesKHR *pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,
|
|
uint32_t planeIndex,
|
|
uint32_t *pDisplayCount,
|
|
VkDisplayKHR *pDisplays);
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display,
|
|
uint32_t *pPropertyCount,
|
|
VkDisplayModePropertiesKHR *pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL
|
|
terminator_CreateDisplayModeKHR(VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display,
|
|
const VkDisplayModeCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator,
|
|
VkDisplayModeKHR *pMode);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilitiesKHR(
|
|
VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex,
|
|
VkDisplayPlaneCapabilitiesKHR *pCapabilities);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
|
|
VkInstance instance, const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
|
|
const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
|
|
|
|
#endif /* WSI_H */
|