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[256];// 保存文字串
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[text[loop]].gmfCellIncX;
}
glTranslatef(-length/2,0.0f,0.0f);// 把字元串置於最左邊
glPushAttrib(GL_LIST_BIT);// 把顯示列表屬性壓入屬性堆疊
glListBase(base);// 設定顯示列表的基礎值
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);// 調用顯示列表繪製字元串
glPopAttrib();// 彈出屬性堆疊
}
{
float length = 0;
chartext[256];// 保存文字串
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[text[loop]].gmfCellIncX;
}
glTranslatef(-length/2,0.0f,0.0f);// 把字元串置於最左邊
glPushAttrib(GL_LIST_BIT);// 把顯示列表屬性壓入屬性堆疊
glListBase(base);// 設定顯示列表的基礎值
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);// 調用顯示列表繪製字元串
glPopAttrib();// 彈出屬性堆疊
}