#![allow(non_camel_case_types)] #![allow(non_upper_case_globals)] #![allow(non_snake_case)] #![allow(unused)] #![allow(deref_nullptr)] use vulkan_sys::prelude::*; pub type PFN_vkGetPhysicalDeviceProperties = extern "system" fn( physicalDevice: VkPhysicalDevice, pProperties: *mut VkPhysicalDeviceProperties, ); pub type PFN_vkGetPhysicalDeviceMemoryProperties = extern "system" fn( physicalDevice: VkPhysicalDevice, pMemoryProperties: *mut VkPhysicalDeviceMemoryProperties, ); pub type PFN_vkAllocateMemory = extern "system" fn( device: VkDevice, pAllocateInfo: *const VkMemoryAllocateInfo, pAllocator: *const VkAllocationCallbacks, pMemory: *mut VkDeviceMemory, ) -> VkResult; pub type PFN_vkFreeMemory = extern "system" fn( device: VkDevice, memory: VkDeviceMemory, pAllocator: *const VkAllocationCallbacks, ); pub type PFN_vkMapMemory = extern "system" fn( device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: *mut *mut ::std::os::raw::c_void, ) -> VkResult; pub type PFN_vkUnmapMemory = extern "system" fn(device: VkDevice, memory: VkDeviceMemory); pub type PFN_vkFlushMappedMemoryRanges = extern "system" fn( device: VkDevice, memoryRangeCount: u32, pMemoryRanges: *const VkMappedMemoryRange, ) -> VkResult; pub type PFN_vkInvalidateMappedMemoryRanges = extern "system" fn( device: VkDevice, memoryRangeCount: u32, pMemoryRanges: *const VkMappedMemoryRange, ) -> VkResult; pub type PFN_vkBindBufferMemory = extern "system" fn( device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize, ) -> VkResult; pub type PFN_vkBindImageMemory = extern "system" fn( device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize, ) -> VkResult; pub type PFN_vkGetBufferMemoryRequirements = extern "system" fn( device: VkDevice, buffer: VkBuffer, pMemoryRequirements: *mut VkMemoryRequirements, ); pub type PFN_vkGetImageMemoryRequirements = extern "system" fn( device: VkDevice, image: VkImage, pMemoryRequirements: *mut VkMemoryRequirements, ); pub type PFN_vkCreateBuffer = extern "system" fn( device: VkDevice, pCreateInfo: *const VkBufferCreateInfo, pAllocator: *const VkAllocationCallbacks, pBuffer: *mut VkBuffer, ) -> VkResult; pub type PFN_vkDestroyBuffer = extern "system" fn( device: VkDevice, buffer: VkBuffer, pAllocator: *const VkAllocationCallbacks, ); pub type PFN_vkCreateImage = extern "system" fn( device: VkDevice, pCreateInfo: *const VkImageCreateInfo, pAllocator: *const VkAllocationCallbacks, pImage: *mut VkImage, ) -> VkResult; pub type PFN_vkDestroyImage = extern "system" fn(device: VkDevice, image: VkImage, pAllocator: *const VkAllocationCallbacks); pub type PFN_vkCmdCopyBuffer = extern "system" fn( commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: u32, pRegions: *const VkBufferCopy, ); pub type PFN_vkGetImageMemoryRequirements2KHR = extern "system" fn( device: VkDevice, pInfo: *const VkImageMemoryRequirementsInfo2, pMemoryRequirements: *mut VkMemoryRequirements2, ); pub type PFN_vkGetBufferMemoryRequirements2KHR = extern "system" fn( device: VkDevice, pInfo: *const VkBufferMemoryRequirementsInfo2, pMemoryRequirements: *mut VkMemoryRequirements2, ); pub type PFN_vkBindBufferMemory2KHR = extern "system" fn( device: VkDevice, bindInfoCount: u32, pBindInfos: *const VkBindBufferMemoryInfo, ) -> VkResult; pub type PFN_vkBindImageMemory2KHR = extern "system" fn( device: VkDevice, bindInfoCount: u32, pBindInfos: *const VkBindImageMemoryInfo, ) -> VkResult; pub type PFN_vkGetPhysicalDeviceMemoryProperties2KHR = extern "system" fn( physicalDevice: VkPhysicalDevice, pMemoryProperties: *mut VkPhysicalDeviceMemoryProperties2KHR, ) -> (); pub type VkFlags = u32; /* automatically generated by rust-bindgen */ #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocator_T { _unused: [u8; 0], } pub type VmaAllocator = *mut VmaAllocator_T; pub type PFN_vmaAllocateDeviceMemoryFunction = ::std::option::Option< unsafe extern "C" fn( allocator: VmaAllocator, memoryType: u32, memory: VkDeviceMemory, size: VkDeviceSize, pUserData: *mut ::std::os::raw::c_void, ), >; pub type PFN_vmaFreeDeviceMemoryFunction = ::std::option::Option< unsafe extern "C" fn( allocator: VmaAllocator, memoryType: u32, memory: VkDeviceMemory, size: VkDeviceSize, pUserData: *mut ::std::os::raw::c_void, ), >; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDeviceMemoryCallbacks { pub pfnAllocate: PFN_vmaAllocateDeviceMemoryFunction, pub pfnFree: PFN_vmaFreeDeviceMemoryFunction, pub pUserData: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_VmaDeviceMemoryCallbacks() { assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(VmaDeviceMemoryCallbacks)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDeviceMemoryCallbacks)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pfnAllocate as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDeviceMemoryCallbacks), "::", stringify!(pfnAllocate) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pfnFree as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDeviceMemoryCallbacks), "::", stringify!(pfnFree) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pUserData as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaDeviceMemoryCallbacks), "::", stringify!(pUserData) ) ); } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaAllocatorCreateFlagBits { VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 1, VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT = 2, VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT = 4, VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT = 8, VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT = 16, VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT = 32, VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT = 64, VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VmaAllocatorCreateFlags = VkFlags; #[repr(C)] #[derive(Copy, Clone)] pub struct VmaVulkanFunctions { pub vkGetPhysicalDeviceProperties: PFN_vkGetPhysicalDeviceProperties, pub vkGetPhysicalDeviceMemoryProperties: PFN_vkGetPhysicalDeviceMemoryProperties, pub vkAllocateMemory: PFN_vkAllocateMemory, pub vkFreeMemory: PFN_vkFreeMemory, pub vkMapMemory: PFN_vkMapMemory, pub vkUnmapMemory: PFN_vkUnmapMemory, pub vkFlushMappedMemoryRanges: PFN_vkFlushMappedMemoryRanges, pub vkInvalidateMappedMemoryRanges: PFN_vkInvalidateMappedMemoryRanges, pub vkBindBufferMemory: PFN_vkBindBufferMemory, pub vkBindImageMemory: PFN_vkBindImageMemory, pub vkGetBufferMemoryRequirements: PFN_vkGetBufferMemoryRequirements, pub vkGetImageMemoryRequirements: PFN_vkGetImageMemoryRequirements, pub vkCreateBuffer: PFN_vkCreateBuffer, pub vkDestroyBuffer: PFN_vkDestroyBuffer, pub vkCreateImage: PFN_vkCreateImage, pub vkDestroyImage: PFN_vkDestroyImage, pub vkCmdCopyBuffer: PFN_vkCmdCopyBuffer, pub vkGetBufferMemoryRequirements2KHR: PFN_vkGetBufferMemoryRequirements2KHR, pub vkGetImageMemoryRequirements2KHR: PFN_vkGetImageMemoryRequirements2KHR, pub vkBindBufferMemory2KHR: PFN_vkBindBufferMemory2KHR, pub vkBindImageMemory2KHR: PFN_vkBindImageMemory2KHR, pub vkGetPhysicalDeviceMemoryProperties2KHR: PFN_vkGetPhysicalDeviceMemoryProperties2KHR, } #[test] fn bindgen_test_layout_VmaVulkanFunctions() { assert_eq!( ::std::mem::size_of::(), 176usize, concat!("Size of: ", stringify!(VmaVulkanFunctions)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaVulkanFunctions)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetPhysicalDeviceProperties as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetPhysicalDeviceProperties) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetPhysicalDeviceMemoryProperties as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetPhysicalDeviceMemoryProperties) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkAllocateMemory as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkAllocateMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkFreeMemory as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkFreeMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkMapMemory as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkMapMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkUnmapMemory as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkUnmapMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkFlushMappedMemoryRanges as *const _ as usize }, 48usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkFlushMappedMemoryRanges) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkInvalidateMappedMemoryRanges as *const _ as usize }, 56usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkInvalidateMappedMemoryRanges) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkBindBufferMemory as *const _ as usize }, 64usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkBindBufferMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkBindImageMemory as *const _ as usize }, 72usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkBindImageMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetBufferMemoryRequirements as *const _ as usize }, 80usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetBufferMemoryRequirements) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetImageMemoryRequirements as *const _ as usize }, 88usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetImageMemoryRequirements) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkCreateBuffer as *const _ as usize }, 96usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkCreateBuffer) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkDestroyBuffer as *const _ as usize }, 104usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkDestroyBuffer) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkCreateImage as *const _ as usize }, 112usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkCreateImage) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkDestroyImage as *const _ as usize }, 120usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkDestroyImage) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkCmdCopyBuffer as *const _ as usize }, 128usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkCmdCopyBuffer) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetBufferMemoryRequirements2KHR as *const _ as usize }, 136usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetBufferMemoryRequirements2KHR) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetImageMemoryRequirements2KHR as *const _ as usize }, 144usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetImageMemoryRequirements2KHR) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkBindBufferMemory2KHR as *const _ as usize }, 152usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkBindBufferMemory2KHR) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkBindImageMemory2KHR as *const _ as usize }, 160usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkBindImageMemory2KHR) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vkGetPhysicalDeviceMemoryProperties2KHR as *const _ as usize }, 168usize, concat!( "Offset of field: ", stringify!(VmaVulkanFunctions), "::", stringify!(vkGetPhysicalDeviceMemoryProperties2KHR) ) ); } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaRecordFlagBits { VMA_RECORD_FLUSH_AFTER_CALL_BIT = 1, VMA_RECORD_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VmaRecordFlags = VkFlags; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaRecordSettings { pub flags: VmaRecordFlags, pub pFilePath: *const ::std::os::raw::c_char, } #[test] fn bindgen_test_layout_VmaRecordSettings() { assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(VmaRecordSettings)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaRecordSettings)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).flags as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaRecordSettings), "::", stringify!(flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pFilePath as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaRecordSettings), "::", stringify!(pFilePath) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocatorCreateInfo { pub flags: VmaAllocatorCreateFlags, pub physicalDevice: VkPhysicalDevice, pub device: VkDevice, pub preferredLargeHeapBlockSize: VkDeviceSize, pub pAllocationCallbacks: *const VkAllocationCallbacks, pub pDeviceMemoryCallbacks: *const VmaDeviceMemoryCallbacks, pub frameInUseCount: u32, pub pHeapSizeLimit: *const VkDeviceSize, pub pVulkanFunctions: *const VmaVulkanFunctions, pub pRecordSettings: *const VmaRecordSettings, pub instance: VkInstance, pub vulkanApiVersion: u32, } #[test] fn bindgen_test_layout_VmaAllocatorCreateInfo() { assert_eq!( ::std::mem::size_of::(), 96usize, concat!("Size of: ", stringify!(VmaAllocatorCreateInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaAllocatorCreateInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).flags as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).physicalDevice as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(physicalDevice) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).device as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(device) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).preferredLargeHeapBlockSize as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(preferredLargeHeapBlockSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pAllocationCallbacks as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(pAllocationCallbacks) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pDeviceMemoryCallbacks as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(pDeviceMemoryCallbacks) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).frameInUseCount as *const _ as usize }, 48usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(frameInUseCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pHeapSizeLimit as *const _ as usize }, 56usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(pHeapSizeLimit) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pVulkanFunctions as *const _ as usize }, 64usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(pVulkanFunctions) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pRecordSettings as *const _ as usize }, 72usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(pRecordSettings) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).instance as *const _ as usize }, 80usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(instance) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).vulkanApiVersion as *const _ as usize }, 88usize, concat!( "Offset of field: ", stringify!(VmaAllocatorCreateInfo), "::", stringify!(vulkanApiVersion) ) ); } extern "C" { pub fn vmaCreateAllocator( pCreateInfo: *const VmaAllocatorCreateInfo, pAllocator: *mut VmaAllocator, ) -> VkResult; } extern "C" { pub fn vmaDestroyAllocator(allocator: VmaAllocator); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocatorInfo { pub instance: VkInstance, pub physicalDevice: VkPhysicalDevice, pub device: VkDevice, } #[test] fn bindgen_test_layout_VmaAllocatorInfo() { assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(VmaAllocatorInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaAllocatorInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).instance as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaAllocatorInfo), "::", stringify!(instance) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).physicalDevice as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaAllocatorInfo), "::", stringify!(physicalDevice) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).device as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaAllocatorInfo), "::", stringify!(device) ) ); } extern "C" { pub fn vmaGetAllocatorInfo(allocator: VmaAllocator, pAllocatorInfo: *mut VmaAllocatorInfo); } extern "C" { pub fn vmaGetPhysicalDeviceProperties( allocator: VmaAllocator, ppPhysicalDeviceProperties: *mut *const VkPhysicalDeviceProperties, ); } extern "C" { pub fn vmaGetMemoryProperties( allocator: VmaAllocator, ppPhysicalDeviceMemoryProperties: *mut *const VkPhysicalDeviceMemoryProperties, ); } extern "C" { pub fn vmaGetMemoryTypeProperties( allocator: VmaAllocator, memoryTypeIndex: u32, pFlags: *mut VkMemoryPropertyFlags, ); } extern "C" { pub fn vmaSetCurrentFrameIndex(allocator: VmaAllocator, frameIndex: u32); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaStatInfo { pub blockCount: u32, pub allocationCount: u32, pub unusedRangeCount: u32, pub usedBytes: VkDeviceSize, pub unusedBytes: VkDeviceSize, pub allocationSizeMin: VkDeviceSize, pub allocationSizeAvg: VkDeviceSize, pub allocationSizeMax: VkDeviceSize, pub unusedRangeSizeMin: VkDeviceSize, pub unusedRangeSizeAvg: VkDeviceSize, pub unusedRangeSizeMax: VkDeviceSize, } #[test] fn bindgen_test_layout_VmaStatInfo() { assert_eq!( ::std::mem::size_of::(), 80usize, concat!("Size of: ", stringify!(VmaStatInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaStatInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).blockCount as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(blockCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationCount as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(allocationCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeCount as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(unusedRangeCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).usedBytes as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(usedBytes) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedBytes as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(unusedBytes) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationSizeMin as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(allocationSizeMin) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationSizeAvg as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(allocationSizeAvg) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationSizeMax as *const _ as usize }, 48usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(allocationSizeMax) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeSizeMin as *const _ as usize }, 56usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(unusedRangeSizeMin) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeSizeAvg as *const _ as usize }, 64usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(unusedRangeSizeAvg) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeSizeMax as *const _ as usize }, 72usize, concat!( "Offset of field: ", stringify!(VmaStatInfo), "::", stringify!(unusedRangeSizeMax) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaStats { pub memoryType: [VmaStatInfo; 32usize], pub memoryHeap: [VmaStatInfo; 16usize], pub total: VmaStatInfo, } #[test] fn bindgen_test_layout_VmaStats() { assert_eq!( ::std::mem::size_of::(), 3920usize, concat!("Size of: ", stringify!(VmaStats)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaStats)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memoryType as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaStats), "::", stringify!(memoryType) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memoryHeap as *const _ as usize }, 2560usize, concat!( "Offset of field: ", stringify!(VmaStats), "::", stringify!(memoryHeap) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).total as *const _ as usize }, 3840usize, concat!( "Offset of field: ", stringify!(VmaStats), "::", stringify!(total) ) ); } extern "C" { pub fn vmaCalculateStats(allocator: VmaAllocator, pStats: *mut VmaStats); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaBudget { pub blockBytes: VkDeviceSize, pub allocationBytes: VkDeviceSize, pub usage: VkDeviceSize, pub budget: VkDeviceSize, } #[test] fn bindgen_test_layout_VmaBudget() { assert_eq!( ::std::mem::size_of::(), 32usize, concat!("Size of: ", stringify!(VmaBudget)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaBudget)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).blockBytes as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaBudget), "::", stringify!(blockBytes) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationBytes as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaBudget), "::", stringify!(allocationBytes) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).usage as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaBudget), "::", stringify!(usage) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).budget as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaBudget), "::", stringify!(budget) ) ); } extern "C" { pub fn vmaGetBudget(allocator: VmaAllocator, pBudget: *mut VmaBudget); } extern "C" { pub fn vmaBuildStatsString( allocator: VmaAllocator, ppStatsString: *mut *mut ::std::os::raw::c_char, detailedMap: VkBool32, ); } extern "C" { pub fn vmaFreeStatsString(allocator: VmaAllocator, pStatsString: *mut ::std::os::raw::c_char); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaPool_T { _unused: [u8; 0], } pub type VmaPool = *mut VmaPool_T; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaMemoryUsage { VMA_MEMORY_USAGE_UNKNOWN = 0, VMA_MEMORY_USAGE_GPU_ONLY = 1, VMA_MEMORY_USAGE_CPU_ONLY = 2, VMA_MEMORY_USAGE_CPU_TO_GPU = 3, VMA_MEMORY_USAGE_GPU_TO_CPU = 4, VMA_MEMORY_USAGE_CPU_COPY = 5, VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED = 6, VMA_MEMORY_USAGE_MAX_ENUM = 2147483647, } impl VmaAllocationCreateFlagBits { pub const VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT: VmaAllocationCreateFlagBits = VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT; } impl VmaAllocationCreateFlagBits { pub const VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT: VmaAllocationCreateFlagBits = VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT; } impl VmaAllocationCreateFlagBits { pub const VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT: VmaAllocationCreateFlagBits = VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaAllocationCreateFlagBits { VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 1, VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT = 2, VMA_ALLOCATION_CREATE_MAPPED_BIT = 4, VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT = 8, VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT = 16, VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT = 32, VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = 64, VMA_ALLOCATION_CREATE_DONT_BIND_BIT = 128, VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT = 256, VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT = 65536, VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT = 131072, VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT = 262144, VMA_ALLOCATION_CREATE_STRATEGY_MASK = 458752, VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VmaAllocationCreateFlags = VkFlags; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocationCreateInfo { pub flags: VmaAllocationCreateFlags, pub usage: VmaMemoryUsage, pub requiredFlags: VkMemoryPropertyFlagBits, pub preferredFlags: VkMemoryPropertyFlagBits, pub memoryTypeBits: u32, pub pool: VmaPool, pub pUserData: *mut ::std::os::raw::c_void, pub priority: f32, } #[test] fn bindgen_test_layout_VmaAllocationCreateInfo() { assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(VmaAllocationCreateInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaAllocationCreateInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).flags as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).usage as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(usage) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).requiredFlags as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(requiredFlags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).preferredFlags as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(preferredFlags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memoryTypeBits as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(memoryTypeBits) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pool as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(pool) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pUserData as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(pUserData) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).priority as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaAllocationCreateInfo), "::", stringify!(priority) ) ); } extern "C" { pub fn vmaFindMemoryTypeIndex( allocator: VmaAllocator, memoryTypeBits: u32, pAllocationCreateInfo: *const VmaAllocationCreateInfo, pMemoryTypeIndex: *mut u32, ) -> VkResult; } extern "C" { pub fn vmaFindMemoryTypeIndexForBufferInfo( allocator: VmaAllocator, pBufferCreateInfo: *const VkBufferCreateInfo, pAllocationCreateInfo: *const VmaAllocationCreateInfo, pMemoryTypeIndex: *mut u32, ) -> VkResult; } extern "C" { pub fn vmaFindMemoryTypeIndexForImageInfo( allocator: VmaAllocator, pImageCreateInfo: *const VkImageCreateInfo, pAllocationCreateInfo: *const VmaAllocationCreateInfo, pMemoryTypeIndex: *mut u32, ) -> VkResult; } #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaPoolCreateFlagBits { VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT = 2, VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT = 4, VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT = 8, VMA_POOL_CREATE_ALGORITHM_MASK = 12, VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VmaPoolCreateFlags = VkFlags; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaPoolCreateInfo { pub memoryTypeIndex: u32, pub flags: VmaPoolCreateFlags, pub blockSize: VkDeviceSize, pub minBlockCount: isize, pub maxBlockCount: isize, pub frameInUseCount: u32, pub priority: f32, } #[test] fn bindgen_test_layout_VmaPoolCreateInfo() { assert_eq!( ::std::mem::size_of::(), 40usize, concat!("Size of: ", stringify!(VmaPoolCreateInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaPoolCreateInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memoryTypeIndex as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(memoryTypeIndex) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).flags as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).blockSize as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(blockSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).minBlockCount as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(minBlockCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxBlockCount as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(maxBlockCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).frameInUseCount as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(frameInUseCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).priority as *const _ as usize }, 36usize, concat!( "Offset of field: ", stringify!(VmaPoolCreateInfo), "::", stringify!(priority) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaPoolStats { pub size: VkDeviceSize, pub unusedSize: VkDeviceSize, pub allocationCount: isize, pub unusedRangeCount: isize, pub unusedRangeSizeMax: VkDeviceSize, pub blockCount: isize, } #[test] fn bindgen_test_layout_VmaPoolStats() { assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(VmaPoolStats)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaPoolStats)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).size as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(size) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedSize as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(unusedSize) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationCount as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(allocationCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeCount as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(unusedRangeCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).unusedRangeSizeMax as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(unusedRangeSizeMax) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).blockCount as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaPoolStats), "::", stringify!(blockCount) ) ); } extern "C" { pub fn vmaCreatePool( allocator: VmaAllocator, pCreateInfo: *const VmaPoolCreateInfo, pPool: *mut VmaPool, ) -> VkResult; } extern "C" { pub fn vmaDestroyPool(allocator: VmaAllocator, pool: VmaPool); } extern "C" { pub fn vmaGetPoolStats(allocator: VmaAllocator, pool: VmaPool, pPoolStats: *mut VmaPoolStats); } extern "C" { pub fn vmaMakePoolAllocationsLost( allocator: VmaAllocator, pool: VmaPool, pLostAllocationCount: *mut isize, ); } extern "C" { pub fn vmaCheckPoolCorruption(allocator: VmaAllocator, pool: VmaPool) -> VkResult; } extern "C" { pub fn vmaGetPoolName( allocator: VmaAllocator, pool: VmaPool, ppName: *mut *const ::std::os::raw::c_char, ); } extern "C" { pub fn vmaSetPoolName( allocator: VmaAllocator, pool: VmaPool, pName: *const ::std::os::raw::c_char, ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocation_T { _unused: [u8; 0], } pub type VmaAllocation = *mut VmaAllocation_T; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaAllocationInfo { pub memoryType: u32, pub deviceMemory: VkDeviceMemory, pub offset: VkDeviceSize, pub size: VkDeviceSize, pub pMappedData: *mut ::std::os::raw::c_void, pub pUserData: *mut ::std::os::raw::c_void, } #[test] fn bindgen_test_layout_VmaAllocationInfo() { assert_eq!( ::std::mem::size_of::(), 48usize, concat!("Size of: ", stringify!(VmaAllocationInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaAllocationInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memoryType as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(memoryType) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).deviceMemory as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(deviceMemory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).offset as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(offset) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).size as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(size) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pMappedData as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(pMappedData) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pUserData as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaAllocationInfo), "::", stringify!(pUserData) ) ); } extern "C" { pub fn vmaAllocateMemory( allocator: VmaAllocator, pVkMemoryRequirements: *const VkMemoryRequirements, pCreateInfo: *const VmaAllocationCreateInfo, pAllocation: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaAllocateMemoryPages( allocator: VmaAllocator, pVkMemoryRequirements: *const VkMemoryRequirements, pCreateInfo: *const VmaAllocationCreateInfo, allocationCount: isize, pAllocations: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaAllocateMemoryForBuffer( allocator: VmaAllocator, buffer: VkBuffer, pCreateInfo: *const VmaAllocationCreateInfo, pAllocation: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaAllocateMemoryForImage( allocator: VmaAllocator, image: VkImage, pCreateInfo: *const VmaAllocationCreateInfo, pAllocation: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaFreeMemory(allocator: VmaAllocator, allocation: VmaAllocation); } extern "C" { pub fn vmaFreeMemoryPages( allocator: VmaAllocator, allocationCount: isize, pAllocations: *mut VmaAllocation, ); } extern "C" { pub fn vmaResizeAllocation( allocator: VmaAllocator, allocation: VmaAllocation, newSize: VkDeviceSize, ) -> VkResult; } extern "C" { pub fn vmaGetAllocationInfo( allocator: VmaAllocator, allocation: VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ); } extern "C" { pub fn vmaTouchAllocation(allocator: VmaAllocator, allocation: VmaAllocation) -> VkBool32; } extern "C" { pub fn vmaSetAllocationUserData( allocator: VmaAllocator, allocation: VmaAllocation, pUserData: *mut ::std::os::raw::c_void, ); } extern "C" { pub fn vmaCreateLostAllocation(allocator: VmaAllocator, pAllocation: *mut VmaAllocation); } extern "C" { pub fn vmaMapMemory( allocator: VmaAllocator, allocation: VmaAllocation, ppData: *mut *mut ::std::os::raw::c_void, ) -> VkResult; } extern "C" { pub fn vmaUnmapMemory(allocator: VmaAllocator, allocation: VmaAllocation); } extern "C" { pub fn vmaFlushAllocation( allocator: VmaAllocator, allocation: VmaAllocation, offset: VkDeviceSize, size: VkDeviceSize, ) -> VkResult; } extern "C" { pub fn vmaInvalidateAllocation( allocator: VmaAllocator, allocation: VmaAllocation, offset: VkDeviceSize, size: VkDeviceSize, ) -> VkResult; } extern "C" { pub fn vmaFlushAllocations( allocator: VmaAllocator, allocationCount: u32, allocations: *mut VmaAllocation, offsets: *const VkDeviceSize, sizes: *const VkDeviceSize, ) -> VkResult; } extern "C" { pub fn vmaInvalidateAllocations( allocator: VmaAllocator, allocationCount: u32, allocations: *mut VmaAllocation, offsets: *const VkDeviceSize, sizes: *const VkDeviceSize, ) -> VkResult; } extern "C" { pub fn vmaCheckCorruption(allocator: VmaAllocator, memoryTypeBits: u32) -> VkResult; } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationContext_T { _unused: [u8; 0], } pub type VmaDefragmentationContext = *mut VmaDefragmentationContext_T; #[repr(u32)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub enum VmaDefragmentationFlagBits { VMA_DEFRAGMENTATION_FLAG_INCREMENTAL = 1, VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VmaDefragmentationFlags = VkFlags; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationInfo2 { pub flags: VmaDefragmentationFlags, pub allocationCount: u32, pub pAllocations: *mut VmaAllocation, pub pAllocationsChanged: *mut VkBool32, pub poolCount: u32, pub pPools: *mut VmaPool, pub maxCpuBytesToMove: VkDeviceSize, pub maxCpuAllocationsToMove: u32, pub maxGpuBytesToMove: VkDeviceSize, pub maxGpuAllocationsToMove: u32, pub commandBuffer: VkCommandBuffer, } #[test] fn bindgen_test_layout_VmaDefragmentationInfo2() { assert_eq!( ::std::mem::size_of::(), 80usize, concat!("Size of: ", stringify!(VmaDefragmentationInfo2)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDefragmentationInfo2)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).flags as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationCount as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(allocationCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pAllocations as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(pAllocations) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pAllocationsChanged as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(pAllocationsChanged) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).poolCount as *const _ as usize }, 24usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(poolCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pPools as *const _ as usize }, 32usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(pPools) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxCpuBytesToMove as *const _ as usize }, 40usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(maxCpuBytesToMove) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxCpuAllocationsToMove as *const _ as usize }, 48usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(maxCpuAllocationsToMove) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxGpuBytesToMove as *const _ as usize }, 56usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(maxGpuBytesToMove) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxGpuAllocationsToMove as *const _ as usize }, 64usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(maxGpuAllocationsToMove) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).commandBuffer as *const _ as usize }, 72usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo2), "::", stringify!(commandBuffer) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationPassMoveInfo { pub allocation: VmaAllocation, pub memory: VkDeviceMemory, pub offset: VkDeviceSize, } #[test] fn bindgen_test_layout_VmaDefragmentationPassMoveInfo() { assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(VmaDefragmentationPassMoveInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDefragmentationPassMoveInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocation as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationPassMoveInfo), "::", stringify!(allocation) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).memory as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationPassMoveInfo), "::", stringify!(memory) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).offset as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationPassMoveInfo), "::", stringify!(offset) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationPassInfo { pub moveCount: u32, pub pMoves: *mut VmaDefragmentationPassMoveInfo, } #[test] fn bindgen_test_layout_VmaDefragmentationPassInfo() { assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(VmaDefragmentationPassInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDefragmentationPassInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).moveCount as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationPassInfo), "::", stringify!(moveCount) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).pMoves as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationPassInfo), "::", stringify!(pMoves) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationInfo { pub maxBytesToMove: VkDeviceSize, pub maxAllocationsToMove: u32, } #[test] fn bindgen_test_layout_VmaDefragmentationInfo() { assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(VmaDefragmentationInfo)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDefragmentationInfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxBytesToMove as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo), "::", stringify!(maxBytesToMove) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).maxAllocationsToMove as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationInfo), "::", stringify!(maxAllocationsToMove) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct VmaDefragmentationStats { pub bytesMoved: VkDeviceSize, pub bytesFreed: VkDeviceSize, pub allocationsMoved: u32, pub deviceMemoryBlocksFreed: u32, } #[test] fn bindgen_test_layout_VmaDefragmentationStats() { assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(VmaDefragmentationStats)) ); assert_eq!( ::std::mem::align_of::(), 8usize, concat!("Alignment of ", stringify!(VmaDefragmentationStats)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).bytesMoved as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationStats), "::", stringify!(bytesMoved) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).bytesFreed as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationStats), "::", stringify!(bytesFreed) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).allocationsMoved as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationStats), "::", stringify!(allocationsMoved) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).deviceMemoryBlocksFreed as *const _ as usize }, 20usize, concat!( "Offset of field: ", stringify!(VmaDefragmentationStats), "::", stringify!(deviceMemoryBlocksFreed) ) ); } extern "C" { pub fn vmaDefragmentationBegin( allocator: VmaAllocator, pInfo: *const VmaDefragmentationInfo2, pStats: *mut VmaDefragmentationStats, pContext: *mut VmaDefragmentationContext, ) -> VkResult; } extern "C" { pub fn vmaDefragmentationEnd( allocator: VmaAllocator, context: VmaDefragmentationContext, ) -> VkResult; } extern "C" { pub fn vmaBeginDefragmentationPass( allocator: VmaAllocator, context: VmaDefragmentationContext, pInfo: *mut VmaDefragmentationPassInfo, ) -> VkResult; } extern "C" { pub fn vmaEndDefragmentationPass( allocator: VmaAllocator, context: VmaDefragmentationContext, ) -> VkResult; } extern "C" { pub fn vmaDefragment( allocator: VmaAllocator, pAllocations: *mut VmaAllocation, allocationCount: isize, pAllocationsChanged: *mut VkBool32, pDefragmentationInfo: *const VmaDefragmentationInfo, pDefragmentationStats: *mut VmaDefragmentationStats, ) -> VkResult; } extern "C" { pub fn vmaBindBufferMemory( allocator: VmaAllocator, allocation: VmaAllocation, buffer: VkBuffer, ) -> VkResult; } extern "C" { pub fn vmaBindBufferMemory2( allocator: VmaAllocator, allocation: VmaAllocation, allocationLocalOffset: VkDeviceSize, buffer: VkBuffer, pNext: *const ::std::os::raw::c_void, ) -> VkResult; } extern "C" { pub fn vmaBindImageMemory( allocator: VmaAllocator, allocation: VmaAllocation, image: VkImage, ) -> VkResult; } extern "C" { pub fn vmaBindImageMemory2( allocator: VmaAllocator, allocation: VmaAllocation, allocationLocalOffset: VkDeviceSize, image: VkImage, pNext: *const ::std::os::raw::c_void, ) -> VkResult; } extern "C" { pub fn vmaCreateBuffer( allocator: VmaAllocator, pBufferCreateInfo: *const VkBufferCreateInfo, pAllocationCreateInfo: *const VmaAllocationCreateInfo, pBuffer: *mut VkBuffer, pAllocation: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaDestroyBuffer(allocator: VmaAllocator, buffer: VkBuffer, allocation: VmaAllocation); } extern "C" { pub fn vmaCreateImage( allocator: VmaAllocator, pImageCreateInfo: *const VkImageCreateInfo, pAllocationCreateInfo: *const VmaAllocationCreateInfo, pImage: *mut VkImage, pAllocation: *mut VmaAllocation, pAllocationInfo: *mut VmaAllocationInfo, ) -> VkResult; } extern "C" { pub fn vmaDestroyImage(allocator: VmaAllocator, image: VkImage, allocation: VmaAllocation); }