截取转载自:http://blog.youkuaiyun.com/LotusOne/article/details/4745275
glGenLists()会生成一组连续的空的显示列表,其原型如下:
GLuint glGenLists(
GLsizei range
); 其中range表示这一组显示列表的数目。当range取0,或者没有可供产生的显示列表组,或者函数调用出现了错误,则函数返回0,此时也表示没有创建成功。
glGenLists()创建显示列表组成功时返回第一个显示列表的名字,虽然显示列表是UINT类型的,但是实际最多可以创建2147483647(2^31-1)个显示列表。
由于创建的显示列表组是连续的,glGenLists()首先检查有哪些值已经被占用,然后从最小的值开始建立连续的显示列表。例如,如果8已经被占用,glGenLists(10)要创建10个显示列表,则生成的显示列表范围是9~18;如果是glGenLists(7)创建7个显示列表,则从最小的1开始到7是生成的结果。
glIsList()判断某个值是否被作为显示列表占用,避免使用了已经占用的值来创建新的显示列表。glList()只有一个参数,是用来检查是否是显示列表的值,返回TRUE表示该值已经作为显示列表被占用,反之返回FALSE。
当显示列表已经不需要时,还可以使用glDeleteLists()删除显示列表,其原型如下:
void glDeleteLists(
);
其中list是要删除的显示列表序列的第一个,range是要删除的显示列表的数目。例如glDeleteLists(9,10)表示删除9~18这10个显示列表。当范围中的某些值不是显示列表时,glDeleteLists()将会忽略。