Problem mit OpenGL unter QT4



  • 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

    # 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);
    }
    

    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



  • dasselbe prob hatte ich selber kanns sein dass des soger der code is denich gepostet hab? 😉
    naja azch egal du must die gltranslatef() rausnehmen
    😉



  • Also erstmal, danke für die Antwort.

    2 Sachen:
    1. Es ist nicht dein Code, habe den einfach größtenteils aus nem Tutorial abgeschrieben.
    2. Ich habe die beiden glTranslatef(-1.5f,0.0f,-6.0f)-Aufrufe jetzt entfernt, aber es funzt immer noch nicht.

    Falls jemand noch ne Idee hat, wäre ich sehr dankbar.

    Danke schonmal und Ciao,

    Prof. MAAD


Anmelden zum Antworten