OSG无法显示中文,解决

要显示文字,首先前提是你已经编译osg时编译了freetype插件

如果没有将显示不了中午,需要重新编译freetype插件,那么如何编译freetype插件呢,osg340+vs2017编译的插件链接在文末

如果你是用cmake自己编译的osg,那么在camke里设置一些参数
在这里插入图片描述
这里我用的时我自己编译的freetype,如果使用官方3rdParty包里的则是这样
在这里插入图片描述
自己对应相应的include和lib

如果你有新的cmake编译文件,也有编译好的osg,那么要如何只进行插件的编译呢
把你sog文件lib目录下的所有lib复制到编译目录下的lib文件,如下:
在这里插入图片描述
这样编译就不会有问题了

然后生成编译文件,我这里使用vs2017
找到Plugins freetype
在这里插入图片描述
右键在这里插入图片描述
这里生成的时dll,你可以自己在属性里调整
生成的dll和lib就可以使用了
dll可以直接放到osg的bin里
lib需要你指定目录和在链接器里指定名字,这个我就不想细说了,有问题评论

  • 到这里就可以加载中文了,如果你发现还是加载不了 尝试在你的字符前加L,如
text->setText(L"jj显示中文"/*, osgText::String::ENCODING_UTF8*/);

因为只支持宽字符

  • 如果还是不行,换个字体
osg::ref_ptr<osgText::Font> font = osgText::readFontFile("fonts/simhei.ttf");
  • 还是不行
text->setText(L"jj显示中文", osgText::String::ENCODING_UTF8);

freetype在osg340下编译好的dll和lib

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值