2014-10-03 49 views
-1

我的文件結構宣佈所有顯示列表頭文件的OpenGL

  • 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(); 
} 

但是當我試圖用glCallList(index)到我file1.cpp,我什麼也沒得到在屏幕上繪製。

回答

1

a)您不應該使用顯示列表。顯示列表已被OpenGL-2(OpenGL-2的第一批草稿完全刪除)棄用,並且已從OpenGL-3及更高版本中刪除。

b)要創建一個顯示列表,有效的OpenGL上下文需要在當前線程上處於活動狀態。我假設你在OpenGL上下文之前調用genDisplayLists,例如,如果它們是由全局作用域對象實例的構造函數調用的。

+0

我使用的是opengl 2.0,並且已經正確初始化上下文。 – Dheerendra 2014-10-03 12:35:58