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: