vulkan: Update Vulkan XML and headers to 1.2.145
[mesa.git] / include / vulkan / vulkan_android.h
1 #ifndef VULKAN_ANDROID_H_
2 #define VULKAN_ANDROID_H_ 1
3
4 /*
5 ** Copyright (c) 2015-2020 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_KHR_android_surface 1
23 struct ANativeWindow;
24 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
25 #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
26 typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
27 typedef struct VkAndroidSurfaceCreateInfoKHR {
28 VkStructureType sType;
29 const void* pNext;
30 VkAndroidSurfaceCreateFlagsKHR flags;
31 struct ANativeWindow* window;
32 } VkAndroidSurfaceCreateInfoKHR;
33
34 typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
35
36 #ifndef VK_NO_PROTOTYPES
37 VKAPI_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
46 struct AHardwareBuffer;
47 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
48 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
49 typedef struct VkAndroidHardwareBufferUsageANDROID {
50 VkStructureType sType;
51 void* pNext;
52 uint64_t androidHardwareBufferUsage;
53 } VkAndroidHardwareBufferUsageANDROID;
54
55 typedef struct VkAndroidHardwareBufferPropertiesANDROID {
56 VkStructureType sType;
57 void* pNext;
58 VkDeviceSize allocationSize;
59 uint32_t memoryTypeBits;
60 } VkAndroidHardwareBufferPropertiesANDROID;
61
62 typedef 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
75 typedef struct VkImportAndroidHardwareBufferInfoANDROID {
76 VkStructureType sType;
77 const void* pNext;
78 struct AHardwareBuffer* buffer;
79 } VkImportAndroidHardwareBufferInfoANDROID;
80
81 typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
82 VkStructureType sType;
83 const void* pNext;
84 VkDeviceMemory memory;
85 } VkMemoryGetAndroidHardwareBufferInfoANDROID;
86
87 typedef struct VkExternalFormatANDROID {
88 VkStructureType sType;
89 void* pNext;
90 uint64_t externalFormat;
91 } VkExternalFormatANDROID;
92
93 typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
94 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
95
96 #ifndef VK_NO_PROTOTYPES
97 VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
98 VkDevice device,
99 const struct AHardwareBuffer* buffer,
100 VkAndroidHardwareBufferPropertiesANDROID* pProperties);
101
102 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
103 VkDevice device,
104 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
105 struct AHardwareBuffer** pBuffer);
106 #endif
107
108 #ifdef __cplusplus
109 }
110 #endif
111
112 #endif