|  | #ifndef VULKAN_ANDROID_H_ | 
|  | #define VULKAN_ANDROID_H_ 1 | 
|  |  | 
|  | /* | 
|  | ** Copyright 2015-2022 The Khronos Group Inc. | 
|  | ** | 
|  | ** SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | /* | 
|  | ** This header is generated from the Khronos Vulkan XML API Registry. | 
|  | ** | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_android_surface 1 | 
|  | struct ANativeWindow; | 
|  | #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 | 
|  | #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" | 
|  | typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; | 
|  | typedef struct VkAndroidSurfaceCreateInfoKHR { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkAndroidSurfaceCreateFlagsKHR    flags; | 
|  | struct ANativeWindow*             window; | 
|  | } VkAndroidSurfaceCreateInfoKHR; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #define VK_ANDROID_external_memory_android_hardware_buffer 1 | 
|  | struct AHardwareBuffer; | 
|  | #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 | 
|  | #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" | 
|  | typedef struct VkAndroidHardwareBufferUsageANDROID { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint64_t           androidHardwareBufferUsage; | 
|  | } VkAndroidHardwareBufferUsageANDROID; | 
|  |  | 
|  | typedef struct VkAndroidHardwareBufferPropertiesANDROID { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkDeviceSize       allocationSize; | 
|  | uint32_t           memoryTypeBits; | 
|  | } VkAndroidHardwareBufferPropertiesANDROID; | 
|  |  | 
|  | typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkFormat                         format; | 
|  | uint64_t                         externalFormat; | 
|  | VkFormatFeatureFlags             formatFeatures; | 
|  | VkComponentMapping               samplerYcbcrConversionComponents; | 
|  | VkSamplerYcbcrModelConversion    suggestedYcbcrModel; | 
|  | VkSamplerYcbcrRange              suggestedYcbcrRange; | 
|  | VkChromaLocation                 suggestedXChromaOffset; | 
|  | VkChromaLocation                 suggestedYChromaOffset; | 
|  | } VkAndroidHardwareBufferFormatPropertiesANDROID; | 
|  |  | 
|  | typedef struct VkImportAndroidHardwareBufferInfoANDROID { | 
|  | VkStructureType            sType; | 
|  | const void*                pNext; | 
|  | struct AHardwareBuffer*    buffer; | 
|  | } VkImportAndroidHardwareBufferInfoANDROID; | 
|  |  | 
|  | typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkDeviceMemory     memory; | 
|  | } VkMemoryGetAndroidHardwareBufferInfoANDROID; | 
|  |  | 
|  | typedef struct VkExternalFormatANDROID { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint64_t           externalFormat; | 
|  | } VkExternalFormatANDROID; | 
|  |  | 
|  | typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkFormat                         format; | 
|  | uint64_t                         externalFormat; | 
|  | VkFormatFeatureFlags2            formatFeatures; | 
|  | VkComponentMapping               samplerYcbcrConversionComponents; | 
|  | VkSamplerYcbcrModelConversion    suggestedYcbcrModel; | 
|  | VkSamplerYcbcrRange              suggestedYcbcrRange; | 
|  | VkChromaLocation                 suggestedXChromaOffset; | 
|  | VkChromaLocation                 suggestedYChromaOffset; | 
|  | } VkAndroidHardwareBufferFormatProperties2ANDROID; | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( | 
|  | VkDevice                                    device, | 
|  | const struct AHardwareBuffer*               buffer, | 
|  | VkAndroidHardwareBufferPropertiesANDROID*   pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( | 
|  | VkDevice                                    device, | 
|  | const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, | 
|  | struct AHardwareBuffer**                    pBuffer); | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |