#font #ttf #truetype #gfx #text

glyph_brush_draw_cache

Texture draw cache for ab_glyph

5 releases

0.1.4 Jan 21, 2021
0.1.3 Oct 17, 2020
0.1.2 Oct 3, 2020
0.1.1 Jul 11, 2020
0.1.0 May 23, 2020

#25 in Caching

Download history 1499/week @ 2020-11-07 1897/week @ 2020-11-14 2869/week @ 2020-11-21 2944/week @ 2020-11-28 2053/week @ 2020-12-05 2050/week @ 2020-12-12 1497/week @ 2020-12-19 1027/week @ 2020-12-26 1757/week @ 2021-01-02 2003/week @ 2021-01-09 1815/week @ 2021-01-16 2095/week @ 2021-01-23 2302/week @ 2021-01-30 2430/week @ 2021-02-06 2409/week @ 2021-02-13 2729/week @ 2021-02-20

7,925 downloads per month
Used in 16 crates (via glyph_brush)

Apache-2.0

65KB
892 lines

glyph_brush_draw_cache crates.io Documentation

Rasterization cache for ab_glyph used in glyph_brush.

  • Manages a texture. Draws glyphs into it and provides texture rect lookup for glyphs.
  • Automatic re-use & reordering when needed.
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 */}
}

Example

See the draw_cache_guts example to see how it works (run it from the top level).

cargo run --example draw_cache_guts

Dependencies

~0.6–0.9MB
~19K SLoC