1#ifndef VULKAN_ANDROID_H_ 2#define VULKAN_ANDROID_H_ 1 3 4/* 5** Copyright 2015-2024 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 17extern "C" { 18#endif 19 20 21 22// VK_KHR_android_surface is a preprocessor guard. Do not pass it to API calls. 23#define VK_KHR_android_surface 1 24struct ANativeWindow; 25#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 26#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" 27typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; 28typedef struct VkAndroidSurfaceCreateInfoKHR { 29 VkStructureType sType; 30 const void* pNext; 31 VkAndroidSurfaceCreateFlagsKHR flags; 32 struct ANativeWindow* window; 33} VkAndroidSurfaceCreateInfoKHR; 34 35typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 36 37#ifndef VK_NO_PROTOTYPES 38VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( 39 VkInstance instance, 40 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, 41 const VkAllocationCallbacks* pAllocator, 42 VkSurfaceKHR* pSurface); 43#endif 44 45 46// VK_ANDROID_external_memory_android_hardware_buffer is a preprocessor guard. Do not pass it to API calls. 47#define VK_ANDROID_external_memory_android_hardware_buffer 1 48struct AHardwareBuffer; 49#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 50#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" 51typedef struct VkAndroidHardwareBufferUsageANDROID { 52 VkStructureType sType; 53 void* pNext; 54 uint64_t androidHardwareBufferUsage; 55} VkAndroidHardwareBufferUsageANDROID; 56 57typedef struct VkAndroidHardwareBufferPropertiesANDROID { 58 VkStructureType sType; 59 void* pNext; 60 VkDeviceSize allocationSize; 61 uint32_t memoryTypeBits; 62} VkAndroidHardwareBufferPropertiesANDROID; 63 64typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { 65 VkStructureType sType; 66 void* pNext; 67 VkFormat format; 68 uint64_t externalFormat; 69 VkFormatFeatureFlags formatFeatures; 70 VkComponentMapping samplerYcbcrConversionComponents; 71 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 72 VkSamplerYcbcrRange suggestedYcbcrRange; 73 VkChromaLocation suggestedXChromaOffset; 74 VkChromaLocation suggestedYChromaOffset; 75} VkAndroidHardwareBufferFormatPropertiesANDROID; 76 77typedef struct VkImportAndroidHardwareBufferInfoANDROID { 78 VkStructureType sType; 79 const void* pNext; 80 struct AHardwareBuffer* buffer; 81} VkImportAndroidHardwareBufferInfoANDROID; 82 83typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { 84 VkStructureType sType; 85 const void* pNext; 86 VkDeviceMemory memory; 87} VkMemoryGetAndroidHardwareBufferInfoANDROID; 88 89typedef struct VkExternalFormatANDROID { 90 VkStructureType sType; 91 void* pNext; 92 uint64_t externalFormat; 93} VkExternalFormatANDROID; 94 95typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID { 96 VkStructureType sType; 97 void* pNext; 98 VkFormat format; 99 uint64_t externalFormat; 100 VkFormatFeatureFlags2 formatFeatures; 101 VkComponentMapping samplerYcbcrConversionComponents; 102 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 103 VkSamplerYcbcrRange suggestedYcbcrRange; 104 VkChromaLocation suggestedXChromaOffset; 105 VkChromaLocation suggestedYChromaOffset; 106} VkAndroidHardwareBufferFormatProperties2ANDROID; 107 108typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); 109typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); 110 111#ifndef VK_NO_PROTOTYPES 112VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( 113 VkDevice device, 114 const struct AHardwareBuffer* buffer, 115 VkAndroidHardwareBufferPropertiesANDROID* pProperties); 116 117VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( 118 VkDevice device, 119 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, 120 struct AHardwareBuffer** pBuffer); 121#endif 122 123 124// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls. 125#define VK_ANDROID_external_format_resolve 1 126#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1 127#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve" 128typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID { 129 VkStructureType sType; 130 void* pNext; 131 VkBool32 externalFormatResolve; 132} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; 133 134typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID { 135 VkStructureType sType; 136 void* pNext; 137 VkBool32 nullColorAttachmentWithExternalFormatResolve; 138 VkChromaLocation externalFormatResolveChromaOffsetX; 139 VkChromaLocation externalFormatResolveChromaOffsetY; 140} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; 141 142typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID { 143 VkStructureType sType; 144 void* pNext; 145 VkFormat colorAttachmentFormat; 146} VkAndroidHardwareBufferFormatResolvePropertiesANDROID; 147 148 149#ifdef __cplusplus 150} 151#endif 152 153#endif 154