2012-06-30 4 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

Нет, нет никаких ошибок или перезагрузки. Просто SYSTEM зависает, поэтому все на экране зависает, и я не могу ничего делать. –

+0

У меня есть операционная система Intel i7 и 16 Gb. PS: Я могу отладить это небольшое приложение, и все прошло нормально, когда я делаю эти звонки шаг за шагом. –

ответ

0

Проблема была в отсутствие этих строк:

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

Теперь мое приложение не зависает, но он не делает ничего.

Смежные вопросы