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::queue_text, which:
- updates a
Bufferfrom theTextSpans, generating newFontAtlasSets 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 a font size and smoothing method in a
FontAtlasSet. - Font
Atlas Set - A map of font sizes to their corresponding
FontAtlases, for a given font face. - Font
Atlas Sets - A map of font faces to their corresponding
FontAtlasSets. - Font
Face Info - Information about a font collected as part of preparing for text layout.
- Font
Loader - An
AssetLoaderforFonts, for use by theAssetServer - 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.
- 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.
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§
- detect_
text_ needs_ rerender - System that detects changes to text blocks and sets
ComputedTextBlock::should_rerender. - load_
font_ to_ fontdb - Add the font to the cosmic text’s
FontSystem’s in-memory font database - remove_
dropped_ font_ atlas_ sets - A system that cleans up
FontAtlasSets for removedFonts
Type Aliases§
- Update2d
Text Deprecated - Deprecated alias for
Text2dUpdateSystems.