1#ifndef VULKAN_ANDROID_H_ 2#define VULKAN_ANDROID_H_ 1 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8/* 9** Copyright (c) 2015-2018 The Khronos Group Inc. 10** 11** Licensed under the Apache License, Version 2.0 (the "License"); 12** you may not use this file except in compliance with the License. 13** You may obtain a copy of the License at 14** 15** http://www.apache.org/licenses/LICENSE-2.0 16** 17** Unless required by applicable law or agreed to in writing, software 18** distributed under the License is distributed on an "AS IS" BASIS, 19** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20** See the License for the specific language governing permissions and 21** limitations under the License. 22*/ 23 24/* 25** This header is generated from the Khronos Vulkan XML API Registry. 26** 27*/ 28 29 30#define VK_KHR_android_surface 1 31struct ANativeWindow; 32 33#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 34#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" 35 36typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; 37 38typedef struct VkAndroidSurfaceCreateInfoKHR { 39 VkStructureType sType; 40 const void* pNext; 41 VkAndroidSurfaceCreateFlagsKHR flags; 42 struct ANativeWindow* window; 43} VkAndroidSurfaceCreateInfoKHR; 44 45 46typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 47 48#ifndef VK_NO_PROTOTYPES 49VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( 50 VkInstance instance, 51 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, 52 const VkAllocationCallbacks* pAllocator, 53 VkSurfaceKHR* pSurface); 54#endif 55 56#define VK_ANDROID_external_memory_android_hardware_buffer 1 57struct AHardwareBuffer; 58 59#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 2 60#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" 61 62typedef struct VkAndroidHardwareBufferUsageANDROID { 63 VkStructureType sType; 64 void* pNext; 65 uint64_t androidHardwareBufferUsage; 66} VkAndroidHardwareBufferUsageANDROID; 67 68typedef struct VkAndroidHardwareBufferPropertiesANDROID { 69 VkStructureType sType; 70 void* pNext; 71 VkDeviceSize allocationSize; 72 uint32_t memoryTypeBits; 73} VkAndroidHardwareBufferPropertiesANDROID; 74 75typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { 76 VkStructureType sType; 77 void* pNext; 78 VkFormat format; 79 uint64_t externalFormat; 80 VkFormatFeatureFlags formatFeatures; 81 VkComponentMapping samplerYcbcrConversionComponents; 82 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 83 VkSamplerYcbcrRange suggestedYcbcrRange; 84 VkChromaLocation suggestedXChromaOffset; 85 VkChromaLocation suggestedYChromaOffset; 86} VkAndroidHardwareBufferFormatPropertiesANDROID; 87 88typedef struct VkImportAndroidHardwareBufferInfoANDROID { 89 VkStructureType sType; 90 const void* pNext; 91 struct AHardwareBuffer* buffer; 92} VkImportAndroidHardwareBufferInfoANDROID; 93 94typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { 95 VkStructureType sType; 96 const void* pNext; 97 VkDeviceMemory memory; 98} VkMemoryGetAndroidHardwareBufferInfoANDROID; 99 100typedef struct VkExternalFormatANDROID { 101 VkStructureType sType; 102 void* pNext; 103 uint64_t externalFormat; 104} VkExternalFormatANDROID; 105 106 107typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); 108typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); 109 110#ifndef VK_NO_PROTOTYPES 111VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( 112 VkDevice device, 113 const struct AHardwareBuffer* buffer, 114 VkAndroidHardwareBufferPropertiesANDROID* pProperties); 115 116VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( 117 VkDevice device, 118 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, 119 struct AHardwareBuffer** pBuffer); 120#endif 121 122#ifdef __cplusplus 123} 124#endif 125 126#endif 127