Skip to main content

vulkan_headers/vulkan/
vulkan_fuchsia.rs

1use crate::prelude::*;
2use crate::platform::fuchsia::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkBufferCollectionBufferCreateInfoFUCHSIA {
8    pub sType: VkStructureType,
9    pub pNext: *const c_void,
10    pub collection: VkBufferCollectionFUCHSIA,
11    pub index: u32,
12}
13
14#[derive(Clone, Copy)]
15#[repr(C)]
16pub struct VkBufferCollectionConstraintsInfoFUCHSIA {
17    pub sType: VkStructureType,
18    pub pNext: *const c_void,
19    pub minBufferCount: u32,
20    pub maxBufferCount: u32,
21    pub minBufferCountForCamping: u32,
22    pub minBufferCountForDedicatedSlack: u32,
23    pub minBufferCountForSharedSlack: u32,
24}
25
26#[derive(Clone, Copy)]
27#[repr(C)]
28pub struct VkBufferCollectionCreateInfoFUCHSIA {
29    pub sType: VkStructureType,
30    pub pNext: *const c_void,
31    pub collectionToken: zx_handle_t,
32}
33
34#[repr(C)]
35pub struct VkBufferCollectionFUCHSIA_T {
36    _data: (),
37    _marker: PhantomData<(*mut u8, PhantomPinned)>,
38}
39
40#[derive(Clone, Copy)]
41#[repr(C)]
42pub struct VkBufferCollectionImageCreateInfoFUCHSIA {
43    pub sType: VkStructureType,
44    pub pNext: *const c_void,
45    pub collection: VkBufferCollectionFUCHSIA,
46    pub index: u32,
47}
48
49#[derive(Clone, Copy)]
50#[repr(C)]
51pub struct VkBufferCollectionPropertiesFUCHSIA {
52    pub sType: VkStructureType,
53    pub pNext: *mut c_void,
54    pub memoryTypeBits: u32,
55    pub bufferCount: u32,
56    pub createInfoIndex: u32,
57    pub sysmemPixelFormat: u64,
58    pub formatFeatures: VkFormatFeatureFlags,
59    pub sysmemColorSpaceIndex: VkSysmemColorSpaceFUCHSIA,
60    pub samplerYcbcrConversionComponents: VkComponentMapping,
61    pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
62    pub suggestedYcbcrRange: VkSamplerYcbcrRange,
63    pub suggestedXChromaOffset: VkChromaLocation,
64    pub suggestedYChromaOffset: VkChromaLocation,
65}
66
67#[derive(Clone, Copy)]
68#[repr(C)]
69pub struct VkBufferConstraintsInfoFUCHSIA {
70    pub sType: VkStructureType,
71    pub pNext: *const c_void,
72    pub createInfo: VkBufferCreateInfo,
73    pub requiredFormatFeatures: VkFormatFeatureFlags,
74    pub bufferCollectionConstraints: VkBufferCollectionConstraintsInfoFUCHSIA,
75}
76
77#[derive(Clone, Copy)]
78#[repr(C)]
79pub struct VkImageConstraintsInfoFUCHSIA {
80    pub sType: VkStructureType,
81    pub pNext: *const c_void,
82    pub formatConstraintsCount: u32,
83    pub pFormatConstraints: *const VkImageFormatConstraintsInfoFUCHSIA,
84    pub bufferCollectionConstraints: VkBufferCollectionConstraintsInfoFUCHSIA,
85    pub flags: VkImageConstraintsInfoFlagsFUCHSIA,
86}
87
88#[derive(Clone, Copy)]
89#[repr(C)]
90pub struct VkImageFormatConstraintsInfoFUCHSIA {
91    pub sType: VkStructureType,
92    pub pNext: *const c_void,
93    pub imageCreateInfo: VkImageCreateInfo,
94    pub requiredFormatFeatures: VkFormatFeatureFlags,
95    pub flags: VkImageFormatConstraintsFlagsFUCHSIA,
96    pub sysmemPixelFormat: u64,
97    pub colorSpaceCount: u32,
98    pub pColorSpaces: *const VkSysmemColorSpaceFUCHSIA,
99}
100
101#[derive(Clone, Copy)]
102#[repr(C)]
103pub struct VkImagePipeSurfaceCreateInfoFUCHSIA {
104    pub sType: VkStructureType,
105    pub pNext: *const c_void,
106    pub flags: VkImagePipeSurfaceCreateFlagsFUCHSIA,
107    pub imagePipeHandle: zx_handle_t,
108}
109
110#[derive(Clone, Copy)]
111#[repr(C)]
112pub struct VkImportMemoryBufferCollectionFUCHSIA {
113    pub sType: VkStructureType,
114    pub pNext: *const c_void,
115    pub collection: VkBufferCollectionFUCHSIA,
116    pub index: u32,
117}
118
119#[derive(Clone, Copy)]
120#[repr(C)]
121pub struct VkImportMemoryZirconHandleInfoFUCHSIA {
122    pub sType: VkStructureType,
123    pub pNext: *const c_void,
124    pub handleType: VkExternalMemoryHandleTypeFlagBits,
125    pub handle: zx_handle_t,
126}
127
128#[derive(Clone, Copy)]
129#[repr(C)]
130pub struct VkImportSemaphoreZirconHandleInfoFUCHSIA {
131    pub sType: VkStructureType,
132    pub pNext: *const c_void,
133    pub semaphore: VkSemaphore,
134    pub flags: VkSemaphoreImportFlags,
135    pub handleType: VkExternalSemaphoreHandleTypeFlagBits,
136    pub zirconHandle: zx_handle_t,
137}
138
139#[derive(Clone, Copy)]
140#[repr(C)]
141pub struct VkMemoryGetZirconHandleInfoFUCHSIA {
142    pub sType: VkStructureType,
143    pub pNext: *const c_void,
144    pub memory: VkDeviceMemory,
145    pub handleType: VkExternalMemoryHandleTypeFlagBits,
146}
147
148#[derive(Clone, Copy)]
149#[repr(C)]
150pub struct VkMemoryZirconHandlePropertiesFUCHSIA {
151    pub sType: VkStructureType,
152    pub pNext: *mut c_void,
153    pub memoryTypeBits: u32,
154}
155
156#[derive(Clone, Copy)]
157#[repr(C)]
158pub struct VkSemaphoreGetZirconHandleInfoFUCHSIA {
159    pub sType: VkStructureType,
160    pub pNext: *const c_void,
161    pub semaphore: VkSemaphore,
162    pub handleType: VkExternalSemaphoreHandleTypeFlagBits,
163}
164
165#[derive(Clone, Copy)]
166#[repr(C)]
167pub struct VkSysmemColorSpaceFUCHSIA {
168    pub sType: VkStructureType,
169    pub pNext: *const c_void,
170    pub colorSpace: u32,
171}
172
173pub const VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT: VkDebugReportObjectTypeEXT = 1000366000;
174pub const VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: VkExternalMemoryHandleTypeFlagBits = 1 << 11;
175pub const VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: VkExternalSemaphoreHandleTypeFlagBits = 1 << 7;
176pub const VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_buffer_collection";
177pub const VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION: u32 = 2;
178pub const VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_external_memory";
179pub const VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1;
180pub const VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_external_semaphore";
181pub const VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION: u32 = 1;
182pub const VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME: &CStr = c"VK_FUCHSIA_imagepipe_surface";
183pub const VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION: u32 = 1;
184pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 1;
185pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 0;
186pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 3;
187pub const VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 2;
188pub const VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA: VkImageConstraintsInfoFlagBitsFUCHSIA = 1 << 4;
189pub const VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA: VkObjectType = 1000366000;
190pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: VkStructureType = 1000366005;
191pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366009;
192pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: VkStructureType = 1000366000;
193pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: VkStructureType = 1000366002;
194pub const VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA: VkStructureType = 1000366003;
195pub const VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366004;
196pub const VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: VkStructureType = 1000214000;
197pub const VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366006;
198pub const VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: VkStructureType = 1000366007;
199pub const VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: VkStructureType = 1000366001;
200pub const VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000364000;
201pub const VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000365000;
202pub const VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000364002;
203pub const VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: VkStructureType = 1000364001;
204pub const VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: VkStructureType = 1000365001;
205pub const VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA: VkStructureType = 1000366008;
206
207unsafe extern "system" {
208    /// Available if built with `prototypes`.
209    #[cfg(any(doc, feature = "prototypes"))]
210    pub fn vkCreateBufferCollectionFUCHSIA(device: VkDevice, pCreateInfo: *const VkBufferCollectionCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pCollection: *mut VkBufferCollectionFUCHSIA) -> VkResult;
211
212    /// Available if built with `prototypes`.
213    #[cfg(any(doc, feature = "prototypes"))]
214    pub fn vkCreateImagePipeSurfaceFUCHSIA(instance: VkInstance, pCreateInfo: *const VkImagePipeSurfaceCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
215
216    /// Available if built with `prototypes`.
217    #[cfg(any(doc, feature = "prototypes"))]
218    pub fn vkDestroyBufferCollectionFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pAllocator: *const VkAllocationCallbacks);
219
220    /// Available if built with `prototypes`.
221    #[cfg(any(doc, feature = "prototypes"))]
222    pub fn vkGetBufferCollectionPropertiesFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pProperties: *mut VkBufferCollectionPropertiesFUCHSIA) -> VkResult;
223
224    /// Available if built with `prototypes`.
225    #[cfg(any(doc, feature = "prototypes"))]
226    pub fn vkGetMemoryZirconHandleFUCHSIA(device: VkDevice, pGetZirconHandleInfo: *const VkMemoryGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
227
228    /// Available if built with `prototypes`.
229    #[cfg(any(doc, feature = "prototypes"))]
230    pub fn vkGetMemoryZirconHandlePropertiesFUCHSIA(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, zirconHandle: zx_handle_t, pMemoryZirconHandleProperties: *mut VkMemoryZirconHandlePropertiesFUCHSIA) -> VkResult;
231
232    /// Available if built with `prototypes`.
233    #[cfg(any(doc, feature = "prototypes"))]
234    pub fn vkGetSemaphoreZirconHandleFUCHSIA(device: VkDevice, pGetZirconHandleInfo: *const VkSemaphoreGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
235
236    /// Available if built with `prototypes`.
237    #[cfg(any(doc, feature = "prototypes"))]
238    pub fn vkImportSemaphoreZirconHandleFUCHSIA(device: VkDevice, pImportSemaphoreZirconHandleInfo: *const VkImportSemaphoreZirconHandleInfoFUCHSIA) -> VkResult;
239
240    /// Available if built with `prototypes`.
241    #[cfg(any(doc, feature = "prototypes"))]
242    pub fn vkSetBufferCollectionBufferConstraintsFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pBufferConstraintsInfo: *const VkBufferConstraintsInfoFUCHSIA) -> VkResult;
243
244    /// Available if built with `prototypes`.
245    #[cfg(any(doc, feature = "prototypes"))]
246    pub fn vkSetBufferCollectionImageConstraintsFUCHSIA(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pImageConstraintsInfo: *const VkImageConstraintsInfoFUCHSIA) -> VkResult;
247}
248
249pub type NonNullPFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn(device: VkDevice, pCreateInfo: *const VkBufferCollectionCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pCollection: *mut VkBufferCollectionFUCHSIA) -> VkResult;
250pub type NonNullPFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkImagePipeSurfaceCreateInfoFUCHSIA, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
251pub type NonNullPFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pAllocator: *const VkAllocationCallbacks);
252pub type NonNullPFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pProperties: *mut VkBufferCollectionPropertiesFUCHSIA) -> VkResult;
253pub type NonNullPFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pGetZirconHandleInfo: *const VkMemoryGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
254pub type NonNullPFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, zirconHandle: zx_handle_t, pMemoryZirconHandleProperties: *mut VkMemoryZirconHandlePropertiesFUCHSIA) -> VkResult;
255pub type NonNullPFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pGetZirconHandleInfo: *const VkSemaphoreGetZirconHandleInfoFUCHSIA, pZirconHandle: *mut zx_handle_t) -> VkResult;
256pub type NonNullPFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(device: VkDevice, pImportSemaphoreZirconHandleInfo: *const VkImportSemaphoreZirconHandleInfoFUCHSIA) -> VkResult;
257pub type NonNullPFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pBufferConstraintsInfo: *const VkBufferConstraintsInfoFUCHSIA) -> VkResult;
258pub type NonNullPFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn(device: VkDevice, collection: VkBufferCollectionFUCHSIA, pImageConstraintsInfo: *const VkImageConstraintsInfoFUCHSIA) -> VkResult;
259pub type NonNullVkBufferCollectionFUCHSIA = NonNull<VkBufferCollectionFUCHSIA_T>;
260pub type PFN_vkCreateBufferCollectionFUCHSIA = Option<NonNullPFN_vkCreateBufferCollectionFUCHSIA>;
261pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = Option<NonNullPFN_vkCreateImagePipeSurfaceFUCHSIA>;
262pub type PFN_vkDestroyBufferCollectionFUCHSIA = Option<NonNullPFN_vkDestroyBufferCollectionFUCHSIA>;
263pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = Option<NonNullPFN_vkGetBufferCollectionPropertiesFUCHSIA>;
264pub type PFN_vkGetMemoryZirconHandleFUCHSIA = Option<NonNullPFN_vkGetMemoryZirconHandleFUCHSIA>;
265pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = Option<NonNullPFN_vkGetMemoryZirconHandlePropertiesFUCHSIA>;
266pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = Option<NonNullPFN_vkGetSemaphoreZirconHandleFUCHSIA>;
267pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = Option<NonNullPFN_vkImportSemaphoreZirconHandleFUCHSIA>;
268pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = Option<NonNullPFN_vkSetBufferCollectionBufferConstraintsFUCHSIA>;
269pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = Option<NonNullPFN_vkSetBufferCollectionImageConstraintsFUCHSIA>;
270pub type VkBufferCollectionFUCHSIA = *mut VkBufferCollectionFUCHSIA_T;
271pub type VkImageConstraintsInfoFlagBitsFUCHSIA = VkFlags;
272pub type VkImageConstraintsInfoFlagsFUCHSIA = VkFlags;
273pub type VkImageFormatConstraintsFlagsFUCHSIA = VkFlags;
274pub type VkImagePipeSurfaceCreateFlagsFUCHSIA = VkFlags;