OpenGL Overlay in einer 3D Szene mit DirectX

Alles rund um die Programmierung mit Qt
Antworten
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

OpenGL Overlay in einer 3D Szene mit DirectX

Beitrag von Nash »

Wie kann ich ein einfaches 2D Overlay(wie in den Beispielen ein einfacher 2D-Text) auf eine Szene rendern die DirectX nutzt?

Vorher hab ich ein einfaches QWidget genutzt aber den Text nicht gesehen.
Nun nutze ich das QGLwidget und sehe schon immerhin mal den Text.
Aber leider zeichnet er den Text nicht transparent auf auf 3D Szene sondern er füllt den restligen Teil des Bildes komplett mit Grau oder so..obwohl er es laut den Code gar nicht machen dürfte.

Code: Alles auswählen

// hier rendere ich meine 3D Szene mit DirectX
renderTheWindow();	

	QPainter p(this); // used for text overlay
	const QString str1(tr("A simple OpenGL framebuffer object example."));
	const QString str2(tr("Use the mouse wheel to zoom, press buttons and move mouse to rotate, double-click to flip."));

	p.setPen(QColor(197, 197, 197, 157));
	p.setBrush(QColor(197, 197, 197, 127));
	p.drawRect(QRect(0, 0, width(), 50));
	p.setPen(Qt::black);
	p.setBrush(Qt::NoBrush);


	QFontMetrics fm(p.font());
	p.drawText(width()/2 - fm.width(str1)/2, 20, str1);
	p.drawText(width()/2 - fm.width(str2)/2, 20 + fm.lineSpacing(), str2);
Daraus reultiert natürlich ein flickern zwischen meiner 3D Szene und den Text.

Weiß jemand rat? wie ich das flickern verhindern kann?
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

Hat denn keiner ne Idee?
Neuling_
Beiträge: 83
Registriert: 8. August 2009 20:55

Beitrag von Neuling_ »

gabs ne Lösung?
Qt 2009.05
Entw.-umgebung Qt-Creator
Antworten