SkParagraph无法整形或呈现文本

时间:2019-12-10 06:16:15

标签: c++ macos skia

我使用 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);

1 个答案:

答案 0 :(得分:1)

按照建议的https://ru.stackoverflow.com/users/16574/eri,尝试设置默认字体管理器:

fontCollection->setDefaultFontManager(SkFontMgr::RefDefault());

还要检查是否已设置:

  • 颜色
  • 字体style.setFontFamilies({SkString("Roboto")});
  • 宽度足够