Struct vk_mem_alloc::ffi::VmaAllocationInfo
source · [−]#[repr(C)]pub struct VmaAllocationInfo {
pub memoryType: u32,
pub deviceMemory: DeviceMemory,
pub offset: DeviceSize,
pub size: DeviceSize,
pub pMappedData: *mut c_void,
pub pUserData: *mut c_void,
pub pName: *const c_char,
}
Expand description
Parameters of #VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Fields
memoryType: u32
\brief Memory type index that this allocation was allocated from.
It never changes.
deviceMemory: DeviceMemory
\brief Handle to Vulkan memory object.
Same memory object can be shared by multiple allocations.
It can change after the allocation is moved during \ref defragmentation.
offset: DeviceSize
\brief Offset in VkDeviceMemory
object to the beginning of this allocation, in bytes. (deviceMemory, offset)
pair is unique to this allocation.
You usually don’t need to use this offset. If you create a buffer or an image together with the allocation using e.g. function vmaCreateBuffer(), vmaCreateImage(), functions that operate on these resources refer to the beginning of the buffer or image, not entire device memory block. Functions like vmaMapMemory(), vmaBindBufferMemory() also refer to the beginning of the allocation and apply this offset automatically.
It can change after the allocation is moved during \ref defragmentation.
size: DeviceSize
\brief Size of this allocation, in bytes.
It never changes.
\note Allocation size returned in this variable may be greater than the size
requested for the resource e.g. as VkBufferCreateInfo::size
. Whole size of the
allocation is accessible for operations on memory e.g. using a pointer after
mapping with vmaMapMemory(), but operations on the resource e.g. using
vkCmdCopyBuffer
must be limited to the size of the resource.
pMappedData: *mut c_void
\brief Pointer to the beginning of this allocation as mapped data.
If the allocation hasn’t been mapped using vmaMapMemory() and hasn’t been created with #VMA_ALLOCATION_CREATE_MAPPED_BIT flag, this value is null.
It can change after call to vmaMapMemory(), vmaUnmapMemory(). It can also change after the allocation is moved during \ref defragmentation.
pUserData: *mut c_void
\brief Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vmaSetAllocationUserData().
It can change after call to vmaSetAllocationUserData() for this allocation.
pName: *const c_char
\brief Custom allocation name that was set with vmaSetAllocationName().
It can change after call to vmaSetAllocationName() for this allocation.
Another way to set custom name is to pass it in VmaAllocationCreateInfo::pUserData with additional flag #VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT set [DEPRECATED].
Trait Implementations
sourceimpl Clone for VmaAllocationInfo
impl Clone for VmaAllocationInfo
sourcefn clone(&self) -> VmaAllocationInfo
fn clone(&self) -> VmaAllocationInfo
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for VmaAllocationInfo
impl Debug for VmaAllocationInfo
impl Copy for VmaAllocationInfo
Auto Trait Implementations
impl RefUnwindSafe for VmaAllocationInfo
impl !Send for VmaAllocationInfo
impl !Sync for VmaAllocationInfo
impl Unpin for VmaAllocationInfo
impl UnwindSafe for VmaAllocationInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more