1#ifndef VULKAN_ANDROID_H_ 2#define VULKAN_ANDROID_H_ 1 3 4/* 5** Copyright 2015-2022 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#define VK_KHR_android_surface 1 23struct ANativeWindow; 24#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 25#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" 26typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; 27typedef struct VkAndroidSurfaceCreateInfoKHR { 28 VkStructureType sType; 29 const void* pNext; 30 VkAndroidSurfaceCreateFlagsKHR flags; 31 struct ANativeWindow* window; 32} VkAndroidSurfaceCreateInfoKHR; 33 34typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 35 36#ifndef VK_NO_PROTOTYPES 37VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( 38 VkInstance instance, 39 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, 40 const VkAllocationCallbacks* pAllocator, 41 VkSurfaceKHR* pSurface); 42#endif 43 44 45#define VK_ANDROID_external_memory_android_hardware_buffer 1 46struct AHardwareBuffer; 47#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 48#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" 49typedef struct VkAndroidHardwareBufferUsageANDROID { 50 VkStructureType sType; 51 void* pNext; 52 uint64_t androidHardwareBufferUsage; 53} VkAndroidHardwareBufferUsageANDROID; 54 55typedef struct VkAndroidHardwareBufferPropertiesANDROID { 56 VkStructureType sType; 57 void* pNext; 58 VkDeviceSize allocationSize; 59 uint32_t memoryTypeBits; 60} VkAndroidHardwareBufferPropertiesANDROID; 61 62typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { 63 VkStructureType sType; 64 void* pNext; 65 VkFormat format; 66 uint64_t externalFormat; 67 VkFormatFeatureFlags formatFeatures; 68 VkComponentMapping samplerYcbcrConversionComponents; 69 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 70 VkSamplerYcbcrRange suggestedYcbcrRange; 71 VkChromaLocation suggestedXChromaOffset; 72 VkChromaLocation suggestedYChromaOffset; 73} VkAndroidHardwareBufferFormatPropertiesANDROID; 74 75typedef struct VkImportAndroidHardwareBufferInfoANDROID { 76 VkStructureType sType; 77 const void* pNext; 78 struct AHardwareBuffer* buffer; 79} VkImportAndroidHardwareBufferInfoANDROID; 80 81typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { 82 VkStructureType sType; 83 const void* pNext; 84 VkDeviceMemory memory; 85} VkMemoryGetAndroidHardwareBufferInfoANDROID; 86 87typedef struct VkExternalFormatANDROID { 88 VkStructureType sType; 89 void* pNext; 90 uint64_t externalFormat; 91} VkExternalFormatANDROID; 92 93typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID { 94 VkStructureType sType; 95 void* pNext; 96 VkFormat format; 97 uint64_t externalFormat; 98 VkFormatFeatureFlags2 formatFeatures; 99 VkComponentMapping samplerYcbcrConversionComponents; 100 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 101 VkSamplerYcbcrRange suggestedYcbcrRange; 102 VkChromaLocation suggestedXChromaOffset; 103 VkChromaLocation suggestedYChromaOffset; 104} VkAndroidHardwareBufferFormatProperties2ANDROID; 105 106typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); 107typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); 108 109#ifndef VK_NO_PROTOTYPES 110VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( 111 VkDevice device, 112 const struct AHardwareBuffer* buffer, 113 VkAndroidHardwareBufferPropertiesANDROID* pProperties); 114 115VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( 116 VkDevice device, 117 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, 118 struct AHardwareBuffer** pBuffer); 119#endif 120 121#ifdef __cplusplus 122} 123#endif 124 125#endif 126