1 #ifndef VULKAN_ANDROID_H_
2 #define VULKAN_ANDROID_H_ 1
5 ** Copyright (c) 2015-2020 The Khronos Group Inc.
7 ** SPDX-License-Identifier: Apache-2.0
11 ** This header is generated from the Khronos Vulkan XML API Registry.
22 #define VK_KHR_android_surface 1
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
;
30 VkAndroidSurfaceCreateFlagsKHR flags
;
31 struct ANativeWindow
* window
;
32 } VkAndroidSurfaceCreateInfoKHR
;
34 typedef VkResult (VKAPI_PTR
*PFN_vkCreateAndroidSurfaceKHR
)(VkInstance instance
, const VkAndroidSurfaceCreateInfoKHR
* pCreateInfo
, const VkAllocationCallbacks
* pAllocator
, VkSurfaceKHR
* pSurface
);
36 #ifndef VK_NO_PROTOTYPES
37 VKAPI_ATTR VkResult VKAPI_CALL
vkCreateAndroidSurfaceKHR(
39 const VkAndroidSurfaceCreateInfoKHR
* pCreateInfo
,
40 const VkAllocationCallbacks
* pAllocator
,
41 VkSurfaceKHR
* pSurface
);
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
;
52 uint64_t androidHardwareBufferUsage
;
53 } VkAndroidHardwareBufferUsageANDROID
;
55 typedef struct VkAndroidHardwareBufferPropertiesANDROID
{
56 VkStructureType sType
;
58 VkDeviceSize allocationSize
;
59 uint32_t memoryTypeBits
;
60 } VkAndroidHardwareBufferPropertiesANDROID
;
62 typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID
{
63 VkStructureType sType
;
66 uint64_t externalFormat
;
67 VkFormatFeatureFlags formatFeatures
;
68 VkComponentMapping samplerYcbcrConversionComponents
;
69 VkSamplerYcbcrModelConversion suggestedYcbcrModel
;
70 VkSamplerYcbcrRange suggestedYcbcrRange
;
71 VkChromaLocation suggestedXChromaOffset
;
72 VkChromaLocation suggestedYChromaOffset
;
73 } VkAndroidHardwareBufferFormatPropertiesANDROID
;
75 typedef struct VkImportAndroidHardwareBufferInfoANDROID
{
76 VkStructureType sType
;
78 struct AHardwareBuffer
* buffer
;
79 } VkImportAndroidHardwareBufferInfoANDROID
;
81 typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID
{
82 VkStructureType sType
;
84 VkDeviceMemory memory
;
85 } VkMemoryGetAndroidHardwareBufferInfoANDROID
;
87 typedef struct VkExternalFormatANDROID
{
88 VkStructureType sType
;
90 uint64_t externalFormat
;
91 } VkExternalFormatANDROID
;
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
);
96 #ifndef VK_NO_PROTOTYPES
97 VKAPI_ATTR VkResult VKAPI_CALL
vkGetAndroidHardwareBufferPropertiesANDROID(
99 const struct AHardwareBuffer
* buffer
,
100 VkAndroidHardwareBufferPropertiesANDROID
* pProperties
);
102 VKAPI_ATTR VkResult VKAPI_CALL
vkGetMemoryAndroidHardwareBufferANDROID(
104 const VkMemoryGetAndroidHardwareBufferInfoANDROID
* pInfo
,
105 struct AHardwareBuffer
** pBuffer
);