Seite 1 von 1

OpenGL auf QWidget zeichnen (mit Transparenz)

Verfasst: 20. Oktober 2009 23:43
von steffenm
Hallo,

ich habe folgendes Problem.
Ich habe eine Animation welche sich "langsam" ändert. Diese soll transparent auf einem QWidget gezeichnet werden.
Soweit ich das verstanden habe, ist dies mit QGLWidget ja nicht möglich. Bei der Suche nach der Lösung bin ich auf QGLPixelBuffer gestoßen.
Ich habe nun einen QGLPixelBuffer mit folgendem Befehl angelegt:

Code: Alles auswählen

   pbuffer = new QGLPixelBuffer(70, 70, QGLFormat(QGL::SampleBuffers), this);
dies erfolgt innerhalb einer von QGLWidget abgeleiteten Klasse.
Auf den Buffer zeichnen und dann als Bild irgendwo einbinden, war auch nicht wirklich ein Problem.
Nur das Ergebnis verwundert mich. Es sieht so aus, als würde Anti-Aliasing nicht aktiviert sein.
Wenn ich jedoch pbuffer->makeCurrent(); weglasse und direkt auf dem QGLWidget zeichne, dann habe ich ein Ergebnis, welches dem Anschein nach Anti-Aliasing aktiviert hat.

Kann mir vielleicht jemand helfen, oder einen Tipp gehen, wie ich die "hässlichen" Kanten verbessere?
Oder gibt es einen einfacheren und besseren Weg, mit OpenGL auf einem QWidget zu zeichnen?
Oder ist es gar so dumm, dass QGLPixelBuffer nicht Anti-Aliasing unterstützt?

Vielen Dank.
Steffen