ich habe eine kleine Designfrage zur Benutzung von Qt bzw. eines QGLWidgets. Ich schreibe gerade einen kleinen OpenGL-Viewer (abgeleitet von QGLWidget) mit folgendem Design (abstrahiert):
Code: Alles auswählen
viewer----+
|
+---scene-----+
| |
geometry rendering object
Code: Alles auswählen
makeCurrent()Code: Alles auswählen
render()Mein Problem ist, dass ich nun Text im Viewer anzeigen will, z.B. zu jedem Punkt den Abstand zum Ursprung (0,0,0). Derzeit nutze ich gluProject und QGLWidget::renderText dafür, brauche deshalb aber auch den Viewer im Rendering-Objekt.
Da das kein gutes Design ist, suche ich eine bessere Lösung. Meine Frage ist, wie Ihr das angehen würdet?
Meine zwei Ideen sind:
1. Nur eine Referenz auf das QGLWidget und nicht den ganzen Viewer an die Rendering-Klasse geben. Pro: Leicht zu implementieren. Kontra: Die Low-Level-Klasse hat immer noch Zugriff auf GUI-Funktionen aus QWidget.
2. Ich erstelle im Viewer einen Container für Punkte und Strings. Dieser wird an die Rendering-Objekte gegeben und dort befüllt. Der Viewer rendert danach einfach nur noch den Inhalt des Containers. Pro: Gutes Design (denke ich). Kontra: Umständlich umzusetzen (das Design ist in echt etwas komplizierter als da oben zu sehen ist). Daneben weiß ich nicht, wie es mit der Laufzeit aussieht und ggf. halte ich Informationen auch doppelt im Speicher (zumindest als Pointer).
Freue mich über Antworten und Ideen.
Viele Grüße
Dee