diff options
Diffstat (limited to 'progs/tests')
-rw-r--r-- | progs/tests/cylwrap.c | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/progs/tests/cylwrap.c b/progs/tests/cylwrap.c index 95d46449379..2b32f115416 100644 --- a/progs/tests/cylwrap.c +++ b/progs/tests/cylwrap.c @@ -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"); } |