Crates.io | etagere |
lib.rs | etagere |
version | 0.2.13 |
source | src |
created_at | 2020-11-12 14:05:30.038714 |
updated_at | 2024-06-17 11:25:58.146284 |
description | Dynamic 2D texture atlas allocation using the shelf packing algorithm. |
homepage | |
repository | https://github.com/nical/etagere |
max_upload_size | |
id | 311591 |
size | 90,012 |
A dynamic texture atlas allocator using the shelf packing algorithm.
The ability to dynamically batch textures together is important for some graphics rendering scenarios (for example WebRender).
The shelf packing algorithm works very well when there is a high number of items with similar sizes, for example for dynamic glyph atlases.
See also guillotière, another dynamic atlas allocator based on a different algorithm, with different packing and performance characteristics.
use etagere::*;
let mut atlas = AtlasAllocator::new(size2(1000, 1000));
let a = atlas.allocate(size2(100, 1000)).unwrap();
let b = atlas.allocate(size2(900, 200)).unwrap();
atlas.deallocate(a.id);
let c = atlas.allocate(size2(300, 200)).unwrap();
assert_eq!(c.rectangle, atlas.get(c.id));
atlas.deallocate(c.id);
atlas.deallocate(b.id);
Licensed under either of
at your option.