Path: blob/master/3rdparty/include/vulkan/vulkan_win32.h
16354 views
#ifndef VULKAN_WIN32_H_1#define VULKAN_WIN32_H_ 123#ifdef __cplusplus4extern "C" {5#endif67/*8** Copyright (c) 2015-2018 The Khronos Group Inc.9**10** Licensed under the Apache License, Version 2.0 (the "License");11** you may not use this file except in compliance with the License.12** You may obtain a copy of the License at13**14** http://www.apache.org/licenses/LICENSE-2.015**16** Unless required by applicable law or agreed to in writing, software17** distributed under the License is distributed on an "AS IS" BASIS,18** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.19** See the License for the specific language governing permissions and20** limitations under the License.21*/2223/*24** This header is generated from the Khronos Vulkan XML API Registry.25**26*/272829#define VK_KHR_win32_surface 130#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 631#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"3233typedef VkFlags VkWin32SurfaceCreateFlagsKHR;3435typedef struct VkWin32SurfaceCreateInfoKHR {36VkStructureType sType;37const void* pNext;38VkWin32SurfaceCreateFlagsKHR flags;39HINSTANCE hinstance;40HWND hwnd;41} VkWin32SurfaceCreateInfoKHR;424344typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);45typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);4647#ifndef VK_NO_PROTOTYPES48VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(49VkInstance instance,50const VkWin32SurfaceCreateInfoKHR* pCreateInfo,51const VkAllocationCallbacks* pAllocator,52VkSurfaceKHR* pSurface);5354VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(55VkPhysicalDevice physicalDevice,56uint32_t queueFamilyIndex);57#endif5859#define VK_KHR_external_memory_win32 160#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 161#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"6263typedef struct VkImportMemoryWin32HandleInfoKHR {64VkStructureType sType;65const void* pNext;66VkExternalMemoryHandleTypeFlagBits handleType;67HANDLE handle;68LPCWSTR name;69} VkImportMemoryWin32HandleInfoKHR;7071typedef struct VkExportMemoryWin32HandleInfoKHR {72VkStructureType sType;73const void* pNext;74const SECURITY_ATTRIBUTES* pAttributes;75DWORD dwAccess;76LPCWSTR name;77} VkExportMemoryWin32HandleInfoKHR;7879typedef struct VkMemoryWin32HandlePropertiesKHR {80VkStructureType sType;81void* pNext;82uint32_t memoryTypeBits;83} VkMemoryWin32HandlePropertiesKHR;8485typedef struct VkMemoryGetWin32HandleInfoKHR {86VkStructureType sType;87const void* pNext;88VkDeviceMemory memory;89VkExternalMemoryHandleTypeFlagBits handleType;90} VkMemoryGetWin32HandleInfoKHR;919293typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);94typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);9596#ifndef VK_NO_PROTOTYPES97VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(98VkDevice device,99const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,100HANDLE* pHandle);101102VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(103VkDevice device,104VkExternalMemoryHandleTypeFlagBits handleType,105HANDLE handle,106VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);107#endif108109#define VK_KHR_win32_keyed_mutex 1110#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1111#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"112113typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {114VkStructureType sType;115const void* pNext;116uint32_t acquireCount;117const VkDeviceMemory* pAcquireSyncs;118const uint64_t* pAcquireKeys;119const uint32_t* pAcquireTimeouts;120uint32_t releaseCount;121const VkDeviceMemory* pReleaseSyncs;122const uint64_t* pReleaseKeys;123} VkWin32KeyedMutexAcquireReleaseInfoKHR;124125126127#define VK_KHR_external_semaphore_win32 1128#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1129#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"130131typedef struct VkImportSemaphoreWin32HandleInfoKHR {132VkStructureType sType;133const void* pNext;134VkSemaphore semaphore;135VkSemaphoreImportFlags flags;136VkExternalSemaphoreHandleTypeFlagBits handleType;137HANDLE handle;138LPCWSTR name;139} VkImportSemaphoreWin32HandleInfoKHR;140141typedef struct VkExportSemaphoreWin32HandleInfoKHR {142VkStructureType sType;143const void* pNext;144const SECURITY_ATTRIBUTES* pAttributes;145DWORD dwAccess;146LPCWSTR name;147} VkExportSemaphoreWin32HandleInfoKHR;148149typedef struct VkD3D12FenceSubmitInfoKHR {150VkStructureType sType;151const void* pNext;152uint32_t waitSemaphoreValuesCount;153const uint64_t* pWaitSemaphoreValues;154uint32_t signalSemaphoreValuesCount;155const uint64_t* pSignalSemaphoreValues;156} VkD3D12FenceSubmitInfoKHR;157158typedef struct VkSemaphoreGetWin32HandleInfoKHR {159VkStructureType sType;160const void* pNext;161VkSemaphore semaphore;162VkExternalSemaphoreHandleTypeFlagBits handleType;163} VkSemaphoreGetWin32HandleInfoKHR;164165166typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);167typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);168169#ifndef VK_NO_PROTOTYPES170VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(171VkDevice device,172const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);173174VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(175VkDevice device,176const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,177HANDLE* pHandle);178#endif179180#define VK_KHR_external_fence_win32 1181#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1182#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"183184typedef struct VkImportFenceWin32HandleInfoKHR {185VkStructureType sType;186const void* pNext;187VkFence fence;188VkFenceImportFlags flags;189VkExternalFenceHandleTypeFlagBits handleType;190HANDLE handle;191LPCWSTR name;192} VkImportFenceWin32HandleInfoKHR;193194typedef struct VkExportFenceWin32HandleInfoKHR {195VkStructureType sType;196const void* pNext;197const SECURITY_ATTRIBUTES* pAttributes;198DWORD dwAccess;199LPCWSTR name;200} VkExportFenceWin32HandleInfoKHR;201202typedef struct VkFenceGetWin32HandleInfoKHR {203VkStructureType sType;204const void* pNext;205VkFence fence;206VkExternalFenceHandleTypeFlagBits handleType;207} VkFenceGetWin32HandleInfoKHR;208209210typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);211typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);212213#ifndef VK_NO_PROTOTYPES214VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(215VkDevice device,216const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);217218VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(219VkDevice device,220const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,221HANDLE* pHandle);222#endif223224#define VK_NV_external_memory_win32 1225#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1226#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"227228typedef struct VkImportMemoryWin32HandleInfoNV {229VkStructureType sType;230const void* pNext;231VkExternalMemoryHandleTypeFlagsNV handleType;232HANDLE handle;233} VkImportMemoryWin32HandleInfoNV;234235typedef struct VkExportMemoryWin32HandleInfoNV {236VkStructureType sType;237const void* pNext;238const SECURITY_ATTRIBUTES* pAttributes;239DWORD dwAccess;240} VkExportMemoryWin32HandleInfoNV;241242243typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);244245#ifndef VK_NO_PROTOTYPES246VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(247VkDevice device,248VkDeviceMemory memory,249VkExternalMemoryHandleTypeFlagsNV handleType,250HANDLE* pHandle);251#endif252253#define VK_NV_win32_keyed_mutex 1254#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1255#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"256257typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {258VkStructureType sType;259const void* pNext;260uint32_t acquireCount;261const VkDeviceMemory* pAcquireSyncs;262const uint64_t* pAcquireKeys;263const uint32_t* pAcquireTimeoutMilliseconds;264uint32_t releaseCount;265const VkDeviceMemory* pReleaseSyncs;266const uint64_t* pReleaseKeys;267} VkWin32KeyedMutexAcquireReleaseInfoNV;268269270271#ifdef __cplusplus272}273#endif274275#endif276277278