[−][src]Struct vulkano::memory::DeviceMemory
Represents memory that has been allocated.
The destructor of DeviceMemory
automatically frees the memory.
Example
use vulkano::memory::DeviceMemory; let mem_ty = device.physical_device().memory_types().next().unwrap(); // Allocates 1KB of memory. let memory = DeviceMemory::alloc(device.clone(), mem_ty, 1024).unwrap();
Methods
impl DeviceMemory
[src]
pub fn alloc(
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<DeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<DeviceMemory, DeviceMemoryAllocError>
Allocates a chunk of memory from the device.
Some platforms may have a limit on the maximum size of a single allocation. For example, certain systems may fail to create allocations with a size greater than or equal to 4GB.
Panic
- Panics if
size
is 0. - Panics if
memory_type
doesn't belong to the same physical device asdevice
.
pub fn dedicated_alloc(
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<DeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<DeviceMemory, DeviceMemoryAllocError>
Same as alloc
, but allows specifying a resource that will be bound to the memory.
If a buffer or an image is specified in resource
, then the returned memory must not be
bound to a different buffer or image.
If the VK_KHR_dedicated_allocation
extension is enabled on the device, then it will be
used by this method. Otherwise the resource
parameter will be ignored.
pub fn alloc_and_map(
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
Allocates a chunk of memory and maps it.
Panic
- Panics if
memory_type
doesn't belong to the same physical device asdevice
. - Panics if the memory type is not host-visible.
pub fn dedicated_alloc_and_map(
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
[src]
device: Arc<Device>,
memory_type: MemoryType,
size: usize,
resource: DedicatedAlloc
) -> Result<MappedDeviceMemory, DeviceMemoryAllocError>
Equivalent of dedicated_alloc
for alloc_and_map
.
pub fn memory_type(&self) -> MemoryType
[src]
Returns the memory type this chunk was allocated on.
pub fn size(&self) -> usize
[src]
Returns the size in bytes of that memory chunk.
Trait Implementations
impl DeviceOwned for DeviceMemory
[src]
impl VulkanObject for DeviceMemory
[src]
type Object = DeviceMemory
The type of the object.
const TYPE: DebugReportObjectTypeEXT
[src]
fn internal_object(&self) -> DeviceMemory
[src]
impl Drop for DeviceMemory
[src]
impl AsMut<DeviceMemory> for MappedDeviceMemory
[src]
fn as_mut(&mut self) -> &mut DeviceMemory
[src]
impl AsRef<DeviceMemory> for MappedDeviceMemory
[src]
fn as_ref(&self) -> &DeviceMemory
[src]
impl Debug for DeviceMemory
[src]
Auto Trait Implementations
impl Send for DeviceMemory
impl Unpin for DeviceMemory
impl Sync for DeviceMemory
impl UnwindSafe for DeviceMemory
impl RefUnwindSafe for DeviceMemory
Blanket Implementations
impl<T> DeviceOwned for T where
T: Deref,
<T as Deref>::Target: DeviceOwned,
[src]
T: Deref,
<T as Deref>::Target: DeviceOwned,
impl<T> Content for T
[src]
fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
fn is_size_suitable(usize) -> bool
[src]
fn indiv_size() -> usize
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,