SkParagraph 不塑造或渲染文本
SkParagraph not shaping or rendering text
我使用 cmake 为 macosx 编译了 skia。除 SkParagraph 外,一切正常。可以使用 canvas->drawString 进行渲染。编译并运行良好但不换行或显示任何文本。我在编译 skia 时遗漏了什么吗?
这是我试过的,
ParagraphStyle paraStyle;
paraStyle.setTextAlign(skia::textlayout::TextAlign::kLeft);
auto builder =
ParagraphBuilderImpl::make(paraStyle, sk_make_sp<FontCollection>());
builder->pushStyle(style);
std::string text = "Hello";
builder->addText(text.c_str(), text.length());
builder->pop();
// canvas->drawString("Hello", 20, 20, SkFont(), SkPaint());
auto para = builder->Build();
para.get()->layout(27);
para.get()->paint(canvas, 300, 300);
按照建议here,尝试设置默认字体管理器:
fontCollection->setDefaultFontManager(SkFontMgr::RefDefault());
同时检查您是否设置了:
- 颜色
- 字体
style.setFontFamilies({SkString("Roboto")});
- 宽度足够
我使用 cmake 为 macosx 编译了 skia。除 SkParagraph 外,一切正常。可以使用 canvas->drawString 进行渲染。编译并运行良好但不换行或显示任何文本。我在编译 skia 时遗漏了什么吗?
这是我试过的,
ParagraphStyle paraStyle;
paraStyle.setTextAlign(skia::textlayout::TextAlign::kLeft);
auto builder =
ParagraphBuilderImpl::make(paraStyle, sk_make_sp<FontCollection>());
builder->pushStyle(style);
std::string text = "Hello";
builder->addText(text.c_str(), text.length());
builder->pop();
// canvas->drawString("Hello", 20, 20, SkFont(), SkPaint());
auto para = builder->Build();
para.get()->layout(27);
para.get()->paint(canvas, 300, 300);
按照建议here,尝试设置默认字体管理器:
fontCollection->setDefaultFontManager(SkFontMgr::RefDefault());
同时检查您是否设置了:
- 颜色
- 字体
style.setFontFamilies({SkString("Roboto")});
- 宽度足够