在头文件opengl中声明所有显示列表

时间:2014-10-03 10:09:19

标签: c++ opengl displaylist

我的文件结构为

  • display_list.hpp
  • display_list.cpp
  • file1.cpp

现在我想使用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();
}

但是当我尝试在我的file1.cpp中使用glCallList(index)时,屏幕上没有任何内容。

1 个答案:

答案 0 :(得分:1)

a)您不应使用显示列表。 OpenGL-2已经弃用了显示列表(OpenGL-2的第一个草稿完全删除了它们),并且已从OpenGL-3及更高版本中删除。

b)要创建显示列表,需要在当前线程上激活有效的OpenGL上下文。我假设您在存在OpenGL上下文之前调用genDisplayLists,例如,如果它们是由全局范围对象实例的构造函数调用的。