glCallLists 函数用于同时执行多个显示列表。
glCallLists 函数用于同时执行多个显示列表。
The glCallLists function executes a list of display lists.
void glCallLists( GLsizei n, GLenum type, const GLvoid *lists);
执行N个显示列表,被执行的显示列表的索引是通过把当前显示列表的基址表示的偏移值与list指定的数组中的有符号整形值相加得到的。
自定义的输出函数:
GLvoid glPrint(const char *fmt, ...)// 自定义GL输出字体函数
{
float length = 0;
chartext;// 保存文字串
va_listap;// 指向一个变量列表的指针
if (fmt == NULL)// 如果无输入则返回
return;
va_start(ap, fmt);// 分析可变参数
vsprintf(text, fmt, ap);// 把参数值写入字符串
va_end(ap);// 结束分析
for (unsigned int loop=0;loop<(strlen(text));loop++)// 查找整个字符串的长度
{
length+=gmf].gmfCellIncX;
}
glTranslatef(-length/2,0.0f,0.0f);// 把字符串置于最左边
glPushAttrib(GL_LIST_BIT);// 把显示列表属性压入属性堆栈
glListbase(base);// 设置显示列表的基础值
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);// 调用显示列表绘制字符串
glPopAttrib();// 弹出属性堆栈
}