14 个版本
0.6.2 | 2021 年 8 月 10 日 |
---|---|
0.6.1 | 2021 年 5 月 16 日 |
0.6.0 | 2020 年 8 月 7 日 |
0.5.2 | 2020 年 6 月 5 日 |
0.3.0 | 2019 年 3 月 30 日 |
在 图形 API 中排名 457
每月下载量 80,385
用于 444 个 Crates(直接使用 9 个)
82KB
1.5K SLoC
Guillotière
具有快速释放和矩形合并功能的动态纹理图集分配器。
动机
对于某些图形渲染场景(例如 WebRender),动态地将纹理批量组合在一起的能力很重要。动态图集分配的挑战性方面之一是在释放后需要合并空闲矩形以整理可用空间。一些图集分配器通过检查所有可能的空闲矩形对并测试它们是否可以合并来执行此任务,这对于实时应用程序来说代价过高。
Guillotière 通过内部维护一个允许以常数时间访问相邻矩形并极大地加快合并操作的数据结构来解决此问题。
此功能的详细说明请参阅 AtlasAllocator
文档。
示例
use guillotiere::*;
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[c.id]);
atlas.deallocate(c.id);
atlas.deallocate(b.id);
许可证
根据您选择的许可证
- Apache 许可协议,版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
依赖项
~0.6–0.8MB
~19K SLoC