blob: 50ef85f13e4760976a456db9953114dcfc6b4804 [file] [log] [blame]
Caio Marcelo de Oliveira Filhoe3eb3272020-06-01 21:00:51 -07001#ifndef VULKAN_ANDROID_H_
2#define VULKAN_ANDROID_H_ 1
3
4/*
5** Copyright (c) 2015-2020 The Khronos Group Inc.
6**
Nicolas Capens3b2cd312020-07-21 11:51:25 -04007** SPDX-License-Identifier: Apache-2.0
Caio Marcelo de Oliveira Filhoe3eb3272020-06-01 21:00:51 -07008*/
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 3
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 VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
94typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
95
96#ifndef VK_NO_PROTOTYPES
97VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
98 VkDevice device,
99 const struct AHardwareBuffer* buffer,
100 VkAndroidHardwareBufferPropertiesANDROID* pProperties);
101
102VKAPI_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