1bf215546Sopenharmony_ci#ifndef VULKAN_WIN32_H_
2bf215546Sopenharmony_ci#define VULKAN_WIN32_H_ 1
3bf215546Sopenharmony_ci
4bf215546Sopenharmony_ci/*
5bf215546Sopenharmony_ci** Copyright 2015-2022 The Khronos Group Inc.
6bf215546Sopenharmony_ci**
7bf215546Sopenharmony_ci** SPDX-License-Identifier: Apache-2.0
8bf215546Sopenharmony_ci*/
9bf215546Sopenharmony_ci
10bf215546Sopenharmony_ci/*
11bf215546Sopenharmony_ci** This header is generated from the Khronos Vulkan XML API Registry.
12bf215546Sopenharmony_ci**
13bf215546Sopenharmony_ci*/
14bf215546Sopenharmony_ci
15bf215546Sopenharmony_ci
16bf215546Sopenharmony_ci#ifdef __cplusplus
17bf215546Sopenharmony_ciextern "C" {
18bf215546Sopenharmony_ci#endif
19bf215546Sopenharmony_ci
20bf215546Sopenharmony_ci
21bf215546Sopenharmony_ci
22bf215546Sopenharmony_ci#define VK_KHR_win32_surface 1
23bf215546Sopenharmony_ci#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
24bf215546Sopenharmony_ci#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
25bf215546Sopenharmony_citypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
26bf215546Sopenharmony_citypedef struct VkWin32SurfaceCreateInfoKHR {
27bf215546Sopenharmony_ci    VkStructureType                 sType;
28bf215546Sopenharmony_ci    const void*                     pNext;
29bf215546Sopenharmony_ci    VkWin32SurfaceCreateFlagsKHR    flags;
30bf215546Sopenharmony_ci    HINSTANCE                       hinstance;
31bf215546Sopenharmony_ci    HWND                            hwnd;
32bf215546Sopenharmony_ci} VkWin32SurfaceCreateInfoKHR;
33bf215546Sopenharmony_ci
34bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
35bf215546Sopenharmony_citypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
36bf215546Sopenharmony_ci
37bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
38bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
39bf215546Sopenharmony_ci    VkInstance                                  instance,
40bf215546Sopenharmony_ci    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
41bf215546Sopenharmony_ci    const VkAllocationCallbacks*                pAllocator,
42bf215546Sopenharmony_ci    VkSurfaceKHR*                               pSurface);
43bf215546Sopenharmony_ci
44bf215546Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
45bf215546Sopenharmony_ci    VkPhysicalDevice                            physicalDevice,
46bf215546Sopenharmony_ci    uint32_t                                    queueFamilyIndex);
47bf215546Sopenharmony_ci#endif
48bf215546Sopenharmony_ci
49bf215546Sopenharmony_ci
50bf215546Sopenharmony_ci#define VK_KHR_external_memory_win32 1
51bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
52bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
53bf215546Sopenharmony_citypedef struct VkImportMemoryWin32HandleInfoKHR {
54bf215546Sopenharmony_ci    VkStructureType                       sType;
55bf215546Sopenharmony_ci    const void*                           pNext;
56bf215546Sopenharmony_ci    VkExternalMemoryHandleTypeFlagBits    handleType;
57bf215546Sopenharmony_ci    HANDLE                                handle;
58bf215546Sopenharmony_ci    LPCWSTR                               name;
59bf215546Sopenharmony_ci} VkImportMemoryWin32HandleInfoKHR;
60bf215546Sopenharmony_ci
61bf215546Sopenharmony_citypedef struct VkExportMemoryWin32HandleInfoKHR {
62bf215546Sopenharmony_ci    VkStructureType               sType;
63bf215546Sopenharmony_ci    const void*                   pNext;
64bf215546Sopenharmony_ci    const SECURITY_ATTRIBUTES*    pAttributes;
65bf215546Sopenharmony_ci    DWORD                         dwAccess;
66bf215546Sopenharmony_ci    LPCWSTR                       name;
67bf215546Sopenharmony_ci} VkExportMemoryWin32HandleInfoKHR;
68bf215546Sopenharmony_ci
69bf215546Sopenharmony_citypedef struct VkMemoryWin32HandlePropertiesKHR {
70bf215546Sopenharmony_ci    VkStructureType    sType;
71bf215546Sopenharmony_ci    void*              pNext;
72bf215546Sopenharmony_ci    uint32_t           memoryTypeBits;
73bf215546Sopenharmony_ci} VkMemoryWin32HandlePropertiesKHR;
74bf215546Sopenharmony_ci
75bf215546Sopenharmony_citypedef struct VkMemoryGetWin32HandleInfoKHR {
76bf215546Sopenharmony_ci    VkStructureType                       sType;
77bf215546Sopenharmony_ci    const void*                           pNext;
78bf215546Sopenharmony_ci    VkDeviceMemory                        memory;
79bf215546Sopenharmony_ci    VkExternalMemoryHandleTypeFlagBits    handleType;
80bf215546Sopenharmony_ci} VkMemoryGetWin32HandleInfoKHR;
81bf215546Sopenharmony_ci
82bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
83bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
84bf215546Sopenharmony_ci
85bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
86bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(
87bf215546Sopenharmony_ci    VkDevice                                    device,
88bf215546Sopenharmony_ci    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
89bf215546Sopenharmony_ci    HANDLE*                                     pHandle);
90bf215546Sopenharmony_ci
91bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(
92bf215546Sopenharmony_ci    VkDevice                                    device,
93bf215546Sopenharmony_ci    VkExternalMemoryHandleTypeFlagBits          handleType,
94bf215546Sopenharmony_ci    HANDLE                                      handle,
95bf215546Sopenharmony_ci    VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties);
96bf215546Sopenharmony_ci#endif
97bf215546Sopenharmony_ci
98bf215546Sopenharmony_ci
99bf215546Sopenharmony_ci#define VK_KHR_win32_keyed_mutex 1
100bf215546Sopenharmony_ci#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
101bf215546Sopenharmony_ci#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
102bf215546Sopenharmony_citypedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
103bf215546Sopenharmony_ci    VkStructureType          sType;
104bf215546Sopenharmony_ci    const void*              pNext;
105bf215546Sopenharmony_ci    uint32_t                 acquireCount;
106bf215546Sopenharmony_ci    const VkDeviceMemory*    pAcquireSyncs;
107bf215546Sopenharmony_ci    const uint64_t*          pAcquireKeys;
108bf215546Sopenharmony_ci    const uint32_t*          pAcquireTimeouts;
109bf215546Sopenharmony_ci    uint32_t                 releaseCount;
110bf215546Sopenharmony_ci    const VkDeviceMemory*    pReleaseSyncs;
111bf215546Sopenharmony_ci    const uint64_t*          pReleaseKeys;
112bf215546Sopenharmony_ci} VkWin32KeyedMutexAcquireReleaseInfoKHR;
113bf215546Sopenharmony_ci
114bf215546Sopenharmony_ci
115bf215546Sopenharmony_ci
116bf215546Sopenharmony_ci#define VK_KHR_external_semaphore_win32 1
117bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
118bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
119bf215546Sopenharmony_citypedef struct VkImportSemaphoreWin32HandleInfoKHR {
120bf215546Sopenharmony_ci    VkStructureType                          sType;
121bf215546Sopenharmony_ci    const void*                              pNext;
122bf215546Sopenharmony_ci    VkSemaphore                              semaphore;
123bf215546Sopenharmony_ci    VkSemaphoreImportFlags                   flags;
124bf215546Sopenharmony_ci    VkExternalSemaphoreHandleTypeFlagBits    handleType;
125bf215546Sopenharmony_ci    HANDLE                                   handle;
126bf215546Sopenharmony_ci    LPCWSTR                                  name;
127bf215546Sopenharmony_ci} VkImportSemaphoreWin32HandleInfoKHR;
128bf215546Sopenharmony_ci
129bf215546Sopenharmony_citypedef struct VkExportSemaphoreWin32HandleInfoKHR {
130bf215546Sopenharmony_ci    VkStructureType               sType;
131bf215546Sopenharmony_ci    const void*                   pNext;
132bf215546Sopenharmony_ci    const SECURITY_ATTRIBUTES*    pAttributes;
133bf215546Sopenharmony_ci    DWORD                         dwAccess;
134bf215546Sopenharmony_ci    LPCWSTR                       name;
135bf215546Sopenharmony_ci} VkExportSemaphoreWin32HandleInfoKHR;
136bf215546Sopenharmony_ci
137bf215546Sopenharmony_citypedef struct VkD3D12FenceSubmitInfoKHR {
138bf215546Sopenharmony_ci    VkStructureType    sType;
139bf215546Sopenharmony_ci    const void*        pNext;
140bf215546Sopenharmony_ci    uint32_t           waitSemaphoreValuesCount;
141bf215546Sopenharmony_ci    const uint64_t*    pWaitSemaphoreValues;
142bf215546Sopenharmony_ci    uint32_t           signalSemaphoreValuesCount;
143bf215546Sopenharmony_ci    const uint64_t*    pSignalSemaphoreValues;
144bf215546Sopenharmony_ci} VkD3D12FenceSubmitInfoKHR;
145bf215546Sopenharmony_ci
146bf215546Sopenharmony_citypedef struct VkSemaphoreGetWin32HandleInfoKHR {
147bf215546Sopenharmony_ci    VkStructureType                          sType;
148bf215546Sopenharmony_ci    const void*                              pNext;
149bf215546Sopenharmony_ci    VkSemaphore                              semaphore;
150bf215546Sopenharmony_ci    VkExternalSemaphoreHandleTypeFlagBits    handleType;
151bf215546Sopenharmony_ci} VkSemaphoreGetWin32HandleInfoKHR;
152bf215546Sopenharmony_ci
153bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
154bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
155bf215546Sopenharmony_ci
156bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
157bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(
158bf215546Sopenharmony_ci    VkDevice                                    device,
159bf215546Sopenharmony_ci    const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo);
160bf215546Sopenharmony_ci
161bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(
162bf215546Sopenharmony_ci    VkDevice                                    device,
163bf215546Sopenharmony_ci    const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
164bf215546Sopenharmony_ci    HANDLE*                                     pHandle);
165bf215546Sopenharmony_ci#endif
166bf215546Sopenharmony_ci
167bf215546Sopenharmony_ci
168bf215546Sopenharmony_ci#define VK_KHR_external_fence_win32 1
169bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
170bf215546Sopenharmony_ci#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
171bf215546Sopenharmony_citypedef struct VkImportFenceWin32HandleInfoKHR {
172bf215546Sopenharmony_ci    VkStructureType                      sType;
173bf215546Sopenharmony_ci    const void*                          pNext;
174bf215546Sopenharmony_ci    VkFence                              fence;
175bf215546Sopenharmony_ci    VkFenceImportFlags                   flags;
176bf215546Sopenharmony_ci    VkExternalFenceHandleTypeFlagBits    handleType;
177bf215546Sopenharmony_ci    HANDLE                               handle;
178bf215546Sopenharmony_ci    LPCWSTR                              name;
179bf215546Sopenharmony_ci} VkImportFenceWin32HandleInfoKHR;
180bf215546Sopenharmony_ci
181bf215546Sopenharmony_citypedef struct VkExportFenceWin32HandleInfoKHR {
182bf215546Sopenharmony_ci    VkStructureType               sType;
183bf215546Sopenharmony_ci    const void*                   pNext;
184bf215546Sopenharmony_ci    const SECURITY_ATTRIBUTES*    pAttributes;
185bf215546Sopenharmony_ci    DWORD                         dwAccess;
186bf215546Sopenharmony_ci    LPCWSTR                       name;
187bf215546Sopenharmony_ci} VkExportFenceWin32HandleInfoKHR;
188bf215546Sopenharmony_ci
189bf215546Sopenharmony_citypedef struct VkFenceGetWin32HandleInfoKHR {
190bf215546Sopenharmony_ci    VkStructureType                      sType;
191bf215546Sopenharmony_ci    const void*                          pNext;
192bf215546Sopenharmony_ci    VkFence                              fence;
193bf215546Sopenharmony_ci    VkExternalFenceHandleTypeFlagBits    handleType;
194bf215546Sopenharmony_ci} VkFenceGetWin32HandleInfoKHR;
195bf215546Sopenharmony_ci
196bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
197bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
198bf215546Sopenharmony_ci
199bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
200bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(
201bf215546Sopenharmony_ci    VkDevice                                    device,
202bf215546Sopenharmony_ci    const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo);
203bf215546Sopenharmony_ci
204bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(
205bf215546Sopenharmony_ci    VkDevice                                    device,
206bf215546Sopenharmony_ci    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
207bf215546Sopenharmony_ci    HANDLE*                                     pHandle);
208bf215546Sopenharmony_ci#endif
209bf215546Sopenharmony_ci
210bf215546Sopenharmony_ci
211bf215546Sopenharmony_ci#define VK_NV_external_memory_win32 1
212bf215546Sopenharmony_ci#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
213bf215546Sopenharmony_ci#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
214bf215546Sopenharmony_citypedef struct VkImportMemoryWin32HandleInfoNV {
215bf215546Sopenharmony_ci    VkStructureType                      sType;
216bf215546Sopenharmony_ci    const void*                          pNext;
217bf215546Sopenharmony_ci    VkExternalMemoryHandleTypeFlagsNV    handleType;
218bf215546Sopenharmony_ci    HANDLE                               handle;
219bf215546Sopenharmony_ci} VkImportMemoryWin32HandleInfoNV;
220bf215546Sopenharmony_ci
221bf215546Sopenharmony_citypedef struct VkExportMemoryWin32HandleInfoNV {
222bf215546Sopenharmony_ci    VkStructureType               sType;
223bf215546Sopenharmony_ci    const void*                   pNext;
224bf215546Sopenharmony_ci    const SECURITY_ATTRIBUTES*    pAttributes;
225bf215546Sopenharmony_ci    DWORD                         dwAccess;
226bf215546Sopenharmony_ci} VkExportMemoryWin32HandleInfoNV;
227bf215546Sopenharmony_ci
228bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
229bf215546Sopenharmony_ci
230bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
231bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
232bf215546Sopenharmony_ci    VkDevice                                    device,
233bf215546Sopenharmony_ci    VkDeviceMemory                              memory,
234bf215546Sopenharmony_ci    VkExternalMemoryHandleTypeFlagsNV           handleType,
235bf215546Sopenharmony_ci    HANDLE*                                     pHandle);
236bf215546Sopenharmony_ci#endif
237bf215546Sopenharmony_ci
238bf215546Sopenharmony_ci
239bf215546Sopenharmony_ci#define VK_NV_win32_keyed_mutex 1
240bf215546Sopenharmony_ci#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
241bf215546Sopenharmony_ci#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
242bf215546Sopenharmony_citypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
243bf215546Sopenharmony_ci    VkStructureType          sType;
244bf215546Sopenharmony_ci    const void*              pNext;
245bf215546Sopenharmony_ci    uint32_t                 acquireCount;
246bf215546Sopenharmony_ci    const VkDeviceMemory*    pAcquireSyncs;
247bf215546Sopenharmony_ci    const uint64_t*          pAcquireKeys;
248bf215546Sopenharmony_ci    const uint32_t*          pAcquireTimeoutMilliseconds;
249bf215546Sopenharmony_ci    uint32_t                 releaseCount;
250bf215546Sopenharmony_ci    const VkDeviceMemory*    pReleaseSyncs;
251bf215546Sopenharmony_ci    const uint64_t*          pReleaseKeys;
252bf215546Sopenharmony_ci} VkWin32KeyedMutexAcquireReleaseInfoNV;
253bf215546Sopenharmony_ci
254bf215546Sopenharmony_ci
255bf215546Sopenharmony_ci
256bf215546Sopenharmony_ci#define VK_EXT_full_screen_exclusive 1
257bf215546Sopenharmony_ci#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
258bf215546Sopenharmony_ci#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
259bf215546Sopenharmony_ci
260bf215546Sopenharmony_citypedef enum VkFullScreenExclusiveEXT {
261bf215546Sopenharmony_ci    VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0,
262bf215546Sopenharmony_ci    VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
263bf215546Sopenharmony_ci    VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
264bf215546Sopenharmony_ci    VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,
265bf215546Sopenharmony_ci    VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF
266bf215546Sopenharmony_ci} VkFullScreenExclusiveEXT;
267bf215546Sopenharmony_citypedef struct VkSurfaceFullScreenExclusiveInfoEXT {
268bf215546Sopenharmony_ci    VkStructureType             sType;
269bf215546Sopenharmony_ci    void*                       pNext;
270bf215546Sopenharmony_ci    VkFullScreenExclusiveEXT    fullScreenExclusive;
271bf215546Sopenharmony_ci} VkSurfaceFullScreenExclusiveInfoEXT;
272bf215546Sopenharmony_ci
273bf215546Sopenharmony_citypedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT {
274bf215546Sopenharmony_ci    VkStructureType    sType;
275bf215546Sopenharmony_ci    void*              pNext;
276bf215546Sopenharmony_ci    VkBool32           fullScreenExclusiveSupported;
277bf215546Sopenharmony_ci} VkSurfaceCapabilitiesFullScreenExclusiveEXT;
278bf215546Sopenharmony_ci
279bf215546Sopenharmony_citypedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT {
280bf215546Sopenharmony_ci    VkStructureType    sType;
281bf215546Sopenharmony_ci    const void*        pNext;
282bf215546Sopenharmony_ci    HMONITOR           hmonitor;
283bf215546Sopenharmony_ci} VkSurfaceFullScreenExclusiveWin32InfoEXT;
284bf215546Sopenharmony_ci
285bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
286bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
287bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
288bf215546Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
289bf215546Sopenharmony_ci
290bf215546Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
291bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT(
292bf215546Sopenharmony_ci    VkPhysicalDevice                            physicalDevice,
293bf215546Sopenharmony_ci    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
294bf215546Sopenharmony_ci    uint32_t*                                   pPresentModeCount,
295bf215546Sopenharmony_ci    VkPresentModeKHR*                           pPresentModes);
296bf215546Sopenharmony_ci
297bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT(
298bf215546Sopenharmony_ci    VkDevice                                    device,
299bf215546Sopenharmony_ci    VkSwapchainKHR                              swapchain);
300bf215546Sopenharmony_ci
301bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT(
302bf215546Sopenharmony_ci    VkDevice                                    device,
303bf215546Sopenharmony_ci    VkSwapchainKHR                              swapchain);
304bf215546Sopenharmony_ci
305bf215546Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(
306bf215546Sopenharmony_ci    VkDevice                                    device,
307bf215546Sopenharmony_ci    const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo,
308bf215546Sopenharmony_ci    VkDeviceGroupPresentModeFlagsKHR*           pModes);
309bf215546Sopenharmony_ci#endif
310bf215546Sopenharmony_ci
311bf215546Sopenharmony_ci#ifdef __cplusplus
312bf215546Sopenharmony_ci}
313bf215546Sopenharmony_ci#endif
314bf215546Sopenharmony_ci
315bf215546Sopenharmony_ci#endif
316