2#ifndef Paragraph_DEFINED
3#define Paragraph_DEFINED
10#include <unordered_set>
17class ParagraphPainter;
270 virtual std::vector<FontInfo>
getFonts()
const = 0;
virtual std::vector< TextBox > getRectsForRange(unsigned start, unsigned end, RectHeightStyle rectHeightStyle, RectWidthStyle rectWidthStyle)=0
virtual bool getGlyphInfoAtUTF16Offset(size_t codeUnitIndex, GlyphInfo *glyphInfo)=0
SkScalar fIdeographicBaseline
virtual SkRange< size_t > getWordBoundary(unsigned offset)=0
SkScalar fAlphabeticBaseline
SkScalar getAlphabeticBaseline()
virtual std::unordered_set< SkUnichar > unresolvedCodepoints()=0
ParagraphStyle fParagraphStyle
Paragraph(ParagraphStyle style, sk_sp< FontCollection > fonts)
virtual void updateForegroundPaint(size_t from, size_t to, SkPaint paint)=0
virtual int getPath(int lineNumber, SkPath *dest)=0
virtual std::vector< TextBox > getRectsForPlaceholders()=0
virtual void updateFontSize(size_t from, size_t to, SkScalar fontSize)=0
virtual bool containsEmoji(SkTextBlob *textBlob)=0
virtual int getLineNumberAt(TextIndex codeUnitIndex) const =0
virtual SkFont getFontAt(TextIndex codeUnitIndex) const =0
virtual bool getGlyphClusterAt(TextIndex codeUnitIndex, GlyphClusterInfo *glyphInfo)=0
virtual std::vector< FontInfo > getFonts() const =0
static SkPath GetPath(SkTextBlob *textBlob)
virtual void updateTextAlign(TextAlign textAlign)=0
virtual int getLineNumberAtUTF16Offset(size_t codeUnitIndex)=0
virtual bool getClosestUTF16GlyphInfoAt(SkScalar dx, SkScalar dy, GlyphInfo *glyphInfo)=0
virtual void extendedVisit(const ExtendedVisitor &)=0
SkScalar fMaxIntrinsicWidth
virtual size_t lineNumber()=0
SkScalar fMinIntrinsicWidth
virtual TextRange getActualTextRange(int lineNumber, bool includeSpaces) const =0
virtual SkFont getFontAtUTF16Offset(size_t codeUnitIndex)=0
virtual bool getClosestGlyphClusterAt(SkScalar dx, SkScalar dy, GlyphClusterInfo *glyphInfo)=0
virtual PositionWithAffinity getGlyphPositionAtCoordinate(SkScalar dx, SkScalar dy)=0
virtual void visit(const Visitor &)=0
virtual void updateBackgroundPaint(size_t from, size_t to, SkPaint paint)=0
SkScalar getMinIntrinsicWidth()
SkScalar getIdeographicBaseline()
virtual void layout(SkScalar width)=0
virtual bool containsColorFontOrBitmap(SkTextBlob *textBlob)=0
SkScalar getLongestLine()
virtual int32_t unresolvedGlyphs()=0
sk_sp< FontCollection > fFontCollection
virtual void markDirty()=0
SkScalar getMaxIntrinsicWidth()
virtual void getLineMetrics(std::vector< LineMetrics > &)=0
virtual bool getLineMetricsAt(int lineNumber, LineMetrics *lineMetrics) const =0
std::function< void(int lineNumber, const ExtendedVisitorInfo *)> ExtendedVisitor
virtual void paint(ParagraphPainter *painter, SkScalar x, SkScalar y)=0
@ kWhiteSpace_VisitorFlag
virtual ~Paragraph()=default
virtual void paint(SkCanvas *canvas, SkScalar x, SkScalar y)=0
std::function< void(int lineNumber, const VisitorInfo *)> Visitor
Dart_NativeFunction function
skia_private::AutoTArray< sk_sp< SkImageFilter > > filters TypedMatrix matrix TypedMatrix matrix SkScalar dx
it will be possible to load the file into Perfetto s trace viewer disable asset fonts
font
Font Metadata and Metrics.
const uint32_t * utf8Starts
FontInfo(const FontInfo &)=default
FontInfo(const SkFont &font, const TextRange textRange)
virtual ~FontInfo()=default
TextRange fClusterTextRange
TextDirection fGlyphClusterPosition
TextRange fGraphemeClusterTextRange
SkRect fGraphemeLayoutBounds
const SkPoint * positions
const uint32_t * utf8Starts