Skia drawSimpleText()文本不渲染问题求助
Skia文本渲染故障排查方案
核心排查与修复步骤
检查字体加载路径
Skia在Windows下不会自动加载系统字体,需手动指定有效字体文件路径,注意使用宽字符前缀L避免编码问题:SkFont font(SkTypeface::MakeFromFile(L"C:/Windows/Fonts/msyh.ttc"), 48);对齐Skia编译配置
对比能正常运行的HelloWorld所用编译命令,重点确认以下编译开关是否一致:- 启用
skia_enable_legacy_font_manager - 包含
skia_use_system_freetype、skia_use_harfbuzz等文本渲染相关组件
确保当前项目依赖的Skia库包含完整的文本渲染模块。
- 启用
修正VS项目字符集设置
在VS2022项目属性的「常规」选项中,将字符集设置为「使用 Unicode 字符集」,避免字符串传递时的编码错误导致字体加载失败。校验文本绘制逻辑
确保绘制代码未遗漏关键步骤,示例正确写法:SkPaint paint; paint.setColor(SK_ColorBLACK); SkFont font(SkTypeface::MakeFromFile(L"C:/Windows/Fonts/arial.ttf"), 32); canvas->drawString(u8"测试文本", 100, 100, font, paint);
快速验证方案
- 直接复用HelloWorld项目的Skia依赖配置(包含目录、库目录、链接库列表)到当前项目,排除配置差异问题。
- 替换文本绘制代码为绝对路径加载系统默认字体,测试是否能正常渲染文本。
内容的提问来源于stack exchange,提问作者Maestro Maestro
相关产品推荐
相关产品推荐

