#texture #cache #texture-atlas #atlas #rendering

texture-cache

用于缓存单个大GPU纹理中的许多小纹理的LRU缓存

1 个不稳定版本

0.1.0 2022年3月30日

#252缓存

MIT/Apache

26KB
462

纹理缓存

用于在单个大纹理中缓存许多小纹理的LRU缓存,该纹理存储在GPU中。这用于缓存在运行时渲染并不断变化的纹理,如字符文本渲染。

这基本上是对glyph_brush_draw_cache的通用实现,不包括渲染部分,并允许你挂钩自己的渲染。

用法

创建一个LruTextureCache,并通过将可变切片的RectEntry传递给cache_rects方法来添加矩形。可以通过将key传递给get_rect方法从缓存中查询存储的RectRectRectEntry可以包含任意数据,这些数据对于从/到纹理缓存进行渲染可能很有用。

将切片传递给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.0许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖