我有一个关于OpenGL中嵌套显示列表删除的问题。您可以简单地通过以下方式创建显示列表:
GLuint myList = glGenLists(1);
glNewList(myList, GL_COMPILE);
// ...code for objects in list...
glEndList();
如果我没记错的话,这样的列表可以通过以下方式简单删除:
glDeleteLists(myList, 1);
现在,一个显示列表也可以被嵌套使用,这样每个列表可以包含另一个或多个显示列表。代码的格式将如下所示:
GLuint parentList = glGenLists(1); // ID = 1
glNewList(parentList , GL_COMPILE);
GLuint childList1 = glGenLists(1); // ID = 2
glNewList(childList1 , GL_COMPILE);
// .. code for some objects here
glEndList();
GLuint childList2 = glGenLists(1); // ID = 3
glNewList(childList2, GL_COMPILE);
// .. code for more objects here
glEndList();
glEndList();
但我的问题是,如何删除这样的嵌套列表?仅删除父级是否足够,还是应该单独删除其子级?在后一种情况下:顺序是否重要?