12#include "third_party/skia/include/core/SkString.h"
13#include "third_party/skia/modules/skparagraph/include/Paragraph.h"
22 style->skia_style.setColor(SK_ColorBLACK);
42 skia::textlayout::TextDecoration decoration) {
53 skia::textlayout::TextDecorationStyle decoration_style) {
54 style->
skia_style.setDecorationStyle(decoration_style);
59 style->
skia_style.setDecorationThicknessMultiplier(thickness);
64 SkFontStyle::Slant slant) {
66 SkFontStyle(weight, SkFontStyle::kNormal_Width, slant));
71 skia::textlayout::TextBaseline baseline) {
80 SkString** font_families,
82 const std::vector<SkString>& current_families =
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]);
89 for (
const auto& family : current_families) {
90 new_families.push_back(family);
92 style->
skia_style.setFontFamilies(std::move(new_families));
101 SkScalar letter_spacing) {
102 style->
skia_style.setLetterSpacing(letter_spacing);
106 SkScalar word_spacing) {
107 style->
skia_style.setWordSpacing(word_spacing);
118 style->
skia_style.setHalfLeading(half_leading);
140 SkScalar blur_sigma) {
142 skia::textlayout::TextShadow(color, {offset_x, offset_y}, blur_sigma));
146 SkString* feature_name,
155 std::vector<SkFontArguments::VariationPosition::Coordinate> coordinates;
156 for (
int i = 0;
i < count;
i++) {
157 coordinates.push_back({axes[
i], values[
i]});
159 SkFontArguments::VariationPosition position = {
160 coordinates.data(),
static_cast<int>(coordinates.size())};
162 SkFontArguments().setVariationDesignPosition(position));
uint32_t live_text_style_count
SKWASM_EXPORT Skwasm::TextStyle * textStyle_create()
SKWASM_EXPORT void textStyle_setTextBaseline(Skwasm::TextStyle *style, skia::textlayout::TextBaseline baseline)
SKWASM_EXPORT void textStyle_addFontFeature(Skwasm::TextStyle *style, SkString *feature_name, int value)
SKWASM_EXPORT void textStyle_setDecorationColor(Skwasm::TextStyle *style, SkColor color)
SKWASM_EXPORT void textStyle_addShadow(Skwasm::TextStyle *style, SkColor color, SkScalar offset_x, SkScalar offset_y, SkScalar blur_sigma)
SKWASM_EXPORT void textStyle_setHeight(Skwasm::TextStyle *style, SkScalar height)
SKWASM_EXPORT void textStyle_setForeground(Skwasm::TextStyle *style, flutter::DlPaint *paint)
SKWASM_EXPORT void textStyle_setLetterSpacing(Skwasm::TextStyle *style, SkScalar letter_spacing)
SKWASM_EXPORT void textStyle_setFontSize(Skwasm::TextStyle *style, SkScalar size)
SKWASM_EXPORT void textStyle_setDecoration(Skwasm::TextStyle *style, skia::textlayout::TextDecoration decoration)
SKWASM_EXPORT void textStyle_addFontFamilies(Skwasm::TextStyle *style, SkString **font_families, int count)
SKWASM_EXPORT Skwasm::TextStyle * textStyle_copy(Skwasm::TextStyle *style)
SKWASM_EXPORT void textStyle_dispose(Skwasm::TextStyle *style)
SKWASM_EXPORT void textStyle_setLocale(Skwasm::TextStyle *style, SkString *locale)
SKWASM_EXPORT void textStyle_setFontVariations(Skwasm::TextStyle *style, SkFourByteTag *axes, float *values, int count)
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_setWordSpacing(Skwasm::TextStyle *style, SkScalar word_spacing)
const double kTextHeightNone
SKWASM_EXPORT void textStyle_setFontStyle(Skwasm::TextStyle *style, int weight, SkFontStyle::Slant slant)
SKWASM_EXPORT void textStyle_setBackground(Skwasm::TextStyle *style, flutter::DlPaint *paint)
SKWASM_EXPORT void textStyle_clearFontFamilies(Skwasm::TextStyle *style)
SKWASM_EXPORT void textStyle_setColor(Skwasm::TextStyle *style, SkColor color)
SKWASM_EXPORT void textStyle_setHalfLeading(Skwasm::TextStyle *style, bool half_leading)
std::optional< flutter::DlPaint > background
std::optional< flutter::DlPaint > foreground
skia::textlayout::TextStyle skia_style