У меня есть файловая структура как
Теперь я хочу использовать один из списка отображения в file1.cpp.
мой display_list.hpp
похоже
extern GLuint index;
void genDisplayList();
затем display_list.cpp
похоже
GLuint index = glGenLists(1);
void genDisplayList(){
glNewList(index, GL_COMPILE);
glBegin(GL_POLYGON);
/*..vertex for polygon...*/
glEnd();
glEndList();
}
Но когда я пытался использовать glCallList(index)
в мой file1.cpp я ничего не нарисовал на экране.
а) Вы не должны использовать списки отображения. Списки отображения устарели в OpenGL-2 (первые черновики для OpenGL-2 полностью их удалили) и были удалены из OpenGL-3 и более поздних версий.
б) Для создания списка отображения действительный контекст OpenGL должен быть активным в текущем потоке. Я полагаю, ты звонишь genDisplayLists
до появления контекста OpenGL, например, если они вызываются конструктором экземпляра объекта глобальной области видимости.