1 #ifndef VULKAN_FUCHSIA_H_ 2 #define VULKAN_FUCHSIA_H_ 1 3 4 /* 5 ** Copyright 2015-2021 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_FUCHSIA_imagepipe_surface 1 23 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 24 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" 25 typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; 26 typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { 27 VkStructureType sType; 28 const void* pNext; 29 VkImagePipeSurfaceCreateFlagsFUCHSIA flags; 30 zx_handle_t imagePipeHandle; 31 } VkImagePipeSurfaceCreateInfoFUCHSIA; 32 33 typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 34 35 #ifndef VK_NO_PROTOTYPES 36 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( 37 VkInstance instance, 38 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, 39 const VkAllocationCallbacks* pAllocator, 40 VkSurfaceKHR* pSurface); 41 #endif 42 43 44 #define VK_FUCHSIA_external_memory 1 45 #define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 46 #define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" 47 typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { 48 VkStructureType sType; 49 const void* pNext; 50 VkExternalMemoryHandleTypeFlagBits handleType; 51 zx_handle_t handle; 52 } VkImportMemoryZirconHandleInfoFUCHSIA; 53 54 typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { 55 VkStructureType sType; 56 void* pNext; 57 uint32_t memoryTypeBits; 58 } VkMemoryZirconHandlePropertiesFUCHSIA; 59 60 typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { 61 VkStructureType sType; 62 const void* pNext; 63 VkDeviceMemory memory; 64 VkExternalMemoryHandleTypeFlagBits handleType; 65 } VkMemoryGetZirconHandleInfoFUCHSIA; 66 67 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 68 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 69 70 #ifndef VK_NO_PROTOTYPES 71 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( 72 VkDevice device, 73 const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 74 zx_handle_t* pZirconHandle); 75 76 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( 77 VkDevice device, 78 VkExternalMemoryHandleTypeFlagBits handleType, 79 zx_handle_t zirconHandle, 80 VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); 81 #endif 82 83 84 #define VK_FUCHSIA_external_semaphore 1 85 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 86 #define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" 87 typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { 88 VkStructureType sType; 89 const void* pNext; 90 VkSemaphore semaphore; 91 VkSemaphoreImportFlags flags; 92 VkExternalSemaphoreHandleTypeFlagBits handleType; 93 zx_handle_t zirconHandle; 94 } VkImportSemaphoreZirconHandleInfoFUCHSIA; 95 96 typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { 97 VkStructureType sType; 98 const void* pNext; 99 VkSemaphore semaphore; 100 VkExternalSemaphoreHandleTypeFlagBits handleType; 101 } VkSemaphoreGetZirconHandleInfoFUCHSIA; 102 103 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 104 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); 105 106 #ifndef VK_NO_PROTOTYPES 107 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( 108 VkDevice device, 109 const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); 110 111 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( 112 VkDevice device, 113 const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, 114 zx_handle_t* pZirconHandle); 115 #endif 116 117 #ifdef __cplusplus 118 } 119 #endif 120 121 #endif 122