kostenloser Webspace werbefrei: lima-city


OpenGl + Qt : Anwendung stürzt ab (2D)

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    robbmaster

    Kostenloser Webspace von robbmaster

    robbmaster hat kostenlosen Webspace.

    Hallo. (:

    Ich habe mir in der letzten Zeit ein bisschen zum Thema OpenGl angeeignet. Umsetzen würde ich das ganze jedoch gerne in der GUI (für das Fenster und Co) Qt. Bei der Umsetzung in Qt bin ich noch relativ unsicher.

    Meine Anwendung, die ich zu programmieren versuche, stellt eine 2D (!) Engine da. Die wichtigen Codezeilen dafür sind folgende:

    glMatrixMode(GL_PROJECTION);
        glLoadIdentity;
        glViewport(0,0,640,480);
        glOrtho(0,640,0,480,0,128);


    Mit der ersten Zeile schalten wir in den Projektionsmodus (anstelle des 3D Modellmodus, ich gucke sozusagen auf eine 3D Welt von oben.)

    Später möchte ich es eben so regeln, dass ich Rechtecke (3D logisch, die z-Größe ist einfach 1) erstelle, auf die ich Texturen lade. Weiter als die obere Zeile bin ich jedoch noch nicht. Eigentlich sehe ich keinen Fehler, trotzdem bricht Qt ab. Ich habe mal den Qt Quelltext angehangen, vielleicht liegts auch nicht an dem Gl, sondern an dem Qt Code:

    Vorher schon mal vieeeeelen Dank für die Mühe. (:

    main.cpp
    #include <QtGui/QApplication>
    #include "mainwindow.h"
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QGLWidget w(0,0,0);
        w.show();
        return a.exec();
    }


    mainwindow.h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QtOpenGl>
    
    namespace Ui {
        class MainWindow;
    }
    
    class MainWindow : public QGLWidget {
        Q_OBJECT
    public:
        MainWindow(QWidget *parent);
        ~MainWindow();
    
    protected:
        //void changeEvent(QEvent *e);
    
    private:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H


    mainwindow.cpp
    #include "mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QGLWidget(parent)
    {
    
        // switch to projection matrix
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity;
        glViewport(0,0,640,480);
        glOrtho(0,640,0,480,0,128);
    }
    
    MainWindow::~MainWindow()
    {
    
    }


    Beitrag zuletzt geändert: 19.10.2010 22:32:22 von robbmaster
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hm also auf den ersten Blick fällt mir auf, dass du eine QGlWidget Instanz konstruierst, was die allgemeine und nicht deine selbstgebastelte MainWindow Klasse verwendet.
    Demzufolge dürfte dein GL Code garnicht erst ausgeführt werden und der Fehler sollte im Qt Code selbst liegen.
    Eventuell ist das QGlWidget garnicht dazu gedacht direkt verwendet zu werden und dein Programm steigt deshalb aus, aber das ist nur geraten, da ich selbst noch nicht damit gearbeitet habe.

    Beitrag zuletzt geändert: 22.10.2010 16:33:38 von sektor
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!