#include #include #include // globale statische Variable static float spin = 0; void Init() { cout << "Init" << endl; // Hier finden jene Aktionen statt, die zum Programmstart einmalig // durchgeführt werden müssen glEnable(GL_DEPTH_TEST); } void RenderScene() { cout << "RenderScene" << endl; glClearColor( 1., .6, 0., 0. ); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Puffer loeschen glColor4f(1.f,.0f,.0f,1.0f); glLoadIdentity(); glRotatef ( spin, 0.0, 0.0, 1.0 ); glutSolidSphere( 0.7, 10, 10 ); //Normalen werden hier automatisch berechnet //glFlush(); glutSwapBuffers(); } void Reshape(int w,int h) { // Hier finden die Reaktionen auf eine Veränderung der Größe des // Graphikfensters statt cout << "Reshape" << endl; glViewport( 0, 0, (GLsizei) w, (GLsizei) h ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(-1., 1., -1., 1., 0., 1.); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); } void Animate () { // An dieser Stelle werden Berechnungen durchgeführt, die zu einer // Animation der Szene erforderlich sind. Dieser Prozess läuft im Hintergrund. spin = spin + 2.; if( spin > 360. ) spin -= 360.; // die registrierte Display-Funktion, also RenderScene, soll aufgerufen werden glutPostRedisplay(); Sleep( 100 ); } int main(int argc, char **argv) { cout<<"Round and round"<