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, Font
s 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 text2d::update_text2d_layout
system (in a 2d world space context)
passes it into TextPipeline::queue_text
, which:
- updates a
Buffer
from theTextSpan
s, generating newFontAtlasSet
s if necessary. - iterates over each glyph in the
Buffer
to create aPositionedGlyph
, retrieving glyphs from the cache, or rasterizing to aFontAtlas
if necessary. PositionedGlyph
s are stored in aTextLayoutInfo
, which contains all the information that downstream systems need for rendering.
Re-exports§
pub use cosmic_text;
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
Asset
that 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
FontAtlas
es, for a given font face. - Font
Atlas Sets - A map of font faces to their corresponding
FontAtlasSet
s. - Font
Loader - An
AssetLoader
forFont
s, for use by theAssetServer
- Font
Weight - Specifies the weight of glyphs in the font, their degree of blackness or stroke thickness.
- 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
- The top-level 2D text component.
- 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 TextFont
determines the style of a text span within aComputedTextBlock
, specifically the font face, the font size, and the color.- 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
ComputedTextBlock
component. - Text
Pipeline - The
TextPipeline
is 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.
- Update2d
Text - System set in
PostUpdate
where all 2d text update systems are executed.
Enums§
- Font
Family - An owned version of
Family
- 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.
- Font
Stretch - A face width.
- Font
Style - Allows italic or oblique faces to be selected.
- Justify
Text - 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
Text
andText2d
- Text
Error - Errors related to the textsystem
- YAxis
Orientation - Text is rendered for two different view projections;
2-dimensional text (
Text2d
) is rendered in “world space” with aBottomToTop
Y-axis, while UI is rendered with aTopToBottom
Y-axis. This matters for text because the glyph positioning is different in either layout. ForTopToBottom
, 0 is the top of the text, while forBottomToTop
0 is the bottom.
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
TextReader
andTextWriter
system params. - Text
Span Component - Helper trait for the text span components in a text block.
Functions§
- calculate_
bounds_ text2d - System calculating and inserting an
Aabb
component to entities with someTextLayoutInfo
andAnchor
components, and without aNoFrustumCulling
component. - detect_
text_ needs_ rerender - System that detects changes to text blocks and sets
ComputedTextBlock::should_rerender
. - extract_
text2d_ sprite - This system extracts the sprites from the 2D text components and adds them to the “render world”.
- remove_
dropped_ font_ atlas_ sets - A system that cleans up
FontAtlasSet
s for removedFont
s - scale_
value - Scales
value
byfactor
. - update_
text2d_ layout - Updates the layout and size information whenever the text or style is changed.
This information is computed by the
TextPipeline
on insertion, then stored.
Type Aliases§
- Text2d
Reader - 2d alias for
TextReader
. - Text2d
Writer - 2d alias for
TextWriter
.