Flutter Impeller
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

References x.

◆ 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: