#ifndef VULKAN_WIN32_H_ | |
#define VULKAN_WIN32_H_ 1 | |
/* | |
** Copyright (c) 2015-2019 The Khronos Group Inc. | |
** | |
** Licensed under the Apache License, Version 2.0 (the "License"); | |
** you may not use this file except in compliance with the License. | |
** You may obtain a copy of the License at | |
** | |
** http://www.apache.org/licenses/LICENSE-2.0 | |
** | |
** Unless required by applicable law or agreed to in writing, software | |
** distributed under the License is distributed on an "AS IS" BASIS, | |
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
** See the License for the specific language governing permissions and | |
** limitations under the License. | |
*/ | |
/* | |
** This header is generated from the Khronos Vulkan XML API Registry. | |
** | |
*/ | |
#ifdef __cplusplus | |
extern "C" { | |
#endif | |
#define VK_KHR_win32_surface 1 | |
#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 | |
#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" | |
typedef VkFlags VkWin32SurfaceCreateFlagsKHR; | |
typedef struct VkWin32SurfaceCreateInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkWin32SurfaceCreateFlagsKHR flags; | |
HINSTANCE hinstance; | |
HWND hwnd; | |
} VkWin32SurfaceCreateInfoKHR; | |
typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | |
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( | |
VkInstance instance, | |
const VkWin32SurfaceCreateInfoKHR* pCreateInfo, | |
const VkAllocationCallbacks* pAllocator, | |
VkSurfaceKHR* pSurface); | |
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( | |
VkPhysicalDevice physicalDevice, | |
uint32_t queueFamilyIndex); | |
#endif | |
#define VK_KHR_external_memory_win32 1 | |
#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | |
#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" | |
typedef struct VkImportMemoryWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkExternalMemoryHandleTypeFlagBits handleType; | |
HANDLE handle; | |
LPCWSTR name; | |
} VkImportMemoryWin32HandleInfoKHR; | |
typedef struct VkExportMemoryWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
const SECURITY_ATTRIBUTES* pAttributes; | |
DWORD dwAccess; | |
LPCWSTR name; | |
} VkExportMemoryWin32HandleInfoKHR; | |
typedef struct VkMemoryWin32HandlePropertiesKHR { | |
VkStructureType sType; | |
void* pNext; | |
uint32_t memoryTypeBits; | |
} VkMemoryWin32HandlePropertiesKHR; | |
typedef struct VkMemoryGetWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkDeviceMemory memory; | |
VkExternalMemoryHandleTypeFlagBits handleType; | |
} VkMemoryGetWin32HandleInfoKHR; | |
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | |
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( | |
VkDevice device, | |
const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
HANDLE* pHandle); | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( | |
VkDevice device, | |
VkExternalMemoryHandleTypeFlagBits handleType, | |
HANDLE handle, | |
VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); | |
#endif | |
#define VK_KHR_win32_keyed_mutex 1 | |
#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | |
#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" | |
typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
uint32_t acquireCount; | |
const VkDeviceMemory* pAcquireSyncs; | |
const uint64_t* pAcquireKeys; | |
const uint32_t* pAcquireTimeouts; | |
uint32_t releaseCount; | |
const VkDeviceMemory* pReleaseSyncs; | |
const uint64_t* pReleaseKeys; | |
} VkWin32KeyedMutexAcquireReleaseInfoKHR; | |
#define VK_KHR_external_semaphore_win32 1 | |
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 | |
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" | |
typedef struct VkImportSemaphoreWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkSemaphore semaphore; | |
VkSemaphoreImportFlags flags; | |
VkExternalSemaphoreHandleTypeFlagBits handleType; | |
HANDLE handle; | |
LPCWSTR name; | |
} VkImportSemaphoreWin32HandleInfoKHR; | |
typedef struct VkExportSemaphoreWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
const SECURITY_ATTRIBUTES* pAttributes; | |
DWORD dwAccess; | |
LPCWSTR name; | |
} VkExportSemaphoreWin32HandleInfoKHR; | |
typedef struct VkD3D12FenceSubmitInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
uint32_t waitSemaphoreValuesCount; | |
const uint64_t* pWaitSemaphoreValues; | |
uint32_t signalSemaphoreValuesCount; | |
const uint64_t* pSignalSemaphoreValues; | |
} VkD3D12FenceSubmitInfoKHR; | |
typedef struct VkSemaphoreGetWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkSemaphore semaphore; | |
VkExternalSemaphoreHandleTypeFlagBits handleType; | |
} VkSemaphoreGetWin32HandleInfoKHR; | |
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); | |
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( | |
VkDevice device, | |
const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( | |
VkDevice device, | |
const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
HANDLE* pHandle); | |
#endif | |
#define VK_KHR_external_fence_win32 1 | |
#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 | |
#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" | |
typedef struct VkImportFenceWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkFence fence; | |
VkFenceImportFlags flags; | |
VkExternalFenceHandleTypeFlagBits handleType; | |
HANDLE handle; | |
LPCWSTR name; | |
} VkImportFenceWin32HandleInfoKHR; | |
typedef struct VkExportFenceWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
const SECURITY_ATTRIBUTES* pAttributes; | |
DWORD dwAccess; | |
LPCWSTR name; | |
} VkExportFenceWin32HandleInfoKHR; | |
typedef struct VkFenceGetWin32HandleInfoKHR { | |
VkStructureType sType; | |
const void* pNext; | |
VkFence fence; | |
VkExternalFenceHandleTypeFlagBits handleType; | |
} VkFenceGetWin32HandleInfoKHR; | |
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); | |
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( | |
VkDevice device, | |
const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( | |
VkDevice device, | |
const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
HANDLE* pHandle); | |
#endif | |
#define VK_NV_external_memory_win32 1 | |
#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | |
#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" | |
typedef struct VkImportMemoryWin32HandleInfoNV { | |
VkStructureType sType; | |
const void* pNext; | |
VkExternalMemoryHandleTypeFlagsNV handleType; | |
HANDLE handle; | |
} VkImportMemoryWin32HandleInfoNV; | |
typedef struct VkExportMemoryWin32HandleInfoNV { | |
VkStructureType sType; | |
const void* pNext; | |
const SECURITY_ATTRIBUTES* pAttributes; | |
DWORD dwAccess; | |
} VkExportMemoryWin32HandleInfoNV; | |
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( | |
VkDevice device, | |
VkDeviceMemory memory, | |
VkExternalMemoryHandleTypeFlagsNV handleType, | |
HANDLE* pHandle); | |
#endif | |
#define VK_NV_win32_keyed_mutex 1 | |
#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 | |
#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" | |
typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { | |
VkStructureType sType; | |
const void* pNext; | |
uint32_t acquireCount; | |
const VkDeviceMemory* pAcquireSyncs; | |
const uint64_t* pAcquireKeys; | |
const uint32_t* pAcquireTimeoutMilliseconds; | |
uint32_t releaseCount; | |
const VkDeviceMemory* pReleaseSyncs; | |
const uint64_t* pReleaseKeys; | |
} VkWin32KeyedMutexAcquireReleaseInfoNV; | |
#define VK_EXT_full_screen_exclusive 1 | |
#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 | |
#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" | |
typedef enum VkFullScreenExclusiveEXT { | |
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, | |
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, | |
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, | |
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, | |
VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, | |
VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, | |
VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1), | |
VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF | |
} VkFullScreenExclusiveEXT; | |
typedef struct VkSurfaceFullScreenExclusiveInfoEXT { | |
VkStructureType sType; | |
void* pNext; | |
VkFullScreenExclusiveEXT fullScreenExclusive; | |
} VkSurfaceFullScreenExclusiveInfoEXT; | |
typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { | |
VkStructureType sType; | |
void* pNext; | |
VkBool32 fullScreenExclusiveSupported; | |
} VkSurfaceCapabilitiesFullScreenExclusiveEXT; | |
typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { | |
VkStructureType sType; | |
const void* pNext; | |
HMONITOR hmonitor; | |
} VkSurfaceFullScreenExclusiveWin32InfoEXT; | |
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); | |
typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); | |
typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); | |
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); | |
#ifndef VK_NO_PROTOTYPES | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( | |
VkPhysicalDevice physicalDevice, | |
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, | |
uint32_t* pPresentModeCount, | |
VkPresentModeKHR* pPresentModes); | |
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( | |
VkDevice device, | |
VkSwapchainKHR swapchain); | |
VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( | |
VkDevice device, | |
VkSwapchainKHR swapchain); | |
VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( | |
VkDevice device, | |
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, | |
VkDeviceGroupPresentModeFlagsKHR* pModes); | |
#endif | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif |