#font #ttf #truetype #gfx #text

gfx_glyph

Fast GPU cached text rendering using gfx-rs & ab_glyph

41 releases

0.17.1 Feb 10, 2023
0.17.0 May 23, 2020
0.16.0 Sep 20, 2019
0.15.0 May 3, 2019
0.6.4 Nov 24, 2017

#26 in Data formats

Download history 1285/week @ 2023-08-15 560/week @ 2023-08-22 728/week @ 2023-08-29 1346/week @ 2023-09-05 899/week @ 2023-09-12 802/week @ 2023-09-19 576/week @ 2023-09-26 737/week @ 2023-10-03 1118/week @ 2023-10-10 1189/week @ 2023-10-17 1254/week @ 2023-10-24 972/week @ 2023-10-31 1267/week @ 2023-11-07 988/week @ 2023-11-14 1178/week @ 2023-11-21 850/week @ 2023-11-28

4,412 downloads per month
Used in 17 crates (6 directly)

Apache-2.0

185KB
3K SLoC

gfx_glyph crates.io Documentation

Fast GPU cached text rendering using gfx-rs v0.18 & glyph-brush.

use gfx_glyph::{ab_glyph::FontArc, GlyphBrushBuilder, Section, Text};

let dejavu = FontArc::try_from_slice(include_bytes!("../../fonts/DejaVuSans.ttf"))?;
let mut glyph_brush = GlyphBrushBuilder::using_font(dejavu).build(gfx_factory.clone());

// set the text scale, font, color, position, etc
let section = Section::default()
    .add_text(Text::new("Hello gfx_glyph"));

glyph_brush.queue(section);
glyph_brush.queue(some_other_section);

glyph_brush.use_queue().draw(&mut gfx_encoder, &gfx_color)?;

Examples

Have a look at

  • cargo run --example paragraph --release
  • cargo run --example performance --release
  • cargo run --example varied --release
  • cargo run --example depth --release

Limitations

The current implementation supports OpenGL (3.2 or later) only. Use glyph-brush directly if this is an issue.

Dependencies

~2.2–3MB
~61K SLoC