2009年5月9日星期六

SDL SGE库加入TrueType功能

关于SGE库我已经在以前的日志里介绍过了。如果我们的SGE需要有TrueType 功能,简单地说就是可以在sdl surface上写入文字,还需要加入freetype这个库进行build。

The TrueType functions uses the FreeType library (v2.x). SGE的build需要freetype-2.1.10,否则不会正确build,会有一些错误。因为SGE需要譬如头文件.../freetype/nternal/ftobjs.h,而新版的freetype则不会有这个头文件。 进入http://mirrors.zerg.biz/nongnu/freetype/ 就可以找到freetype-2.1.10 ,可参考freetype-2.1.10/docs/INSTALL.UNX的帮助。

使用msys进入freetype目录依次输入

      ./configure [options]

      make

      make install           (as root)

然后就会生成正确的.a静态库文件。

使用msys需要注意一些点:

1.需要build的project的路径中不能有空格,譬如C:/Documents and Settings,否则无法识别路径。

2.cd /C/ 进入C盘,要使用反斜杠。

现在build 新的SGE库with TrueType functions。使用同样的方法,加入freetype的include路径和已经编译好的lib。

大功告成。

现在可以使用新的SGE库 with TrueType functions功能。譬如:

写一个几个字到屏幕上:

sge_TTFont *font;

/*注意要将font.ttf文件放入project的目录里*/

font=sge_TTF_OpenFont("font.ttf", 50);

/* Drawstext on screen */

sge_tt_textout(drawScreen, font, "my first SGE text", 50,100, 0,0,255, 0,0,0, 120);

还有一点要注意:因为在build SGE时要对其源文件进行一些改变。当其他project要使用已经被build的SGE的库时候不能使用SGE原始的头文件,而是要使用改变过的头文件。因为include里的.h文件,必须和参与生成dll的文件相同。不然link这个dll则会产生错误。

 

########

补充,如果要使用VS2005或以后的版本进行编译的话。

在以下网址可以下载到SGE的项目文档,然后建立VC项目。

http://www.digitalfanatics.org/cal/sge/index.html

Download SGE project files for MS Visual C/C++

 

FreeType library (v2.x).请在到以下网址下载Binaries。

http://gnuwin32.sourceforge.net/packages/freetype.htm

• Binaries
Zip
然后在将freetpye.lib加入项目的Additional Dependencies。

在sge_config.h中将注释掉这行#define _SGE_NOTTF。

这样我们的sge_config.h将如下。

/* SGE Config header (generated automatically) */

#define SGE_VER 030809

#define _SGE_C_AND_CPP

//#define _SGE_HAVE_IMG

//#define _SGE_NOTTF

接下来设定基本完成就可以进行编译了。

没有评论: