rendy_memory/allocator/
mod.rs1mod dedicated;
4mod dynamic;
5mod linear;
6
7use crate::block::Block;
8
9pub use self::{
10 dedicated::{DedicatedAllocator, DedicatedBlock},
11 dynamic::{DynamicAllocator, DynamicBlock, DynamicConfig},
12 linear::{LinearAllocator, LinearBlock, LinearConfig},
13};
14
15#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
17pub enum Kind {
18 Dedicated,
20
21 Dynamic,
23
24 Linear,
28}
29
30pub trait Allocator<B: gfx_hal::Backend> {
32 type Block: Block<B>;
34
35 fn kind() -> Kind;
37
38 fn alloc(
41 &mut self,
42 device: &B::Device,
43 size: u64,
44 align: u64,
45 ) -> Result<(Self::Block, u64), gfx_hal::device::AllocationError>;
46
47 fn free(&mut self, device: &B::Device, block: Self::Block) -> u64;
50}