gfx_glyph
Fast GPU cached text rendering using gfx-rs & rusttype.
Makes use of three kinds of caching to optimise frame performance.
- Caching of glyph positioning output to avoid repeated cost of identical text rendering on sequential frames.
- Caches draw calculations to avoid repeated cost of identical text rendering on sequential frames.
- Uses rusttype's built-in GPU cache logic to maintain a GPU texture of rendered glyphs. Also manages dynamic growth of the GPU cache when needed.
extern crate gfx_glyph;
use ;
let arial: & = include_bytes!;
let mut glyph_brush = using_font
.build;
let section = Section ;
glyph_brush.queue;
glyph_brush.queue;
glyph_brush.draw_queued.unwrap;
Limitations
The current implementation only supports OpenGL 3.0 or later. But other rendering languages (that are supported by gfx) should be easy enough to add. Send in your PRs!
Examples
Have a look at
cargo run --example paragraph --release
cargo run --example performance --release
Changelog
0.3
- Use
Into<SharedBytes>
instead of explicit&[u8]
for font byte input to improve flexibility.
0.2
- Adopt default line breaking logic according to the Unicode Standard Annex #14 with
StandardLineBreaker
(included inLayout::default()
). ALineBreaker
implementation can be provided instead of using one of these.