Expand description
This crate provides the tools for positioning and rendering text in Bevy.
§Font
Fonts contain information for drawing glyphs, which are shapes that typically represent a single character, but in some cases part of a “character” (grapheme clusters) or more than one character (ligatures).
A font face is part of a font family, and is distinguished by its style (e.g. italic), its weight (e.g. bold) and its stretch (e.g. condensed).
In Bevy, Fonts are loaded by the FontLoader as assets.
§TextPipeline
The TextPipeline resource does all of the heavy lifting for rendering text.
UI Text is first measured by creating a TextMeasureInfo in TextPipeline::create_text_measure,
which is called by the measure_text_system system of bevy_ui.
Note that text measurement is only relevant in a UI context.
With the actual text bounds defined, the bevy_ui::widget::text::text_system system (in a UI context)
or bevy_sprite::text2d::update_text2d_layout system (in a 2d world space context)
passes it into TextPipeline::update_text_layout_info, which:
- updates a
Bufferfrom theTextSpans, generating newFontAtlases if necessary. - iterates over each glyph in the
Bufferto create aPositionedGlyph, retrieving glyphs from the cache, or rasterizing to aFontAtlasif necessary. PositionedGlyphs are stored in aTextLayoutInfo, which contains all the information that downstream systems need for rendering.
Modules§
- prelude
- The text prelude.
Structs§
- Computed
Text Block - Computed information for a text block.
- Cosmic
Buffer - Wrapper for
cosmic_text::Buffer - Cosmic
Font System - A wrapper resource around a
cosmic_text::FontSystem - Font
- An
Assetthat contains the data for a loaded font, if loaded as an asset. - Font
Atlas - Rasterized glyphs are cached, stored in, and retrieved from, a
FontAtlas. - Font
Atlas Key - Identifies the font atlases for a particular font in
FontAtlasSet - Font
Atlas Set - Set of rasterized fonts stored in
FontAtlases. - Font
Face Info - Information about a font collected as part of preparing for text layout.
- Font
Feature Tag - An OpenType font feature tag.
- Font
Features - OpenType features for .otf fonts that support them.
- Font
Features Builder - A builder for
FontFeatures. - Font
Loader - An
AssetLoaderforFonts, for use by theAssetServer - Font
Weight - How thick or bold the strokes of a font appear.
- Glyph
Atlas Info - Information about a glyph in an atlas.
- Glyph
Atlas Location - The location of a glyph in an atlas, and how it should be positioned when placed.
- Positioned
Glyph - A glyph of a font, typically representing a single character, positioned in screen space.
- RunGeometry
- Geometry of a text run used to render text decorations like background colors, strikethrough, and underline.
A run in
bevy_textis a contiguous sequence of glyphs on a line that share the same text attributes like font, font size, and line height. - Strikethrough
- A text entity with this component is drawn with strikethrough.
- Strikethrough
Color - Color for the text’s strikethrough. If this component is not present, its
TextColorwill be used. - Swash
Cache - A wrapper resource around a
cosmic_text::SwashCache - Text2d
Update Systems - System set in
PostUpdatewhere all 2d text update systems are executed. - Text
Background Color - The background color of the text for this section.
- Text
Bounds - The maximum width and height of text. The text will wrap according to the specified size.
- Text
Color - The color of the text for this section.
- Text
Entity - A sub-entity of a
ComputedTextBlock. - Text
Font TextFontdetermines the style of a text span within aComputedTextBlock, specifically the font face, the font size, the line height, and the antialiasing method.- Text
Iter Scratch - Scratch buffer used to store intermediate state when iterating over text spans.
- Text
Layout - Component with text format settings for a block of text.
- Text
Layout Info - Render information for a corresponding text block.
- Text
Measure Info - Size information for a corresponding
ComputedTextBlockcomponent. - Text
Pipeline - The
TextPipelineis used to layout and render text blocks (seeText/Text2d). - Text
Plugin - Adds text rendering support to an app.
- Text
Reader - System parameter for reading text spans in a text block.
- Text
Span - A span of text in a tree of spans.
- Text
Span Iter - Iterator returned by
TextReader::iter. - Text
Writer - System parameter for reading and writing text spans in a text block.
- Underline
- Add to a text entity to draw its text with underline.
- Underline
Color - Color for the text’s underline. If this component is not present, its
TextColorwill be used.
Enums§
- Font
Loader Error - Possible errors that can be produced by
FontLoader - Font
Smoothing - Determines which antialiasing method to use when rendering text. By default, text is rendered with grayscale antialiasing, but this can be changed to achieve a pixelated look.
- Justify
- Describes the horizontal alignment of multiple lines of text relative to each other.
- Line
Break - Determines how lines will be broken when preventing text from running out of bounds.
- Line
Height - Specifies the height of each line of text for
TextandText2d - Text
Error - Errors related to the textsystem
Constants§
- DEFAULT_
FONT_ DATA - The raw data for the default font used by
bevy_text
Traits§
- Text
Root - Helper trait for the root text component in a text block.
- Text
Span Access - Helper trait for using the
TextReaderandTextWritersystem params. - Text
Span Component - Helper trait for the text span components in a text block.
Functions§
- add_
glyph_ to_ atlas - Adds the given subpixel-offset glyph to the given font atlases
- detect_
text_ needs_ rerender - System that detects changes to text blocks and sets
ComputedTextBlock::should_rerender. - free_
unused_ font_ atlases_ system - A system that automatically frees unused texture atlases when a font asset is removed.
- get_
glyph_ atlas_ info - Generates the
GlyphAtlasInfofor the given subpixel-offset glyph. - get_
outlined_ glyph_ texture - Get the texture of the glyph as a rendered image, and its offset
- load_
font_ to_ fontdb - Add the font to the cosmic text’s
FontSystem’s in-memory font database