diff options
| author | Brian Paul <brianp@vmware.com> | 2010-02-05 10:21:15 -0700 | 
|---|---|---|
| committer | Michal Krol <michal@vmware.com> | 2010-02-09 15:33:00 +0100 | 
| commit | 22a3a817aa35d2ba8e38728193eaa65e02b97cf0 (patch) | |
| tree | 6bfe3b9cfa0369ee9561215d5ba9f968a3178084 /progs | |
| parent | dd98a979b6f565f0b0060403fbfad36005278802 (diff) | |
progs/tests: add x/y rotation to cylwrap.c
Diffstat (limited to 'progs')
| -rw-r--r-- | progs/tests/cylwrap.c | 59 | 
1 files changed, 45 insertions, 14 deletions
| diff --git a/progs/tests/cylwrap.c b/progs/tests/cylwrap.c index 9d541e319f..95d4644937 100644 --- a/progs/tests/cylwrap.c +++ b/progs/tests/cylwrap.c @@ -10,6 +10,7 @@  static int Win;  static int WinWidth = 600, WinHeight = 400; +static GLfloat Xrot = 0, Yrot = 0;  static GLboolean CylWrap = GL_TRUE; @@ -83,20 +84,26 @@ Draw(void)     glClear(GL_COLOR_BUFFER_BIT);     glPushMatrix(); -      glTranslatef(0, +1.2, 0); -      DrawSample(GL_FALSE); -   glPopMatrix(); +      glRotatef(Xrot, 1, 0, 0); +      glRotatef(Yrot, 0, 1, 0); -   /* set Mesa back-door state for testing cylindrical wrap mode */ -   if (CylWrap) -      glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 0.125); +      glPushMatrix(); +         glTranslatef(0, +1.2, 0); +         DrawSample(GL_FALSE); +      glPopMatrix(); -   glPushMatrix(); -      glTranslatef(0, -1.2, 0); -      DrawSample(GL_TRUE); -   glPopMatrix(); +      /* set Mesa back-door state for testing cylindrical wrap mode */ +      if (CylWrap) +         glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 0.125); + +      glPushMatrix(); +         glTranslatef(0, -1.2, 0); +         DrawSample(GL_TRUE); +      glPopMatrix(); + +      glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0); -   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, 1.0); +   glPopMatrix();     glutSwapBuffers();  } @@ -110,17 +117,16 @@ Reshape(int width, int height)     glViewport(0, 0, width, height);     glMatrixMode(GL_PROJECTION);     glLoadIdentity(); -   glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0); +   glFrustum(-1.0, 1.0, -1.0, 1.0, 3.0, 25.0);     glMatrixMode(GL_MODELVIEW);     glLoadIdentity(); -   glTranslatef(0.0, 0.0, -15.0); +   glTranslatef(0.0, 0.0, -10.0);  }  static void  Key(unsigned char key, int x, int y)  { -   const GLfloat step = 3.0;     (void) x;     (void) y;     switch (key) { @@ -142,6 +148,30 @@ Key(unsigned char key, int x, int y)  static void +SpecialKey(int key, int x, int y) +{ +   const GLfloat step = 3.0; +   (void) x; +   (void) y; +   switch (key) { +   case GLUT_KEY_UP: +      Xrot -= step; +      break; +   case GLUT_KEY_DOWN: +      Xrot += step; +      break; +   case GLUT_KEY_LEFT: +      Yrot -= step; +      break; +   case GLUT_KEY_RIGHT: +      Yrot += step; +      break; +   } +   glutPostRedisplay(); +} + + +static void  MakeSineWaveTexture(void)  {     GLubyte tex[128][512][4]; @@ -196,6 +226,7 @@ main(int argc, char *argv[])     glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);     Win = glutCreateWindow(argv[0]);     glutReshapeFunc(Reshape); +   glutSpecialFunc(SpecialKey);     glutKeyboardFunc(Key);     glutDisplayFunc(Draw);     Init(); | 
