Я просмотрел массу статей и ТАКИХ вопросов о том, что OpenGL не рисует, о распространенных ошибках и т. д. Этот вопрос ставит меня в тупик.
Я пробовал несколько разных настроек для glOrtho
, разных позиций вершин, цветов и т.д., все безрезультатно.
Я могу подтвердить, что состояние OpenGL допустимо, потому что чистый цвет является фиолетовым в коде (это означает, что окно фиолетовое). gDEBugger также подтверждает, что кадры обновляются (как и Fraps).
Вот код. Строки, помеченные как «не помогло», изначально не существовали, и это были вещи, которые я пробовал и не смог.
QTWindow::QTWindow( )
{
// Enable mouse tracking
this->setMouseTracking(true);
}
void QTWindow::initializeGL()
{
// DEBUG
debug("Init'ing GL");
this->makeCurrent(); ///< Didn't help
this->resizeGL(0, 0); ///< Didn't help
glDisable(GL_CULL_FACE); ///< Didn't help
glClearColor(1, 0, 1, 0);
}
void QTWindow::paintGL()
{
// DEBUG
debug("Painting GL");
this->makeCurrent(); ///< Didn't help
glLoadIdentity();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,1,1);
glBegin(GL_TRIANGLES);
glVertex2f(500,100);
glVertex2f(100,500);
glVertex2f(0,0);
glEnd();
this->swapBuffers(); ///< Didn't help
}
void QTWindow::resizeGL(int width, int height)
{
// DEBUG
debug("Resizing GL");
this->makeCurrent(); ///< Didn't help
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 1000, 0, 1000, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
Треугольник вообще не отображается, даже если отсечение отключено. Однако все три журнала отладки называются именно так, как и должны быть.
Что мне не хватает?
glClearColor
иglClear
), но нет рисования треугольника? Просто хочу уточнения... - person Aaron   schedule 08.02.2013makeCurrent
и заменилupdateGL
только наupdate
. Еще ничего. - person Qix - MONICA WAS MISTREATED   schedule 08.02.2013