Zeichenfunktionen: QWidget vs. QGLWidget

Verschiedenes zu Qt
Antworten
stimpy
Beiträge: 64
Registriert: 7. März 2006 17:05

Zeichenfunktionen: QWidget vs. QGLWidget

Beitrag 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
stimpy
Beiträge: 64
Registriert: 7. März 2006 17:05

Im Prinzip schon...

Beitrag 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).
uhu01
Beiträge: 150
Registriert: 10. Juli 2005 20:46

Beitrag von uhu01 »

Hy!

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

mfg
uhu01
stimpy
Beiträge: 64
Registriert: 7. März 2006 17:05

Beitrag 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...)
Antworten