看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS 2010 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenGL 問題(Question): 我有個 class A 有以下的架構: class A { private: GLuint _varA; GLuint _varB; void funcA(); void funcB(); public: void A() { funcA(); // 建立貼圖索引 funcB(); // 建立 Display List 索引 } void drawA(); }; 而 funcA()、funcB 裡面分別呼叫了 glGenTextures(1, &_varA); 以及 _varB = glGenLists(1); 至於 drawA() 則是使用 _varA 的索引來 Bind Texture 進行貼圖、 以及使用 _varB 的索引來使用 Display List ------ 接著 class B 有以下的結構: class B : public A { }; ------ 目前問題在於跑完以下程式碼後 B b; b.drawA(); 畫面上卻沒有任何東西。 於是我在 funcA() 以及 funcB() 裡面, 建立索引的那兩行後方加上這樣的測試。 if( glGetError() == GL_INVALID_OPERATION ) std::cout << "YES" << std::endl; 於 Dos 視窗內確實都印出了 YES 的字樣。 想請問為什麼會發生這樣的錯誤呢? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.82.93
cuteclare:...你的code勒 06/07 16:54
azureblaze:你給的資訊只能知道他發生錯誤.... 06/07 16:56
Nestarneal:抱歉,我剛找出錯誤了。我用 glut 建立視窗,發現 06/07 17:02
Nestarneal:在視窗建立之後才可以使用那些建立索引的函數, 06/07 17:02
Nestarneal:不然就會發生錯誤...@@ 06/07 17:02
a27417332:我猜是因為沒建立視窗前,OGL需要的上下文還沒準備 06/20 22:18