Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2087888
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类: LINUX

2006-04-12 15:15:26

主页: 
      
库及帮助文档下载:
       http:///projects/
       http:///libraries.php
(帮助文档在http:///projects/docs下)
1, SDL
    全称 Simple DirectMedia Layer,是免费的跨平台多媒体应用编程接口,可用于游戏、游戏开发工具、模拟器、样本演示、多媒体应用等.
2, SDL_Image
    SDL库只支持windows bitmap格式的图片显示,而SDL_Image封装了多种格式的图像显示接口,它支持bmp,png,jpeg,jif等,当需要支持某种格式时,还 需要额外的图像解码接口,比如,如果要显示png格式的图像,那么还需要libpng,如果要显示jpeg的图像,需要libjpg.
3, SDL_ttf
    该库用于显示文字.
    操作过程介绍:
    (1) TTF初始化
    (2) 打开字体文件,并设置字体大小
    (3) 设置字体的其他属性
    (4) 使用打开的字体,将所要显示的文字"画"到内存中,根据文字的不同,有三类作用相同但名称不同的函数,他们是 Text,UTF8,UNICODE,Text是普通字符串,UFT8是UTF8格式的字符串,而UNICODE是UNICODE格式的字符串,比如,
         TTF_RenderText_Solid
         TTF_RenderUTF8_Solid
         TTF_RenderUNICODE_Solid
 这三组函数都是"画"空心字体,不同的是表示输出字符串的第二个参数.
    (5) 将内存数据拷贝到当前显示设备环境
    (6) 释放内存显示环境
    (7) 刷新当前显示设备环境
    (8) 关闭所打开的字体
    (9) 销毁TTF
ex:
int DrawText(SDL_Surface *pScreen,const char *pszText,unsigned int nSize,int x,int y,SDL_Color color)
{
        const char *pszFontName="arial.ttf";

        TTF_Font *pFont;
        SDL_Surface  *pTextSurface;
        SDL_Rect  rect;
   
        //打开字体文件并设置字体大小
        if((pFont = TTF_OpenFont(pszFontName,nSize)) == NULL)
        {
                debug("call TTF_Open failed\n");
                return -1;
        }

        //设置字体属性
        TTF_SetFontStyle(pFont,TTF_STYLE_BOLD|TTF_STYLE_NORMAL);

        rect.x = x;
        rect.y = y;
        rect.w = rect.h = 0;
        SDL_Color bg = {0,255,255};
        //使用打开的字体,将字符串"画"到内存(显示环境)中
        if((pTextSurface = TTF_RenderText_Blended(pFont,pszText,color)) == NULL)
        //if((pTextSurface = TTF_RenderText_Solid(pFont,pszText,color)) == NULL)
        //if((pTextSurface = TTF_RenderText_Shaded(pFont,pszText,color,bg)) == NULL)
        {
                debug("call TTF_RenderUTF8_Solid failed\n");
        }
        else
        {
                //将内存(显示环境中的)数据拷贝到当前显示设备环境
                SDL_BlitSurface(pTextSurface,NULL,pScreen,&rect);
        }
   
        //释放内存显示环境
        SDL_FreeSurface(pTextSurface);
        //刷新当前显示环境
        SDL_Flip(pScreen);//flash the screen

        //关闭字体
        TTF_CloseFont(pFont);

        return 0;
}


SDL_Color color = {255,0,0};
TTF_Init();   //TTF 初始化
DrawText(pScreen,"SDL Demo",30,10,10,color);
TTF_Quit();   //销毁TTF
注:
    (1) 个人实验时,可以使用/usr/share/fonts/truetype/*.ttf,但在软件发行版中一定要小心选择所用的字体库,因为很多都是有版权的.
    (2) 其他较流行的字体显示库还有freetype ()
 他是一个完全免费的字体库,Licence:
4, SDL_mixer
       SDL默认时只支持WAV文件的播放,其他格式,我们可以使用SDL_mixer所封装的接口.
阅读(4171) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~