我想使用OpenGLES(Win32 / C ++ / VS2010)绘制简单的三角形。 所以我没有任何错误,但系统挂起了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 :(得分:0)
问题在于缺少这些内容:
if (! m_hAccelTable || ! TranslateAccelerator(msg.hwnd, m_hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
现在,我的应用程序不会挂起,但它什么也不呈现。