#include <GLUT/glut.h>
#include <stdlib.h>
#include <stdio.h>

bool animToggle = true;
float angle = 0.1;
  
void idle() {
    glutPostRedisplay();
}

void doKey(unsigned char key, int x, int y) {
  if ('t' == key) { 
    animToggle = !animToggle;
    printf("tog: %d \n", animToggle);
    if (!animToggle) glutIdleFunc(NULL);
    else glutIdleFunc(idle);
  } else if ('r' == key) {
    angle = -angle;
  }
  glutPostRedisplay();
}

void display()
{
  glRotatef(angle, 0,0,1);

  glClearColor(0.0, 0.0, 0.0, 1.0);
  glClear(GL_COLOR_BUFFER_BIT);
  glColor4f(0.0, 1.0, 0.0, 1.0);
  glBegin(GL_POLYGON);
  glVertex3f(0.25, 0.25, -0.5);
  glVertex3f(0.75, 0.25, -0.5);
  glVertex3f(0.75, 0.75, -0.5);
  glVertex3f(0.25, 0.75, -0.5);
  glEnd();
  glutSwapBuffers();
}

int main(int argc, char **argv)
{
  glutInit( &argc, argv );
  glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
  glutInitWindowSize( 640, 480 );
  glutCreateWindow( "glutTest4" );
  glutDisplayFunc( display );
  glutIdleFunc(idle);

  glutKeyboardFunc(doKey);

  glutMainLoop();
  return 0;       // never reached
}

