Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
paragraph_builder_client_icu.cc File Reference
#include "flutter/skwasm/export.h"
#include "flutter/skwasm/live_objects.h"
#include "flutter/skwasm/text/text_types.h"
#include "flutter/skwasm/wrappers.h"
#include "third_party/skia/modules/skparagraph/include/ParagraphBuilder.h"
#include "third_party/skia/modules/skunicode/include/SkUnicode_client.h"

Go to the source code of this file.

Functions

SKWASM_EXPORT bool skwasm_isHeavy ()
 
SKWASM_EXPORT Skwasm::ParagraphBuilderparagraphBuilder_create (Skwasm::ParagraphStyle *style, Skwasm::FlutterFontCollection *collection)
 
SKWASM_EXPORT Skwasm::ParagraphparagraphBuilder_build (Skwasm::ParagraphBuilder *builder)
 
SKWASM_EXPORT void paragraphBuilder_setGraphemeBreaksUtf16 (Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::Position > *breaks)
 
SKWASM_EXPORT void paragraphBuilder_setWordBreaksUtf16 (Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::Position > *breaks)
 
SKWASM_EXPORT void paragraphBuilder_setLineBreaksUtf16 (Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::LineBreakBefore > *breaks)
 

Function Documentation

◆ paragraphBuilder_build()

SKWASM_EXPORT Skwasm::Paragraph * paragraphBuilder_build ( Skwasm::ParagraphBuilder builder)

Definition at line 30 of file paragraph_builder_client_icu.cc.

31 {
33 auto [words, grapheme_breaks, line_breaks] =
34 builder->skia_paragraph_builder->getClientICUData();
35 auto text = builder->skia_paragraph_builder->getText();
36 sk_sp<SkUnicode> client_icu =
37 SkUnicodes::Client::Make(text, words, grapheme_breaks, line_breaks);
38 builder->skia_paragraph_builder->SetUnicode(client_icu);
39 return new Skwasm::Paragraph{
40 builder->skia_paragraph_builder->Build(),
41 std::move(builder->paints),
42 };
43}
std::u16string text
uint32_t live_paragraph_count
std::vector< flutter::DlPaint > paints
Definition text_types.h:45
std::unique_ptr< skia::textlayout::ParagraphBuilder > skia_paragraph_builder
Definition text_types.h:44

References Skwasm::live_paragraph_count, Skwasm::ParagraphBuilder::paints, Skwasm::ParagraphBuilder::skia_paragraph_builder, and text.

◆ paragraphBuilder_create()

SKWASM_EXPORT Skwasm::ParagraphBuilder * paragraphBuilder_create ( Skwasm::ParagraphStyle style,
Skwasm::FlutterFontCollection collection 
)

Definition at line 16 of file paragraph_builder_client_icu.cc.

18 {
20 std::vector<flutter::DlPaint> paints;
21 style->text_style.PopulatePaintIds(paints);
22 style->skia_paragraph_style.setTextStyle(style->text_style.skia_style);
23 return new Skwasm::ParagraphBuilder{
24 skia::textlayout::ParagraphBuilder::make(style->skia_paragraph_style,
25 collection->collection, nullptr),
26 std::move(paints),
27 };
28}
uint32_t live_paragraph_builder_count
sk_sp< skia::textlayout::FontCollection > collection
Definition wrappers.h:37
skia::textlayout::ParagraphStyle skia_paragraph_style
Definition text_types.h:39
void PopulatePaintIds(std::vector< flutter::DlPaint > &paints)
Definition text_types.h:21
skia::textlayout::TextStyle skia_style
Definition text_types.h:17

References Skwasm::FlutterFontCollection::collection, Skwasm::live_paragraph_builder_count, Skwasm::TextStyle::PopulatePaintIds(), Skwasm::ParagraphStyle::skia_paragraph_style, Skwasm::TextStyle::skia_style, and Skwasm::ParagraphStyle::text_style.

◆ paragraphBuilder_setGraphemeBreaksUtf16()

SKWASM_EXPORT void paragraphBuilder_setGraphemeBreaksUtf16 ( Skwasm::ParagraphBuilder builder,
std::vector< SkUnicode::Position > *  breaks 
)

Definition at line 45 of file paragraph_builder_client_icu.cc.

47 {
48 builder->skia_paragraph_builder->setGraphemeBreaksUtf16(std::move(*breaks));
49}

References Skwasm::ParagraphBuilder::skia_paragraph_builder.

◆ paragraphBuilder_setLineBreaksUtf16()

SKWASM_EXPORT void paragraphBuilder_setLineBreaksUtf16 ( Skwasm::ParagraphBuilder builder,
std::vector< SkUnicode::LineBreakBefore > *  breaks 
)

Definition at line 57 of file paragraph_builder_client_icu.cc.

59 {
60 builder->skia_paragraph_builder->setLineBreaksUtf16(std::move(*breaks));
61}

References Skwasm::ParagraphBuilder::skia_paragraph_builder.

◆ paragraphBuilder_setWordBreaksUtf16()

SKWASM_EXPORT void paragraphBuilder_setWordBreaksUtf16 ( Skwasm::ParagraphBuilder builder,
std::vector< SkUnicode::Position > *  breaks 
)

Definition at line 51 of file paragraph_builder_client_icu.cc.

53 {
54 builder->skia_paragraph_builder->setWordsUtf16(std::move(*breaks));
55}

References Skwasm::ParagraphBuilder::skia_paragraph_builder.

◆ skwasm_isHeavy()

SKWASM_EXPORT bool skwasm_isHeavy ( )

Definition at line 12 of file paragraph_builder_client_icu.cc.

12 {
13 return false;
14}