- procedure Render;
- begin
- x_axis := x_axis + (2 * timefactor);
- glTranslateF(x_axis, 0, -12);
- glBegin(GL_QUADS);
- glVertex3f(1, 1, 0);
- glVertex3f(-1, 1, 0);
- glVertex3f(-1, -1, 0);
- glVertex3f(1, -1, 0);
- glEnd();
- end;
- procedure TGLForm.FormCreate(Sender: TObject);
- begin
- QueryPerformanceFrequency(PerfCounterFreq);
- // OpenGL-Funtionen initialisieren
- ...
- end;
- procedure TGLForm.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
- var
- QPCStartCount, QPCEndCount : Int64;
- begin
- // In die Projektionsmatrix wechseln
- glMatrixMode(GL_PROJECTION);
- // Identitätsmatrix laden
- glLoadIdentity;
- // Viewport an Clientareal des Fensters anpassen
- glViewPort(0, 0, ClientWidth, ClientHeight);
- // Perspective, FOV und Tiefenreichweite setzen
- gluPerspective(60, ClientWidth/ClientHeight, 1, 128);
- // In die Modelansichtsmatrix wechseln
- glMatrixMode(GL_MODELVIEW);
- // Identitätsmatrix laden
- glLoadIdentity;
- // Farb- und Tiefenpuffer löschen
- glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
- QueryPerformanceCounter(QPCStartCount);
- Render;
- QueryPerformanceCounter(QPCEndCount);
- TimeFactor := (QPCEndCount-QPCStartCount)/PerfCounterFreq*100;
- ShowText;
- // Hinteren Puffer nach vorne bringen
- SwapBuffers(DC);
- ...
- end;