Computergrafik

Qt GLUI & lgl Framework

GL Attribute | | Die Grafikpipeline

GLUT hat diverse Problemchen (später). Deshalb nutzen wir ein auf Qt basiertes Framework aus dem glvertex.zip.

Das bedeutet aber, dass wir die legacy Befehle nicht mehr nutzen können. glColor*() u glVertex*() gehören dazu. Diese werden vom Framework über entsprechende lgl-Varianten emuliert.

Also: ab sofort lglVertex(x,y,z) statt glVertex3f(x,y,z), und lglColor(r,g,b,a) statt glColor4f(r,g,b,a), entsprechend auch lglBegin(LGL_TRIANGLES) und lglEnd().

Qt

Qt ist eine GUI-Bibliothek, die Betriebssystem, Grafiksystem, Eingabe, etc. abstrahiert. Sie enthält viele Funktionen, die plattformunabhängiges Programmieren einfacher machen.

Eine Qt-Applikation enthält in der main() Routine immer ein QtApplication Objekt, und ein oder mehrere Window-Objekte, die selber abgeleitet wurden:

#include <glvertex_qt_glui.h>

[...]

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Qt_GLWindow main;
    main.show();

    return(app.exec());
}

Im Framework-Kontext ist das Fenster von lgl_Qt_GLUI abgeleitet, das sich um fast alles kümmert. Man selber erstellt Konstruktor, Destruktor und überlädt initializeOpenGL() und renderOpenGL(double dt).

class Qt_GLWindow: public lgl_Qt_GLUI
{
public:

    Qt_GLWindow() : lgl_Qt_GLUI()
    {
    }

    virtual ~Qt_GLWindow()
    {
    }


protected:

    void initializeOpenGL()
    {
    }

    void renderOpenGL(double dt)
    {
    }
};

Double Buffering etc. übernimmt das Framework.

GL Attribute | | Die Grafikpipeline

Options: