Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
text_style.cpp
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 "../export.h"
6#include "../wrappers.h"
8
9using namespace skia::textlayout;
10using namespace Skwasm;
11
13 auto style = new TextStyle();
14
15 // Default color in flutter is black.
16 style->setColor(SK_ColorBLACK);
17 return style;
18}
19
21 return new TextStyle(*style);
22}
23
25 delete style;
26}
27
31
33 TextDecoration decoration) {
34 style->setDecoration(decoration);
35}
36
41
43 TextStyle* style,
44 TextDecorationStyle decorationStyle) {
45 style->setDecorationStyle(decorationStyle);
46}
47
52
54 int weight,
55 SkFontStyle::Slant slant) {
57}
58
60 TextBaseline baseline) {
61 style->setTextBaseline(baseline);
62}
63
67
69 SkString** fontFamilies,
70 int count) {
71 const std::vector<SkString>& currentFamilies = style->getFontFamilies();
72 std::vector<SkString> newFamilies;
73 newFamilies.reserve(currentFamilies.size() + count);
74 for (int i = 0; i < count; i++) {
75 newFamilies.push_back(*fontFamilies[i]);
76 }
77 for (const auto& family : currentFamilies) {
78 newFamilies.push_back(family);
79 }
80 style->setFontFamilies(std::move(newFamilies));
81}
82
84 style->setFontSize(size);
85}
86
88 SkScalar letterSpacing) {
89 style->setLetterSpacing(letterSpacing);
90}
91
93 SkScalar wordSpacing) {
94 style->setWordSpacing(wordSpacing);
95}
96
101
103 bool halfLeading) {
104 style->setHalfLeading(halfLeading);
105}
106
108 style->setLocale(*locale);
109}
110
114
118
123 SkScalar blurSigma) {
124 style->addShadow(TextShadow(color, {offsetX, offsetY}, blurSigma));
125}
126
128 SkString* featureName,
129 int value) {
130 style->addFontFeature(*featureName, value);
131}
132
134 SkFourByteTag* axes,
135 float* values,
136 int count) {
137 std::vector<SkFontArguments::VariationPosition::Coordinate> coordinates;
138 for (int i = 0; i < count; i++) {
139 coordinates.push_back({axes[i], values[i]});
140 }
142 coordinates.data(), static_cast<int>(coordinates.size())};
143 style->setFontArguments(
145}
int count
SkColor4f color
uint32_t SkColor
Definition SkColor.h:37
constexpr SkColor SK_ColorBLACK
Definition SkColor.h:103
uint32_t SkFourByteTag
Definition SkTypes.h:166
void setDecorationStyle(TextDecorationStyle style)
Definition TextStyle.h:222
void addShadow(TextShadow shadow)
Definition TextStyle.h:233
void setFontFamilies(std::vector< SkString > families)
Definition TextStyle.h:253
void setHeight(SkScalar height)
Definition TextStyle.h:260
void setLetterSpacing(SkScalar letterSpacing)
Definition TextStyle.h:269
void setWordSpacing(SkScalar wordSpacing)
Definition TextStyle.h:272
const std::vector< SkString > & getFontFamilies() const
Definition TextStyle.h:252
void setColor(SkColor color)
Definition TextStyle.h:166
void setHeightOverride(bool heightOverride)
Definition TextStyle.h:263
void setTextBaseline(TextBaseline baseline)
Definition TextStyle.h:283
void setFontStyle(SkFontStyle fontStyle)
Definition TextStyle.h:228
void setBackgroundColor(SkPaint paint)
Definition TextStyle.h:204
void setLocale(const SkString &locale)
Definition TextStyle.h:280
void setHalfLeading(bool halfLeading)
Definition TextStyle.h:266
void setFontSize(SkScalar size)
Definition TextStyle.h:250
void setFontArguments(const std::optional< SkFontArguments > &args)
void setForegroundColor(SkPaint paint)
Definition TextStyle.h:181
void addFontFeature(const SkString &fontFeature, int value)
Definition TextStyle.h:239
void setDecorationColor(SkColor color)
Definition TextStyle.h:223
void setDecoration(TextDecoration decoration)
Definition TextStyle.h:220
void setDecorationThicknessMultiplier(SkScalar m)
Definition TextStyle.h:224
const Paint & paint
float SkScalar
Definition extension.cpp:12
uint8_t value
SkScalar offsetX
SkScalar offsetY
int32_t height
SkFontArguments & setVariationDesignPosition(VariationPosition position)
SKWASM_EXPORT void textStyle_setDecorationColor(TextStyle *style, SkColor color)
SKWASM_EXPORT void textStyle_setDecorationThickness(TextStyle *style, SkScalar thickness)
SKWASM_EXPORT void textStyle_setForeground(TextStyle *style, SkPaint *paint)
SKWASM_EXPORT TextStyle * textStyle_create()
SKWASM_EXPORT TextStyle * textStyle_copy(TextStyle *style)
SKWASM_EXPORT void textStyle_setLetterSpacing(TextStyle *style, SkScalar letterSpacing)
SKWASM_EXPORT void textStyle_setLocale(TextStyle *style, SkString *locale)
SKWASM_EXPORT void textStyle_setDecorationStyle(TextStyle *style, TextDecorationStyle decorationStyle)
SKWASM_EXPORT void textStyle_addFontFamilies(TextStyle *style, SkString **fontFamilies, int count)
SKWASM_EXPORT void textStyle_setColor(TextStyle *style, SkColor color)
SKWASM_EXPORT void textStyle_addFontFeature(TextStyle *style, SkString *featureName, int value)
SKWASM_EXPORT void textStyle_setDecoration(TextStyle *style, TextDecoration decoration)
SKWASM_EXPORT void textStyle_setBackground(TextStyle *style, SkPaint *paint)
SKWASM_EXPORT void textStyle_setHalfLeading(TextStyle *style, bool halfLeading)
SKWASM_EXPORT void textStyle_setFontSize(TextStyle *style, SkScalar size)
SKWASM_EXPORT void textStyle_setFontStyle(TextStyle *style, int weight, SkFontStyle::Slant slant)
SKWASM_EXPORT void textStyle_setHeight(TextStyle *style, SkScalar height)
SKWASM_EXPORT void textStyle_dispose(TextStyle *style)
SKWASM_EXPORT void textStyle_setTextBaseline(TextStyle *style, TextBaseline baseline)
SKWASM_EXPORT void textStyle_clearFontFamilies(TextStyle *style)
SKWASM_EXPORT void textStyle_addShadow(TextStyle *style, SkColor color, SkScalar offsetX, SkScalar offsetY, SkScalar blurSigma)
SKWASM_EXPORT void textStyle_setWordSpacing(TextStyle *style, SkScalar wordSpacing)
SKWASM_EXPORT void textStyle_setFontVariations(TextStyle *style, SkFourByteTag *axes, float *values, int count)
#define SKWASM_EXPORT
Definition export.h:10