progs/tests: add line drawing option to cylwrap.c
authorBrian Paul <brianp@vmware.com>
Fri, 5 Feb 2010 17:54:40 +0000 (10:54 -0700)
committerMichal Krol <michal@vmware.com>
Tue, 9 Feb 2010 14:33:03 +0000 (15:33 +0100)
progs/tests/cylwrap.c

index 95d464493792171a1ae92f0f5a08ca4762c2995c..2b32f115416f961495e2e3752842330c299117fe 100644 (file)
@@ -12,6 +12,7 @@ static int Win;
 static int WinWidth = 600, WinHeight = 400;
 static GLfloat Xrot = 0, Yrot = 0;
 static GLboolean CylWrap = GL_TRUE;
+static GLboolean Lines = GL_FALSE;
 
 
 
@@ -32,17 +33,35 @@ DrawSample(GLboolean wrap)
 
    glEnable(GL_TEXTURE_2D);
 
-   /* texured quad */
-   glBegin(GL_QUAD_STRIP);
-   for (p = 0.0; p <= 1.001; p += 0.1) {
-      float x = -2.0 + p * 4.0;
-      float s = p + 0.5;
-      if (wrap && s > 1.0)
-         s -= 1.0;
-      glTexCoord2f(s, 0);  glVertex2f(x, -1);
-      glTexCoord2f(s, 1);  glVertex2f(x, +1);
+   if (Lines) {
+      /* texured lines */
+      float t;
+      for (t = 0; t <= 1.0; t += 0.125) {
+         float y = -1.0 + 2.0 * t;
+         glBegin(GL_LINE_STRIP);
+         for (p = 0.0; p <= 1.001; p += 0.05) {
+            float x = -2.0 + p * 4.0;
+            float s = p + 0.5;
+            if (wrap && s > 1.0)
+               s -= 1.0;
+            glTexCoord2f(s, t);  glVertex2f(x, y);
+         }
+         glEnd();
+      }
+   }
+   else {
+      /* texured quads */
+      glBegin(GL_QUAD_STRIP);
+      for (p = 0.0; p <= 1.001; p += 0.1) {
+         float x = -2.0 + p * 4.0;
+         float s = p + 0.5;
+         if (wrap && s > 1.0)
+            s -= 1.0;
+         glTexCoord2f(s, 0);  glVertex2f(x, -1);
+         glTexCoord2f(s, 1);  glVertex2f(x, +1);
+      }
+      glEnd();
    }
-   glEnd();
 
    glDisable(GL_TEXTURE_2D);
 
@@ -138,6 +157,10 @@ Key(unsigned char key, int x, int y)
       else
          printf("Cylindrical wrap off.\n");
       break;
+   case 'l':
+   case 'L':
+      Lines = !Lines;
+      break;
    case 27:
       glutDestroyWindow(Win);
       exit(0);
@@ -215,6 +238,7 @@ Init(void)
    glPointSize(3.0);
 
    printf("Press 'c' to toggle cylindrical wrap mode.\n");
+   printf("Press 'l' to toggle line / quad drawing.\n");
 }