#true-type #gfx #text-rendering #font #text

glyph_brush_draw_cache

ab_glyph 的纹理绘制缓存

7 个版本

0.1.6 2024年6月22日
0.1.5 2021年11月13日
0.1.4 2021年1月21日
0.1.3 2020年10月17日
0.1.0 2020年5月23日

#31 in 缓存

Download history 2505/week @ 2024-04-16 2262/week @ 2024-04-23 2117/week @ 2024-04-30 2027/week @ 2024-05-07 2333/week @ 2024-05-14 2939/week @ 2024-05-21 2545/week @ 2024-05-28 2206/week @ 2024-06-04 1866/week @ 2024-06-11 2812/week @ 2024-06-18 2411/week @ 2024-06-25 1352/week @ 2024-07-02 2150/week @ 2024-07-09 2359/week @ 2024-07-16 2293/week @ 2024-07-23 2201/week @ 2024-07-30

9,257 每月下载
114 个 Crates 中使用 (通过 glyph_brush)

Apache-2.0

65KB
890

glyph_brush_draw_cache crates.io 文档

用于 glyph_brush 中的 ab_glyph 的光栅化缓存。

  • 管理一个纹理。将符号绘制到其中,并为符号提供纹理矩形查找。
  • 需要时自动重用和重新排序。
use glyph_brush_draw_cache::DrawCache;

// build a cache with default settings
let mut draw_cache = DrawCache::builder().build();

// queue up some glyphs to store in the cache
for (font_id, glyph) in glyphs {
    draw_cache.queue_glyph(font_id, glyph);
}

// process everything in the queue, rasterizing & uploading as necessary
draw_cache.cache_queued(&fonts, |rect, tex_data| update_texture(rect, tex_data))?;

// access a given glyph's texture position & pixel position for the texture quad
match draw_cache.rect_for(font_id, &glyph) {
    Some((tex_coords, px_coords)) => {}
    None => {/* The glyph has no outline, or wasn't queued up to be cached */}
}

示例

查看 draw_cache_guts 示例以了解其工作方式 (从顶层运行)

cargo run --example draw_cache_guts

依赖项

~1.5MB
~27K SLoC