如果要重新编译现有的编译显示列表,是否需要先调用glDeleteLists()和glGenLists()?或者可以通过在现有的编译显示列表ID上调用glNewList()来重新编译显示列表?
答案 0 :(得分:4)
只需调用glNewList / glEndList即可。
请注意,删除仅在glEndList调用中生效:
If a display list with name `list` already exists,
it is replaced only when glEndList is called.
如果您希望先前释放上一个列表,那么请务必致电glDeleteLists
。明确肯定不会受到伤害。
最后一点......从不需要glGenLists。你总是可以在任何正整数上调用glNewList,即使它不是通过glGenLists提供的。 glGenLists API的主要原因是确保名称尚未使用。但是你已经知道如果你刚刚删除了它。