diff options
-rw-r--r-- | progs/demos/gearbox.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/progs/demos/gearbox.c b/progs/demos/gearbox.c index 3a1662cd625..35bde04417b 100644 --- a/progs/demos/gearbox.c +++ b/progs/demos/gearbox.c @@ -264,38 +264,44 @@ draw(void) glLoadIdentity(); glTranslatef(0.0, 0.0, -40.0); + /* clear whole depth buffer */ glDisable(GL_SCISSOR_TEST); glClear(GL_DEPTH_BUFFER_BIT); glEnable(GL_SCISSOR_TEST); - /* draw gears */ + /* clear upper-left corner of color buffer (unused space) */ + glScissor(0, TexHeight, TexWidth, WinHeight - TexHeight); + glClearColor(0.0, 0.0, 0.0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + + /* clear lower-left corner of color buffer */ glViewport(0, 0, TexWidth, TexHeight); glScissor(0, 0, TexWidth, TexHeight); - glClearColor(0.5, 0.5, 0.8, 0.0); glClearColor(1, 1, 1, 0); glClear(GL_COLOR_BUFFER_BIT); + /* draw gears in lower-left corner */ glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 60.0); glMatrixMode(GL_MODELVIEW); - DrawGears(); + /* copy color buffer to texture */ glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, TexWidth, TexHeight); - /* draw textured cube */ + /* clear right half of color buffer */ glViewport(TexWidth, 0, WinWidth - TexWidth, WinHeight); glScissor(TexWidth, 0, WinWidth - TexWidth, WinHeight); glClearColor(0.5, 0.5, 0.8, 0.0); glClear(GL_COLOR_BUFFER_BIT); + /* draw textured cube in right half of window */ ar = (float) (WinWidth - TexWidth) / WinHeight; glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-ar, ar, -1.0, 1.0, 5.0, 60.0); glMatrixMode(GL_MODELVIEW); - DrawCube(); /* finish up */ |