diff options
author | Brian <[email protected]> | 2007-02-25 17:24:40 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-02-25 17:24:40 -0700 |
commit | f68067e101d596e59b39f94fafc39483f1c71233 (patch) | |
tree | 191e33194e292544a73e1cebb57da692e4741cb4 /progs/glsl/toyball.c | |
parent | 9854a17f292193c9720cf25ab00818ecc210f911 (diff) |
add texture rotation
Diffstat (limited to 'progs/glsl/toyball.c')
-rw-r--r-- | progs/glsl/toyball.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/progs/glsl/toyball.c b/progs/glsl/toyball.c index 2d3462fc61e..cef52c04a6c 100644 --- a/progs/glsl/toyball.c +++ b/progs/glsl/toyball.c @@ -51,11 +51,22 @@ 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) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -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; |