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