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: Mark Young <marky@lunarg.com>
195db71995Sopenharmony_ci * Author: Charles Giessen <charles@lunarg.com>
205db71995Sopenharmony_ci */
215db71995Sopenharmony_ci
225db71995Sopenharmony_ci#pragma once
235db71995Sopenharmony_ci
245db71995Sopenharmony_ci#include <vulkan/vulkan.h>
255db71995Sopenharmony_ci
265db71995Sopenharmony_ci// ---- Manually added trampoline/terminator functions
275db71995Sopenharmony_ci
285db71995Sopenharmony_ci// These functions, for whatever reason, require more complex changes than
295db71995Sopenharmony_ci// can easily be automatically generated.
305db71995Sopenharmony_ci
315db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV(
325db71995Sopenharmony_ci    VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage,
335db71995Sopenharmony_ci    VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType,
345db71995Sopenharmony_ci    VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
355db71995Sopenharmony_ci
365db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
375db71995Sopenharmony_ci    VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage,
385db71995Sopenharmony_ci    VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType,
395db71995Sopenharmony_ci    VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
405db71995Sopenharmony_ci
415db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
425db71995Sopenharmony_ci                                                                        VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
435db71995Sopenharmony_ci
445db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,
455db71995Sopenharmony_ci                                                                                   VkSurfaceKHR surface,
465db71995Sopenharmony_ci                                                                                   VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
475db71995Sopenharmony_ci
485db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
495db71995Sopenharmony_ci
505db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
515db71995Sopenharmony_ci
525db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
535db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
545db71995Sopenharmony_ci
555db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy,
565db71995Sopenharmony_ci                                                                VkDisplayKHR display);
575db71995Sopenharmony_ci
585db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
595db71995Sopenharmony_ci                                                        VkDisplayKHR* pDisplay);
605db71995Sopenharmony_ci
615db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
625db71995Sopenharmony_ci                                                                   VkDisplayKHR* pDisplay);
635db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_XLIB_XRANDR_EXT
645db71995Sopenharmony_ci
655db71995Sopenharmony_ci#if defined(VK_USE_PLATFORM_WIN32_KHR)
665db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice,
675db71995Sopenharmony_ci                                                                        const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
685db71995Sopenharmony_ci                                                                        uint32_t* pPresentModeCount,
695db71995Sopenharmony_ci                                                                        VkPresentModeKHR* pPresentModes);
705db71995Sopenharmony_ci
715db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfacePresentModes2EXT(
725db71995Sopenharmony_ci    VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount,
735db71995Sopenharmony_ci    VkPresentModeKHR* pPresentModes);
745db71995Sopenharmony_ci#endif  // VK_USE_PLATFORM_WIN32_KHR
755db71995Sopenharmony_ci
765db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT(VkDevice device,
775db71995Sopenharmony_ci                                                                     const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
785db71995Sopenharmony_ci                                                                     VkDeviceGroupPresentModeFlagsKHR* pModes);
795db71995Sopenharmony_ci
805db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModes2EXT(VkDevice device,
815db71995Sopenharmony_ci                                                                                const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
825db71995Sopenharmony_ci                                                                                VkDeviceGroupPresentModeFlagsKHR* pModes);
835db71995Sopenharmony_ci
845db71995Sopenharmony_ci// ---- VK_EXT_tooling_info extension trampoline/terminators
855db71995Sopenharmony_ci
865db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
875db71995Sopenharmony_ci                                                                  VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
885db71995Sopenharmony_ci
895db71995Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
905db71995Sopenharmony_ci                                                                             VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
91