2024年4月3日发(作者:)
字体的绘制
Bitmap Fonts位图字体的绘制
1 在初始化场景函数(如Initialize)中调用CreateFont()建立位图字体
由于还要
用glGenLists()创建空显示列表以存储字符、
用SelectObject()选进或恢复设备描述表、
用DeleteObject()删除新建字体,
所以实际上不是直接在初始化函数中调CreateFont,而是自定义一个函数BuildFont
调用CreateFont()、glGenLists()、SelectObject()、DeleteObject()等,然后在初始化场
景函数(如Initialize)中调用BuildFont。
2 在退出前的扫尾函数(如Deinitialize)中调用glDeleteLists删除保存字体的显示列表
该函数有参数:glDeleteLists(base,256)
3 自定义函数Print用来在窗口中显示字符串,并在场景绘制函数(如DrawScene)中调用
(1) 用glColor设置文字颜色;
(2) 用glRasterPos设置文字显示的位置;
(3) 调用Print显示文字
附1 BuildFont的定义
GLvoid BuildFont(GLvoid) // 建立位图字体(Bitmap Fonts)
{
HFONT newFont;// 用以保存新的字体对象
HFONT oldFont;// 用以保存原字体对象
base = glGenLists(256); // 存储256个字符
//上句需要定义GLuint base;
newFont = CreateFont( -18, // 字体的高度
0, // 字体的宽度
0, // 旋转的角度
0, // 定位角度
发布评论