Seite 1 von 1

Zeichenfunktionen: QWidget vs. QGLWidget

Verfasst: 8. September 2006 10:06
von stimpy
Hallo,

ich erforsche gerade das QT-Grafiksystem. Dabei ist mir folgendes aufgefallen: wenn ich ein eigenes Widget statt von einem QWidget von einem QGLWidget ableite, funktioniert das Zeichnen mit den draw-Funktionen immer noch. Man kann paintEvent() ganz normal nutzen. Nur die Paint-Engine ist eine andere (qpaintengine_opengl.cpp). Man kann im Code sogar nachlesen, wie drawLines() usw. in OpenGL-Befehle umgesetzt werden. (Da haben die Leute echt nachgedacht.)

Wäre das nicht auch eine simple Methode um die Grafik etwas zu beschleuinigen? Nach meinen Erkenntnissen läuft z.B. OpenGL auf meinem G4-Mac deutlich schneller als die "normale" Grafik.

Viele Grüße,
Stimpy

Im Prinzip schon...

Verfasst: 9. Oktober 2006 11:15
von stimpy
Hab's getestet:

Mit QT 4.2. funktioniert das tatsächlich. Davor war die Umsetzung der draw...-Befehle im GLWidget z.T. recht dürftig (insbesondere Fonts).

Verfasst: 9. Oktober 2006 13:06
von uhu01
Hy!

Dein Testbeispiel wäre vielleicht einen Eintrag in den Snippets wert...
(bzw. mich würde der genaue Code interessieren)

mfg
uhu01

Verfasst: 9. Oktober 2006 13:37
von stimpy
Die besten Beispiele liefert QT 4.2. selbst:

- 2D Painting Example
- Overpainting Example

Ansonsten kann man die draw-Befehle von QPainter ganz normal verwenden.
(Einzig die Clipping-Rechtecke werden offenbar etwas anders dargestellt. Muß ich aber nochmal testen...)