Cinder 中文显示二三事

本文介绍了使用Cinder框架进行字体加载及文本渲染的过程。包括将宽字符字符串转换为UTF-8,加载字体文件,获取字体形状并最终通过TextBox组件显示文本。此教程适合初学者了解如何在Cinder中正确处理多语言文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 字符串转换

首先要把 wstring 转换成 utf8-string(cinder在之后又会把utf8转换成utf16)

wstring s = L"是大地的泪点,使她的微笑保持着青春不谢。\nIt is the tears of the earth that keep here smiles in bloom.";
string utf8str = toUtf8(s);

2. 加载字体

//mfont = Font(loadAsset("FZSTK.TTF"), 32);
mfont=Font("STXINGKA",32);      // 系统字体用字体文件名

3. 获取字体的shape2d

//Font::Glyph gly = mfont.getGlyphChar(utf8str[0]);      // 这种方式不行,wide-utf8之后占了好几位
vector<Font::Glyph>glyphs = mfont.getGlyphs(utf8str);      // 所以还是得使用这种方式,获取所有

shape2d s2d = mfont.getGlyphShape(glyphs[0]);

4. 用 TexBox 显示

TextBox tb = TextBox().font(mfont).text(utf8str);
gl::Texture tex = gl::Texture( tb.render() );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值