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