HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vulkan_win32.h
Go to the documentation of this file.
1 #ifndef VULKAN_WIN32_H_
2 #define VULKAN_WIN32_H_ 1
3 
4 /*
5 ** Copyright 2015-2022 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 #define VK_KHR_win32_surface 1
23 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
24 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
28  const void* pNext;
29  VkWin32SurfaceCreateFlagsKHR flags;
30  HINSTANCE hinstance;
31  HWND hwnd;
33 
34 typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
35 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
36 
37 #ifndef VK_NO_PROTOTYPES
39  VkInstance instance,
40  const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
41  const VkAllocationCallbacks* pAllocator,
42  VkSurfaceKHR* pSurface);
43 
45  VkPhysicalDevice physicalDevice,
46  uint32_t queueFamilyIndex);
47 #endif
48 
49 
50 #define VK_KHR_external_memory_win32 1
51 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
52 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
55  const void* pNext;
57  HANDLE handle;
58  LPCWSTR name;
60 
63  const void* pNext;
64  const SECURITY_ATTRIBUTES* pAttributes;
65  DWORD dwAccess;
66  LPCWSTR name;
68 
71  void* pNext;
72  uint32_t memoryTypeBits;
74 
77  const void* pNext;
78  VkDeviceMemory memory;
81 
82 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
84 
85 #ifndef VK_NO_PROTOTYPES
87  VkDevice device,
88  const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
89  HANDLE* pHandle);
90 
92  VkDevice device,
94  HANDLE handle,
95  VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
96 #endif
97 
98 
99 #define VK_KHR_win32_keyed_mutex 1
100 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
101 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
104  const void* pNext;
105  uint32_t acquireCount;
106  const VkDeviceMemory* pAcquireSyncs;
107  const uint64_t* pAcquireKeys;
108  const uint32_t* pAcquireTimeouts;
109  uint32_t releaseCount;
110  const VkDeviceMemory* pReleaseSyncs;
111  const uint64_t* pReleaseKeys;
113 
114 
115 
116 #define VK_KHR_external_semaphore_win32 1
117 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
118 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
121  const void* pNext;
122  VkSemaphore semaphore;
125  HANDLE handle;
126  LPCWSTR name;
128 
131  const void* pNext;
132  const SECURITY_ATTRIBUTES* pAttributes;
133  DWORD dwAccess;
134  LPCWSTR name;
136 
139  const void* pNext;
141  const uint64_t* pWaitSemaphoreValues;
143  const uint64_t* pSignalSemaphoreValues;
145 
148  const void* pNext;
149  VkSemaphore semaphore;
152 
153 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
154 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
155 
156 #ifndef VK_NO_PROTOTYPES
158  VkDevice device,
159  const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
160 
162  VkDevice device,
163  const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
164  HANDLE* pHandle);
165 #endif
166 
167 
168 #define VK_KHR_external_fence_win32 1
169 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
170 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
173  const void* pNext;
174  VkFence fence;
177  HANDLE handle;
178  LPCWSTR name;
180 
183  const void* pNext;
184  const SECURITY_ATTRIBUTES* pAttributes;
185  DWORD dwAccess;
186  LPCWSTR name;
188 
191  const void* pNext;
192  VkFence fence;
195 
196 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
197 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
198 
199 #ifndef VK_NO_PROTOTYPES
201  VkDevice device,
202  const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
203 
205  VkDevice device,
206  const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
207  HANDLE* pHandle);
208 #endif
209 
210 
211 #define VK_NV_external_memory_win32 1
212 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
213 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
216  const void* pNext;
218  HANDLE handle;
220 
223  const void* pNext;
224  const SECURITY_ATTRIBUTES* pAttributes;
225  DWORD dwAccess;
227 
228 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
229 
230 #ifndef VK_NO_PROTOTYPES
232  VkDevice device,
233  VkDeviceMemory memory,
235  HANDLE* pHandle);
236 #endif
237 
238 
239 #define VK_NV_win32_keyed_mutex 1
240 #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
241 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
244  const void* pNext;
245  uint32_t acquireCount;
246  const VkDeviceMemory* pAcquireSyncs;
247  const uint64_t* pAcquireKeys;
249  uint32_t releaseCount;
250  const VkDeviceMemory* pReleaseSyncs;
251  const uint64_t* pReleaseKeys;
253 
254 
255 
256 #define VK_EXT_full_screen_exclusive 1
257 #define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
258 #define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
259 
269  void* pNext;
272 
275  void* pNext;
278 
281  const void* pNext;
282  HMONITOR hmonitor;
284 
285 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
286 typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
287 typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
289 
290 #ifndef VK_NO_PROTOTYPES
292  VkPhysicalDevice physicalDevice,
293  const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
294  uint32_t* pPresentModeCount,
295  VkPresentModeKHR* pPresentModes);
296 
298  VkDevice device,
299  VkSwapchainKHR swapchain);
300 
302  VkDevice device,
303  VkSwapchainKHR swapchain);
304 
306  VkDevice device,
307  const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
309 #endif
310 
311 
312 #define VK_NV_acquire_winrt_display 1
313 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
314 #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
315 typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
316 typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
317 
318 #ifndef VK_NO_PROTOTYPES
320  VkPhysicalDevice physicalDevice,
321  VkDisplayKHR display);
322 
324  VkPhysicalDevice physicalDevice,
325  uint32_t deviceRelativeId,
326  VkDisplayKHR* pDisplay);
327 #endif
328 
329 #ifdef __cplusplus
330 }
331 #endif
332 
333 #endif
GLsizei GLenum GLsizei GLsizei GLuint memory
Definition: RE_OGL.h:202
const uint64_t * pWaitSemaphoreValues
Definition: vulkan_win32.h:141
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE *pHandle)
VkStructureType
Definition: vulkan_core.h:208
VkSemaphoreImportFlags flags
Definition: vulkan_win32.h:123
VkResult(VKAPI_PTR * PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:197
VkResult(VKAPI_PTR * PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:154
VkResult(VKAPI_PTR * PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain)
Definition: vulkan_win32.h:287
uint32_t VkBool32
Definition: vulkan_core.h:93
VkResult(VKAPI_PTR * PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR *pModes)
Definition: vulkan_win32.h:288
struct VkSurfaceFullScreenExclusiveInfoEXT VkSurfaceFullScreenExclusiveInfoEXT
VkResult
Definition: vulkan_core.h:139
#define VKAPI_CALL
Definition: vk_platform.h:57
VkExternalSemaphoreHandleTypeFlagBits handleType
Definition: vulkan_win32.h:124
struct VkWin32SurfaceCreateInfoKHR VkWin32SurfaceCreateInfoKHR
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE *pHandle)
Definition: vulkan_win32.h:228
struct VkExportMemoryWin32HandleInfoNV VkExportMemoryWin32HandleInfoNV
const VkDeviceMemory * pReleaseSyncs
Definition: vulkan_win32.h:250
GLuint64 GLenum handleType
Definition: RE_OGL.h:262
struct VkWin32KeyedMutexAcquireReleaseInfoNV VkWin32KeyedMutexAcquireReleaseInfoNV
const VkDeviceMemory * pAcquireSyncs
Definition: vulkan_win32.h:246
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:224
VkExternalMemoryHandleTypeFlagBits handleType
Definition: vulkan_win32.h:79
VkExternalFenceHandleTypeFlagBits handleType
Definition: vulkan_win32.h:193
struct VkImportSemaphoreWin32HandleInfoKHR VkImportSemaphoreWin32HandleInfoKHR
VkFlags VkExternalMemoryHandleTypeFlagsNV
VkPresentModeKHR
Definition: vulkan_core.h:7517
struct VkSurfaceFullScreenExclusiveWin32InfoEXT VkSurfaceFullScreenExclusiveWin32InfoEXT
VkExternalSemaphoreHandleTypeFlagBits
Definition: vulkan_core.h:5019
#define VKAPI_PTR
Definition: vk_platform.h:58
VkExternalMemoryHandleTypeFlagBits
Definition: vulkan_core.h:4947
#define VKAPI_ATTR
Definition: vk_platform.h:56
VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain)
VkResult(VKAPI_PTR * PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display)
Definition: vulkan_win32.h:315
VkExternalMemoryHandleTypeFlagBits handleType
Definition: vulkan_win32.h:56
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:132
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(VkDevice device, const VkImportFenceWin32HandleInfoKHR *pImportFenceWin32HandleInfo)
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:184
struct VkExportMemoryWin32HandleInfoKHR VkExportMemoryWin32HandleInfoKHR
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
Definition: vulkan_win32.h:82
struct VkImportFenceWin32HandleInfoKHR VkImportFenceWin32HandleInfoKHR
struct VkSurfaceCapabilitiesFullScreenExclusiveEXT VkSurfaceCapabilitiesFullScreenExclusiveEXT
VkResult(VKAPI_PTR * PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties)
Definition: vulkan_win32.h:83
struct VkExportSemaphoreWin32HandleInfoKHR VkExportSemaphoreWin32HandleInfoKHR
const uint32_t * pAcquireTimeoutMilliseconds
Definition: vulkan_win32.h:248
struct VkImportMemoryWin32HandleInfoNV VkImportMemoryWin32HandleInfoNV
VkExternalMemoryHandleTypeFlagsNV handleType
Definition: vulkan_win32.h:217
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR *pImportSemaphoreWin32HandleInfo)
VkFlags VkFenceImportFlags
Definition: vulkan_core.h:5010
VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR *pModes)
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes)
VkExternalFenceHandleTypeFlagBits handleType
Definition: vulkan_win32.h:176
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(VkDevice device, const VkFenceGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
VkResult(VKAPI_PTR * PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain)
Definition: vulkan_win32.h:286
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain)
VkResult(VKAPI_PTR * PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR *pImportFenceWin32HandleInfo)
Definition: vulkan_win32.h:196
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
struct VkImportMemoryWin32HandleInfoKHR VkImportMemoryWin32HandleInfoKHR
VkFullScreenExclusiveEXT fullScreenExclusive
Definition: vulkan_win32.h:270
struct VkWin32KeyedMutexAcquireReleaseInfoKHR VkWin32KeyedMutexAcquireReleaseInfoKHR
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
VkFlags VkDeviceGroupPresentModeFlagsKHR
Definition: vulkan_core.h:7646
VkFlags VkSemaphoreImportFlags
Definition: vulkan_core.h:5017
struct VkSemaphoreGetWin32HandleInfoKHR VkSemaphoreGetWin32HandleInfoKHR
uint32_t VkFlags
Definition: vulkan_core.h:96
struct VkExportFenceWin32HandleInfoKHR VkExportFenceWin32HandleInfoKHR
VkResult(VKAPI_PTR * PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes)
Definition: vulkan_win32.h:285
const VkDeviceMemory * pAcquireSyncs
Definition: vulkan_win32.h:106
struct VkFenceGetWin32HandleInfoKHR VkFenceGetWin32HandleInfoKHR
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties)
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice, VkDisplayKHR display)
VkWin32SurfaceCreateFlagsKHR flags
Definition: vulkan_win32.h:29
struct VkMemoryGetWin32HandleInfoKHR VkMemoryGetWin32HandleInfoKHR
const VkDeviceMemory * pReleaseSyncs
Definition: vulkan_win32.h:110
const uint64_t * pSignalSemaphoreValues
Definition: vulkan_win32.h:143
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
VkExternalFenceHandleTypeFlagBits
Definition: vulkan_core.h:4983
const SECURITY_ATTRIBUTES * pAttributes
Definition: vulkan_win32.h:64
struct VkMemoryWin32HandlePropertiesKHR VkMemoryWin32HandlePropertiesKHR
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle)
struct VkD3D12FenceSubmitInfoKHR VkD3D12FenceSubmitInfoKHR
VkResult(VKAPI_PTR * PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR *pDisplay)
Definition: vulkan_win32.h:316
VkFullScreenExclusiveEXT
Definition: vulkan_win32.h:260
VkResult(VKAPI_PTR * PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR *pImportSemaphoreWin32HandleInfo)
Definition: vulkan_win32.h:153
VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR *pDisplay)
VkResult(VKAPI_PTR * PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface)
Definition: vulkan_win32.h:34
VkExternalSemaphoreHandleTypeFlagBits handleType
Definition: vulkan_win32.h:150
VkBool32(VKAPI_PTR * PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
Definition: vulkan_win32.h:35
VkFlags VkWin32SurfaceCreateFlagsKHR
Definition: vulkan_win32.h:25