Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
text_style.cc File Reference
#include <vector>
#include "flutter/display_list/dl_paint.h"
#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/include/core/SkString.h"
#include "third_party/skia/modules/skparagraph/include/Paragraph.h"

Go to the source code of this file.

Functions

SKWASM_EXPORT Skwasm::TextStyletextStyle_create ()
 
SKWASM_EXPORT Skwasm::TextStyletextStyle_copy (Skwasm::TextStyle *style)
 
SKWASM_EXPORT void textStyle_dispose (Skwasm::TextStyle *style)
 
SKWASM_EXPORT void textStyle_setColor (Skwasm::TextStyle *style, SkColor color)
 
SKWASM_EXPORT void textStyle_setDecoration (Skwasm::TextStyle *style, skia::textlayout::TextDecoration decoration)
 
SKWASM_EXPORT void textStyle_setDecorationColor (Skwasm::TextStyle *style, SkColor color)
 
SKWASM_EXPORT void textStyle_setDecorationStyle (Skwasm::TextStyle *style, skia::textlayout::TextDecorationStyle decoration_style)
 
SKWASM_EXPORT void textStyle_setDecorationThickness (Skwasm::TextStyle *style, SkScalar thickness)
 
SKWASM_EXPORT void textStyle_setFontStyle (Skwasm::TextStyle *style, int weight, SkFontStyle::Slant slant)
 
SKWASM_EXPORT void textStyle_setTextBaseline (Skwasm::TextStyle *style, skia::textlayout::TextBaseline baseline)
 
SKWASM_EXPORT void textStyle_clearFontFamilies (Skwasm::TextStyle *style)
 
SKWASM_EXPORT void textStyle_addFontFamilies (Skwasm::TextStyle *style, SkString **font_families, int count)
 
SKWASM_EXPORT void textStyle_setFontSize (Skwasm::TextStyle *style, SkScalar size)
 
SKWASM_EXPORT void textStyle_setLetterSpacing (Skwasm::TextStyle *style, SkScalar letter_spacing)
 
SKWASM_EXPORT void textStyle_setWordSpacing (Skwasm::TextStyle *style, SkScalar word_spacing)
 
SKWASM_EXPORT void textStyle_setHeight (Skwasm::TextStyle *style, SkScalar height)
 
SKWASM_EXPORT void textStyle_setHalfLeading (Skwasm::TextStyle *style, bool half_leading)
 
SKWASM_EXPORT void textStyle_setLocale (Skwasm::TextStyle *style, SkString *locale)
 
SKWASM_EXPORT void textStyle_setBackground (Skwasm::TextStyle *style, flutter::DlPaint *paint)
 
SKWASM_EXPORT void textStyle_setForeground (Skwasm::TextStyle *style, flutter::DlPaint *paint)
 
SKWASM_EXPORT void textStyle_addShadow (Skwasm::TextStyle *style, SkColor color, SkScalar offset_x, SkScalar offset_y, SkScalar blur_sigma)
 
SKWASM_EXPORT void textStyle_addFontFeature (Skwasm::TextStyle *style, SkString *feature_name, int value)
 
SKWASM_EXPORT void textStyle_setFontVariations (Skwasm::TextStyle *style, SkFourByteTag *axes, float *values, int count)
 

Variables

const double kTextHeightNone = 0.0
 

Function Documentation

◆ textStyle_addFontFamilies()

SKWASM_EXPORT void textStyle_addFontFamilies ( Skwasm::TextStyle style,
SkString **  font_families,
int  count 
)

Definition at line 79 of file text_style.cc.

81 {
82 const std::vector<SkString>& current_families =
83 style->skia_style.getFontFamilies();
84 std::vector<SkString> new_families;
85 new_families.reserve(current_families.size() + count);
86 for (int i = 0; i < count; i++) {
87 new_families.push_back(*font_families[i]);
88 }
89 for (const auto& family : current_families) {
90 new_families.push_back(family);
91 }
92 style->skia_style.setFontFamilies(std::move(new_families));
93}
skia::textlayout::TextStyle skia_style
Definition text_types.h:17

References i, and Skwasm::TextStyle::skia_style.

◆ textStyle_addFontFeature()

SKWASM_EXPORT void textStyle_addFontFeature ( Skwasm::TextStyle style,
SkString *  feature_name,
int  value 
)

Definition at line 145 of file text_style.cc.

147 {
148 style->skia_style.addFontFeature(*feature_name, value);
149}

References Skwasm::TextStyle::skia_style, and value.

◆ textStyle_addShadow()

SKWASM_EXPORT void textStyle_addShadow ( Skwasm::TextStyle style,
SkColor  color,
SkScalar  offset_x,
SkScalar  offset_y,
SkScalar  blur_sigma 
)

Definition at line 136 of file text_style.cc.

140 {
141 style->skia_style.addShadow(
142 skia::textlayout::TextShadow(color, {offset_x, offset_y}, blur_sigma));
143}

References Skwasm::TextStyle::skia_style.

◆ textStyle_clearFontFamilies()

SKWASM_EXPORT void textStyle_clearFontFamilies ( Skwasm::TextStyle style)

Definition at line 75 of file text_style.cc.

75 {
76 style->skia_style.setFontFamilies({});
77}

References Skwasm::TextStyle::skia_style.

◆ textStyle_copy()

SKWASM_EXPORT Skwasm::TextStyle * textStyle_copy ( Skwasm::TextStyle style)

Definition at line 26 of file text_style.cc.

26 {
28 return new Skwasm::TextStyle(*style);
29}
uint32_t live_text_style_count

References Skwasm::live_text_style_count.

◆ textStyle_create()

SKWASM_EXPORT Skwasm::TextStyle * textStyle_create ( )

Definition at line 17 of file text_style.cc.

17 {
19 auto style = new Skwasm::TextStyle();
20
21 // Default color in flutter is black.
22 style->skia_style.setColor(SK_ColorBLACK);
23 return style;
24}

References Skwasm::live_text_style_count.

◆ textStyle_dispose()

SKWASM_EXPORT void textStyle_dispose ( Skwasm::TextStyle style)

Definition at line 31 of file text_style.cc.

31 {
33 delete style;
34}

References Skwasm::live_text_style_count.

◆ textStyle_setBackground()

SKWASM_EXPORT void textStyle_setBackground ( Skwasm::TextStyle style,
flutter::DlPaint paint 
)

Definition at line 126 of file text_style.cc.

127 {
128 style->background = *paint;
129}
std::optional< flutter::DlPaint > background
Definition text_types.h:19

References Skwasm::TextStyle::background.

◆ textStyle_setColor()

SKWASM_EXPORT void textStyle_setColor ( Skwasm::TextStyle style,
SkColor  color 
)

Definition at line 36 of file text_style.cc.

36 {
37 style->skia_style.setColor(color);
38}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setDecoration()

SKWASM_EXPORT void textStyle_setDecoration ( Skwasm::TextStyle style,
skia::textlayout::TextDecoration  decoration 
)

Definition at line 40 of file text_style.cc.

42 {
43 style->skia_style.setDecoration(decoration);
44}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setDecorationColor()

SKWASM_EXPORT void textStyle_setDecorationColor ( Skwasm::TextStyle style,
SkColor  color 
)

Definition at line 46 of file text_style.cc.

47 {
48 style->skia_style.setDecorationColor(color);
49}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setDecorationStyle()

SKWASM_EXPORT void textStyle_setDecorationStyle ( Skwasm::TextStyle style,
skia::textlayout::TextDecorationStyle  decoration_style 
)

Definition at line 51 of file text_style.cc.

53 {
54 style->skia_style.setDecorationStyle(decoration_style);
55}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setDecorationThickness()

SKWASM_EXPORT void textStyle_setDecorationThickness ( Skwasm::TextStyle style,
SkScalar  thickness 
)

Definition at line 57 of file text_style.cc.

58 {
59 style->skia_style.setDecorationThicknessMultiplier(thickness);
60}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setFontSize()

SKWASM_EXPORT void textStyle_setFontSize ( Skwasm::TextStyle style,
SkScalar  size 
)

Definition at line 95 of file text_style.cc.

96 {
97 style->skia_style.setFontSize(size);
98}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setFontStyle()

SKWASM_EXPORT void textStyle_setFontStyle ( Skwasm::TextStyle style,
int  weight,
SkFontStyle::Slant  slant 
)

Definition at line 62 of file text_style.cc.

64 {
65 style->skia_style.setFontStyle(
66 SkFontStyle(weight, SkFontStyle::kNormal_Width, slant));
67}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setFontVariations()

SKWASM_EXPORT void textStyle_setFontVariations ( Skwasm::TextStyle style,
SkFourByteTag *  axes,
float *  values,
int  count 
)

Definition at line 151 of file text_style.cc.

154 {
155 std::vector<SkFontArguments::VariationPosition::Coordinate> coordinates;
156 for (int i = 0; i < count; i++) {
157 coordinates.push_back({axes[i], values[i]});
158 }
159 SkFontArguments::VariationPosition position = {
160 coordinates.data(), static_cast<int>(coordinates.size())};
161 style->skia_style.setFontArguments(
162 SkFontArguments().setVariationDesignPosition(position));
163}

References i, and Skwasm::TextStyle::skia_style.

◆ textStyle_setForeground()

SKWASM_EXPORT void textStyle_setForeground ( Skwasm::TextStyle style,
flutter::DlPaint paint 
)

Definition at line 131 of file text_style.cc.

132 {
133 style->foreground = *paint;
134}
std::optional< flutter::DlPaint > foreground
Definition text_types.h:18

References Skwasm::TextStyle::foreground.

◆ textStyle_setHalfLeading()

SKWASM_EXPORT void textStyle_setHalfLeading ( Skwasm::TextStyle style,
bool  half_leading 
)

Definition at line 116 of file text_style.cc.

117 {
118 style->skia_style.setHalfLeading(half_leading);
119}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setHeight()

SKWASM_EXPORT void textStyle_setHeight ( Skwasm::TextStyle style,
SkScalar  height 
)

Definition at line 110 of file text_style.cc.

111 {
112 style->skia_style.setHeight(height);
113 style->skia_style.setHeightOverride(height != kTextHeightNone);
114}
int32_t height
const double kTextHeightNone
Definition text_style.cc:15

References height, kTextHeightNone, and Skwasm::TextStyle::skia_style.

◆ textStyle_setLetterSpacing()

SKWASM_EXPORT void textStyle_setLetterSpacing ( Skwasm::TextStyle style,
SkScalar  letter_spacing 
)

Definition at line 100 of file text_style.cc.

101 {
102 style->skia_style.setLetterSpacing(letter_spacing);
103}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setLocale()

SKWASM_EXPORT void textStyle_setLocale ( Skwasm::TextStyle style,
SkString *  locale 
)

Definition at line 121 of file text_style.cc.

122 {
123 style->skia_style.setLocale(*locale);
124}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setTextBaseline()

SKWASM_EXPORT void textStyle_setTextBaseline ( Skwasm::TextStyle style,
skia::textlayout::TextBaseline  baseline 
)

Definition at line 69 of file text_style.cc.

71 {
72 style->skia_style.setTextBaseline(baseline);
73}

References Skwasm::TextStyle::skia_style.

◆ textStyle_setWordSpacing()

SKWASM_EXPORT void textStyle_setWordSpacing ( Skwasm::TextStyle style,
SkScalar  word_spacing 
)

Definition at line 105 of file text_style.cc.

106 {
107 style->skia_style.setWordSpacing(word_spacing);
108}

References Skwasm::TextStyle::skia_style.

Variable Documentation

◆ kTextHeightNone

const double kTextHeightNone = 0.0

Definition at line 15 of file text_style.cc.

Referenced by flutter::ParagraphBuilder::pushStyle(), and textStyle_setHeight().