关于glCallList,假设我在显示列表上有一些命名显示,我知道可以通过调用glCallList(i)
重新绘制每个显示。
我的问题是 - 是否可以覆盖此命名显示?是的,一旦i'st
存在,我将进行显示调用,它将存储在glCallList(i)
。
修改
例如 - 现在glCallList(1)
画一个立方体,我想覆盖它,然后制作
glCallList(1)
画一个三角形。
答案 0 :(得分:3)
请注意,显示列表是OpenGL中最古老的部分之一,即使在正式弃用之前,它们的使用也不受欢迎。他们最初服务的主要目的是“记录”命令序列,这些命令将持久地设置状态/数据来代替现代OpenGL的状态/数据对象(例如纹理对象,顶点缓冲对象,采样器对象等)。
尽管如此,对glNewList (...)
和glEndList (...)
的一对调用实际上将替换显示列表,而不是在向其传递已有数据的句柄时分配新的列表。因此,您不需要经历glDeleteLists (...)
然后glGenLists (...)
的麻烦来重复使用相同的句柄(名称)。