1 #ifndef VULKAN_ANDROID_H_
2 #define VULKAN_ANDROID_H_ 1
9 ** Copyright (c) 2015-2019 The Khronos Group Inc.
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
15 ** http://www.apache.org/licenses/LICENSE-2.0
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.
25 ** This header is generated from the Khronos Vulkan XML API Registry.
31 #define VK_KHR_android_surface 1
33 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
34 #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
35 typedef VkFlags VkAndroidSurfaceCreateFlagsKHR
;
36 typedef struct VkAndroidSurfaceCreateInfoKHR
{
37 VkStructureType sType
;
39 VkAndroidSurfaceCreateFlagsKHR flags
;
40 struct ANativeWindow
* window
;
41 } VkAndroidSurfaceCreateInfoKHR
;
43 typedef VkResult (VKAPI_PTR
*PFN_vkCreateAndroidSurfaceKHR
)(VkInstance instance
, const VkAndroidSurfaceCreateInfoKHR
* pCreateInfo
, const VkAllocationCallbacks
* pAllocator
, VkSurfaceKHR
* pSurface
);
45 #ifndef VK_NO_PROTOTYPES
46 VKAPI_ATTR VkResult VKAPI_CALL
vkCreateAndroidSurfaceKHR(
48 const VkAndroidSurfaceCreateInfoKHR
* pCreateInfo
,
49 const VkAllocationCallbacks
* pAllocator
,
50 VkSurfaceKHR
* pSurface
);
54 #define VK_ANDROID_external_memory_android_hardware_buffer 1
55 struct AHardwareBuffer
;
56 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
57 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
58 typedef struct VkAndroidHardwareBufferUsageANDROID
{
59 VkStructureType sType
;
61 uint64_t androidHardwareBufferUsage
;
62 } VkAndroidHardwareBufferUsageANDROID
;
64 typedef struct VkAndroidHardwareBufferPropertiesANDROID
{
65 VkStructureType sType
;
67 VkDeviceSize allocationSize
;
68 uint32_t memoryTypeBits
;
69 } VkAndroidHardwareBufferPropertiesANDROID
;
71 typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID
{
72 VkStructureType sType
;
75 uint64_t externalFormat
;
76 VkFormatFeatureFlags formatFeatures
;
77 VkComponentMapping samplerYcbcrConversionComponents
;
78 VkSamplerYcbcrModelConversion suggestedYcbcrModel
;
79 VkSamplerYcbcrRange suggestedYcbcrRange
;
80 VkChromaLocation suggestedXChromaOffset
;
81 VkChromaLocation suggestedYChromaOffset
;
82 } VkAndroidHardwareBufferFormatPropertiesANDROID
;
84 typedef struct VkImportAndroidHardwareBufferInfoANDROID
{
85 VkStructureType sType
;
87 struct AHardwareBuffer
* buffer
;
88 } VkImportAndroidHardwareBufferInfoANDROID
;
90 typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID
{
91 VkStructureType sType
;
93 VkDeviceMemory memory
;
94 } VkMemoryGetAndroidHardwareBufferInfoANDROID
;
96 typedef struct VkExternalFormatANDROID
{
97 VkStructureType sType
;
99 uint64_t externalFormat
;
100 } VkExternalFormatANDROID
;
102 typedef VkResult (VKAPI_PTR
*PFN_vkGetAndroidHardwareBufferPropertiesANDROID
)(VkDevice device
, const struct AHardwareBuffer
* buffer
, VkAndroidHardwareBufferPropertiesANDROID
* pProperties
);
103 typedef VkResult (VKAPI_PTR
*PFN_vkGetMemoryAndroidHardwareBufferANDROID
)(VkDevice device
, const VkMemoryGetAndroidHardwareBufferInfoANDROID
* pInfo
, struct AHardwareBuffer
** pBuffer
);
105 #ifndef VK_NO_PROTOTYPES
106 VKAPI_ATTR VkResult VKAPI_CALL
vkGetAndroidHardwareBufferPropertiesANDROID(
108 const struct AHardwareBuffer
* buffer
,
109 VkAndroidHardwareBufferPropertiesANDROID
* pProperties
);
111 VKAPI_ATTR VkResult VKAPI_CALL
vkGetMemoryAndroidHardwareBufferANDROID(
113 const VkMemoryGetAndroidHardwareBufferInfoANDROID
* pInfo
,
114 struct AHardwareBuffer
** pBuffer
);