Crate glyph_brush
source ·Expand description
extern crate glyph_brush;
use glyph_brush::{BrushAction, BrushError, GlyphBrushBuilder, Section};
let dejavu: &[u8] = include_bytes!("../../fonts/DejaVuSans.ttf");
let mut glyph_brush = GlyphBrushBuilder::using_font_bytes(dejavu).build();
glyph_brush.queue(Section {
text: "Hello glyph_brush",
..Section::default()
});
glyph_brush.queue(some_other_section);
match glyph_brush.process_queued(
screen_dimensions,
|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
Re-exported rusttype types.
Macros
Macro to delegate builder methods to an inner
glyph_brush::GlyphBrushBuilder
Structs
Id for a font
Object allowing glyph drawing, containing cache state. Manages glyph positioning cacheing,
glyph draw caching & efficient GPU texture cache updating.
Builder for a
GlyphBrush
.Cut down version of a
GlyphBrush
that can calculate pixel bounds,
but is unable to actually render anything.Builder for a
GlyphCalculator
.GlyphCalculator
scoped cache lock.Data used to generate vertex information for a single glyph
An object that contains all the info to render a section of text.
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.
Enums
Actions that should be taken after processing queue data
Built-in linebreaking logic.
Describes horizontal alignment preference for positioning & bounds.
Built-in
GlyphPositioner
implementations.Indicator that a character is a line break, soft or hard. Includes the offset (byte-index)
position.
Describes vertical alignment preference for positioning & bounds. Currently a placeholder
for future functionality.
Traits
Common glyph layout logic.