1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
use crate::image::atlas::{self, allocator}; #[derive(Debug)] pub enum Allocation { Partial { layer: usize, region: allocator::Region, }, Full { layer: usize, }, } impl Allocation { pub fn position(&self) -> (u32, u32) { match self { Allocation::Partial { region, .. } => region.position(), Allocation::Full { .. } => (0, 0), } } pub fn size(&self) -> (u32, u32) { match self { Allocation::Partial { region, .. } => region.size(), Allocation::Full { .. } => (atlas::SIZE, atlas::SIZE), } } pub fn layer(&self) -> usize { match self { Allocation::Partial { layer, .. } => *layer, Allocation::Full { layer } => *layer, } } }