2012-06-30 70 views
0

我想用OpenGLES(Win32/C++/VS2010)繪製簡單的三角形。 所以我沒有任何錯誤,但是系統在OpenGLES調用中掛起。系統在OpenGLES調用中掛起

我可以在我的機器上編譯和運行不同的遊戲引擎,並且一切正常,但我無法畫出一個簡單的三角形!

遊戲循環仍在運行,所以我收到更新和繪製事件,我看到了我的三角形,但OpenGLES調用非常慢,系統掛起!

1. Creating and initializing EGL stuff. 

2. glViewport(0, 0, 800, 480); 

3. glClearColor(/*black*/); 

4. glClear(GL_COLOR_BUFFER_BIT); 

5. GLfloat vertices[] = {1,0,0, 0,1,0, -1,0,0}; 

6. glEnableClientState(GL_VERTEX_ARRAY); 

7. glVertexPointer(3, GL_FLOAT, 0, vertices); 

8. glDrawArrays(GL_TRIANGLES, 0, 3); 

9. glDisableClientState(GL_VERTEX_ARRAY); 

10. glFlush(); 

11. eglSwapBuffers(...) 

遊戲日誌顯示一些奇怪的東西!

NO TAG:  Updated: 0ms. 
NO TAG:  Rendered: 0ms. 
NO TAG:  Updated: 1ms. 
NO TAG:  Rendered: 1ms. 
NO TAG:  Updated: 0ms. 
NO TAG:  Rendered: 0ms. 
NO TAG:  Updated: 1ms. 
NO TAG:  Rendered: 1ms. 
NO TAG:  Updated: 0ms. 
NO TAG:  Rendered: 1ms. 
NO TAG:  Updated: 1ms. 
NO TAG:  Rendered: 0ms. 
NO TAG:  Updated: 567ms. 
NO TAG:  Rendered: 478ms. 

對於第50個循環,每個循環都有一個緩慢的繪製和更新調用。

+0

你是什麼意思掛斷電話?你有錯誤嗎?或者硬件崩潰並重新啓動? – Tim

+0

不是,沒有核心錯誤或錯誤或重新啓動。只是系統掛起,所以在屏幕上的所有凍結,我不能做任何事。 –

+0

我有英特爾i7和16 GB內存。 PS:我可以調試這個小應用程序,並且當我一步一步地完成這些調用時,一切都會好起來。 –

回答

0

問題是缺少的這幾行:

if (! m_hAccelTable || ! TranslateAccelerator(msg.hwnd, m_hAccelTable, &msg)) 
{ 
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
} 

現在,我的應用程序不掛斷,但它呈現什麼。