Я в тупике. У меня есть виджет внутри основного окна приложения QT 4.6, которое было настроено как виджет openGL. Он рисует просто отлично, за исключением того, что я не могу очистить фон между кадрами. Я получаю черный фон, когда открывается окно, и он никогда не очищается после этого, поэтому со временем я получаю беспорядочную смесь визуализированных объектов. Мне также приходится вызывать swapBuffers() в конце функции paintGL(), чтобы виджет отображал самый последний кадр, что меня озадачило, поскольку у меня сложилось впечатление, что swapBuffers() вызывается автоматически. Я настроен на двойную буферизацию, и виджет не используется совместно. Вот соответствующий код:
void GLWidget::paintGL ( )
{
m_Input.Draw();
QGLWidget::swapBuffers();
}
void GLWidget::initializeGL ( )
{
qglClearColor(QColor(0,0,255,128));
glClear(GL_COLOR_BUFFER_BIT);
}
Кажется, что-то не так с двойной буферизацией. Очистка экрана до фонового цвета довольно проста. Но это сводит меня с ума, почему это не работает. Остальная часть кода рисования работает нормально. Любые идеи? (Это в системе Linux.)