Crate gfx_glyph

Source
Expand description

Fast GPU cached text rendering using gfx-rs & ab_glyph.

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.
  • GPU cache logic to dynamically maintain a GPU texture of rendered glyphs.

§Example

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());

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)?;

Modules§

ab_glyph
Re-exported ab_glyph types.
legacy

Structs§

DrawBuilder
Short-lived builder for drawing glyphs, constructed from GlyphBrush::use_queue.
Extra
Default extra field type. Non-layout data for vertex generation.
FontId
Id for a font.
GlyphBrush
Object allowing glyph drawing, containing cache state. Manages glyph positioning cacheing, glyph draw caching & efficient GPU texture cache updating and re-sizing on demand.
GlyphBrushBuilder
Builder for a GlyphBrush.
OwnedSection
OwnedText
Section
An object that contains all the info to render a varied section of text. That is one including many parts with differing fonts/scales/colors bowing to a single layout.
SectionGeometry
SectionGlyph
A positioned glyph with info relating to the SectionText from which it was derived.
SectionText
Text to layout together using a font & scale.
Text
SectionText + extra.

Enums§

BuiltInLineBreaker
Built-in linebreaking logic.
HorizontalAlign
Describes horizontal alignment preference for positioning & bounds.
Layout
Built-in GlyphPositioner implementations.
LineBreak
Indicator that a character is a line break, soft or hard. Includes the offset (byte-index) position.
VerticalAlign
Describes vertical alignment preference for positioning & bounds. Currently a placeholder for future functionality.

Traits§

GlyphCruncher
Common glyph layout logic.
GlyphPositioner
Logic to calculate glyph positioning using Font, SectionGeometry and SectionText.
LineBreaker
Producer of a LineBreak iterator. Used to allow to the Layout to be line break aware in a generic way.

Functions§

default_transform
Returns the default 4 dimensional matrix orthographic projection used for drawing.

Type Aliases§

SectionGlyphIter
SectionGlyph iterator.