vulkan_headers/vulkan/
vulkan_android.rs1use crate::prelude::*;
2use crate::platform::android::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkAndroidHardwareBufferFormatProperties2ANDROID {
8 pub sType: VkStructureType,
9 pub pNext: *mut c_void,
10 pub format: VkFormat,
11 pub externalFormat: u64,
12 pub formatFeatures: VkFormatFeatureFlags2,
13 pub samplerYcbcrConversionComponents: VkComponentMapping,
14 pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
15 pub suggestedYcbcrRange: VkSamplerYcbcrRange,
16 pub suggestedXChromaOffset: VkChromaLocation,
17 pub suggestedYChromaOffset: VkChromaLocation,
18}
19
20#[derive(Clone, Copy)]
21#[repr(C)]
22pub struct VkAndroidHardwareBufferFormatPropertiesANDROID {
23 pub sType: VkStructureType,
24 pub pNext: *mut c_void,
25 pub format: VkFormat,
26 pub externalFormat: u64,
27 pub formatFeatures: VkFormatFeatureFlags,
28 pub samplerYcbcrConversionComponents: VkComponentMapping,
29 pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
30 pub suggestedYcbcrRange: VkSamplerYcbcrRange,
31 pub suggestedXChromaOffset: VkChromaLocation,
32 pub suggestedYChromaOffset: VkChromaLocation,
33}
34
35#[derive(Clone, Copy)]
36#[repr(C)]
37pub struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID {
38 pub sType: VkStructureType,
39 pub pNext: *mut c_void,
40 pub colorAttachmentFormat: VkFormat,
41}
42
43#[derive(Clone, Copy)]
44#[repr(C)]
45pub struct VkAndroidHardwareBufferPropertiesANDROID {
46 pub sType: VkStructureType,
47 pub pNext: *mut c_void,
48 pub allocationSize: VkDeviceSize,
49 pub memoryTypeBits: u32,
50}
51
52#[derive(Clone, Copy)]
53#[repr(C)]
54pub struct VkAndroidHardwareBufferUsageANDROID {
55 pub sType: VkStructureType,
56 pub pNext: *mut c_void,
57 pub androidHardwareBufferUsage: u64,
58}
59
60#[derive(Clone, Copy)]
61#[repr(C)]
62pub struct VkAndroidSurfaceCreateInfoKHR {
63 pub sType: VkStructureType,
64 pub pNext: *const c_void,
65 pub flags: VkAndroidSurfaceCreateFlagsKHR,
66 pub window: *mut ANativeWindow,
67}
68
69#[derive(Clone, Copy)]
70#[repr(C)]
71pub struct VkExternalFormatANDROID {
72 pub sType: VkStructureType,
73 pub pNext: *mut c_void,
74 pub externalFormat: u64,
75}
76
77#[derive(Clone, Copy)]
78#[repr(C)]
79pub struct VkImportAndroidHardwareBufferInfoANDROID {
80 pub sType: VkStructureType,
81 pub pNext: *const c_void,
82 pub buffer: *mut AHardwareBuffer,
83}
84
85#[derive(Clone, Copy)]
86#[repr(C)]
87pub struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
88 pub sType: VkStructureType,
89 pub pNext: *const c_void,
90 pub memory: VkDeviceMemory,
91}
92
93#[derive(Clone, Copy)]
94#[repr(C)]
95pub struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID {
96 pub sType: VkStructureType,
97 pub pNext: *mut c_void,
98 pub externalFormatResolve: VkBool32,
99}
100
101#[derive(Clone, Copy)]
102#[repr(C)]
103pub struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID {
104 pub sType: VkStructureType,
105 pub pNext: *mut c_void,
106 pub nullColorAttachmentWithExternalFormatResolve: VkBool32,
107 pub externalFormatResolveChromaOffsetX: VkChromaLocation,
108 pub externalFormatResolveChromaOffsetY: VkChromaLocation,
109}
110
111pub const VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME: &CStr = c"VK_ANDROID_external_format_resolve";
112pub const VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION: u32 = 1;
113pub const VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME: &CStr = c"VK_ANDROID_external_memory_android_hardware_buffer";
114pub const VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION: u32 = 5;
115pub const VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: VkExternalMemoryHandleTypeFlagBits = 1 << 10;
116pub const VK_KHR_ANDROID_SURFACE_EXTENSION_NAME: &CStr = c"VK_KHR_android_surface";
117pub const VK_KHR_ANDROID_SURFACE_SPEC_VERSION: u32 = 6;
118pub const VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID: VkResolveModeFlagBits = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID;
119pub const VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID: VkResolveModeFlagBits = 1 << 4;
120pub const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: VkStructureType = 1000129006;
121pub const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: VkStructureType = 1000129002;
122pub const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: VkStructureType = 1000468002;
123pub const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: VkStructureType = 1000129001;
124pub const VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: VkStructureType = 1000129000;
125pub const VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: VkStructureType = 1000008000;
126pub const VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: VkStructureType = 1000129005;
127pub const VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: VkStructureType = 1000129003;
128pub const VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: VkStructureType = 1000129004;
129pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID: VkStructureType = 1000468000;
130pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID: VkStructureType = 1000468001;
131
132unsafe extern "system" {
133 #[cfg(any(doc, feature = "prototypes"))]
135 pub fn vkCreateAndroidSurfaceKHR(instance: VkInstance, pCreateInfo: *const VkAndroidSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
136
137 #[cfg(any(doc, feature = "prototypes"))]
139 pub fn vkGetAndroidHardwareBufferPropertiesANDROID(device: VkDevice, buffer: *const AHardwareBuffer, pProperties: *mut VkAndroidHardwareBufferPropertiesANDROID) -> VkResult;
140
141 #[cfg(any(doc, feature = "prototypes"))]
143 pub fn vkGetMemoryAndroidHardwareBufferANDROID(device: VkDevice, pInfo: *const VkMemoryGetAndroidHardwareBufferInfoANDROID, pBuffer: *mut *mut AHardwareBuffer) -> VkResult;
144}
145
146pub type NonNullPFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkAndroidSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
147pub type NonNullPFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn(device: VkDevice, buffer: *const AHardwareBuffer, pProperties: *mut VkAndroidHardwareBufferPropertiesANDROID) -> VkResult;
148pub type NonNullPFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn(device: VkDevice, pInfo: *const VkMemoryGetAndroidHardwareBufferInfoANDROID, pBuffer: *mut *mut AHardwareBuffer) -> VkResult;
149pub type PFN_vkCreateAndroidSurfaceKHR = Option<NonNullPFN_vkCreateAndroidSurfaceKHR>;
150pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = Option<NonNullPFN_vkGetAndroidHardwareBufferPropertiesANDROID>;
151pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = Option<NonNullPFN_vkGetMemoryAndroidHardwareBufferANDROID>;
152pub type VkAndroidSurfaceCreateFlagsKHR = VkFlags;