查看: 2045|回复: 4

cegui MultiLineEditbox在osg中是否可以显示汉字?

[复制链接]

该用户从未签到

发表于 2012-11-2 16:23:41 | 显示全部楼层 |阅读模式
std::wstring aa = L"你";
char buff[128] = "";
WideCharToMultiByte( CP_UTF8, 0, aa.c_str(), aa.size(), buff, sizeof(buff), 0, 0);
CEGUI::WindowManager::getSingleton().getWindow("IcoPanel/Property")->setText((CEGUI::utf8*)buff);
"IcoPanel/Property" 是我的MultiLineEditbox组件  
在按钮上能添加 但是到了MultiLineEditbox的使用的时候 就不能显示 将std::wstring aa = L"你";设置为英文的就能显示  是该组件不支持中文显示吗?

<Window Type="TaharezLook/MultiLineEditbox" Name="IcoPanel/Property" >
            <Property Name="Font" Value="simhei" />
            <Property Name="Alpha" Value="0.8" />
            <Property Name="ReadOnly" Value="True" />
            <Property Name="MaxTextLength" Value="1073741823" />
            <Property Name="UnifiedAreaRect" Value="{{0.02,0},{0.02,0},{0.98,0},{0.98,0}}" />
            <Property Name="TextParsingEnabled" Value="False" />
        </Window>

这个是我在layout里面定义的MultiLineEditbox组件

该用户从未签到

 楼主| 发表于 2012-11-2 17:15:41 | 显示全部楼层
补充一下 这个是在MultiLineEditbox设置中文时 CEGUI.log输出的 设置按钮中文就正常显示并没下面的错误
CEGUI::RendererException in file ..\..\..\..\cegui\src\RendererModules\OpenGL\CEGUIOpenGLTexture.cpp(208) : OpenGLTexture::setTextureSize: size too big

该用户从未签到

发表于 2012-11-2 17:45:21 | 显示全部楼层
跟osg有什么关系?完全是cegui的问题,字体库,编码,检查

该用户从未签到

 楼主| 发表于 2012-11-2 18:05:02 | 显示全部楼层
liuzhiyu123 发表于 2012-11-2 17:45
跟osg有什么关系?完全是cegui的问题,字体库,编码,检查

字体库
<?xml version="1.0" ?>
<Font Name="simhei" Filename="simhei.ttf" Type="FreeType" Size="6" NativeHorzRes="800" NativeVertRes="600" AutoScaled="true"/>

然后在初始化
CEGUI::System::getSingleton().setDefaultFont("simhei");

然后在需要显示的MultiLineEditbox组件
std::wstring aa = L"你\n的";
char buff[128] = "";
WideCharToMultiByte( CP_UTF8, 0, aa.c_str(), aa.size(), buff, sizeof(buff), 0, 0);
CEGUI::WindowManager::getSingleton().getWindow("IcoPanel/Property")->setText((CEGUI::utf8*)buff);

这样有错吗?

该用户从未签到

 楼主| 发表于 2013-1-27 09:08:51 | 显示全部楼层
解决办法:
定义一个boo变量
在Drawable里的drawimplement函数里做该变量的判断
在相应的时间函数里对该变量的值进行您需要的改变
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表