OpenGL学习笔记:显示列表

来源:互联网 发布:网络机房装修招聘 编辑:程序博客网 时间:2024/05/01 04:24
显示列表是OpenGL的一个概念,其实质是一堆OpenGL的指令集。把一系列有关系的绘图指令集合在一起,形成一个显示列表,有以下好处:
1. 提升运行速度。OpenGL对显示列表有优化,比如保存中间结果,服务器端保存指令集等。可以提升指令的运行速度,降低开销
2. 便于管理。把一系列指令集中在一起,可以形成类似函数调用的概念。比如要做一个旋转平移的效果。可以把该效果封装成显示列表,以后再需要类似的效果时,直接使用该显示列表。


使用显示列表一般有四个步骤:
1. 创建列表编号(ID)。glGenLists。可使用glIsList来判断ID是否已被使用
2. 创建列表。glNewList和glEndList创建显示列表
3. 调用列表。glCallList。glListBase可以用来设置偏移量。
GLuint lists[] = {1, 3, 4, 8};

glListBase(10);

glCallLists(4, GL_UNSIGNED_INT, lists);

则实际上调用的是编号为11, 13, 14, 18的四个显示列表

4. 销毁列表。glDeleteLists