ich habe angefangen, mich mal an dem QGLWidget zu probieren, und prinzipiell funktioniert es auch schon, dass von meinem unten stehenden Beispielcode ein rotes Dreieck gezeichnet wird. Allerdings scheint mir, dass es ein Problem mit dem Neuzeichnen gibt bzw. das Widget zu selten oder nicht richtig wiedergezeichnet wird. So flackert nach dem Erzeugen des Widgets zwar das Dreieck kurz auf, allerdings wird das Widget anschließend komplett schwarz oder auch mit viel "Müll" neugezeichnet. Auch macht das Widget Änderungen der Fenstergröße nicht mit: Es bleibt immer gleich groß und nach einem kurzen Flackern ist es wieder schwarz.
Die Sache verhält sich besser, wenn ich z.B. bei Mausbewegungen durch updateGL() ein Neuzeichnen erzwinge. Allerdings ist das ja nicht Sinn der Sache, oder? Ähnlich verhält es sich übrigens auch mit den OpenGL-
Beispielprogrammen, die bei QT dabei sind.
Code: Alles auswählen
void GLWidget::initializeGL()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
}
void GLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glColor3d(1.0, 0.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex3d( 0.0, 1.0, 0.0);
glVertex3d(-1.0, -1.0, 0.0);
glVertex3d( 1.0, -1.0, 0.0);
glEnd();
}
void GLWidget::resizeGL(int width, int height)
{
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
}
Ich bin für jeden Tipp oder Hinweise auf irgendwelche Fehler in meinem Code dankbar!
Viele Grüße, Blafasel