Represents a collection of shaped text runs. More...
#include <text_frame.h>
Public Member Functions | |
| TextFrame () | |
| TextFrame (std::vector< TextRun > &runs, Rect bounds, bool has_color, const PathCreator &path_creator={}) | |
| ~TextFrame () | |
| Rect | GetBounds () const |
| The conservative bounding box for this text frame. More... | |
| size_t | GetRunCount () const |
| The number of runs in this text frame. More... | |
| const std::vector< TextRun > & | GetRuns () const |
| Returns a reference to all the text runs in this frame. More... | |
| bool | HasColor () const |
| Returns whether any glyph in any run in this TextFrame is colored and so would be cached with color already baked in to the colored glyph. More... | |
| GlyphAtlas::Type | GetAtlasType () const |
| The type of atlas this run should be place in. More... | |
| std::optional< Glyph > | AsSingleGlyph () const |
| If this text frame contains a single glyph (such as for an Icon), then return it, otherwise std::nullopt. More... | |
| const Font & | GetFont () const |
| Return the font of the first glyph run. More... | |
| fml::StatusOr< flutter::DlPath > | GetPath () const |
Static Public Member Functions | |
| static SubpixelPosition | ComputeSubpixelPosition (const TextRun::GlyphPosition &glyph_position, AxisAlignment alignment, const Matrix &transform) |
| static Rational | RoundScaledFontSize (Scalar scale) |
| static Rational | RoundScaledFontSize (Rational scale) |
Represents a collection of shaped text runs.
This object is typically the entrypoint in the Impeller type
rendering subsystem.
Definition at line 26 of file text_frame.h.
|
default |
| impeller::TextFrame::TextFrame | ( | std::vector< TextRun > & | runs, |
| Rect | bounds, | ||
| bool | has_color, | ||
| const PathCreator & | path_creator = {} |
||
| ) |
Definition at line 16 of file text_frame.cc.
|
default |
| std::optional< Glyph > impeller::TextFrame::AsSingleGlyph | ( | ) | const |
If this text frame contains a single glyph (such as for an Icon), then return it, otherwise std::nullopt.
Definition at line 125 of file text_frame.cc.
|
static |
Definition at line 94 of file text_frame.cc.
References impeller::ComputeFractionalPosition(), impeller::kAll, impeller::kNone, impeller::kSubpixel00, impeller::kX, impeller::kY, impeller::TextRun::GlyphPosition::position, transform, impeller::TPoint< T >::x, and impeller::TPoint< T >::y.
Referenced by impeller::TextContents::ComputeVertexData().
| GlyphAtlas::Type impeller::TextFrame::GetAtlasType | ( | ) | const |
The type of atlas this run should be place in.
This return value depends primarily on the HasColor
property.
Definition at line 39 of file text_frame.cc.
References impeller::GlyphAtlas::kAlphaBitmap, and impeller::GlyphAtlas::kColorBitmap.
| Rect impeller::TextFrame::GetBounds | ( | ) | const |
The conservative bounding box for this text frame.
Definition at line 27 of file text_frame.cc.
| const Font & impeller::TextFrame::GetFont | ( | ) | const |
Return the font of the first glyph run.
Definition at line 121 of file text_frame.cc.
| fml::StatusOr< flutter::DlPath > impeller::TextFrame::GetPath | ( | ) | const |
Definition at line 114 of file text_frame.cc.
| size_t impeller::TextFrame::GetRunCount | ( | ) | const |
The number of runs in this text frame.
Definition at line 31 of file text_frame.cc.
| const std::vector< TextRun > & impeller::TextFrame::GetRuns | ( | ) | const |
Returns a reference to all the text runs in this frame.
Definition at line 35 of file text_frame.cc.
| bool impeller::TextFrame::HasColor | ( | ) | const |
Returns whether any glyph in any run in this TextFrame is colored and so would be cached with color already baked in to the colored glyph.
Non-bitmap/COLR fonts only store an alpha bitmap, but COLR fonts can potentially use the paint color in the glyph atlas, so the color the text is being rendered with must be considered as part of the cache key.
Definition at line 44 of file text_frame.cc.
Definition at line 66 of file text_frame.cc.
References impeller::Rational::GetDenominator(), and impeller::Rational::GetNumerator().
Definition at line 55 of file text_frame.cc.
References impeller::kZero.
Referenced by impeller::TextContents::ComputeVertexData(), and impeller::testing::TEST_P().