1 个不稳定版本
0.1.0 | 2022年3月30日 |
---|
#252 在 缓存
26KB
462 行
纹理缓存
用于在单个大纹理中缓存许多小纹理的LRU缓存,该纹理存储在GPU中。这用于缓存在运行时渲染并不断变化的纹理,如字符文本渲染。
这基本上是对glyph_brush_draw_cache的通用实现,不包括渲染部分,并允许你挂钩自己的渲染。
用法
创建一个LruTextureCache
,并通过将可变切片的RectEntry
传递给cache_rects
方法来添加矩形。可以通过将key
传递给get_rect
方法从缓存中查询存储的Rect
。 Rect
和RectEntry
可以包含任意数据,这些数据对于从/到纹理缓存进行渲染可能很有用。
将切片传递给cache_rects
后,它将重新排序,以便它从添加到缓存的每个矩形开始。
use texture_cache::{LruTextureCache, RectEntry};
let mut rects = vec![RectEntry { width: 20, height: 20, key: "my_rect", value: (), entry_data: ()}];
let mut cache = LruTextureCache::new(256, 256);
let result = cache.cache_rects(&mut rects)?;
for rect in rects[0..result.len()] {
let cached_rect = cache.get_rect(&rect.key);
// Draw the rect to the texture cache...
}
许可证
以下任一许可证下授权
- Apache许可证第2版,LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选。
贡献
除非你明确说明,否则任何有意提交以包含在你的作品中的贡献,根据Apache-2.0许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。