15db71995Sopenharmony_ci/*
25db71995Sopenharmony_ci * Copyright (c) 2015-2021 The Khronos Group Inc.
35db71995Sopenharmony_ci * Copyright (c) 2015-2021 Valve Corporation
45db71995Sopenharmony_ci * Copyright (c) 2015-2021 LunarG, Inc.
55db71995Sopenharmony_ci *
65db71995Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
75db71995Sopenharmony_ci * you may not use this file except in compliance with the License.
85db71995Sopenharmony_ci * You may obtain a copy of the License at
95db71995Sopenharmony_ci *
105db71995Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
115db71995Sopenharmony_ci *
125db71995Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
135db71995Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
145db71995Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
155db71995Sopenharmony_ci * See the License for the specific language governing permissions and
165db71995Sopenharmony_ci * limitations under the License.
175db71995Sopenharmony_ci *
185db71995Sopenharmony_ci * Author: Ian Elliott <ian@lunarg.com>
195db71995Sopenharmony_ci * Author: Charles Giessen <charles@lunarg.com>
205db71995Sopenharmony_ci *
215db71995Sopenharmony_ci */
225db71995Sopenharmony_ci
235db71995Sopenharmony_ci#pragma once
245db71995Sopenharmony_ci
255db71995Sopenharmony_ci#include "loader_common.h"
265db71995Sopenharmony_ci
275db71995Sopenharmony_citypedef struct {
285db71995Sopenharmony_ci    union {
295db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
305db71995Sopenharmony_ci        VkIcdSurfaceWayland wayland_surf;
315db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_WAYLAND_KHR
325db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WIN32_KHR)
335db71995Sopenharmony_ci        VkIcdSurfaceWin32 win_surf;
345db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_WIN32_KHR
355db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XCB_KHR)
365db71995Sopenharmony_ci        VkIcdSurfaceXcb xcb_surf;
375db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_XCB_KHR
385db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XLIB_KHR)
395db71995Sopenharmony_ci        VkIcdSurfaceXlib xlib_surf;
405db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_XLIB_KHR
415db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
425db71995Sopenharmony_ci        VkIcdSurfaceDirectFB directfb_surf;
435db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_DIRECTFB_EXT
445db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_MACOS_MVK)
455db71995Sopenharmony_ci        VkIcdSurfaceMacOS macos_surf;
465db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_MACOS_MVK
475db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_GGP)
485db71995Sopenharmony_ci        VkIcdSurfaceGgp ggp_surf;
495db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_GGP
505db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_FUCHSIA)
515db71995Sopenharmony_ci        VkIcdSurfaceImagePipe imagepipe_surf;
525db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_FUCHSIA
535db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_METAL_EXT)
545db71995Sopenharmony_ci        VkIcdSurfaceMetal metal_surf;
555db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_METAL_EXT
565db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_SCREEN_QNX)
575db71995Sopenharmony_ci        VkIcdSurfaceScreen screen_surf;
585db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_SCREEN_QNX
595db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_VI_NN)
605db71995Sopenharmony_ci        VkIcdSurfaceVi vi_surf;
615db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_VI_NN
625db71995Sopenharmony_ci        VkIcdSurfaceDisplay display_surf;
635db71995Sopenharmony_ci        VkIcdSurfaceHeadless headless_surf;
645db71995Sopenharmony_ci    };
655db71995Sopenharmony_ci    uint32_t base_size;            // Size of VkIcdSurfaceBase
665db71995Sopenharmony_ci    uint32_t platform_size;        // Size of corresponding VkIcdSurfaceXXX
675db71995Sopenharmony_ci    uint32_t non_platform_offset;  // Start offset to base_size
685db71995Sopenharmony_ci    uint32_t entire_size;          // Size of entire VkIcdSurface
695db71995Sopenharmony_ci    VkSurfaceKHR *real_icd_surfaces;
705db71995Sopenharmony_ci} VkIcdSurface;
715db71995Sopenharmony_ci
725db71995Sopenharmony_cibool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr);
735db71995Sopenharmony_ci
745db71995Sopenharmony_civoid wsi_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo);
755db71995Sopenharmony_cibool wsi_unsupported_instance_extension(const VkExtensionProperties *ext_prop);
765db71995Sopenharmony_ci
775db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateHeadlessSurfaceEXT(VkInstance instance,
785db71995Sopenharmony_ci                                                                   const VkHeadlessSurfaceCreateInfoEXT *pCreateInfo,
795db71995Sopenharmony_ci                                                                   const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
805db71995Sopenharmony_ci
815db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo,
825db71995Sopenharmony_ci                                                             const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain);
835db71995Sopenharmony_ci
845db71995Sopenharmony_ciVKAPI_ATTR void VKAPI_CALL terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
855db71995Sopenharmony_ci                                                        const VkAllocationCallbacks *pAllocator);
865db71995Sopenharmony_ci
875db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
885db71995Sopenharmony_ci                                                                             uint32_t queueFamilyIndex, VkSurfaceKHR surface,
895db71995Sopenharmony_ci                                                                             VkBool32 *pSupported);
905db71995Sopenharmony_ci
915db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,
925db71995Sopenharmony_ci                                                                                  VkSurfaceKHR surface,
935db71995Sopenharmony_ci                                                                                  VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
945db71995Sopenharmony_ci
955db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
965db71995Sopenharmony_ci                                                                             uint32_t *pSurfaceFormatCount,
975db71995Sopenharmony_ci                                                                             VkSurfaceFormatKHR *pSurfaceFormats);
985db71995Sopenharmony_ci
995db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,
1005db71995Sopenharmony_ci                                                                                  VkSurfaceKHR surface, uint32_t *pPresentModeCount,
1015db71995Sopenharmony_ci                                                                                  VkPresentModeKHR *pPresentModes);
1025db71995Sopenharmony_ci
1035db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface,
1045db71995Sopenharmony_ci                                                                               VkDeviceGroupPresentModeFlagsKHR *pModes);
1055db71995Sopenharmony_ci
1065db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WIN32_KHR)
1075db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
1085db71995Sopenharmony_ci                                                                const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1095db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,
1105db71995Sopenharmony_ci                                                                                       uint32_t queueFamilyIndex);
1115db71995Sopenharmony_ci#endif
1125db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1135db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(VkInstance instance,
1145db71995Sopenharmony_ci                                                                  const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
1155db71995Sopenharmony_ci                                                                  const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1165db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,
1175db71995Sopenharmony_ci                                                                                         uint32_t queueFamilyIndex,
1185db71995Sopenharmony_ci                                                                                         struct wl_display *display);
1195db71995Sopenharmony_ci#endif
1205db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XCB_KHR)
1215db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXcbSurfaceKHR(VkInstance instance, const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
1225db71995Sopenharmony_ci                                                              const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1235db71995Sopenharmony_ci
1245db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,
1255db71995Sopenharmony_ci                                                                                     uint32_t queueFamilyIndex,
1265db71995Sopenharmony_ci                                                                                     xcb_connection_t *connection,
1275db71995Sopenharmony_ci                                                                                     xcb_visualid_t visual_id);
1285db71995Sopenharmony_ci#endif
1295db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XLIB_KHR)
1305db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateXlibSurfaceKHR(VkInstance instance, const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
1315db71995Sopenharmony_ci                                                               const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1325db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,
1335db71995Sopenharmony_ci                                                                                      uint32_t queueFamilyIndex, Display *dpy,
1345db71995Sopenharmony_ci                                                                                      VisualID visualID);
1355db71995Sopenharmony_ci#endif
1365db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1375db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDirectFBSurfaceEXT(VkInstance instance,
1385db71995Sopenharmony_ci                                                                   const VkDirectFBSurfaceCreateInfoEXT *pCreateInfo,
1395db71995Sopenharmony_ci                                                                   const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1405db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT(VkPhysicalDevice physicalDevice,
1415db71995Sopenharmony_ci                                                                                          uint32_t queueFamilyIndex,
1425db71995Sopenharmony_ci                                                                                          IDirectFB *dfb);
1435db71995Sopenharmony_ci#endif
1445db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_MACOS_MVK)
1455db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateMacOSSurfaceMVK(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK *pCreateInfo,
1465db71995Sopenharmony_ci                                                                const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1475db71995Sopenharmony_ci#endif
1485db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_IOS_MVK)
1495db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateIOSSurfaceMVK(VkInstance instance, const VkIOSSurfaceCreateInfoMVK *pCreateInfo,
1505db71995Sopenharmony_ci                                                              const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1515db71995Sopenharmony_ci#endif
1525db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_GGP)
1535db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL
1545db71995Sopenharmony_citerminator_CreateStreamDescriptorSurfaceGGP(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP *pCreateInfo,
1555db71995Sopenharmony_ci                                            const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1565db71995Sopenharmony_ci#endif
1575db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_METAL_EXT)
1585db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateMetalSurfaceEXT(VkInstance instance, const VkMetalSurfaceCreateInfoEXT *pCreateInfo,
1595db71995Sopenharmony_ci                                                                const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1605db71995Sopenharmony_ci#endif
1615db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1625db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateScreenSurfaceQNX(VkInstance instance,
1635db71995Sopenharmony_ci                                                                 const VkScreenSurfaceCreateInfoQNX *pCreateInfo,
1645db71995Sopenharmony_ci                                                                 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1655db71995Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceScreenPresentationSupportQNX(VkPhysicalDevice physicalDevice,
1665db71995Sopenharmony_ci                                                                                        uint32_t queueFamilyIndex,
1675db71995Sopenharmony_ci                                                                                        struct _screen_window *window);
1685db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_SCREEN_QNX
1695db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_VI_NN)
1705db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateViSurfaceNN(VkInstance instance, const VkViSurfaceCreateInfoNN *pCreateInfo,
1715db71995Sopenharmony_ci                                                            const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
1725db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_VI_NN
1735db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,
1745db71995Sopenharmony_ci                                                                                uint32_t *pPropertyCount,
1755db71995Sopenharmony_ci                                                                                VkDisplayPropertiesKHR *pProperties);
1765db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,
1775db71995Sopenharmony_ci                                                                                     uint32_t *pPropertyCount,
1785db71995Sopenharmony_ci                                                                                     VkDisplayPlanePropertiesKHR *pProperties);
1795db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice, uint32_t planeIndex,
1805db71995Sopenharmony_ci                                                                              uint32_t *pDisplayCount, VkDisplayKHR *pDisplays);
1815db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
1825db71995Sopenharmony_ci                                                                      uint32_t *pPropertyCount,
1835db71995Sopenharmony_ci                                                                      VkDisplayModePropertiesKHR *pProperties);
1845db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayModeKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
1855db71995Sopenharmony_ci                                                               const VkDisplayModeCreateInfoKHR *pCreateInfo,
1865db71995Sopenharmony_ci                                                               const VkAllocationCallbacks *pAllocator, VkDisplayModeKHR *pMode);
1875db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode,
1885db71995Sopenharmony_ci                                                                         uint32_t planeIndex,
1895db71995Sopenharmony_ci                                                                         VkDisplayPlaneCapabilitiesKHR *pCapabilities);
1905db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(VkInstance instance,
1915db71995Sopenharmony_ci                                                                       const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
1925db71995Sopenharmony_ci                                                                       const VkAllocationCallbacks *pAllocator,
1935db71995Sopenharmony_ci                                                                       VkSurfaceKHR *pSurface);
1945db71995Sopenharmony_ci
1955db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSharedSwapchainsKHR(VkDevice device, uint32_t swapchainCount,
1965db71995Sopenharmony_ci                                                                    const VkSwapchainCreateInfoKHR *pCreateInfos,
1975db71995Sopenharmony_ci                                                                    const VkAllocationCallbacks *pAllocator,
1985db71995Sopenharmony_ci                                                                    VkSwapchainKHR *pSwapchains);
1995db71995Sopenharmony_ci
2005db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,
2015db71995Sopenharmony_ci                                                                                VkSurfaceKHR surface, uint32_t *pRectCount,
2025db71995Sopenharmony_ci                                                                                VkRect2D *pRects);
2035db71995Sopenharmony_ci
2045db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayProperties2KHR(VkPhysicalDevice physicalDevice,
2055db71995Sopenharmony_ci                                                                                 uint32_t *pPropertyCount,
2065db71995Sopenharmony_ci                                                                                 VkDisplayProperties2KHR *pProperties);
2075db71995Sopenharmony_ci
2085db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR(VkPhysicalDevice physicalDevice,
2095db71995Sopenharmony_ci                                                                                      uint32_t *pPropertyCount,
2105db71995Sopenharmony_ci                                                                                      VkDisplayPlaneProperties2KHR *pProperties);
2115db71995Sopenharmony_ci
2125db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayModeProperties2KHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display,
2135db71995Sopenharmony_ci                                                                       uint32_t *pPropertyCount,
2145db71995Sopenharmony_ci                                                                       VkDisplayModeProperties2KHR *pProperties);
2155db71995Sopenharmony_ci
2165db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilities2KHR(VkPhysicalDevice physicalDevice,
2175db71995Sopenharmony_ci                                                                          const VkDisplayPlaneInfo2KHR *pDisplayPlaneInfo,
2185db71995Sopenharmony_ci                                                                          VkDisplayPlaneCapabilities2KHR *pCapabilities);
2195db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_FUCHSIA)
2205db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateImagePipeSurfaceFUCHSIA(VkInstance instance,
2215db71995Sopenharmony_ci                                                                        const VkImagePipeSurfaceCreateInfoFUCHSIA *pCreateInfo,
2225db71995Sopenharmony_ci                                                                        const VkAllocationCallbacks *pAllocator,
2235db71995Sopenharmony_ci                                                                        VkSurfaceKHR *pSurface);
2245db71995Sopenharmony_ci#endif
2255db71995Sopenharmony_ci
2265db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2275db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateAndroidSurfaceKHR(VkInstance instance,
2285db71995Sopenharmony_ci                                                                  const VkAndroidSurfaceCreateInfoKHR *pCreateInfo,
2295db71995Sopenharmony_ci                                                                  const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
2305db71995Sopenharmony_ci#endif
2315db71995Sopenharmony_ci
2325db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_OHOS)
2335db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSurfaceOHOS(VkInstance instance,
2345db71995Sopenharmony_ci                                                                       const VkSurfaceCreateInfoOHOS* pCreateInfo,
2355db71995Sopenharmony_ci                                                                       const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
2365db71995Sopenharmony_ci#endif
2375db71995Sopenharmony_ci
2385db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2KHR(
2395db71995Sopenharmony_ci    VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
2405db71995Sopenharmony_ci    VkSurfaceCapabilities2KHR *pSurfaceCapabilities);
2415db71995Sopenharmony_ci
2425db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormats2KHR(VkPhysicalDevice physicalDevice,
2435db71995Sopenharmony_ci                                                                              const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo,
2445db71995Sopenharmony_ci                                                                              uint32_t *pSurfaceFormatCount,
2455db71995Sopenharmony_ci                                                                              VkSurfaceFormat2KHR *pSurfaceFormats);
246