`
yuanjinxiu
  • 浏览: 659101 次
文章分类
社区版块
存档分类
最新评论

第二人生的源码分析(五十八)使用FreeType字体

 
阅读更多
对于第二人生来说是跨平台运行的,那么显示文字就成为一个问题了。特别在3D环境里显示文字,更加是比较困难的问题。因为在图形界面里显示的字体,都是图片,并且每个字是一个图片,可以随着不同的字体大小而改变的。第二人生里是使用FreeType来实现文字显示的,而不是基于WINDOWS平台的显示字体技术。下面就来看看FreeType的字体管理器类,如下:
#001class LLFontManager
#002{
#003public:
#004 static void initClass();
#005 static void cleanupClass();
#006
#007public:
#008 LLFontManager();
#009 virtual ~LLFontManager();
#010};
#011
在类的初始化函数里创建字体管理器。
#012//static
#013void LLFontManager::initClass()
#014{
#015 gFontManagerp = new LLFontManager;
#016}
#017
在清除函数删除分配的资源。
#018//static
#019void LLFontManager::cleanupClass()
#020{
#021 delete gFontManagerp;
#022 gFontManagerp = NULL;
#023}
#024
在构造函数初始化FreeType。
#025LLFontManager::LLFontManager()
#026{
#027 int error;
#028 error = FT_Init_FreeType(&gFTLibrary);
#029 if (error)
#030 {
#031 // Clean up freetype libs.
#032 llerrs << "Freetype initialization failure!" << llendl;
#033 FT_Done_FreeType(gFTLibrary);
#034 }
#035}
#036
#037
在析构函数里删除FreeType。
#038LLFontManager::~LLFontManager()
#039{
#040 FT_Done_FreeType(gFTLibrary);
#041}
FreeType支持很多字体显示,支持TrueType类型的字体,比如Windows里的字体文件。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics