Crate glyph_brush

Source
Expand description
use glyph_brush::{
    ab_glyph::FontArc, BrushAction, BrushError, GlyphBrushBuilder, Section, Text,
};

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

glyph_brush.queue(Section::default().add_text(Text::new("Hello glyph_brush")));
glyph_brush.queue(some_other_section);

match glyph_brush.process_queued(
    |rect, tex_data| update_texture(rect, tex_data),
    |vertex_data| into_vertex(vertex_data),
) {
    Ok(BrushAction::Draw(vertices)) => {
        // Draw new vertices.
    }
    Ok(BrushAction::ReDraw) => {
        // Re-draw last frame's vertices unmodified.
    }
    Err(BrushError::TextureTooSmall { suggested }) => {
        // Enlarge texture + glyph_brush texture cache and retry.
    }
}

Modules§

ab_glyph
Re-exported ab_glyph types.
legacy

Macros§

delegate_glyph_brush_builder_fns
Macro to delegate builder methods to an inner glyph_brush::GlyphBrushBuilder

Structs§

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 caching, glyph draw caching & efficient GPU texture cache updating.
GlyphBrushBuilder
Builder for a GlyphBrush.
GlyphCalculator
Cut down version of a GlyphBrush that can calculate pixel bounds, but is unable to actually render anything.
GlyphCalculatorBuilder
Builder for a GlyphCalculator.
GlyphCalculatorGuard
GlyphCalculator scoped cache lock.
GlyphVertex
Data used to generate vertex information for a single glyph
OwnedSection
OwnedText
Rectangle
A rectangle, with top-left corner at min, and bottom-right corner at max. Both field are in [offset from left, offset from top] format.
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.
SectionBuilder
Section builder.
SectionGeometry
SectionGlyph
A positioned glyph with info relating to the SectionText (or glyph_brush Section::text) from which it was derived.
SectionText
Text to layout together using a font & scale.
Text
SectionText + extra.

Enums§

BrushAction
Actions that should be taken after processing queue data
BrushError
BuiltInLineBreaker
Built-in linebreaking logic.
GlyphChange
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.
ToSectionText

Type Aliases§

Color
DefaultSectionHasher
A “practically collision free” Section hasher
SectionGlyphIter
SectionGlyph iterator.