[−][src]Struct rendy_memory::LinearAllocator
Linear allocator that return memory from chunk sequentially. It keeps only number of bytes allocated from each chunk. Once chunk is exhausted it is placed into list. When all blocks allocated from head of that list are freed, head is freed as well.
This allocator suites best short-lived types of allocations. Allocation strategy requires minimal overhead and implementation is fast. But holding single block will completely stop memory recycling.
Methods
impl<B> LinearAllocator<B> where
B: Backend,
[src]
B: Backend,
pub fn properties_required() -> Properties
[src]
Get properties required by the LinearAllocator
.
pub fn max_allocation(&self) -> u64
[src]
Maximum allocation size.
pub fn new(
memory_type: MemoryTypeId,
memory_properties: Properties,
config: LinearConfig
) -> Self
[src]
memory_type: MemoryTypeId,
memory_properties: Properties,
config: LinearConfig
) -> Self
Create new LinearAllocator
for memory_type
with memory_properties
specified,
with LinearConfig
provided.
pub fn dispose(
self,
device: &impl Device<B>
)
[src]
self,
device: &impl Device<B>
)
Perform full cleanup of the memory allocated.
Trait Implementations
impl<B> Allocator<B> for LinearAllocator<B> where
B: Backend,
[src]
B: Backend,
type Block = LinearBlock<B>
Block type returned by allocator.
fn kind() -> Kind
[src]
fn alloc(
&mut self,
device: &impl Device<B>,
size: u64,
align: u64
) -> Result<(LinearBlock<B>, u64), AllocationError>
[src]
&mut self,
device: &impl Device<B>,
size: u64,
align: u64
) -> Result<(LinearBlock<B>, u64), AllocationError>
fn free(
&mut self,
device: &impl Device<B>,
block: Self::Block
) -> u64
[src]
&mut self,
device: &impl Device<B>,
block: Self::Block
) -> u64
impl<B: Debug + Backend> Debug for LinearAllocator<B>
[src]
Auto Trait Implementations
impl<B> Send for LinearAllocator<B>
impl<B> Sync for LinearAllocator<B>
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)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> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,