Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
Loading...
Searching...
No Matches
paragraph_builder_client_icu.cc
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
flutter/skwasm/export.h
"
6
#include "
flutter/skwasm/live_objects.h
"
7
#include "
flutter/skwasm/text/text_types.h
"
8
#include "
flutter/skwasm/wrappers.h
"
9
#include "third_party/skia/modules/skparagraph/include/ParagraphBuilder.h"
10
#include "third_party/skia/modules/skunicode/include/SkUnicode_client.h"
11
12
SKWASM_EXPORT
bool
skwasm_isHeavy
() {
13
return
false
;
14
}
15
16
SKWASM_EXPORT
Skwasm::ParagraphBuilder
*
paragraphBuilder_create
(
17
Skwasm::ParagraphStyle
* style,
18
Skwasm::FlutterFontCollection
* collection) {
19
Skwasm::live_paragraph_builder_count
++;
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
}
29
30
SKWASM_EXPORT
Skwasm::Paragraph
*
paragraphBuilder_build
(
31
Skwasm::ParagraphBuilder
* builder) {
32
Skwasm::live_paragraph_count
++;
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
}
44
45
SKWASM_EXPORT
void
paragraphBuilder_setGraphemeBreaksUtf16
(
46
Skwasm::ParagraphBuilder
* builder,
47
std::vector<SkUnicode::Position>* breaks) {
48
builder->
skia_paragraph_builder
->setGraphemeBreaksUtf16(std::move(*breaks));
49
}
50
51
SKWASM_EXPORT
void
paragraphBuilder_setWordBreaksUtf16
(
52
Skwasm::ParagraphBuilder
* builder,
53
std::vector<SkUnicode::Position>* breaks) {
54
builder->
skia_paragraph_builder
->setWordsUtf16(std::move(*breaks));
55
}
56
57
SKWASM_EXPORT
void
paragraphBuilder_setLineBreaksUtf16
(
58
Skwasm::ParagraphBuilder
* builder,
59
std::vector<SkUnicode::LineBreakBefore>* breaks) {
60
builder->
skia_paragraph_builder
->setLineBreaksUtf16(std::move(*breaks));
61
}
text
std::u16string text
Definition
keyboard_unittests.cc:332
live_objects.h
Skwasm::live_paragraph_builder_count
uint32_t live_paragraph_builder_count
Definition
live_objects.cc:13
Skwasm::live_paragraph_count
uint32_t live_paragraph_count
Definition
live_objects.cc:14
paragraphBuilder_setGraphemeBreaksUtf16
SKWASM_EXPORT void paragraphBuilder_setGraphemeBreaksUtf16(Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::Position > *breaks)
Definition
paragraph_builder_client_icu.cc:45
paragraphBuilder_build
SKWASM_EXPORT Skwasm::Paragraph * paragraphBuilder_build(Skwasm::ParagraphBuilder *builder)
Definition
paragraph_builder_client_icu.cc:30
paragraphBuilder_create
SKWASM_EXPORT Skwasm::ParagraphBuilder * paragraphBuilder_create(Skwasm::ParagraphStyle *style, Skwasm::FlutterFontCollection *collection)
Definition
paragraph_builder_client_icu.cc:16
paragraphBuilder_setWordBreaksUtf16
SKWASM_EXPORT void paragraphBuilder_setWordBreaksUtf16(Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::Position > *breaks)
Definition
paragraph_builder_client_icu.cc:51
skwasm_isHeavy
SKWASM_EXPORT bool skwasm_isHeavy()
Definition
paragraph_builder_client_icu.cc:12
paragraphBuilder_setLineBreaksUtf16
SKWASM_EXPORT void paragraphBuilder_setLineBreaksUtf16(Skwasm::ParagraphBuilder *builder, std::vector< SkUnicode::LineBreakBefore > *breaks)
Definition
paragraph_builder_client_icu.cc:57
export.h
SKWASM_EXPORT
#define SKWASM_EXPORT
Definition
export.h:10
Skwasm::FlutterFontCollection
Definition
wrappers.h:36
Skwasm::FlutterFontCollection::collection
sk_sp< skia::textlayout::FontCollection > collection
Definition
wrappers.h:37
Skwasm::ParagraphBuilder
Definition
text_types.h:43
Skwasm::ParagraphBuilder::paints
std::vector< flutter::DlPaint > paints
Definition
text_types.h:45
Skwasm::ParagraphBuilder::skia_paragraph_builder
std::unique_ptr< skia::textlayout::ParagraphBuilder > skia_paragraph_builder
Definition
text_types.h:44
Skwasm::Paragraph
Definition
text_types.h:48
Skwasm::ParagraphStyle
Definition
text_types.h:38
Skwasm::ParagraphStyle::text_style
TextStyle text_style
Definition
text_types.h:40
Skwasm::ParagraphStyle::skia_paragraph_style
skia::textlayout::ParagraphStyle skia_paragraph_style
Definition
text_types.h:39
Skwasm::TextStyle::PopulatePaintIds
void PopulatePaintIds(std::vector< flutter::DlPaint > &paints)
Definition
text_types.h:21
Skwasm::TextStyle::skia_style
skia::textlayout::TextStyle skia_style
Definition
text_types.h:17
text_types.h
wrappers.h
skwasm
text
paragraph_builder_client_icu.cc
Generated on Sun Dec 14 2025 04:48:38 for Flutter Engine Uber Docs by
1.9.8