Expand description
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.
- GPU cache logic to dynamically maintain a GPU texture of rendered glyphs.
Example
extern crate gfx_glyph;
use gfx_glyph::{GlyphBrushBuilder, Section};
let dejavu: &[u8] = include_bytes!("../../fonts/DejaVuSans.ttf");
let mut glyph_brush = GlyphBrushBuilder::using_font_bytes(dejavu).build(gfx_factory.clone());
let section = Section {
text: "Hello gfx_glyph",
..Section::default()
};
glyph_brush.queue(section);
glyph_brush.queue(some_other_section);
glyph_brush.draw_queued(&mut gfx_encoder, &gfx_color, &gfx_depth)?;
Modules
Re-exported rusttype types.
Structs
A single font. This may or may not own the font data.
Id for a font
Object allowing glyph drawing, containing cache state. Manages glyph positioning cacheing,
glyph draw caching & efficient GPU texture cache updating and re-sizing on demand.
Builder for a
GlyphBrush
.A point in 2-dimensional space, with each dimension of type
N
.A glyph augmented with positioning and scaling information. You can query
such a glyph for information that depends on the scale and position of the
glyph.
A rectangle, with top-left corner at
min
, and bottom-right corner at
max
.Defines the size of a rendered face of a font, in pixels, horizontally and
vertically. A vertical scale of
y
pixels means that the distance betwen
the ascent and descent lines (see VMetrics
) of the face will be y
pixels. If x
and y
are equal the scaling is uniform. Non-uniform scaling
by a factor f in the horizontal direction is achieved by setting x
equal
to f times y
.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
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.
SharedBytes
handles the lifetime of font data used in RustType. The data
is either a shared reference to externally owned data, or managed by
reference counting. SharedBytes
can be conveniently used with From
and
Into
, and dereferences to the contained bytes.Describes vertical alignment preference for positioning & bounds. Currently a placeholder
for future functionality.
Traits
Common glyph layout logic.
Type Definitions
PositionedGlyph
iterator.