OpenGL文字显示
2010年06月22日
本文参考NeHe第13课图像字体。
大致三步: 1. 创建字体的函数: /* * BuildFont * 创建位图字体 */ GLvoid BuildFont(GLvoid) { HFONT font; // 字体句柄 HFONT oldfont; base = glGenLists(256); // 创建96个显示列表 font = CreateFont(-24, // 字体高度 0, // 字体宽度 0, // 字体的旋转角度 0, // 字体底线的旋转角度 FW_BOLD,// 字体重量 FALSE, // 是否使用斜体 FALSE, // 是否使用下划线 FALSE, // 是否使用删除线 ANSI_CHARSET, // 设置字符集 OUT_TT_PRECIS, // 输出精度 CLIP_DEFAULT_PRECIS, // 剪裁精度 ANTIALIASED_QUALITY, // 输出质量 FF_DONTCARE|DEFAULT_PITCH, "Courier New"); // 字体名称 oldfont = (HFONT)SelectObject(hDC, font); // 选择我们需要的字体 wglUseFontBitmaps(hDC, 0, 256, base); // 创建96个显示列表,绘制从ASCII码为32-128的字符 SelectObject(hDC, oldfont); DeleteObject(font); } 其中base是一个全局变量
GLuint base; // 绘制字体的显示列表的开始位置
关于CreateFont的使用,请网上查找相关资料。
2. 打印函数
这里定义了一个类似C语言printf的一个参数可变的函数,需要stdarg.h文件: /* * glPrint * 自定义GL输出函数 */ GLvoid glPrint(const char *fmt, ...) { char text[256]; // 保存字符串 va_list ap; // 指向一个变量列表的指针 if (fmt == NULL) return; va_start(ap, fmt); // 分析可变参数 vsprintf(text, fmt, ap); // 把参数值写入字符串 va_end(ap); glPushAttrib(GL_LIST_BIT); // 把显示列表属性压入属性堆栈 glListBase(base - 0); // 设置显示列表的基础值 glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // 调用显示列表绘制字符串 glPopAttrib(); // 弹出属性堆栈 } 3. 删除字体 /* * KillFont * 删除显示列表 */ GLvoid KillFont(GLvoid) { glDeleteLists(base, 256); } 在InitGL()中添加创建字体的代码: 在DrawGLScene()中添加代码: 在KillGLWindow()中添加删除字体的代码:
发表评论
-
用OpenInventor实现的NeHe OpenGL教程-第二十四课
2012-01-20 08:50 880用OpenInventor实现的NeHe OpenGL教程-第 ... -
OpenGL的位图和图像
2012-01-20 08:50 866OpenGL的位图和图像 2011年05月20日 OPE ... -
WINCE使用OpengL ES 显示文字的实现
2012-01-20 08:50 929WINCE使用OpengL ES 显示文字的实现 2011年 ... -
使用web.py创建一个blog
2012-01-20 08:50 1032使用web.py创建一个blog 2011年03月14日 ... -
See丶小莫
2012-01-19 13:55 412See丶小莫 2011年04月16日 ... -
宝贝的和我的,我会努力去磨合的
2012-01-19 13:55 530宝贝的和我的,我会努力去磨合的 2011年12月29日 ... -
12星座的怒点
2012-01-19 13:55 47712星座的怒点 2011年11月21日 白羊(跟你讲你不 ... -
linux下服务说明<转>
2012-01-17 03:45 566linux下服务说明 2011年12月13日 我的Cen ... -
Win 7服务详解及其建议
2012-01-17 03:45 776Win 7服务详解及其建议 2012年01月06日 Wi ... -
2011-12-21
2012-01-17 03:44 5952011-12-21 2011年12月21日 一、高级 ... -
2011-12-11
2012-01-17 03:44 5192011-12-11 2011年12月11日 ... -
2011-11-30
2012-01-17 03:44 4852011-11-30 2011年11月30日 ... -
小学语文教学随笔
2012-01-16 02:22 579小学语文教学随笔 2011 ... -
笑死作文
2012-01-16 02:22 578笑死作文 2011年11月28日 星期一到了……小英在交 ... -
小学回忆录
2012-01-16 02:21 444小学回忆录 2011年12月16 ... -
可爱小弟(六)
2012-01-16 02:21 486可爱小弟(六) 15小时前 这 ... -
眯噜作文,呵呵
2012-01-16 02:21 495眯噜作文,呵呵 2011年12 ...
相关推荐
Qt版的OpenGLDemo,其中包含透视投影,纹理贴图,文字显示,反锯齿。
OpenGl文字显示c++类,包括*.h和*.cpp,可显示中英文,已优化,速度很快。
NULL 博文链接:https://kungsoft.iteye.com/blog/318875
vc下利用opengl实现的图像贴图与文字显示 希望对学习OpenGL的人有所帮助
在C#中,通过FreeType方式为OpenGL显示文字。 使用了SharpFont和SharpGL类库
OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库。因此,要显示文字,就必须依赖操作系统所提供的功能了
使用freetype于opengl显示汉字 改编的东西 :)
本程序是使用FreeType2.0库, 在OpenGL中显示文字, 若字库文件支持unicode, 则可显示汉字等东亚字符, 本程序是本人为嵌入式系统所写的一个原型程序,若加上着色器,便可很容易移植到OPenGL ES2.0
OpenGL显示字体的例子很少,尤其是中文字体,本例子介绍了一种显示中文字体的方法。
用opengl显示RGB数据,自己测试代码,虽杂乱但是比较简单,可以从中扣自己要的代码。
openGl下中英文字的显示,使用了位图文字、矢量轮廓文字
vb opengl中文字体显示,能够显示文字,包括中文
OpenGL中显示文字源码,程序中呈现关于如何在OpenGL中显示文字的方法
博文《OpenGL中描边字体的显示》的对应代码
OpenGL TrueType 汉字 显示类
使用GTK4+OpenGL+FreeType2 显示文字
OpenGL使用Window API绘制矢量字体(非常简单)
这是一个用OpenGL编写的显示3维字体的完整程序代码