bitmap fonts位图字体的添加

bitmap fonts位图字体的添加

ID:11704238

大小:163.00 KB

页数:15页

时间:2018-07-13

bitmap fonts位图字体的添加_第1页
bitmap fonts位图字体的添加_第2页
bitmap fonts位图字体的添加_第3页
bitmap fonts位图字体的添加_第4页
bitmap fonts位图字体的添加_第5页
资源描述:

《bitmap fonts位图字体的添加》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、字体的绘制BitmapFonts位图字体的绘制1在初始化场景函数(如Initialize)中调用CreateFont()建立位图字体由于还要用glGenLists()创建空显示列表以存储字符、用SelectObject()选进或恢复设备描述表、用DeleteObject()删除新建字体,所以实际上不是直接在初始化函数中调CreateFont,而是自定义一个函数BuildFont调用CreateFont()、glGenLists()、SelectObject()、DeleteObject()等,然后在初始化场景函数(如Initialize)中调用Bu

2、ildFont。2在退出前的扫尾函数(如Deinitialize)中调用glDeleteLists删除保存字体的显示列表该函数有参数:glDeleteLists(base,256)3自定义函数Print用来在窗口中显示字符串,并在场景绘制函数(如DrawScene)中调用(1)用glColor设置文字颜色;(2)用glRasterPos设置文字显示的位置;(3)调用Print显示文字附1BuildFont的定义GLvoidBuildFont(GLvoid)//建立位图字体(BitmapFonts){HFONTnewFont;//用以保存新的字体对象

3、HFONToldFont;//用以保存原字体对象base=glGenLists(256);//存储256个字符//上句需要定义GLuintbase;newFont=CreateFont(-18,//字体的高度0,//字体的宽度0,//旋转的角度0,//定位角度FW_THIN,//字体的粗细FALSE,//斜体?FALSE,//下划线?FALSE,//删除线?ANSI_CHARSET,//字符集OUT_TT_PRECIS,//输出精度CLIP_DEFAULT_PRECIS,//裁减精度ANTIALIASED_QUALITY,//输出质量FF_DONT

4、CARE

5、DEFAULT_PITCH,//间距和字体族"Tahoma");//字体名称oldFont=(HFONT)SelectObject(OGL_window->hDC,newFont);//选进设备描述表wglUseFontBitmaps(OGL_window->hDC,0,256,base);//建立256个字符SelectObject(OGL_window->hDC,oldFont);//恢复设备描述表DeleteObject(newFont);//删除新字体}附2Print的定义GLvoidPrint(constchar*fmt,...

6、)//建立Print函数{chartext[256];//用以保存格式化后的字符串va_listap;//指向参数列表的指针if(fmt==NULL)//没有可输出的字符?return;//返回va_start(ap,fmt);//遍历字符串,查找变量vsprintf(text,fmt,ap);//将变量转换为显示的数字//上句需要添加#include//标准输入/输出库va_end(ap);//结果保存在text内glPushAttrib(GL_LIST_BIT);//显示表状态入栈glListBase(base);//显示表偏

7、移量glCallLists((int)strlen(text),GL_UNSIGNED_BYTE,text);//绘制字符串glPopAttrib();//显示表状态出栈}附3一个简单的完整例子(1)word.cpp//在此处引用程序要求的附加头文件:#include//标准输入/输出库#include"word.h"//在此处加入程序要求的库到链接器中:#pragmacomment(lib,"opengl32.lib")#pragmacomment(lib,"glu32.lib")#pragmacomment(lib,"glau

8、x.lib")//在此处定义全局变量:GL_Window*OGL_window;Keys*OGL_keys;GLuintbase;GLvoidBuildFont(GLvoid)//建立位图字体(BitmapFonts){HFONTnewFont;//用以保存新的字体对象HFONToldFont;//用以保存原字体对象base=glGenLists(256);//存储256个字符//上句需要定义GLuintbase;newFont=CreateFont(-18,//字体的高度0,//字体的宽度0,//旋转的角度0,//定位角度FW_THIN,//字体

9、的粗细FALSE,//斜体?FALSE,//下划线?FALSE,//删除线?ANSI_CHARSET,//字符集OUT_T

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。