space-bar = pause animation

This commit is contained in:
Brian Paul
2001-01-23 23:43:53 +00:00
parent b6bcae5698
commit 2b2e62154d

View File

@@ -1,4 +1,4 @@
/* $Id: reflect.c,v 1.5 2000/12/24 22:53:54 pesco Exp $ */ /* $Id: reflect.c,v 1.6 2001/01/23 23:43:53 brianp Exp $ */
/* /*
* Demo of a reflective, texture-mapped surface with OpenGL. * Demo of a reflective, texture-mapped surface with OpenGL.
@@ -32,8 +32,8 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "GL/glut.h" #include "GL/glut.h"
#include "showbuffer.c" #include "../util/showbuffer.c"
#include "readtex.c" #include "../util/readtex.c"
#define DEG2RAD (3.14159/180.0) #define DEG2RAD (3.14159/180.0)
@@ -53,6 +53,7 @@ static GLfloat spin;
static GLint Width = 400, Height = 300; static GLint Width = 400, Height = 300;
static GLenum ShowBuffer = GL_NONE; static GLenum ShowBuffer = GL_NONE;
static GLboolean Anim = GL_TRUE;
/* performance info */ /* performance info */
static GLint T0 = 0; static GLint T0 = 0;
@@ -313,6 +314,14 @@ static void draw_scene( void )
} }
static void idle( void )
{
spin += 2.0;
yrot += 3.0;
glutPostRedisplay();
}
static void Key( unsigned char key, int x, int y ) static void Key( unsigned char key, int x, int y )
{ {
(void) x; (void) x;
@@ -323,6 +332,13 @@ static void Key( unsigned char key, int x, int y )
else if (key == 's') { else if (key == 's') {
ShowBuffer = GL_STENCIL; ShowBuffer = GL_STENCIL;
} }
else if (key == ' ') {
Anim = !Anim;
if (Anim)
glutIdleFunc(idle);
else
glutIdleFunc(NULL);
}
else if (key==27) { else if (key==27) {
exit(0); exit(0);
} }
@@ -359,16 +375,6 @@ static void SpecialKey( int key, int x, int y )
} }
static void idle( void )
{
spin += 2.0;
yrot += 3.0;
glutPostRedisplay();
}
int main( int argc, char *argv[] ) int main( int argc, char *argv[] )
{ {
glutInit(&argc, argv); glutInit(&argc, argv);