2013-10-30 24 views
0

我爲OpenGL(GLEW)應用程序創建了一個窗口,該應用程序當前繪製並更新標準彩色立方體(立即模式)。我遇到的問題是在哪裏調用initialize()函數,因爲我試圖使用着色器。Win32中,我在哪裏調用OpenGL的initialize()函數?

int szWindow::WinLoop(MSG msg) 
{ 
    while (isRunning) 
    { 
     if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 
     { 
      if (msg.message == WM_QUIT) 
       break; 

      TranslateMessage(&msg); 
      DispatchMessage(&msg); 
     } 
     else 
     {  
      // Application loop here 
      renderClass->Update();   
      renderClass->Render(); 

      SwapBuffers(hDC); 
     } 
    } 
    return 0; 
} 
+0

GLEW和OpenGL是兩個獨立的東西,前者嚴重依賴後者。在創建一個有效的上下文之前,你不能調用'glewInit()'*,因爲'GLEW'使用GL函數,只會在沒有有效上下文的情況下使應用程序崩潰。另外,我不確定你說的是什麼'initialize()'函數。你能澄清一下嗎? – thokra

回答

-1

我覺得這不是最好的開始。我會建議使用GLFW。你不需要關心打開OpenGL上下文。但如果你真的想自己做,從OpenGL Wiki開始。

關於GLEW,沒有祕密:glewInit()

記住在Windows中的OpenGL,您必須打開GL上下文(使用GLFW或自己)並加載OpenGL擴展(使用GLEW或自己)。

UPDATE:

繼thokra的建議,我更新了別人需要它的情況下,這個答案。我的第一個建議是使用NeHe來打開背景,但事實上,對於現代OpenGL來說,OpenGL Wiki要好得多。

+0

感謝您的輸入。我放棄了這個程序,轉移到你剛纔所說的並試圖創建一個glfw3/glew應用程序。現在,我只是從他們的Hello World例子 – SpicyWeenie

+0

http://www.opengl-tutorial.org/上得到了LNK2019的錯誤,因爲他們的glfw調用一直在進行。 –

+1

-1表示NeHe。使用OpenGL wiki(http://www.opengl.org/wiki/Creating_an_OpenGL_Context)。 NeHe已經過時了,很久以來一直被OpenGL社區所厭惡,而且由於OP提到想要使用着色器,NeHe不是一個好地方。 – thokra

相關問題