Die Ereignisschleife

Wie Sie wissen, enthält OpenGL Übersetzungs-Befehle, ist aber angelegt um unabhängig von jedem Window- oder Betriebssystem zu sein. Folglich enthält es keine Befehle zum Öffnen von Fenstern oder zum Lesen von Ereignissen von der Tastatur oder Maus. Leider ist es unmöglich ein vollständiges Grafik Programm zu schreiben, ohne wenigstes ein Fenster zu öffnen, und die meisten interessanten Programme erfordern einige Benutzereingaben oder andere Dienste vom Betriebs- oder Windowssystem. Dieses Tutorial benutzt GLUT, um das Öffnen der Fenster, Ermitteln von Eingaben usw. zu vereinfachen. GLUT ist möglicherweise für eine OpenGL Applikation mit allen Merkmalen nicht zufriedenstellend, aber vielleicht finden Sie es als Ausgangspunkt für das Erlernen von OpenGL nützlich.

Auf der Grundlage des sehr einfaches OpenGL Programms von Abschnitt 2, schreibt das folgende Beispiel zusätzlich 'hello world' in das Konsolen Fenster. Der Code zeigt zudem anschaulich die Verwendung der GLUT Library zum Öffnen des Grafikfensters und die Organisation der Ereignis Schleife.

#include <stdio.h> 
#include <GL/glut.h>

void display(void) { 
  glClear( GL_COLOR_BUFFER_BIT); 
  glColor3f(0.0, 1.0, 0.0); 
  glBegin(GL_POLYGON); 
  glVertex3f(2.0, 4.0, 0.0); 
  glVertex3f(8.0, 4.0, 0.0); 
  glVertex3f(8.0, 6.0, 0.0); 
  glVertex3f(2.0, 6.0, 0.0); 
  glEnd(); 
  glFlush(); 
} 

int main(int argc, char **argv) { 
  printf("hello world\n"); 
  glutInit(&argc, argv); 
  glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); 
  glutInitWindowPosition(100,100); 
  glutInitWindowSize(300,300); 
  glutCreateWindow ("square"); 
  glClearColor(0.0, 0.0, 0.0, 0.0); 
  glMatrixMode(GL_PROJECTION); 
  glLoadIdentity(); 
  glOrtho(0.0, 10.0, 0.0, 10.0, -1.0, 1.0); 
  glutDisplayFunc(display); 
  glutMainLoop(); 
  return 0; 
}