Crates.io | glyph_brush_draw_cache |
lib.rs | glyph_brush_draw_cache |
version | 0.1.6 |
source | src |
created_at | 2020-05-23 15:37:26.808657 |
updated_at | 2024-06-22 11:47:30.850418 |
description | Texture draw cache for ab_glyph |
homepage | |
repository | https://github.com/alexheretic/glyph-brush |
max_upload_size | |
id | 244911 |
size | 156,574 |
Rasterization cache for ab_glyph used in glyph_brush.
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 */}
}
See the draw_cache_guts example to see how it works (run it from the top level).
cargo run --example draw_cache_guts