Flutter Engine
 
Loading...
Searching...
No Matches
impeller::interop::Paragraph Class Referencefinal

#include <paragraph.h>

Inheritance diagram for impeller::interop::Paragraph:
impeller::interop::Object< Paragraph, IMPELLER_INTERNAL_HANDLE_NAME(ImpellerParagraph)> impeller::interop::ObjectBase

Public Member Functions

 Paragraph (std::unique_ptr< txt::Paragraph > paragraph)
 
 ~Paragraph () override
 
 Paragraph (const Paragraph &)=delete
 
Paragraphoperator= (const Paragraph &)=delete
 
Scalar GetMaxWidth () const
 
Scalar GetHeight () const
 
Scalar GetLongestLineWidth () const
 
Scalar GetMinIntrinsicWidth () const
 
Scalar GetMaxIntrinsicWidth () const
 
Scalar GetIdeographicBaseline () const
 
Scalar GetAlphabeticBaseline () const
 
uint32_t GetLineCount () const
 
const std::unique_ptr< txt::Paragraph > & GetHandle () const
 
ScopedObject< LineMetricsGetLineMetrics () const
 
ScopedObject< GlyphInfoGetGlyphInfoAtCodeUnitIndex (size_t code_unit_index) const
 
ScopedObject< GlyphInfoGetClosestGlyphInfoAtParagraphCoordinates (double x, double y) const
 
ImpellerRange GetWordBoundary (size_t code_unit_index) const
 
- Public Member Functions inherited from impeller::interop::ObjectBase
 ObjectBase ()=default
 
virtual ~ObjectBase ()=default
 
 ObjectBase (const ObjectBase &)=delete
 
 ObjectBase (ObjectBase &&)=delete
 
ObjectBaseoperator= (const ObjectBase &)=delete
 
ObjectBaseoperator= (ObjectBase &&)=delete
 
void Retain ()
 
void Release ()
 
uint64_t GetRefCountForTests () const
 

Additional Inherited Members

- Public Types inherited from impeller::interop::Object< Paragraph, IMPELLER_INTERNAL_HANDLE_NAME(ImpellerParagraph)>
using InteropClass = Paragraph
 
using InteropCSibling = IMPELLER_INTERNAL_HANDLE_NAME(ImpellerParagraph)
 
- Static Public Member Functions inherited from impeller::interop::ObjectBase
static void SafeRetain (void *ptr)
 
static void SafeRelease (void *ptr)
 

Detailed Description

An immutable fully laid out paragraph.

Definition at line 19 of file paragraph.h.

Constructor & Destructor Documentation

◆ Paragraph() [1/2]

impeller::interop::Paragraph::Paragraph ( std::unique_ptr< txt::Paragraph paragraph)
explicit

Definition at line 9 of file paragraph.cc.

10 : paragraph_(std::move(paragraph)) {}

◆ ~Paragraph()

impeller::interop::Paragraph::~Paragraph ( )
overridedefault

◆ Paragraph() [2/2]

impeller::interop::Paragraph::Paragraph ( const Paragraph )
delete

Member Function Documentation

◆ GetAlphabeticBaseline()

Scalar impeller::interop::Paragraph::GetAlphabeticBaseline ( ) const

Definition at line 38 of file paragraph.cc.

38 {
39 return paragraph_->GetAlphabeticBaseline();
40}

◆ GetClosestGlyphInfoAtParagraphCoordinates()

ScopedObject< GlyphInfo > impeller::interop::Paragraph::GetClosestGlyphInfoAtParagraphCoordinates ( double  x,
double  y 
) const

Definition at line 70 of file paragraph.cc.

72 {
73 skia::textlayout::Paragraph::GlyphInfo info = {};
74 if (paragraph_->GetClosestGlyphInfoAtCoordinate(x, y, &info)) {
75 return Create<GlyphInfo>(info);
76 }
77 return nullptr;
78}
int32_t x
double y

References x, and y.

◆ GetGlyphInfoAtCodeUnitIndex()

ScopedObject< GlyphInfo > impeller::interop::Paragraph::GetGlyphInfoAtCodeUnitIndex ( size_t  code_unit_index) const

Definition at line 61 of file paragraph.cc.

62 {
63 skia::textlayout::Paragraph::GlyphInfo info = {};
64 if (paragraph_->GetGlyphInfoAt(code_unit_index, &info)) {
65 return Create<GlyphInfo>(info);
66 }
67 return nullptr;
68}

◆ GetHandle()

const std::unique_ptr< txt::Paragraph > & impeller::interop::Paragraph::GetHandle ( ) const

Definition at line 46 of file paragraph.cc.

46 {
47 return paragraph_;
48}

Referenced by impeller::interop::DisplayListBuilder::DrawParagraph().

◆ GetHeight()

Scalar impeller::interop::Paragraph::GetHeight ( ) const

Definition at line 18 of file paragraph.cc.

18 {
19 return paragraph_->GetHeight();
20}

◆ GetIdeographicBaseline()

Scalar impeller::interop::Paragraph::GetIdeographicBaseline ( ) const

Definition at line 34 of file paragraph.cc.

34 {
35 return paragraph_->GetIdeographicBaseline();
36}

◆ GetLineCount()

uint32_t impeller::interop::Paragraph::GetLineCount ( ) const

Definition at line 42 of file paragraph.cc.

42 {
43 return paragraph_->GetNumberOfLines();
44}

◆ GetLineMetrics()

ScopedObject< LineMetrics > impeller::interop::Paragraph::GetLineMetrics ( ) const

Definition at line 50 of file paragraph.cc.

50 {
51 // Line metrics are expensive to calculate and the recommendation is that
52 // the metric after each layout must be cached. But interop::Paragraphs are
53 // immutable. So do the caching on behalf of the caller.
54 if (lazy_line_metrics_) {
55 return lazy_line_metrics_;
56 }
57 lazy_line_metrics_ = Create<LineMetrics>(paragraph_->GetLineMetrics());
58 return lazy_line_metrics_;
59}

◆ GetLongestLineWidth()

Scalar impeller::interop::Paragraph::GetLongestLineWidth ( ) const

Definition at line 22 of file paragraph.cc.

22 {
23 return paragraph_->GetLongestLine();
24}

◆ GetMaxIntrinsicWidth()

Scalar impeller::interop::Paragraph::GetMaxIntrinsicWidth ( ) const

Definition at line 30 of file paragraph.cc.

30 {
31 return paragraph_->GetMaxIntrinsicWidth();
32}

◆ GetMaxWidth()

Scalar impeller::interop::Paragraph::GetMaxWidth ( ) const

Definition at line 14 of file paragraph.cc.

14 {
15 return paragraph_->GetMaxWidth();
16}

◆ GetMinIntrinsicWidth()

Scalar impeller::interop::Paragraph::GetMinIntrinsicWidth ( ) const

Definition at line 26 of file paragraph.cc.

26 {
27 return paragraph_->GetMinIntrinsicWidth();
28}

◆ GetWordBoundary()

ImpellerRange impeller::interop::Paragraph::GetWordBoundary ( size_t  code_unit_index) const

Definition at line 80 of file paragraph.cc.

80 {
81 const auto range = paragraph_->GetWordBoundary(code_unit_index);
82 return ImpellerRange{range.start, range.end};
83}
uint64_t start
Definition impeller.h:525

References ImpellerRange::start.

◆ operator=()

Paragraph & impeller::interop::Paragraph::operator= ( const Paragraph )
delete

The documentation for this class was generated from the following files: