Я работаю над некоторым программным обеспечением для отображения полупрозрачных изображений подряд.
Он отлично работал, используя функции переполнения для изменения размера и т. Д., Но затем я решил перейти на Qt для графического интерфейса.
все функции переполнения удалены, и я использую QGLWidget для рендеринга моего материала OpenGL.
Когда я открываю программу, все работает так, как я хотел, но как только я изменяю размер главного окна (и, таким образом, изменяется размер QGLWidget), содержимое моего виджета openGL исчезает или кажется загроможденным.
Странно, хотя виджет полностью серый (мой glclearcolor), когда нет загроможденного рендеринга содержимого моей сцены.
Вот как это должно выглядеть (после запуска программы): http://abload.de/img/okw0qh0.png
А вот как это выглядит после изменения размера главного окна: http://abload.de/img/errort1peu.png (иногда просто серый)
моя функция resizeGL выглядит так и вызывается правильно:
void prosta3dwidget::resizeGL(int width, int height)
{
if (height == 0) return; // To prevent divide by 0
GLfloat aspect = (GLfloat)width / (GLfloat)height; //get aspect ratio
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, aspect, 0.5f, 100.0f);
glViewport(0, 0, width, height);
update(); //redraw content
glMatrixMode(GL_MODELVIEW);
}