Problem mit OpenGL unter QT4
Verfasst: 23. November 2005 18:51
Hallo alle miteinander,
ich bringe mir derzeit OpenGL bei und wollte als Unterlage bzw. GUI Qt nutzen.
Ich habe mir also das OGL-Beispiel für QT4 (Das mit dem QT-Logo) angeguckt und versucht, ein eigenes kleines Test-Prog zu schreiben. Es soll nur 2 ganz simple Formen anzeigen.
Hier der Code meiner von QGLWidget abgeleiteten Klasse:
oglwidget.cpp
Alles bis auf den paintGL()-Part ist direkt aus dem Beispiel übernommen.
Wenn ich mir jedoch das Fenster anzeigen lasse, so ist es nur schwarz, ohne jedliche Formen darin.
Falls jemand eine Idee hot, wo der Fehler liegen könnte, wäre ich sehr dankbar.
Danke im Voraus und Ciao,
Prof. MAAD
ich bringe mir derzeit OpenGL bei und wollte als Unterlage bzw. GUI Qt nutzen.
Ich habe mir also das OGL-Beispiel für QT4 (Das mit dem QT-Logo) angeguckt und versucht, ein eigenes kleines Test-Prog zu schreiben. Es soll nur 2 ganz simple Formen anzeigen.
Hier der Code meiner von QGLWidget abgeleiteten Klasse:
oglwidget.cpp
Code: Alles auswählen
# include <QtOpenGL/QtOpenGL>
# include <QtCore>
# include "oglwidget.h"
OGLWidget::OGLWidget(QWidget *parent) : QGLWidget(parent)
{
}
OGLWidget::~OGLWidget()
{
makeCurrent();
}
QSize OGLWidget::minimumSizeHint() const
{
return QSize(50,50);
}
QSize OGLWidget::sizeHint() const
{
return QSize(400,400);
}
void OGLWidget::initialiseGL()
{
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
}
void OGLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();
glTranslatef(3.0f,0.0f,0.0f);
glBegin(GL_QUADS);
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glEnd();
}
void OGLWidget::resizeGL(int width, int heigth)
{
int side = qMin(width, heigth);
glViewport((width - side) / 2, (heigth - side) / 2, side, side);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0);
glMatrixMode(GL_MODELVIEW);
}
Wenn ich mir jedoch das Fenster anzeigen lasse, so ist es nur schwarz, ohne jedliche Formen darin.
Falls jemand eine Idee hot, wo der Fehler liegen könnte, wäre ich sehr dankbar.
Danke im Voraus und Ciao,
Prof. MAAD