1、创建一个BMP的纹理图,确定文字的位置,颜色和阴影效果等内容。
2、使用JOGL创建GLSL(OpenGLShadingLanguage)着色器程序,该程序将用来渲染文字。
3、使用JOGL的绘制程序,将着色器程序绘制到图片中。
4、将绘制后的图片添加到OpenGL3D图中,在图中可以看到添加的文字内容。
wglUseFontBitmaps函数显示文字
----使用wglUseFontBitmaps()将ASCII字符装入显示列表,然后使用glCallLists()函数利用显示列表序列显示文本。
wglUseFontBitmaps有四个参数,分别是当前使用的DC、从第几个ASCII字符起始装入列表、装入列表的ASCII字符数和起始的列表序号。
glListBase()指定glCallLists执行的起始列表序列号。glCallLists()含有三个参数:执行列表序列的个数、列表值的类型和所要显示的文本。
注意如果所要显示的文本是字符串,它所提供的信息是相对于起始装入ASCII字符的偏移量,因此最终所显示的ASCII字符是从glListBase()所指定的列表起始号在经过glCallLists()中偏移后的列表,因此wglUseFontBitmaps的从第几个ASCII字符起始装入列表参数、glListBase()指定的 glCallLists执行的起始列表序列号和glCallLists()中的所要显示的文本参数都可以影响最终显示结果。
由于显示的是ASCII 字符,因此不能显示汉字。glRasterPos3f函数决定在 OpenGL视景体坐标系下的偏移。具体函数实现如下:
void CTextView::DrawListText()
{
wglUseFontBitmaps(wglGetCurrentDC(),0,256,1000)
glListBase(1000)
glRasterPos3f(-5.0f,0.0f,0.0f)
glCallLists(20,GL_UNSIGNED
_BYTE,“Draw with List Text.")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)