Anzeige:
Ergebnis 1 bis 7 von 7

Thema: OpenGL/QT Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13

    OpenGL/QT Problem

    Hallo Leute,

    Bin gerade am Verzweifeln
    Ich habe ein QT Fenster erstellt und drin ein OpenGL Widget reingemacht. Dann hab ich eine GLWidget Klasse erstellt die folgendermassen aussieht.

    Code:
    #ifndef _OGL_WIDGET_H_
    #define _OGL_WIDGET_H_
    
    #include <qgl.h>
    
    namespace SWP0607 {
    
    
    class OGLWidget : public QGLWidget
    {
        	Q_OBJECT
        
    
    public:
        	//! Default constructor
        	OGLWidget( QWidget* parent = 0, const char* name = 0 );
    
        	//! Destructor
        	~OGLWidget(); 
    
    protected:
    	void initializeGL();
    	void resizeGL(int w, int h);
    	void paintGL();
    
    private:
    	
    };
    
    }
    
    #endif
    Nun hab ich eine Implementierung geschrieben die nur leer ist und das Programm kompiliert und ausgeführ und alles war in Ordnung. Aber sobald ich eine OpenGl Funktion in zB initializeGL() stecke bekomme ich ne Fehlermeldung von undefined reference
    Code:
    #include <GL/gl.h>
    //#include <GL/glu.h>
    //#include <GL/glx.h>
    //#include <GL/glaux.h>
    #include "OGLWidget.hh"
    
    
    namespace SWP0607 {
    
    OGLWidget::OGLWidget( QWidget* parent, const char* name )
        : QGLWidget( parent, name )
    {
    
    }
    
    
    OGLWidget::~OGLWidget()
    {
    
    }
    
    void OGLWidget::initializeGL()
    {
    	glClearColor(0.0f,0.0f,0.0f,0.0f);
    }
    
    void OGLWidget::resizeGL(int w, int h)
    {
    
    }
    
    void OGLWidget::paintGL()
    {
    
    }
    
    }
    Hab mich auf der TrolltechSeite blöd gesucht und immer noch nix gefunden wisst ihr was das Problem sein kann?

    Schönen Gruß

    KravenZ

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13
    Hab das Forum bißchen durchwühlt und das gefunden:
    http://mrunix.de/forums/showthread.php?t=39352
    Also muss ich die wahrscheinlich erst linken. Aber wie linke ich etwas mit qmake?

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Nachdem du leider keine Fehlerausgabe angeführt hast, müssen wir wohl die Glaskugel befragen

    Meine Glaskugel vermutet, daß du folgendes in dein .pro File eintragen mußt

    Code:
    LIBS += -lGL
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13
    deine Glaskugel hatte Recht

    Aber hab ein neues Problem:
    Kann es sein, dass OGL in QT als Koordinaten nur Werte von 0 - 1 annimmt?
    Wenn ich folgendes schreibe dann geht das Dreieck bis an die Ränder:
    Code:
    glBegin(GL_TRIANGLES); // Ein Dreieck soll gezeichnet werden
        glColor3f(0.0f,0.0f,1.0f); // es soll soll blau werden
        glVertex3f( 0.0f, 0.1f, 0.0f); // Die obere Ecke des Dreiecks
        glVertex3f(-1.0f,-1.0f, 0.0f); // unten links
        glVertex3f( 1.0f,-1.0f, 0.0f); // unten rechts
      glEnd();
    Kann man das irgendwie ändern?
    Ich will eigentlich ganz normal mit Koordinaten arbeiten können. Dabei sollen diese im Bereich von 0-QGLWidgetbreite und 0-QGLWidgethöhe liegen.

    Dieser Code liegt in der paintGL Funktion.

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13
    Hab den Fehler gefunden. Etwas mit meinen Perspektiveeinstellungen war nicht in Ordnung.

    Aber bin nun beim nächsten Problem. gibt es unter Linux die includedatei GL/glaux.h ? Ich hab die unter Windows zum Textureneinbinden gebraucht aber irgendwie finde ich die nicht unter bzw. für Linux, Gibt es Alternativen?

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Welche Funktionen benutzt du aus diesem Header.
    Eventuell findest du diese mit einem grep in den GL/ Headern

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  7. #7
    Registrierter Benutzer
    Registriert seit
    24.09.2005
    Beiträge
    66
    GLaux ist meines wissens ein unportabler Vorläufer von GLUT, also einem Toolkit das sich um Dinge wie Fensterverwaltung kümmert und diverse andere Hilfsfunktionen anbietet.
    Allerdings wird unter Qt keines der beiden Kits funktionieren, da dein GL-Fenster durch QT erstellt wird und diese Toolkits AFAIK keine Möglichkeit bieten ein bereits erstelltes Window einzubinden.
    Dir bleibt wohl nichts anderes übrig als die Input-Methoden zu verwenden die Qt dir anbietet.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •