From: Brian Paul Date: Fri, 5 Feb 2010 17:21:15 +0000 (-0700) Subject: progs/tests: add x/y rotation to cylwrap.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=22a3a817aa35d2ba8e38728193eaa65e02b97cf0;p=mesa.git progs/tests: add x/y rotation to cylwrap.c --- diff --git a/progs/tests/cylwrap.c b/progs/tests/cylwrap.c index 9d541e319f8..95d46449379 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) { @@ -141,6 +147,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) { @@ -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();