1 /*
2  * Copyright (c) 2015-2017 The Khronos Group Inc.
3  * Copyright (c) 2015-2017 Valve Corporation
4  * Copyright (c) 2015-2017 LunarG, Inc.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * Author: Mark Young <marky@lunarg.com>
19  */
20 
21 #pragma once
22 
23 // ---- Manually added trampoline/terminator functions
24 
25 // These functions, for whatever reason, require more complex changes than
26 // can easily be automatically generated.
27 
28 VKAPI_ATTR VkResult VKAPI_CALL
29 GetPhysicalDeviceExternalImageFormatPropertiesNV(
30     VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
31     VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags,
32     VkExternalMemoryHandleTypeFlagsNV externalHandleType,
33     VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
34 
35 VKAPI_ATTR VkResult VKAPI_CALL
36 terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
37     VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
38     VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags,
39     VkExternalMemoryHandleTypeFlagsNV externalHandleType,
40     VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
41 
42 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
43                                                                         VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
44 
45 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,
46                                                                                    VkSurfaceKHR surface,
47                                                                                    VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
48 
49 VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
50 
51 VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
52 
53 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
54 VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
55 
56 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy,
57                                                                 VkDisplayKHR display);
58 
59 VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
60                                                         VkDisplayKHR* pDisplay);
61 
62 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput,
63                                                                    VkDisplayKHR* pDisplay);
64 #endif  // VK_USE_PLATFORM_XLIB_XRANDR_EXT
65 
66 #ifdef VK_USE_PLATFORM_WIN32_KHR
67 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT(
68     VkPhysicalDevice                            physicalDevice,
69     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
70     uint32_t*                                   pPresentModeCount,
71     VkPresentModeKHR*                           pPresentModes);
72 
73 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfacePresentModes2EXT(
74     VkPhysicalDevice                            physicalDevice,
75     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
76     uint32_t*                                   pPresentModeCount,
77     VkPresentModeKHR*                           pPresentModes);
78 #endif // VK_USE_PLATFORM_WIN32_KHR
79 
80 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT(
81     VkDevice                                    device,
82     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
83     VkDeviceGroupPresentModeFlagsKHR*           pModes);
84 
85 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModes2EXT(
86     VkDevice                                    device,
87     const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
88     VkDeviceGroupPresentModeFlagsKHR*           pModes);
89 
90 // ---- VK_EXT_tooling_info extension trampoline/terminators
91 
92 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT(
93     VkPhysicalDevice                            physicalDevice,
94     uint32_t*                                   pToolCount,
95     VkPhysicalDeviceToolPropertiesEXT*          pToolProperties);
96 
97 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT(
98     VkPhysicalDevice                            physicalDevice,
99     uint32_t*                                   pToolCount,
100     VkPhysicalDeviceToolPropertiesEXT*          pToolProperties);
101