游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7554|回复: 7

一个在OpenGL下显示TureType文字的库。

[复制链接]

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2007-12-17 21:33:00 | 显示全部楼层 |阅读模式
在FTGL的基础上写了一个在OpenGL下显示TureType文字的库——TTGLFont。

主要是改进了在初次使用每个字符时把字符缓存到纹理中,通过绘制带纹理的四边形来显示文字。文字渲染引擎使用的是FreeType2.3.5。支持UNICODE。支持字符串中的换行符换行。目前显示文字的速度比FTGL有一定提高。接下来准备用vertex arry来进一步提高文字绘制速度。

压缩包里包括源代码和一个演示程序,对比FTGL和TTGLFont的效果。程序默认使用系统目录的\fonts\ARIALUNI.TTF 字体文件,也可以使用命令行参数来指定使用的字体文件。不过使用simsun.ttc字体时由于FTGL的bug,只能正常显示TTGLFont字体,而FTGL会乱掉。

这个库使用比较简单:

//包含头文件和FreeType库文件。
#include "TTGLFont\include\TTGLFont.h"
#pragma comment( lib, "freetype.lib" )

//在建立好OpenGL环境后初始化TTGLFont。
TTGLFont font=new TTGLFont("c:\windows\fonts\ARIALUNI.TTF",18); //设置字体文件和字号

//设置OpenGL的alpha混合和纹理环境。
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0);
glEnable(GL_BLEND);
glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);

//设置投影模式。
glMatrixMode( GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, win_width, win_height, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

//绘制文字。
font->Render(L"render fonts in OpenGL\n在OpenGL中绘制文字"); //中文使用UNICODE。

//还可以设置行间距。
font->LineOffset(5);   //默认行间距+LineOffset。

sf_20071217213238.rar

364.6 KB, 下载次数:

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2007-12-17 21:34:00 | 显示全部楼层

Re: 一个在OpenGL下显示TureType文字的库。

demo截图
sf_20071217213422.jpg

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2007-12-17 21:59:00 | 显示全部楼层

Re: 一个在OpenGL下显示TureType文字的库。

再加一个同屏显示14000字的demo

速度差距就比较明显了。

sf_20071217215914.rar

221.7 KB, 下载次数:

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2007-12-18 17:03:00 | 显示全部楼层

Re:一个在OpenGL下显示TureType文字的库。

好?|?|. ?~~~

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-1-30 17:35:00 | 显示全部楼层

Re:一个在OpenGL下显示TureType文字的库。

能在linux下使用吗?

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2008-2-1 19:24:00 | 显示全部楼层

Re: Re:一个在OpenGL下显示TureType文字的库。

biivg: Re:一个在OpenGL下显示TureType文字的库。

能在linux下使用吗?

没测试,应该可以,用的东西都是平台无关的

32

主题

108

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2008-2-25 15:36:00 | 显示全部楼层

Re:一个在OpenGL下显示TureType文字的库。

#include <ft2build.h>
找不到这个头文件,编译不能通过啊

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2008-2-29 13:10:00 | 显示全部楼层

Re:一个在OpenGL下显示TureType文字的库。

需要FreeType2.3.5库的支持,要先安装相应的头文件和库文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 07:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表