From f68067e101d596e59b39f94fafc39483f1c71233 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 25 Feb 2007 17:24:40 -0700 Subject: add texture rotation --- progs/glsl/toyball.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'progs/glsl/toyball.c') diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 2d3462fc61..cef52c04a6 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -51,10 +51,21 @@ static struct uniform_info Uniforms[] = { }; static GLint win = 0; - +static GLboolean Anim = GL_FALSE; +static GLfloat TexRot = 0.0; static GLfloat xRot = 0.0f, yRot = 0.0f, zRot = 0.0f; +static void +Idle(void) +{ + TexRot += 2.0; + if (TexRot > 360.0) + TexRot -= 360.0; + glutPostRedisplay(); +} + + static void Redisplay(void) { @@ -65,6 +76,11 @@ Redisplay(void) glRotatef(yRot, 0.0f, 1.0f, 0.0f); glRotatef(zRot, 0.0f, 0.0f, 1.0f); + glMatrixMode(GL_TEXTURE); + glLoadIdentity(); + glRotatef(TexRot, 0.0f, 1.0f, 0.0f); + glMatrixMode(GL_MODELVIEW); + glutSolidSphere(2.0, 20, 10); glPopMatrix(); @@ -106,6 +122,13 @@ Key(unsigned char key, int x, int y) (void) y; switch(key) { + case 'a': + Anim = !Anim; + if (Anim) + glutIdleFunc(Idle); + else + glutIdleFunc(NULL); + break; case 'z': zRot += step; break; -- cgit v1.2.3