如何覆盖显示列表上的命名显示 - glCallList()

时间:2013-08-15 18:01:15

标签: opengl

关于glCallList,假设我在显示列表上有一些命名显示,我知道可以通过调用glCallList(i)重新绘制每个显示。

我的问题是 - 是否可以覆盖此命名显示?是的,一旦i'st存在,我将进行显示调用,它将存储在glCallList(i)

修改

例如 - 现在glCallList(1)画一个立方体,我想覆盖它,然后制作 glCallList(1)画一个三角形。

1 个答案:

答案 0 :(得分:3)

请注意,显示列表是OpenGL中最古老的部分之一,即使在正式弃用之前,它们的使用也不受欢迎。他们最初服务的主要目的是“记录”命令序列,这些命令将持久地设置状态/数据来代替现代OpenGL的状态/数据对象(例如纹理对象,顶点缓冲对象,采样器对象等)。

尽管如此,对glNewList (...)glEndList (...)的一对调用实际上将替换显示列表,而不是在向其传递已有数据的句柄时分配新的列表。因此,您不需要经历glDeleteLists (...)然后glGenLists (...)的麻烦来重复使用相同的句柄(名称)。